Class: Openphar::Exporters::Neo4j::NodeBuilder
- Inherits:
-
Object
- Object
- Openphar::Exporters::Neo4j::NodeBuilder
- Defined in:
- lib/openphar/exporters/neo4j/node_builder.rb
Overview
Builds Neo4j Cypher nodes from model data
Uses the property mapper to convert JSON-LD properties to Neo4j format, and generates either CREATE or MERGE statements based on the use_merge flag.
Instance Attribute Summary collapse
-
#mapper ⇒ Object
readonly
Returns the value of attribute mapper.
-
#registry ⇒ Object
readonly
Returns the value of attribute registry.
Instance Method Summary collapse
-
#build(data, use_merge: false) ⇒ String
Builds a Cypher CREATE/MERGE statement for a single node.
-
#initialize(mapper = nil) ⇒ NodeBuilder
constructor
A new instance of NodeBuilder.
-
#property_count(data) ⇒ Integer
Returns the property count for a given data hash.
Constructor Details
#initialize(mapper = nil) ⇒ NodeBuilder
Returns a new instance of NodeBuilder.
13 14 15 16 |
# File 'lib/openphar/exporters/neo4j/node_builder.rb', line 13 def initialize(mapper = nil) @mapper = mapper || PropertyMapper.new @registry = @mapper.instance_variable_get(:@registry) || ModelRegistry.new end |
Instance Attribute Details
#mapper ⇒ Object (readonly)
Returns the value of attribute mapper.
11 12 13 |
# File 'lib/openphar/exporters/neo4j/node_builder.rb', line 11 def mapper @mapper end |
#registry ⇒ Object (readonly)
Returns the value of attribute registry.
11 12 13 |
# File 'lib/openphar/exporters/neo4j/node_builder.rb', line 11 def registry @registry end |
Instance Method Details
#build(data, use_merge: false) ⇒ String
Builds a Cypher CREATE/MERGE statement for a single node
23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/openphar/exporters/neo4j/node_builder.rb', line 23 def build(data, use_merge: false) node_type = registry.node_type_for(data['@type'] || data['type']) properties = mapper.map_properties(data) node_id = generate_node_id(node_type, properties[:id]) if use_merge build_merge_statement(node_id, node_type, properties) else build_create_statement(node_id, node_type, properties) end end |
#property_count(data) ⇒ Integer
Returns the property count for a given data hash
39 40 41 |
# File 'lib/openphar/exporters/neo4j/node_builder.rb', line 39 def property_count(data) mapper.property_count(data) end |