Class: Bulkrax::CsvTemplate::FieldAnalyzer
- Inherits:
-
Object
- Object
- Bulkrax::CsvTemplate::FieldAnalyzer
- Defined in:
- app/services/bulkrax/csv_template/field_analyzer.rb
Overview
Analyzes model fields and schemas
Instance Attribute Summary collapse
-
#field_list ⇒ Object
readonly
Returns the value of attribute field_list.
Instance Method Summary collapse
- #controlled_vocab_terms ⇒ Object
- #find_or_create_field_list_for(model_name:) ⇒ Object
-
#initialize(mappings, admin_set_id = nil) ⇒ FieldAnalyzer
constructor
A new instance of FieldAnalyzer.
Constructor Details
#initialize(mappings, admin_set_id = nil) ⇒ FieldAnalyzer
Returns a new instance of FieldAnalyzer.
9 10 11 12 13 14 |
# File 'app/services/bulkrax/csv_template/field_analyzer.rb', line 9 def initialize(mappings, admin_set_id = nil) @mappings = mappings @field_list = [] @schema = nil @admin_set_id = admin_set_id end |
Instance Attribute Details
#field_list ⇒ Object (readonly)
Returns the value of attribute field_list.
7 8 9 |
# File 'app/services/bulkrax/csv_template/field_analyzer.rb', line 7 def field_list @field_list end |
Instance Method Details
#controlled_vocab_terms ⇒ Object
28 29 30 31 32 |
# File 'app/services/bulkrax/csv_template/field_analyzer.rb', line 28 def controlled_vocab_terms @field_list.flat_map do |hash| hash.values.flat_map { |data| data["controlled_vocab_terms"] || [] } end.uniq end |
#find_or_create_field_list_for(model_name:) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 |
# File 'app/services/bulkrax/csv_template/field_analyzer.rb', line 16 def find_or_create_field_list_for(model_name:) existing = @field_list.find { |entry| entry.key?(model_name) } return existing if existing.present? klass = CsvTemplate::ModelLoader.determine_klass_for(model_name) return {} if klass.nil? model_entry = build_field_list_entry(model_name, klass) @field_list << model_entry model_entry end |