Class: BerkeleyLibrary::Marc::FieldInfo::VarFields::VarFieldDef

Inherits:
Object
  • Object
show all
Includes:
Obsolescible
Defined in:
lib/berkeley_library/marc/field_info/var_fields/var_field_def.rb

Overview

A variable field definition.

Constant Summary

Constants included from Obsolescible

Obsolescible::OBSOLETE

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Obsolescible

#_reject_obsolete, #empty?, #obsolete?

Constructor Details

#initialize(tag:, desc:, indicators: [], subfield_codes: [], inst_or_voices_codes: []) ⇒ VarFieldDef

Returns a new instance of VarFieldDef.



16
17
18
19
20
21
22
# File 'lib/berkeley_library/marc/field_info/var_fields/var_field_def.rb', line 16

def initialize(tag:, desc:, indicators: [], subfield_codes: [], inst_or_voices_codes: [])
  @tag = tag
  @desc = desc
  @indicators = indicators # TODO: split out ind1/ind2 (but what about obsolete?)
  @subfield_codes = subfield_codes
  @inst_or_voices_codes = inst_or_voices_codes
end

Instance Attribute Details

#descObject (readonly)

Returns the value of attribute desc.



14
15
16
# File 'lib/berkeley_library/marc/field_info/var_fields/var_field_def.rb', line 14

def desc
  @desc
end

#indicatorsObject (readonly)

Returns the value of attribute indicators.



14
15
16
# File 'lib/berkeley_library/marc/field_info/var_fields/var_field_def.rb', line 14

def indicators
  @indicators
end

#inst_or_voices_codesObject (readonly)

Returns the value of attribute inst_or_voices_codes.



14
15
16
# File 'lib/berkeley_library/marc/field_info/var_fields/var_field_def.rb', line 14

def inst_or_voices_codes
  @inst_or_voices_codes
end

#subfield_codesObject (readonly)

Returns the value of attribute subfield_codes.



14
15
16
# File 'lib/berkeley_library/marc/field_info/var_fields/var_field_def.rb', line 14

def subfield_codes
  @subfield_codes
end

#tagObject (readonly)

Returns the value of attribute tag.



14
15
16
# File 'lib/berkeley_library/marc/field_info/var_fields/var_field_def.rb', line 14

def tag
  @tag
end

Instance Method Details

#reject_obsoletesObject



36
37
38
39
40
41
42
43
44
# File 'lib/berkeley_library/marc/field_info/var_fields/var_field_def.rb', line 36

def reject_obsoletes
  VarFieldDef.new(
    tag: tag,
    desc: desc,
    indicators: _reject_obsolete(indicators),
    subfield_codes: _reject_obsolete(subfield_codes),
    inst_or_voices_codes: _reject_obsolete(inst_or_voices_codes)
  )
end

#to_sObject

see Object#to_s



25
26
27
28
29
30
31
32
33
# File 'lib/berkeley_library/marc/field_info/var_fields/var_field_def.rb', line 25

def to_s
  blocks = ["#{tag} - #{desc}"]

  concat_indented(blocks, indicators, 'Indicators')
  concat_indented(blocks, subfield_codes, 'Subfield Codes')
  concat_indented(blocks, inst_or_voices_codes, 'Instrument or Voices Codes')

  blocks.join("\n")
end