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.
112
113
114
115
116
|
# File 'lib/active_fedora/rdf_datastream.rb', line 112
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
132
133
134
135
136
137
138
139
140
141
142
143
144
|
# File 'lib/active_fedora/rdf_datastream.rb', line 132
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
117
118
119
120
121
122
|
# File 'lib/active_fedora/rdf_datastream.rb', line 117
def <<(*values)
@values.concat(values)
values.each { |value| @graph.add(@predicate, value, true) }
@graph.dirty = true
@values
end
|
#delete(*values) ⇒ Object
123
124
125
126
127
128
129
130
131
|
# File 'lib/active_fedora/rdf_datastream.rb', line 123
def delete(*values)
values.each do |value|
unless @values.delete(value).nil?
@graph.delete(@predicate, value)
@graph.dirty = true
end
end
@values
end
|