class Metacrunch::Mab2::Document::Datafield
Attributes
ind1[RW]
ind2[RW]
tag[RW]
Public Class Methods
new(tag = nil, ind1:nil, ind2:nil)
click to toggle source
# File lib/metacrunch/mab2/document/datafield.rb, line 9 def initialize(tag = nil, ind1:nil, ind2:nil) @tag = tag @ind1 = ind1 @ind2 = ind2 @subfields = {} end
Public Instance Methods
add_subfield(subfield)
click to toggle source
Adds a new sub field.
@param [Metacrunch::Mab2::Document::Subfield] subfield
# File lib/metacrunch/mab2/document/datafield.rb, line 50 def add_subfield(subfield) (@subfields[subfield.code] ||= []) << subfield end
subfields(code = nil)
click to toggle source
Returns the sub field matching the given code.
@param [String] code of the sub field @return [Metacrunch::Mab2::Document::SubfieldSet] sub field with the given code. The set
is empty if the sub field doesn't exists.
# File lib/metacrunch/mab2/document/datafield.rb, line 31 def subfields(code = nil) result = Metacrunch::Mab2::Document::SubfieldSet.new if code.nil? result.concat(@subfields.values.flatten(1)) elsif _subfields = @subfields[code] result.concat(_subfields) elsif (codes = code).is_a?(Array) result.concat(codes.map { |_code| @subfields[_code] }.compact.flatten(1)) end result end
to_xml(builder)
click to toggle source
Serialization
# File lib/metacrunch/mab2/document/datafield.rb, line 58 def to_xml(builder) builder.datafield(tag: tag, ind1: ind1, ind2: ind2) do @subfields.values.each do |_subfield_set| _subfield_set.to_xml(builder) end end end
value()
click to toggle source
# File lib/metacrunch/mab2/document/datafield.rb, line 16 def value subfields.value end