Class: ActiveFedora::RDFDatastream::TermProxy

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

Instance Method Summary collapse

Constructor Details

#initialize(graph, predicate, values = []) ⇒ TermProxy

Returns a new instance of TermProxy.



116
117
118
119
120
# File 'lib/active_fedora/rdf_datastream.rb', line 116

def initialize(graph, predicate, values=[])
  @graph = graph
  @predicate = predicate
  @values = values
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *args) ⇒ Object



136
137
138
139
140
141
142
143
144
145
146
147
148
# File 'lib/active_fedora/rdf_datastream.rb', line 136

def method_missing(method, *args)
  unless @values.respond_to?(method)
    message = "undefined method `#{method.to_s}' for \"#{@values}\":#{@values.class.to_s}"
    raise NoMethodError, message
  end

  if block_given?
    @values.send(method, *args)  { |*block_args| yield(*block_args) }
  else
    @values.send(method, *args)
  end
  
end

Instance Method Details

#<<(*values) ⇒ Object



121
122
123
124
125
126
# File 'lib/active_fedora/rdf_datastream.rb', line 121

def <<(*values)
  @values.concat(values)
  values.each { |value| @graph.add(@predicate, value, true) }
  @graph.dirty = true
  @values
end

#delete(*values) ⇒ Object



127
128
129
130
131
132
133
134
135
# File 'lib/active_fedora/rdf_datastream.rb', line 127

def delete(*values)
  values.each do |value| 
    unless @values.delete(value).nil?
      @graph.delete(@predicate, value)
      @graph.dirty = true
    end
  end
  @values
end