Class: ActiveFedora::RDFDatastream::TermProxy
- Inherits:
-
Object
- Object
- ActiveFedora::RDFDatastream::TermProxy
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
|