Class: BerkeleyLibrary::Marc::FieldInfo::VarFields::SubfieldDef

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

Overview

A subfield 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(code:, desc:, values: []) ⇒ SubfieldDef

Returns a new instance of SubfieldDef.



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

def initialize(code:, desc:, values: [])
  @code = code
  @desc = desc
  @values = values
end

Instance Attribute Details

#codeObject (readonly)

Returns the value of attribute code.



13
14
15
# File 'lib/berkeley_library/marc/field_info/var_fields/subfield_def.rb', line 13

def code
  @code
end

#descObject (readonly)

Returns the value of attribute desc.



13
14
15
# File 'lib/berkeley_library/marc/field_info/var_fields/subfield_def.rb', line 13

def desc
  @desc
end

#valuesObject (readonly)

Returns the value of attribute values.



13
14
15
# File 'lib/berkeley_library/marc/field_info/var_fields/subfield_def.rb', line 13

def values
  @values
end

Instance Method Details

#eachEnumerator<SubfieldVal> #each {|v| ... } ⇒ Object

Each value definition for this subfield.

Overloads:

  • #eachEnumerator<SubfieldVal>

    An enumerator of the value definitions for this subfield.

    Returns:

  • #each {|v| ... } ⇒ Object

    Yields each value definition for this subfield.

    Yield Parameters:



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

def each_value(&block)
  return to_enum(:each_value) unless block_given?

  # noinspection RubyMismatchedReturnType
  values.each(&block)
end

#reject_obsoletesObject



22
23
24
# File 'lib/berkeley_library/marc/field_info/var_fields/subfield_def.rb', line 22

def reject_obsoletes
  SubfieldDef.new(code: code, desc: desc, values: _reject_obsolete(values))
end

#to_sObject

see Object#to_s



44
45
46
47
48
# File 'lib/berkeley_library/marc/field_info/var_fields/subfield_def.rb', line 44

def to_s
  lines = ["$#{code_str} - #{desc}"]
  values.each { |v| lines << INDENT + v.to_s }
  lines.join("\n")
end