Module: BerkeleyLibrary::TIND::Mapping::TindFieldUtil
- Included in:
- TindMarc
- Defined in:
- lib/berkeley_library/tind/mapping/tind_field_util.rb
Instance Method Summary collapse
- #field_880_on_subfield6_tag(tag, fields) ⇒ Object
- #field_on_tag(tag, fields) ⇒ Object
-
#rule(field) ⇒ Object
tag - regular alma field referred tag - got tag from subfield6 value of a 880 field nil rule caused by nil referred tag - eg.
- #tindfield_existed?(field, fields) ⇒ Boolean
-
#tindfield_subfield_existed?(field, fields) ⇒ Boolean
To check TIND datafield and the specific subfield from rule existed.
Instance Method Details
#field_880_on_subfield6_tag(tag, fields) ⇒ Object
46 47 48 |
# File 'lib/berkeley_library/tind/mapping/tind_field_util.rb', line 46 def field_880_on_subfield6_tag(tag, fields) datafield_on_tag(tag, fields) { |f| referred_tag(f) == tag } end |
#field_on_tag(tag, fields) ⇒ Object
50 51 52 |
# File 'lib/berkeley_library/tind/mapping/tind_field_util.rb', line 50 def field_on_tag(tag, fields) datafield_on_tag(tag, fields) { |f| f.tag == tag } end |
#rule(field) ⇒ Object
tag - regular alma field referred tag - got tag from subfield6 value of a 880 field nil rule caused by nil referred tag - eg. 880 subfild6 has a value in wrong format
11 12 13 14 15 16 |
# File 'lib/berkeley_library/tind/mapping/tind_field_util.rb', line 11 def rule(field) tag = origin_mapping_tag(field) return nil unless tag rules[Util.tag_symbol(tag)] end |
#tindfield_existed?(field, fields) ⇒ Boolean
18 19 20 21 22 23 24 25 26 |
# File 'lib/berkeley_library/tind/mapping/tind_field_util.rb', line 18 def tindfield_existed?(field, fields) return false unless field_has_rule?(field) field_rule = rule(field) mapping_to_tag = field_rule.pre_existed_tag return false unless mapping_to_tag map_to_tag_existed_in_fields?(field, fields, mapping_to_tag) end |
#tindfield_subfield_existed?(field, fields) ⇒ Boolean
To check TIND datafield and the specific subfield from rule existed
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/berkeley_library/tind/mapping/tind_field_util.rb', line 29 def tindfield_subfield_existed?(field, fields) return false unless field_has_rule?(field) field_rule = rule(field) return false unless pre_existed_tag_subfield_in_rule?(field_rule) tag_subfield = field_rule.pre_existed_tag_subfield mapping_to_tag = tag_subfield[0] return false unless map_to_tag_existed_in_fields?(field, fields, mapping_to_tag) existed_datafield = field_pre_existed(mapping_to_tag, field, fields) return false unless existed_datafield subfield_name = tag_subfield[1] existed_datafield[subfield_name] ? true : false end |