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

Overview

An indicator definition.

Constant Summary collapse

POS_NAMES =

Human-readable position 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)


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

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.



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

def desc
  @desc
end

#posObject (readonly)

Returns the value of attribute pos.



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

def pos
  @pos
end

#val_defsObject (readonly)

Returns the value of attribute val_defs.



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

def val_defs
  @val_defs
end

Instance Method Details

#reject_obsoletesObject



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

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

#to_sObject

see Object#to_s



34
35
36
37
38
# File 'lib/berkeley_library/marc/field_info/var_fields/ind_def.rb', line 34

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