Class: ActiveFedora::RdfNode::Builder

Inherits:
Object
  • Object
show all
Defined in:
lib/active_fedora/rdf_node.rb

Instance Method Summary collapse

Constructor Details

#initialize(parent) ⇒ Builder

Returns a new instance of Builder.



245
246
247
# File 'lib/active_fedora/rdf_node.rb', line 245

def initialize(parent)
  @parent = parent
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, *args, &block) ⇒ Object



253
254
255
256
257
258
259
260
261
262
# File 'lib/active_fedora/rdf_node.rb', line 253

def method_missing(name, *args, &block)
  args = args.first if args.respond_to? :first
  raise "mapping must specify RDF vocabulary as :in argument" unless args.has_key? :in
  vocab = args.delete(:in)
  field = args.delete(:to) {name}.to_sym
  raise "Vocabulary '#{vocab.inspect}' does not define property '#{field.inspect}'" unless vocab.respond_to? field
  @parent.config[name] = Rdf::NodeConfig.new(vocab.send(field), args).tap do |config|
    config.with_index(&block) if block_given?
  end
end

Instance Method Details

#build {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:



249
250
251
# File 'lib/active_fedora/rdf_node.rb', line 249

def build(&block)
  yield self
end