Class: BerkeleyLibrary::Marc::FieldInfo::VarFields::IndDef

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

Constant Summary collapse

POS_NAMES =
{ 1 => 'First', 2 => 'Second' }.freeze

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(pos:, desc:, val_defs:) ⇒ IndDef

Returns a new instance of IndDef.

Raises:

  • (ArgumentError)


18
19
20
21
22
23
24
# File 'lib/berkeley_library/marc/field_info/var_fields/ind_def.rb', line 18

def initialize(pos:, desc:, val_defs:)
  raise ArgumentError, "Not a valid indicator position: #{pos.inspect}" unless [1, 2].include?(pos)

  @pos = pos
  @desc = desc
  @val_defs = val_defs
end

Instance Attribute Details

#descObject (readonly)

Returns the value of attribute desc.



15
16
17
# File 'lib/berkeley_library/marc/field_info/var_fields/ind_def.rb', line 15

def desc
  @desc
end

#posObject (readonly)

Returns the value of attribute pos.



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

def pos
  @pos
end

#val_defsObject (readonly)

Returns the value of attribute val_defs.



16
17
18
# File 'lib/berkeley_library/marc/field_info/var_fields/ind_def.rb', line 16

def val_defs
  @val_defs
end

Instance Method Details

#reject_obsoletesObject



26
27
28
# File 'lib/berkeley_library/marc/field_info/var_fields/ind_def.rb', line 26

def reject_obsoletes
  IndDef.new(pos: pos, desc: desc, val_defs: _reject_obsolete(val_defs))
end

#to_sObject



30
31
32
33
34
# File 'lib/berkeley_library/marc/field_info/var_fields/ind_def.rb', line 30

def to_s
  lines = ["#{POS_NAMES[pos]} - #{desc}"]
  val_defs.each { |v| lines << "   #{v}" }
  lines.join("\n")
end