class Krikri::MappingDSL::RdfSubjects::SubjectDeclaration

Public Instance Methods

to_proc() click to toggle source
# File lib/krikri/mapping_dsl/rdf_subjects.rb, line 11
def to_proc
  block = @block if @block
  value = @value
  lambda do |target, record|
    value = value.call(record) if value.respond_to? :call
    return target.rdf_subject if Array(value).empty?
    raise "Error mapping #{record}, #{target}\t" \
          "URI must be set to a single value; got #{value}" if
      Array(value).count != 1
    value = value.first if value.is_a? Enumerable
    return target.send(setter, value) unless block
    target.send(setter, instance_exec(value, &block))
  end
end

Private Instance Methods

setter() click to toggle source
# File lib/krikri/mapping_dsl/rdf_subjects.rb, line 28
def setter
  :set_subject!
end