Module: BerkeleyLibrary::TIND::Mapping::TindFieldUtil

Included in:
TindMarc
Defined in:
lib/berkeley_library/tind/mapping/tind_field_util.rb

Instance Method Summary collapse

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

Returns:

  • (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

Returns:

  • (Boolean)


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