class ActiveFedora::RdfDatastreamAttribute

def reader(obj)

Parameters:
  • obj (ActiveFedora::Base) -- the object that has the attribute
def reader(obj)
  node = file_for_attribute(obj, delegate_target)
  term = if at
           vals = at.dup
           while vals.length > 1
             node = node.send(vals.shift)
             node = if node.empty?
                      node.build
                    else
                      node.first
                    end
           end
           vals.first
         else
           field
         end
  node.send(term)
end

def writer(obj, v)

Parameters:
  • v (Object) -- value to write to the attribute
  • obj (ActiveFedora::Base) -- the object that has the attribute
def writer(obj, v)
  node = file_for_attribute(obj, delegate_target)
  obj.mark_as_changed(field) if obj.value_has_changed?(field, v)
  term = if at
           vals = at.dup
           while vals.length > 1
             node = node.send(vals.shift)
             node = node.build if node.empty?
             node = node.first
           end
           vals.first
         else
           field
         end
  node.send("#{term}=", v)
end