Class: Metacrunch::Mab2::Document::DatafieldSet

Inherits:
Object
  • Object
show all
Includes:
SelfEnumerable
Defined in:
lib/metacrunch/mab2/document/datafield_set.rb

Instance Method Summary collapse

Constructor Details

#initialize(datafields = []) ⇒ DatafieldSet

Returns a new instance of DatafieldSet.



9
10
11
# File 'lib/metacrunch/mab2/document/datafield_set.rb', line 9

def initialize(datafields = [])
  @datafields = datafields
end

Instance Method Details

#<<(datafield) ⇒ Object



17
18
19
# File 'lib/metacrunch/mab2/document/datafield_set.rb', line 17

def <<(datafield)
  @datafields << datafield
end

#concat(datafield_set) ⇒ Object



21
22
23
24
# File 'lib/metacrunch/mab2/document/datafield_set.rb', line 21

def concat(datafield_set)
  @datafields.concat(datafield_set.to_a)
  self
end

#eachObject



13
14
15
# File 'lib/metacrunch/mab2/document/datafield_set.rb', line 13

def each
  block_given? ? @datafields.each { |_datafield| yield _datafield } : to_enum
end

#empty?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/metacrunch/mab2/document/datafield_set.rb', line 35

def empty?
  @datafields.empty?
end

#present?Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/metacrunch/mab2/document/datafield_set.rb', line 39

def present?
  !empty?
end

#subfields(code = nil) ⇒ Metacrunch::Mab2::Document::SubfieldSet



44
45
46
47
48
49
50
51
52
# File 'lib/metacrunch/mab2/document/datafield_set.rb', line 44

def subfields(code = nil)
  result = Metacrunch::Mab2::Document::SubfieldSet.new

  @datafields.each do |_datafield|
    result.concat(_datafield.subfields(code))
  end

  result
end

#to_aObject



31
32
33
# File 'lib/metacrunch/mab2/document/datafield_set.rb', line 31

def to_a
  @datafields
end

#to_xml(builder) ⇒ Object


Serialization




58
59
60
61
62
# File 'lib/metacrunch/mab2/document/datafield_set.rb', line 58

def to_xml(builder)
  self.each do |_datafield|
    _datafield.to_xml(builder)
  end
end

#valueObject Also known as: first_value



26
27
28
# File 'lib/metacrunch/mab2/document/datafield_set.rb', line 26

def value
  @datafields.find { |_datafield| _datafield.value }.try(:value)
end