Module: BerkeleyLibrary::TIND::Mapping::TindControlSubfield
- Included in:
- TindFieldFromLeader, TindFieldFromMultipleMap
- Defined in:
- lib/berkeley_library/tind/mapping/tind_control_subfield.rb
Instance Method Summary collapse
- #extract_value(rule, value) ⇒ Object
-
#extracted_field(rule, sub_value) ⇒ Object
return a mapped datafield based on rule and extract value.
-
#extracted_fields_from_leader(leader_rules, leader_value) ⇒ Object
pass in rules, a string value; return datafields based on rules.
Instance Method Details
#extract_value(rule, value) ⇒ Object
8 9 10 11 12 13 |
# File 'lib/berkeley_library/tind/mapping/tind_control_subfield.rb', line 8 def extract_value(rule, value) pos = rule.position_from_to return nil unless pos value[pos[0]..pos[1]] end |
#extracted_field(rule, sub_value) ⇒ Object
return a mapped datafield based on rule and extract value
16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/berkeley_library/tind/mapping/tind_control_subfield.rb', line 16 def extracted_field(rule, sub_value) subname = rule.subfield_key destiantion_tag = rule.tag_destination indicator = rule.indicator return nil unless subname && destiantion_tag && indicator new_sub_value = clean_subfield_value(destiantion_tag, sub_value) return nil unless new_sub_value new_sub_value = clean_subfield_value(destiantion_tag, sub_value) subfields = [Util.subfield(subname, new_sub_value)] Util.datafield(destiantion_tag, indicator, subfields) end |
#extracted_fields_from_leader(leader_rules, leader_value) ⇒ Object
pass in rules, a string value; return datafields based on rules
31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/berkeley_library/tind/mapping/tind_control_subfield.rb', line 31 def extracted_fields_from_leader(leader_rules, leader_value) new_fls = [] leader_rules.each do |rule| sub_value = extract_value(rule, leader_value) next unless sub_value newfield = extracted_field(rule, sub_value) new_fls << newfield if newfield end new_fls end |