Class: Model::NodeQuery
- Inherits:
-
Object
- Object
- Model::NodeQuery
- Defined in:
- lib/services/node_query.rb
Instance Attribute Summary collapse
-
#node ⇒ Object
readonly
Returns the value of attribute node.
-
#repository ⇒ Object
readonly
Returns the value of attribute repository.
Instance Method Summary collapse
-
#initialize(node, repository) ⇒ NodeQuery
constructor
A new instance of NodeQuery.
- #node_uri ⇒ Object
- #predicates_and_objects ⇒ Object
- #set_value(predicate, object, replace = true) ⇒ Object
- #value(predicate) ⇒ Object
- #value_exists?(predicate) ⇒ Boolean
- #values(predicate) ⇒ Object
Constructor Details
#initialize(node, repository) ⇒ NodeQuery
Returns a new instance of NodeQuery.
5 6 7 8 |
# File 'lib/services/node_query.rb', line 5 def initialize(node, repository) @node = node @repository = repository end |
Instance Attribute Details
#node ⇒ Object (readonly)
Returns the value of attribute node.
3 4 5 |
# File 'lib/services/node_query.rb', line 3 def node @node end |
#repository ⇒ Object (readonly)
Returns the value of attribute repository.
3 4 5 |
# File 'lib/services/node_query.rb', line 3 def repository @repository end |
Instance Method Details
#node_uri ⇒ Object
10 11 12 |
# File 'lib/services/node_query.rb', line 10 def node_uri node.to_s end |
#predicates_and_objects ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/services/node_query.rb', line 32 def predicates_and_objects values = {} repository.query([ node, nil, nil ]).each do |s| if values.has_key? s.predicate if values[s.predicate].is_a? Array values[s.predicate] << s.object else values[s.predicate] = [ values[s.predicate], s.object ] end else values[s.predicate] = s.object end end values end |
#set_value(predicate, object, replace = true) ⇒ Object
27 28 29 30 |
# File 'lib/services/node_query.rb', line 27 def set_value(predicate, object, replace = true) delete_value(predicate) if replace @repository << [ node, predicate, object ] end |
#value(predicate) ⇒ Object
14 15 16 |
# File 'lib/services/node_query.rb', line 14 def value(predicate) values(predicate).first end |
#value_exists?(predicate) ⇒ Boolean
23 24 25 |
# File 'lib/services/node_query.rb', line 23 def value_exists?(predicate) values(predicate).any? end |
#values(predicate) ⇒ Object
18 19 20 21 |
# File 'lib/services/node_query.rb', line 18 def values(predicate) results = repository.query([ node, predicate, nil ]) results.map {|s| s.object } end |