class BerkeleyLibrary::Marc::FieldInfo::VarFields::SubfieldDef
TODO: destructure range codes in some useful way (e.g. 886a-z, 0-9)
Constants
- INDENT
Attributes
code[R]
desc[R]
values[R]
Public Class Methods
new(code:, desc:, values: [])
click to toggle source
# File lib/berkeley_library/marc/field_info/var_fields/subfield_def.rb, line 14 def initialize(code:, desc:, values: []) @code = code @desc = desc @values = values end
Public Instance Methods
each_value(&block)
click to toggle source
# File lib/berkeley_library/marc/field_info/var_fields/subfield_def.rb, line 24 def each_value(&block) return to_enum(:each_value) unless block_given? values.each(&block) end
reject_obsoletes()
click to toggle source
# File lib/berkeley_library/marc/field_info/var_fields/subfield_def.rb, line 20 def reject_obsoletes SubfieldDef.new(code: code, desc: desc, values: _reject_obsolete(values)) end
to_s()
click to toggle source
# File lib/berkeley_library/marc/field_info/var_fields/subfield_def.rb, line 33 def to_s lines = ["$#{code_str} - #{desc}"] values.each { |v| lines << INDENT + v.to_s } lines.join("\n") end
Private Instance Methods
code_str()
click to toggle source
# File lib/berkeley_library/marc/field_info/var_fields/subfield_def.rb, line 41 def code_str return code.to_s unless code.is_a?(Range) "#{code.first}-#{code.last}" end