class Marc4R::Fields::DataField
Attributes
indicator1[RW]
indicator2[RW]
Public Class Methods
new(tag=nil, ind1=nil, ind2=nil, *args)
click to toggle source
# File lib/marc4r/fields/data_field.rb, line 5 def initialize(tag=nil, ind1=nil, ind2=nil, *args) self.tag= tag if tag self.indicator1 = ind1 if ind1 self.indicator2 = ind2 if ind2 @subfields = [] args.each_slice(2) do |slice| if (slice[0].size != 1) raise Marc4R::MarcException.new("subfield code must be a single character #{slice.inspect}") end @subfields << Marc4R::Fields::Subfield.new(*slice) end end
Public Instance Methods
=~(pattern)
click to toggle source
# File lib/marc4r/fields/data_field.rb, line 26 def =~ pattern subfields.detect {|f| f =~ pattern} end
eql?(other)
click to toggle source
# File lib/marc4r/fields/data_field.rb, line 30 def eql? other if other.is_a? Marc4R::Fields::DataField r = self.tag.eql? other.tag r &= self.indicator1.eql? other.indicator1 r &= self.indicator2.eql? other.indicator2 r &= self.subfields.size.eql? other.subfields.size if r self.subfields.each do |sf| r &= other.subfields.detect {|osf| (osf.code.eql? sf.code) && (osf.data.eql? sf.data)} end end r else false end end
subfield(code=nil)
click to toggle source
# File lib/marc4r/fields/data_field.rb, line 22 def subfield(code=nil) subfields(code).first end
subfields(code=nil)
click to toggle source
# File lib/marc4r/fields/data_field.rb, line 18 def subfields(code=nil) code ? @subfields.select {|sf| sf.code == code} : @subfields end