Module: BerkeleyLibrary::TIND::Mapping::Misc

Included in:
DataFieldsCatalog, TindFieldFromSingleMap, TindMarc
Defined in:
lib/berkeley_library/tind/mapping/misc.rb

Instance Method Summary collapse

Instance Method Details

#check_subfield6_format(f) ⇒ Object

add subfield6 validation



32
33
34
35
36
37
38
# File 'lib/berkeley_library/tind/mapping/misc.rb', line 32

def check_subfield6_format(f)
  val = f['6']
  reg1 = %r{^\d{3}-\d{2}/}
  reg2 = /^\d{3}-\d{2}$/

  logger.warn("Unusual subfield6 format: #{val}; correct format examples: 1) 880-02 ; 2)246-02/$1") unless reg1.match(val) || reg2.match(val)
end

#field_880_has_referred_tag?(tag, field) ⇒ Boolean

check a tag in subfield 6 of a 880 datafield

Returns:

  • (Boolean)


22
23
24
25
26
27
# File 'lib/berkeley_library/tind/mapping/misc.rb', line 22

def field_880_has_referred_tag?(tag, field)
  referred_tag_from_880 = referred_tag(field)
  return false unless referred_tag_from_880

  referred_tag_from_880 == tag
end

#origin_mapping_tag(f) ⇒ Object

referred tag ###



9
10
11
# File 'lib/berkeley_library/tind/mapping/misc.rb', line 9

def origin_mapping_tag(f)
  is_880_field?(f) ? referred_tag(f) : f.tag
end

#referred_tag(field) ⇒ Object

get the 880 referred tag. An example $6 value: '650-05/$1', referred tag is 650



15
16
17
18
19
# File 'lib/berkeley_library/tind/mapping/misc.rb', line 15

def referred_tag(field)
  return nil unless subfield6?(field)

  field['6'].strip.split('-')[0]
end