activegraph 10.0.0.pre.beta.8 → 10.0.0.pre.beta.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ca2e28b863dbc266bb8f33c14507f473a476beea1076effcae5348179df07950
4
- data.tar.gz: 4f4757827f9ece88a3944cfa64bacdc0ee4ca7d5abc82aad98ea01c4cf421969
3
+ metadata.gz: 8550db7a7318c874038288f06c18b61626de59b1e15ef6da84106c655a765ddc
4
+ data.tar.gz: 917fa4fa44b7ece60ddacae791ae73fb70632743092cb51f0efd062d4114a2c2
5
5
  SHA512:
6
- metadata.gz: 9b9174c954408a250198d647b2146d200728ae4ff54247ebca82c6c5fa375854dfeec47f05b4cc2fdc8ac28f2adba0d08b5b745f0079d08425edb4eefb4e55f3
7
- data.tar.gz: efb7332fc14cc7acddb6dde5eba71e6b975b37bcbe53dc15098e89d02009d4e585c150dfd924d2a745d1a33e64c727bbfe9e603f7b9cac5895efd1b566f44ace
6
+ metadata.gz: 1d995c7d4ca8bbc0639434f2f284f532554a65d551ce977ee1566d84b3df50b92b2565d99ed9fbb82a3d9b3a425900c813cc16213eec9b8fd0f10e3bfc2432d3
7
+ data.tar.gz: c8532396f2b1a154733ff443ea6cd846b690b723cf86db8b37efe8153ebdf71b5fc923bfcf4c2ded43016cdd1a5213fe62222e928768d12e00d0ba5f2ee65d6c
@@ -38,7 +38,7 @@ DESCRIPTION
38
38
  s.add_development_dependency('guard-rspec')
39
39
  s.add_development_dependency('guard-rubocop')
40
40
  s.add_development_dependency('neo4j-rake_tasks', '>= 0.3.0')
41
- s.add_development_dependency("neo4j-#{ENV['driver'] == 'java' ? 'java' : 'ruby'}-driver", '>= 0.4.0')
41
+ s.add_development_dependency("neo4j-#{ENV['driver'] == 'java' ? 'java' : 'ruby'}-driver", '>= 0.4.1')
42
42
  s.add_development_dependency('os')
43
43
  s.add_development_dependency('pry')
44
44
  s.add_development_dependency('railties', '>= 4.0')
@@ -1,15 +1,14 @@
1
- require 'active_graph/transaction'
2
1
  require 'active_graph/core/instrumentable'
2
+ require 'active_graph/core/entity'
3
+ require 'active_graph/core/node'
3
4
  require 'active_graph/core/query'
4
5
  require 'active_graph/core/record'
5
-
6
- require 'neo4j_ruby_driver'
7
6
  require 'active_graph/core/wrappable'
8
- require 'active_graph/core/node'
9
- require 'active_graph/core/relationship'
7
+ require 'active_graph/transaction'
8
+ require 'neo4j_ruby_driver'
10
9
 
11
10
  Neo4j::Driver::Types::Entity.include ActiveGraph::Core::Wrappable
11
+ Neo4j::Driver::Types::Entity.prepend ActiveGraph::Core::Entity
12
12
  Neo4j::Driver::Types::Node.prepend ActiveGraph::Core::Node
13
- Neo4j::Driver::Types::Relationship.include ActiveGraph::Core::Relationship
14
13
  Neo4j::Driver::StatementResult.prepend ActiveGraph::Core::Result
15
14
  Neo4j::Driver::Record.prepend ActiveGraph::Core::Record
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ActiveGraph
4
+ module Core
5
+ module Entity
6
+ def properties
7
+ @properties ||= super
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,23 +1,15 @@
1
- require 'active_graph/core/wrappable'
1
+ # frozen_string_literal: true
2
2
 
3
3
  module ActiveGraph
4
4
  module Core
5
5
  module Node
6
- def props; properties; end
7
- # Perhaps we should deprecate this?
8
- def neo_id; id; end
9
-
10
- def ==(other)
11
- other.is_a?(Node) && neo_id == other.neo_id
6
+ def neo_id
7
+ id
12
8
  end
13
9
 
14
10
  def labels
15
11
  @labels ||= super
16
12
  end
17
-
18
- def properties
19
- @properties ||= super
20
- end
21
13
  end
22
14
  end
23
15
  end
@@ -121,7 +121,7 @@ module ActiveGraph
121
121
  attr_reader :relationship_class_name
122
122
 
123
123
  def relationship_class_type
124
- relationship_class._type.to_sym
124
+ relationship_class.type.to_sym
125
125
  end
126
126
 
127
127
  def relationship_class
@@ -16,6 +16,6 @@ module ActiveGraph::Node::Initialize
16
16
 
17
17
  def init_on_reload(reloaded)
18
18
  @attributes = nil
19
- init_on_load(reloaded, reloaded.props)
19
+ init_on_load(reloaded, reloaded.properties)
20
20
  end
21
21
  end
@@ -6,7 +6,7 @@ wrapping_proc = proc do |node|
6
6
  next node if not found_class
7
7
 
8
8
  found_class.new.tap do |wrapped_node|
9
- wrapped_node.init_on_load(node, node.props)
9
+ wrapped_node.init_on_load(node, node.properties)
10
10
  end
11
11
  end
12
12
  Neo4j::Driver::Types::Node.wrapper_callback(wrapping_proc)
@@ -55,7 +55,7 @@ module ActiveGraph::Node
55
55
  # @return true
56
56
  def create_model
57
57
  node = _create_node(props_for_create)
58
- init_on_load(node, node.props)
58
+ init_on_load(node, node.properties)
59
59
  @deferred_nodes = nil
60
60
  true
61
61
  end
@@ -62,7 +62,7 @@ module ActiveGraph
62
62
  if rel.is_a?(ActiveGraph::Relationship)
63
63
  rel.instance_variable_set(direction == :in ? '@from_node' : '@to_node', node)
64
64
  end
65
- @_cache[direction == :out ? rel.start_node_neo_id : rel.end_node_neo_id]
65
+ @_cache[direction == :out ? rel.start_node_id : rel.end_node_id]
66
66
  .association_proxy(element.name).add_to_cache(node, rel)
67
67
  end
68
68
 
@@ -4,7 +4,7 @@ module ActiveGraph
4
4
  module Relationship
5
5
  extend ActiveSupport::Concern
6
6
 
7
- MARSHAL_INSTANCE_VARIABLES = [:@attributes, :@rel_type, :@_persisted_obj]
7
+ MARSHAL_INSTANCE_VARIABLES = [:@attributes, :@type, :@_persisted_obj]
8
8
 
9
9
  include ActiveGraph::Shared
10
10
  include ActiveGraph::Relationship::Initialize
@@ -9,10 +9,10 @@ module ActiveGraph::Relationship
9
9
  # @param [ActiveGraph::Relationship] to_node_id The neo_id of the ending node of this rel
10
10
  # @param [String] type the relationship type
11
11
  def init_on_load(persisted_rel, from_node_id, to_node_id, type)
12
- @rel_type = type
12
+ @type = type
13
13
  @_persisted_obj = persisted_rel
14
14
  changed_attributes_clear!
15
- @attributes = convert_and_assign_attributes(persisted_rel.props)
15
+ @attributes = convert_and_assign_attributes(persisted_rel.properties)
16
16
  load_nodes(from_node_id, to_node_id)
17
17
  end
18
18
 
@@ -21,7 +21,7 @@ module ActiveGraph::Relationship
21
21
  init_on_load(unwrapped_reloaded,
22
22
  unwrapped_reloaded.start_node_id,
23
23
  unwrapped_reloaded.end_node_id,
24
- unwrapped_reloaded.rel_type)
24
+ unwrapped_reloaded.type)
25
25
  self
26
26
  end
27
27
  end
@@ -47,8 +47,8 @@ module ActiveGraph::Relationship
47
47
  validate_node_classes!
48
48
  delete_has_one_rel
49
49
  rel = _create_rel
50
- return self unless rel.respond_to?(:props)
51
- init_on_load(rel, from_node, to_node, @rel_type)
50
+ return self unless rel.respond_to?(:properties)
51
+ init_on_load(rel, from_node, to_node, @type)
52
52
  true
53
53
  end
54
54
 
@@ -85,7 +85,7 @@ module ActiveGraph::Relationship::Persistence
85
85
  def wrap!(node, res, key)
86
86
  return if node.persisted? || !res.keys.include?(key)
87
87
  unwrapped = res[key]
88
- node.init_on_load(unwrapped, unwrapped.props)
88
+ node.init_on_load(unwrapped, unwrapped.properties)
89
89
  end
90
90
 
91
91
  def node_symbols
@@ -17,16 +17,13 @@ module ActiveGraph::Relationship
17
17
  alias end_node to_node
18
18
 
19
19
  %w(start_node end_node).each do |direction|
20
- define_method("#{direction}_neo_id") { send(direction).neo_id if direction }
20
+ define_method("#{direction}_id") { send(direction).neo_id if direction }
21
21
  end
22
- alias from_node_neo_id start_node_neo_id
23
- alias to_node_neo_id end_node_neo_id
24
22
 
25
23
  # @return [String] a string representing the relationship type that will be created
26
24
  def type
27
25
  self.class.type
28
26
  end
29
- alias rel_type type
30
27
 
31
28
  def initialize(attributes = nil)
32
29
  super(attributes)
@@ -51,12 +51,12 @@ module ActiveGraph::Relationship
51
51
 
52
52
  def where_query
53
53
  deprecation_warning!
54
- ActiveGraph::Base.new_query.match("#{cypher_string(:outbound)}-[r1:`#{self._type}`]->#{cypher_string(:inbound)}")
54
+ ActiveGraph::Base.new_query.match("#{cypher_string(:outbound)}-[r1:`#{type}`]->#{cypher_string(:inbound)}")
55
55
  end
56
56
 
57
57
  def all_query
58
58
  deprecation_warning!
59
- ActiveGraph::Base.new_query.match("#{cypher_string}-[r1:`#{self._type}`]->#{cypher_string(:inbound)}")
59
+ ActiveGraph::Base.new_query.match("#{cypher_string}-[r1:`#{type}`]->#{cypher_string(:inbound)}")
60
60
  end
61
61
 
62
62
  def cypher_string(dir = :outbound)
@@ -1,4 +1,4 @@
1
- require 'active_graph/core/relationship'
1
+ # frozen_string_literal: true
2
2
 
3
3
  wrapping_proc = proc do |relationship|
4
4
  ActiveGraph::RelWrapping.wrapper(relationship)
@@ -9,9 +9,9 @@ module ActiveGraph
9
9
  module RelWrapping
10
10
  class << self
11
11
  def wrapper(rel)
12
- rel.props.symbolize_keys!
12
+ rel.properties.symbolize_keys!
13
13
  begin
14
- most_concrete_class = class_from_type(rel.rel_type).constantize
14
+ most_concrete_class = class_from_type(rel.type).constantize
15
15
  return rel unless most_concrete_class < ActiveGraph::Relationship
16
16
  most_concrete_class.new
17
17
  rescue NameError => e
@@ -23,8 +23,8 @@ module ActiveGraph
23
23
  end
24
24
  end
25
25
 
26
- def class_from_type(rel_type)
27
- ActiveGraph::Relationship::Types::WRAPPED_CLASSES[rel_type] || ActiveGraph::Relationship::Types::WRAPPED_CLASSES[rel_type] = rel_type.to_s.downcase.camelize
26
+ def class_from_type(type)
27
+ ActiveGraph::Relationship::Types::WRAPPED_CLASSES[type] || ActiveGraph::Relationship::Types::WRAPPED_CLASSES[type] = type.to_s.downcase.camelize
28
28
  end
29
29
  end
30
30
  end
@@ -14,7 +14,7 @@ module ActiveGraph
14
14
  # and Lesson is 'EnrolledIn'." After all, that is a big part of why we have models, right? To make our lives easier?
15
15
  #
16
16
  # A model is added to WRAPPED_CLASSES when it is initalized AND when the `type` class method is called within a model. This means that
17
- # it's possible a model will be added twice: once with the rel_type version of the model name, again with the custom type. deal_with_it.gif.
17
+ # it's possible a model will be added twice: once with the type version of the model name, again with the custom type. deal_with_it.gif.
18
18
  WRAPPED_CLASSES = {}
19
19
 
20
20
  included do
@@ -34,16 +34,14 @@ module ActiveGraph
34
34
  # @param [Boolean] auto Should the given_type be changed in compliance with the gem's rel decorator setting?
35
35
  def type(given_type = nil, auto = false)
36
36
  case
37
- when !given_type && rel_type?
38
- @rel_type
37
+ when !given_type && type?
38
+ @type
39
39
  when given_type
40
40
  assign_type!(given_type, auto)
41
41
  else
42
42
  assign_type!(namespaced_model_name, true)
43
43
  end
44
44
  end
45
- alias rel_type type
46
- alias _type type # should be deprecated
47
45
 
48
46
  def namespaced_model_name
49
47
  case ActiveGraph::Config[:module_handling]
@@ -65,14 +63,14 @@ module ActiveGraph
65
63
  _wrapped_classes[type.to_sym] = self.name
66
64
  end
67
65
 
68
- def rel_type?
69
- !!@rel_type
66
+ def type?
67
+ !!@type
70
68
  end
71
69
 
72
70
  private
73
71
 
74
72
  def assign_type!(given_type, auto)
75
- @rel_type = (auto ? decorated_rel_type(given_type) : given_type).tap do |type|
73
+ @type = (auto ? decorated_rel_type(given_type) : given_type).tap do |type|
76
74
  add_wrapped_class(type)
77
75
  end
78
76
  end
@@ -174,7 +174,7 @@ module ActiveGraph::Shared
174
174
  (value.is_a?(Array) && supports_array?(key)) || !EXCLUDED_TYPES.include?(value.class)
175
175
  end
176
176
 
177
- # @param [Symbol] key An undeclared property value found in the _persisted_obj.props hash.
177
+ # @param [Symbol] key An undeclared property value found in the _persisted_obj.properties hash.
178
178
  # Typically, this is a node's id property, which will not be registered as other properties are.
179
179
  # In the future, this should probably be reworked a bit. This class should either not know or care
180
180
  # about the id property or it should be in charge of it. In the meantime, this improves
@@ -14,7 +14,7 @@ module ActiveGraph
14
14
 
15
15
  # @return [Integer, nil] the neo4j id of the node if persisted or nil
16
16
  def neo_id
17
- _persisted_obj ? _persisted_obj.neo_id : nil
17
+ _persisted_obj ? _persisted_obj.id : nil
18
18
  end
19
19
 
20
20
  def id
@@ -13,7 +13,7 @@ module ActiveGraph::Shared
13
13
  return if skip_update?
14
14
  props = props_for_update
15
15
  neo4j_query(query_as(:n).set(n: props))
16
- _persisted_obj.props.merge!(props)
16
+ _persisted_obj.properties.merge!(props)
17
17
  changed_attributes_clear!
18
18
  end
19
19
 
@@ -30,7 +30,7 @@ module ActiveGraph::Shared
30
30
  # @return [Hash]
31
31
  def props_for_create
32
32
  inject_timestamps!
33
- props_with_defaults = inject_defaults!(props)
33
+ props_with_defaults = inject_defaults!(properties)
34
34
  converted_props = props_for_db(props_with_defaults)
35
35
  return converted_props unless self.class.respond_to?(:default_property_values)
36
36
  inject_primary_key!(converted_props)
@@ -143,7 +143,7 @@ module ActiveGraph::Shared
143
143
  end
144
144
 
145
145
  # @return [Hash] all defined and none nil properties
146
- def props
146
+ def properties
147
147
  attributes.reject { |_, v| v.nil? }.symbolize_keys
148
148
  end
149
149
 
@@ -197,7 +197,7 @@ module ActiveGraph::Shared
197
197
  db_values = props_for_db(hash)
198
198
  neo4j_query(query_as(:n).set(n: db_values))
199
199
  db_values.each_pair { |k, v| self.public_send(:"#{k}=", v) }
200
- _persisted_obj.props.merge!(db_values)
200
+ _persisted_obj.properties.merge!(db_values)
201
201
  changed_attributes_selective_clear!(db_values)
202
202
  true
203
203
  end
@@ -18,7 +18,7 @@ module ActiveGraph::Shared
18
18
  case
19
19
  when graph_obj.respond_to?(:labels_for_create)
20
20
  NodeQueryFactory
21
- when graph_obj.respond_to?(:rel_type)
21
+ when graph_obj.respond_to?(:type)
22
22
  RelQueryFactory
23
23
  else
24
24
  fail "Unable to find factory for #{graph_obj}"
@@ -16,7 +16,7 @@ module ActiveGraph
16
16
  alias [] read_attribute
17
17
 
18
18
  def read_undeclared_property(name)
19
- _persisted_obj ? _persisted_obj.props[name] : (undeclared_properties && undeclared_properties[name])
19
+ _persisted_obj ? _persisted_obj.properties[name] : (undeclared_properties && undeclared_properties[name])
20
20
  end
21
21
 
22
22
  def write_attribute(name, value)
@@ -1,3 +1,3 @@
1
1
  module ActiveGraph
2
- VERSION = '10.0.0-beta.8'
2
+ VERSION = '10.0.0-beta.9'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activegraph
3
3
  version: !ruby/object:Gem::Version
4
- version: 10.0.0.pre.beta.8
4
+ version: 10.0.0.pre.beta.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andreas Ronge, Brian Underwood, Chris Grigg, Heinrich Klobuczek
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-09 00:00:00.000000000 Z
11
+ date: 2020-04-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -128,14 +128,14 @@ dependencies:
128
128
  requirements:
129
129
  - - ">="
130
130
  - !ruby/object:Gem::Version
131
- version: 0.4.0
131
+ version: 0.4.1
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - ">="
137
137
  - !ruby/object:Gem::Version
138
- version: 0.4.0
138
+ version: 0.4.1
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: os
141
141
  requirement: !ruby/object:Gem::Requirement
@@ -262,6 +262,7 @@ files:
262
262
  - lib/active_graph/core.rb
263
263
  - lib/active_graph/core/connection_failed_error.rb
264
264
  - lib/active_graph/core/cypher_error.rb
265
+ - lib/active_graph/core/entity.rb
265
266
  - lib/active_graph/core/instrumentable.rb
266
267
  - lib/active_graph/core/label.rb
267
268
  - lib/active_graph/core/logging.rb
@@ -273,7 +274,6 @@ files:
273
274
  - lib/active_graph/core/query_ext.rb
274
275
  - lib/active_graph/core/query_find_in_batches.rb
275
276
  - lib/active_graph/core/record.rb
276
- - lib/active_graph/core/relationship.rb
277
277
  - lib/active_graph/core/result.rb
278
278
  - lib/active_graph/core/schema.rb
279
279
  - lib/active_graph/core/schema_errors.rb
@@ -1,13 +0,0 @@
1
- require 'active_graph/core/wrappable'
2
-
3
- module ActiveGraph
4
- module Core
5
- module Relationship
6
- def props; properties; end
7
- def neo_id; id; end
8
- def start_node_neo_id; start_node_id; end
9
- def end_node_neo_id; end_node_id; end
10
- def rel_type; type; end
11
- end
12
- end
13
- end