class Neo4j::Core::CypherSession::Responses::Embedded

Attributes

request_data[R]
results[R]

Public Class Methods

new(execution_results, options = {}) click to toggle source
   # File lib/neo4j/core/cypher_session/responses/embedded.rb
10 def initialize(execution_results, options = {})
11   # validate_response!(execution_results)
12 
13   @wrap_level = options[:wrap_level] || Neo4j::Core::Config.wrapping_level
14 
15   @results = execution_results.map do |execution_result|
16     result_from_execution_result(execution_result)
17   end
18 end

Private Instance Methods

_wrap_entity(entity) click to toggle source
   # File lib/neo4j/core/cypher_session/responses/embedded.rb
39 def _wrap_entity(entity)
40   case @wrap_level
41   when :none then wrap_value(entity)
42   when :core_entity, :proc
43     if type = type_for_entity(entity)
44       result = send("wrap_#{type}", entity)
45 
46       @wrap_level == :proc ? result.wrap : result
47     else
48       wrap_value(entity)
49     end
50   else
51     fail ArgumentError, "Inalid wrap_level: #{@wrap_level.inspect}"
52   end
53 end
get_entity_properties(entity) click to toggle source
    # File lib/neo4j/core/cypher_session/responses/embedded.rb
101 def get_entity_properties(entity)
102   entity.get_property_keys.each_with_object({}) do |key, result|
103     result[key.to_sym] = entity.get_property(key)
104   end
105 end
result_from_execution_result(execution_result) click to toggle source
   # File lib/neo4j/core/cypher_session/responses/embedded.rb
22 def result_from_execution_result(execution_result)
23   columns = execution_result.columns.to_a
24   rows = execution_result.map do |execution_result_row|
25     columns.map { |column| wrap_entity(execution_result_row[column]) }
26   end
27   Result.new(columns, rows)
28 end
type_for_entity(entity) click to toggle source
   # File lib/neo4j/core/cypher_session/responses/embedded.rb
55 def type_for_entity(entity)
56   if entity.is_a?(Java::OrgNeo4jKernelImplCore::NodeProxy)
57     :node
58   elsif entity.is_a?(Java::OrgNeo4jKernelImplCore::RelationshipProxy)
59     :relationship
60   elsif entity.respond_to?(:path_entities)
61     :path
62   end
63 end
validate_response!(_execution_results) click to toggle source
    # File lib/neo4j/core/cypher_session/responses/embedded.rb
107 def validate_response!(_execution_results)
108   require 'pry'
109 end
wrap_entity(entity) click to toggle source
   # File lib/neo4j/core/cypher_session/responses/embedded.rb
30 def wrap_entity(entity)
31   if entity.is_a?(Array) ||
32      entity.is_a?(Java::ScalaCollectionConvert::Wrappers::SeqWrapper)
33     entity.to_a.map(&method(:wrap_entity))
34   else
35     _wrap_entity(entity)
36   end
37 end
wrap_node(entity) click to toggle source
   # File lib/neo4j/core/cypher_session/responses/embedded.rb
65 def wrap_node(entity)
66   ::Neo4j::Core::Node.new(entity.get_id,
67                           entity.get_labels.map(&:to_s),
68                           get_entity_properties(entity))
69 end
wrap_path(entity) click to toggle source
   # File lib/neo4j/core/cypher_session/responses/embedded.rb
79 def wrap_path(entity)
80   ::Neo4j::Core::Path.new(entity.nodes.map(&method(:wrap_node)),
81                           entity.relationships.map(&method(:wrap_relationship)),
82                           nil)
83 end
wrap_relationship(entity) click to toggle source
   # File lib/neo4j/core/cypher_session/responses/embedded.rb
71 def wrap_relationship(entity)
72   ::Neo4j::Core::Relationship.new(entity.get_id,
73                                   entity.get_type.name,
74                                   get_entity_properties(entity),
75                                   entity.get_start_node.id,
76                                   entity.get_end_node.id)
77 end
wrap_value(entity) click to toggle source
   # File lib/neo4j/core/cypher_session/responses/embedded.rb
85 def wrap_value(entity)
86   case entity
87   when Java::ScalaCollectionConvert::Wrappers::MapWrapper
88     entity.each_with_object({}) { |(k, v), r| r[k.to_sym] = _wrap_entity(v) }
89   when Java::OrgNeo4jKernelImplCore::NodeProxy, Java::OrgNeo4jKernelImplCore::RelationshipProxy
90     entity.property_keys.each_with_object({}) { |key, hash| hash[key.to_sym] = entity.get_property(key) }
91   else
92     if entity.respond_to?(:path_entities) || entity.is_a?(Java::ScalaCollectionConvert::Wrappers::SeqWrapper)
93       entity.to_a.map(&method(:_wrap_entity))
94     else
95       # Convert from Java?
96       entity.is_a?(Hash) ? entity.symbolize_keys : entity
97     end
98   end
99 end