Module: RDF::Writable
- Extended by:
- Util::Aliasing::LateBound
- Defined in:
- lib/rdf/mixin/writable.rb
Overview
Classes that include this module must implement the methods #insert_statement.
Instance Method Summary collapse
-
#<<(data) ⇒ self
Inserts RDF data into
self. -
#insert(*statements) ⇒ Object
(also: #insert!)
Inserts RDF statements into
self. -
#writable? ⇒ Boolean
Returns
trueifselfis writable.
Methods included from Util::Aliasing::LateBound
Instance Method Details
#<<(data) ⇒ self
Inserts RDF data into self.
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/rdf/mixin/writable.rb', line 25 def <<(data) case data when RDF::Reader insert_reader(data) when RDF::Graph insert_graph(data) when RDF::Enumerable insert_statements(data) when RDF::Statement insert_statement(data) else case when data.respond_to?(:to_rdf) && !data.equal?(rdf = data.to_rdf) self << rdf else insert_statement(Statement.from(data)) end end return self end |
#insert(*statements) ⇒ self #insert(statements) ⇒ self Also known as: insert!
Note:
using splat argument syntax with excessive arguments provided
Inserts RDF statements into self.
significantly affects performance. Use Enumerator form for large numbers of statements.
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/rdf/mixin/writable.rb', line 60 def insert(*statements) statements.map! do |value| case when value.respond_to?(:each_statement) insert_statements(value) nil when (statement = Statement.from(value)) statement else raise ArgumentError.new("not a valid statement: #{value.inspect}") end end statements.compact! insert_statements(statements) unless statements.empty? return self end |
#writable? ⇒ Boolean
Returns true if self is writable.
16 17 18 |
# File 'lib/rdf/mixin/writable.rb', line 16 def writable? !frozen? end |