Module: BerkeleyLibrary::TIND::Mapping::AdditionalDatafieldProcess
- Included in:
- DataFieldsCatalog, TindMarc
- Defined in:
- lib/berkeley_library/tind/mapping/additional_datafield_process.rb
Instance Method Summary collapse
-
#clean_subfields(fields) ⇒ Object
process 2: remove charaters in subfields defined in Config module.
-
#clean_subfields_in_field(field) ⇒ Object
clean subfields of a datafield.
-
#remove_repeated_fields(tag, fields) ⇒ Object
1.
-
#remove_repeats(fields) ⇒ Object
process 1: remove and combine repeated fields - defined in Config module.
Instance Method Details
#clean_subfields(fields) ⇒ Object
process 2: remove charaters in subfields defined in Config module
15 16 17 18 19 20 21 22 |
# File 'lib/berkeley_library/tind/mapping/additional_datafield_process.rb', line 15 def clean_subfields(fields) fields.each do |f| next unless (f, Config.) clean_subfields_in_field(f) end fields end |
#clean_subfields_in_field(field) ⇒ Object
clean subfields of a datafield
39 40 41 |
# File 'lib/berkeley_library/tind/mapping/additional_datafield_process.rb', line 39 def clean_subfields_in_field(field) field.subfields.each { |sf| clean_subfield(sf) } end |
#remove_repeated_fields(tag, fields) ⇒ Object
- Find all datafield with the tag, if more than one found, combine repeated datafields which have a same tag into one
- Find all 880 datafields with subfield6 referring to the tag, if more than one found, combine repeated datafields with one subfield 6, a related datafield will be modified to have the same sequence in subfield 6 as in this 880 subfield 6
29 30 31 32 33 34 35 36 |
# File 'lib/berkeley_library/tind/mapping/additional_datafield_process.rb', line 29 def remove_repeated_fields(tag, fields) repeated_fields = fields_on_tag(tag, fields) remove_repeated(repeated_fields, fields) repeated_880_fields = fields_880_on_subfield6_referredtag(tag, fields) remove_repeated(repeated_880_fields, fields) fields end |
#remove_repeats(fields) ⇒ Object
process 1: remove and combine repeated fields - defined in Config module
9 10 11 12 |
# File 'lib/berkeley_library/tind/mapping/additional_datafield_process.rb', line 9 def remove_repeats(fields) Config..each { |tag| remove_repeated_fields(tag, fields) } fields end |