Class: Mabmapper::MabXml::Field

Inherits:
Object
  • Object
show all
Defined in:
lib/mabmapper/mab_xml/field.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ Field

Returns a new instance of Field.



6
7
8
9
# File 'lib/mabmapper/mab_xml/field.rb', line 6

def initialize(name)
  @name      = name
  @subfields = []
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



4
5
6
# File 'lib/mabmapper/mab_xml/field.rb', line 4

def name
  @name
end

#subfieldsObject (readonly)

Returns the value of attribute subfields.



4
5
6
# File 'lib/mabmapper/mab_xml/field.rb', line 4

def subfields
  @subfields
end

Instance Method Details

#add_subfield(subfield) ⇒ Object



11
12
13
14
15
# File 'lib/mabmapper/mab_xml/field.rb', line 11

def add_subfield(subfield)
  raise if subfield.blank? or not subfield.is_a?(Subfield)

  @subfields << subfield
end

#get_subfield(subfield) ⇒ Object



34
35
36
# File 'lib/mabmapper/mab_xml/field.rb', line 34

def get_subfield(subfield)
  subfields.select{|s| s.name.to_s == subfield.to_s}.try(:first)
end

#has_subfield?(subfield) ⇒ Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/mabmapper/mab_xml/field.rb', line 30

def has_subfield?(subfield)
  subfields.any?{|s| s.name.to_s == subfield.to_s}
end

#to_sObject



38
39
40
# File 'lib/mabmapper/mab_xml/field.rb', line 38

def to_s
  value
end

#value(options = {}) ⇒ Object



25
26
27
28
# File 'lib/mabmapper/mab_xml/field.rb', line 25

def value(options = {})
  options.reverse_merge!(join_subfields: ' ')
  values(options)
end

#values(options = {}) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/mabmapper/mab_xml/field.rb', line 17

def values(options = {})
  options.reverse_merge!(join_subfields: nil)
  values = @subfields.map(&:value)

  join = options[:join_subfields]
  join ? values.join((!!join==join) ? nil : join.to_s) : values
end