class ActiveFedora::Crosswalks::Accessors::GenericAccessor

Attributes

datastream[RW]
field[RW]

Public Class Methods

new(datastream, field) click to toggle source
Calls superclass method
# File lib/active_fedora/crosswalks/accessors/generic_accessor.rb, line 6
def self.new(datastream, field)
  if self.to_s.include?("GenericAccessor")
    if datastream.kind_of?(ActiveFedora::RelsExtDatastream)
      return RelsExtAccessor.new(datastream, field)
    end
    if datastream.kind_of?(ActiveFedora::OmDatastream)
      return OmAccessor.new(datastream, field)
    end
  end
  super
end
new(datastream, field) click to toggle source
# File lib/active_fedora/crosswalks/accessors/generic_accessor.rb, line 17
def initialize(datastream, field)
  @datastream = datastream
  @field = field
end

Public Instance Methods

get_reader() click to toggle source
# File lib/active_fedora/crosswalks/accessors/generic_accessor.rb, line 21
def get_reader
  return datastream, field, nil
end
get_value() click to toggle source
# File lib/active_fedora/crosswalks/accessors/generic_accessor.rb, line 27
def get_value
  FieldProxy.new(Array.wrap(datastream.send(field.to_s)), self, field)
end
get_writer() click to toggle source
# File lib/active_fedora/crosswalks/accessors/generic_accessor.rb, line 24
def get_writer
  return datastream, "#{self.field}=", nil
end
original_get_value() click to toggle source
# File lib/active_fedora/crosswalks/accessors/generic_accessor.rb, line 30
def original_get_value
  if datastream.respond_to?("unstubbed_#{self.field}")
    FieldProxy.new(Array.wrap(datastream.send("unstubbed_#{self.field}")), self, field)
  else
    get_value
  end
end
original_set_value(*args) click to toggle source
# File lib/active_fedora/crosswalks/accessors/generic_accessor.rb, line 41
def original_set_value(*args)
  value = args.last
  if datastream.respond_to?("unstubbed_#{self.field}=")
    datastream.send("unstubbed_#{self.field}=",value)
  else
    set_value(value)
  end
end
set_value(*args) click to toggle source
# File lib/active_fedora/crosswalks/accessors/generic_accessor.rb, line 37
def set_value(*args)
  value = args.last
  datastream.send("#{field.to_s}=",value)
end