Class: Metacrunch::Mab2::Document::Controlfield

Inherits:
Object
  • Object
show all
Defined in:
lib/metacrunch/mab2/document/controlfield.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(tag = nil, values = []) ⇒ Controlfield

Returns a new instance of Controlfield.



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

def initialize(tag = nil, values = [])
  self.tag    = tag
  self.values = values
end

Instance Attribute Details

#tagObject

Returns the value of attribute tag.



6
7
8
# File 'lib/metacrunch/mab2/document/controlfield.rb', line 6

def tag
  @tag
end

Instance Method Details

#at(index) ⇒ Array<String>

Returns value at given index.

Parameters:

  • index (int)

Returns:

  • (Array<String>)

    value at given index



54
55
56
# File 'lib/metacrunch/mab2/document/controlfield.rb', line 54

def at(index)
  @values.at(index)
end

#to_xml(builder) ⇒ Object


Serialization




62
63
64
# File 'lib/metacrunch/mab2/document/controlfield.rb', line 62

def to_xml(builder)
  builder.controlfield(values2string, tag: tag)
end

#valuesArray<String>

Returns:

  • (Array<String>)


46
47
48
# File 'lib/metacrunch/mab2/document/controlfield.rb', line 46

def values
  @values
end

#values=(values) ⇒ Object

Setter for the control field values. Values can be given as String or as an Array.

Examples:

Add control field using String values

add_control_field("050", "a|b||")

Add control field using Array

add_control_field("050", ["a", nil, "b", nil, nil])

Parameters:

  • values (String, Array)

    for the control field as a String or Array. In case of String the MAB2 delimiter/placeholder | is respected. In case of an Array every element is converted into a String. Empty strings are converted into nil. Array values that are longer than one character will raise an ArgumentError.



33
34
35
36
37
38
39
40
41
# File 'lib/metacrunch/mab2/document/controlfield.rb', line 33

def values=(values)
  @values = case values
    when String then string2values(values)
    when Array  then array2values(values)
    when nil    then []
    else
      raise ArgumentError, "expecting a String or Array, but got #{values}"
    end
end