Class: Bulkrax::CsvTemplate::ValueDeterminer
- Inherits:
-
Object
- Object
- Bulkrax::CsvTemplate::ValueDeterminer
- Defined in:
- app/services/bulkrax/csv_template/value_determiner.rb
Overview
Determines values for CSV cells
Instance Method Summary collapse
- #determine_value(column, model_name, field_list) ⇒ Object
-
#initialize(service) ⇒ ValueDeterminer
constructor
A new instance of ValueDeterminer.
Constructor Details
#initialize(service) ⇒ ValueDeterminer
Returns a new instance of ValueDeterminer.
7 8 9 10 |
# File 'app/services/bulkrax/csv_template/value_determiner.rb', line 7 def initialize(service) @service = service @column_builder = CsvTemplate::ColumnBuilder.new(service) end |
Instance Method Details
#determine_value(column, model_name, field_list) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'app/services/bulkrax/csv_template/value_determiner.rb', line 12 def determine_value(column, model_name, field_list) key = @service.mapping_manager.mapped_to_key(column) required_terms = field_list.dig(model_name, 'required_terms') properties = field_list.dig(model_name, "properties") || [] object_name = @service.mapping_manager.get_object_name(key) if properties.include?(key) mark_required_or_optional(key, required_terms) elsif object_name && properties.include?(object_name) # Column belongs to an `object:` mapping (e.g. `redirect_path` → object # `redirects`). Treat the column as required/optional based on the # parent property's required-terms list. mark_required_or_optional(object_name, required_terms) elsif special_column?(column, key) special_value(column, key, model_name, required_terms) end end |