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