Class: NodeQuery
- Inherits:
-
Object
- Object
- 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.
- #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.
4 5 6 7 |
# File 'lib/services/node_query.rb', line 4 def initialize(node, repository) @node = node @repository = repository end |
Instance Attribute Details
#node ⇒ Object (readonly)
Returns the value of attribute node.
2 3 4 |
# File 'lib/services/node_query.rb', line 2 def node @node end |
#repository ⇒ Object (readonly)
Returns the value of attribute repository.
2 3 4 |
# File 'lib/services/node_query.rb', line 2 def repository @repository end |
Instance Method Details
#predicates_and_objects ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/services/node_query.rb', line 27 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
22 23 24 25 |
# File 'lib/services/node_query.rb', line 22 def set_value(predicate, object, replace = true) delete_value(predicate) if replace @repository << [ node, predicate, object ] end |
#value(predicate) ⇒ Object
9 10 11 |
# File 'lib/services/node_query.rb', line 9 def value(predicate) values(predicate).first end |
#value_exists?(predicate) ⇒ Boolean
18 19 20 |
# File 'lib/services/node_query.rb', line 18 def value_exists?(predicate) values(predicate).any? end |
#values(predicate) ⇒ Object
13 14 15 16 |
# File 'lib/services/node_query.rb', line 13 def values(predicate) results = repository.query([ node, predicate, nil ]) results.map {|s| s.object } end |