Module: BerkeleyLibrary::TIND::Mapping::TindSubfieldUtil

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

Instance Method Summary collapse

Instance Method Details

#clean_subfield(subfield) ⇒ Object



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

def clean_subfield(subfield)
  new_value = clr_value(subfield.value)
  subfield.value = new_value
end

#fields_880_subfield6(datafields_880) ⇒ Object



13
14
15
# File 'lib/berkeley_library/tind/mapping/tind_subfield_util.rb', line 13

def fields_880_subfield6(datafields_880)
  formated_subfield6_value_arr(fields_by(datafields_880) { |f| is_880_field?(f) })
end

#the_first_subfield6(fields) ⇒ Object

From all subfield 6 gotten for repeated fields - with the same tag return the first subfield 6



19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/berkeley_library/tind/mapping/tind_subfield_util.rb', line 19

def the_first_subfield6(fields)
  values = subfield_6_values(fields)
  return nil if values.empty?

  # keep it here, in case needed in future: this can make sure
  # 880 and regular fields having matching sequence number
  # subfield6_with_small_no(values)

  # new implementation: keep the first subfield 6 value
  logger.warn("#{fields[0].tag} have multiple datafields with multiple subfield 6, the first subfield 6 is kept") if values.length > 1
  Util.subfield('6', values[0])
end