activegraph 11.5.0.alpha.1 → 12.0.0.beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +20 -1
  3. data/Gemfile +0 -4
  4. data/activegraph.gemspec +3 -4
  5. data/lib/active_graph/base.rb +4 -0
  6. data/lib/active_graph/core/element.rb +142 -0
  7. data/lib/active_graph/core/entity.rb +4 -0
  8. data/lib/active_graph/core/label.rb +5 -166
  9. data/lib/active_graph/core/node.rb +0 -4
  10. data/lib/active_graph/core/query_clauses.rb +4 -4
  11. data/lib/active_graph/core/schema.rb +23 -28
  12. data/lib/active_graph/core/type.rb +13 -0
  13. data/lib/active_graph/migrations/helpers/schema.rb +10 -13
  14. data/lib/active_graph/model_schema.rb +1 -1
  15. data/lib/active_graph/node/has_n.rb +6 -2
  16. data/lib/active_graph/node/labels.rb +15 -12
  17. data/lib/active_graph/node/persistence.rb +0 -11
  18. data/lib/active_graph/node/query/query_proxy/link.rb +15 -4
  19. data/lib/active_graph/node/query/query_proxy.rb +3 -3
  20. data/lib/active_graph/node/query/query_proxy_eager_loading.rb +1 -1
  21. data/lib/active_graph/node/query/query_proxy_enumerable.rb +4 -4
  22. data/lib/active_graph/node/query/query_proxy_methods.rb +14 -16
  23. data/lib/active_graph/node/query/query_proxy_methods_of_mass_updating.rb +2 -5
  24. data/lib/active_graph/node/query.rb +1 -1
  25. data/lib/active_graph/node/query_methods.rb +9 -12
  26. data/lib/active_graph/railtie.rb +13 -0
  27. data/lib/active_graph/relationship/initialize.rb +2 -2
  28. data/lib/active_graph/relationship/persistence.rb +3 -1
  29. data/lib/active_graph/relationship/property.rb +1 -5
  30. data/lib/active_graph/relationship/query.rb +14 -9
  31. data/lib/active_graph/relationship/related_node.rb +4 -8
  32. data/lib/active_graph/relationship/types.rb +8 -0
  33. data/lib/active_graph/relationship/wrapping.rb +1 -1
  34. data/lib/active_graph/relationship.rb +4 -1
  35. data/lib/active_graph/shared/identity.rb +6 -3
  36. data/lib/active_graph/shared/persistence.rb +12 -1
  37. data/lib/active_graph/shared/query_factory.rb +1 -1
  38. data/lib/active_graph/shared/type_converters.rb +3 -2
  39. data/lib/active_graph/transactions.rb +4 -0
  40. data/lib/active_graph/version.rb +1 -1
  41. data/lib/active_graph.rb +2 -14
  42. data/lib/{active_graph/generators → rails/generators/active_graph/migration}/migration_generator.rb +5 -2
  43. data/lib/{active_graph/generators → rails/generators/active_graph/model}/model_generator.rb +5 -2
  44. data/lib/{active_graph/generators → rails/generators/active_graph/upgrade_v8}/upgrade_v8_generator.rb +5 -2
  45. data/lib/{active_graph → rails}/generators/migration_helper.rb +57 -0
  46. data/lib/{active_graph → rails}/generators/source_path_helper.rb +1 -1
  47. metadata +34 -54
  48. data/lib/active_graph/generators/active_model.rb +0 -33
  49. data/lib/active_graph/generators/generated_attribute.rb +0 -17
  50. /data/lib/{active_graph/generators → rails/generators/active_graph}/migration/templates/migration.erb +0 -0
  51. /data/lib/{active_graph/generators → rails/generators/active_graph}/model/templates/migration.erb +0 -0
  52. /data/lib/{active_graph/generators → rails/generators/active_graph}/model/templates/model.erb +0 -0
  53. /data/lib/{active_graph/generators → rails/generators/active_graph}/upgrade_v8/templates/migration.erb +0 -0
@@ -1,3 +1,3 @@
1
1
  module ActiveGraph
2
- VERSION = '11.5.0.alpha.1'
2
+ VERSION = '12.0.0.beta.1'
3
3
  end
data/lib/active_graph.rb CHANGED
@@ -22,20 +22,9 @@ require 'set'
22
22
  require 'sorted_set'
23
23
  require 'yaml'
24
24
 
25
- if defined?(Rails)
26
- # Need the action_dispatch railtie to have action_dispatch.rescue_responses initialized correctly
27
- require 'action_dispatch/railtie'
28
- require 'rails/generators'
29
- require 'rails/generators/active_model'
30
- require 'rails/generators/named_base'
31
- require 'rails/railtie'
32
- end
33
-
34
25
  loader = Zeitwerk::Loader.for_gem
35
- unless defined?(Rails)
36
- loader.ignore(File.expand_path('active_graph/generators', __dir__))
37
- loader.ignore(File.expand_path('active_graph/railtie.rb', __dir__))
38
- end
26
+ loader.ignore(File.expand_path('rails', __dir__))
27
+ loader.ignore(File.expand_path('active_graph/railtie.rb', __dir__))
39
28
  loader.inflector.inflect("ansi" => "ANSI")
40
29
  loader.setup
41
30
  # loader.eager_load
@@ -49,6 +38,5 @@ Neo4j::Driver::Types::Node.prepend ActiveGraph::Core::Node
49
38
  Neo4j::Driver::Types::Node.wrapper_callback(&ActiveGraph::Node::Wrapping.method(:wrapper))
50
39
  Neo4j::Driver::Types::Relationship.wrapper_callback(&ActiveGraph::Relationship::Wrapping.method(:wrapper))
51
40
  SecureRandom.singleton_class.prepend ActiveGraph::SecureRandomExt
52
- Rails::Generators::GeneratedAttribute.include ActiveGraph::Generators::GeneratedAttribute if defined?(Rails)
53
41
 
54
42
  load 'active_graph/tasks/migration.rake'
@@ -1,8 +1,11 @@
1
+ require_relative '../../migration_helper'
2
+ require_relative '../../source_path_helper'
3
+
1
4
  module ActiveGraph
2
5
  module Generators
3
6
  class MigrationGenerator < ::Rails::Generators::NamedBase
4
- include ::ActiveGraph::Generators::SourcePathHelper
5
- include ::ActiveGraph::Generators::MigrationHelper
7
+ include ActiveGraph::Generators::SourcePathHelper
8
+ include ActiveGraph::Generators::MigrationHelper
6
9
 
7
10
  def create_migration_file
8
11
  migration_template 'migration.erb'
@@ -1,6 +1,9 @@
1
+ require_relative '../../migration_helper'
2
+ require_relative '../../source_path_helper'
3
+
1
4
  class ActiveGraph::Generators::ModelGenerator < Rails::Generators::NamedBase #:nodoc:
2
- include ::ActiveGraph::Generators::SourcePathHelper
3
- include ::ActiveGraph::Generators::MigrationHelper
5
+ include ActiveGraph::Generators::SourcePathHelper
6
+ include ActiveGraph::Generators::MigrationHelper
4
7
 
5
8
  argument :attributes, type: :array, default: [], banner: 'field:type field:type'
6
9
 
@@ -1,8 +1,11 @@
1
+ require_relative '../../migration_helper'
2
+ require_relative '../../source_path_helper'
3
+
1
4
  module ActiveGraph
2
5
  module Generators
3
6
  class UpgradeV8Generator < ::Rails::Generators::Base
4
- include ::ActiveGraph::Generators::SourcePathHelper
5
- include ::ActiveGraph::Generators::MigrationHelper
7
+ include ActiveGraph::Generators::SourcePathHelper
8
+ include ActiveGraph::Generators::MigrationHelper
6
9
 
7
10
  def create_upgrade_v8_file
8
11
  @schema = load_all_models_schema!
@@ -1,3 +1,8 @@
1
+ module ActiveGraph
2
+ module Generators #:nodoc:
3
+ end
4
+ end
5
+
1
6
  module ActiveGraph::Generators::MigrationHelper
2
7
  extend ActiveSupport::Concern
3
8
 
@@ -44,3 +49,55 @@ module ActiveGraph::Generators::MigrationHelper
44
49
  FileUtils.rm(real_file_name) if @behavior == :revoke
45
50
  end
46
51
  end
52
+
53
+ class ActiveGraph::Generators::ActiveModel < Rails::Generators::ActiveModel #:nodoc:
54
+ def self.all(klass)
55
+ "#{klass}.all"
56
+ end
57
+
58
+ def self.find(klass, params = nil)
59
+ "#{klass}.find(#{params})"
60
+ end
61
+
62
+ def self.build(klass, params = nil)
63
+ if params
64
+ "#{klass}.new(#{params})"
65
+ else
66
+ "#{klass}.new"
67
+ end
68
+ end
69
+
70
+ def save
71
+ "#{name}.save"
72
+ end
73
+
74
+ def update_attributes(params = nil)
75
+ "#{name}.update_attributes(#{params})"
76
+ end
77
+
78
+ def errors
79
+ "#{name}.errors"
80
+ end
81
+
82
+ def destroy
83
+ "#{name}.destroy"
84
+ end
85
+ end
86
+
87
+ module ActiveGraph
88
+ module Generators
89
+ module GeneratedAttribute #:nodoc:
90
+ def type_class
91
+ case type.to_s.downcase
92
+ when 'any' then 'any'
93
+ when 'datetime' then 'DateTime'
94
+ when 'date' then 'Date'
95
+ when 'integer', 'number', 'fixnum' then 'Integer'
96
+ when 'float' then 'Float'
97
+ else
98
+ 'String'
99
+ end
100
+ end
101
+ end
102
+ end
103
+ end
@@ -4,7 +4,7 @@ module ActiveGraph::Generators::SourcePathHelper
4
4
  module ClassMethods
5
5
  def source_root
6
6
  @_neo4j_source_root ||= File.expand_path(File.join(File.dirname(__FILE__),
7
- generator_name, 'templates'))
7
+ 'active_graph', generator_name, 'templates'))
8
8
  end
9
9
  end
10
10
  end
metadata CHANGED
@@ -1,50 +1,36 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activegraph
3
3
  version: !ruby/object:Gem::Version
4
- version: 11.5.0.alpha.1
4
+ version: 12.0.0.beta.1
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: 2023-10-19 00:00:00.000000000 Z
11
+ date: 2024-01-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: activemodel
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '4.0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '4.0'
27
- - !ruby/object:Gem::Dependency
28
- name: activesupport
29
14
  requirement: !ruby/object:Gem::Requirement
30
15
  requirements:
31
16
  - - ">="
32
17
  - !ruby/object:Gem::Version
33
- version: '4.0'
18
+ version: '7'
19
+ name: activemodel
34
20
  type: :runtime
35
21
  prerelease: false
36
22
  version_requirements: !ruby/object:Gem::Requirement
37
23
  requirements:
38
24
  - - ">="
39
25
  - !ruby/object:Gem::Version
40
- version: '4.0'
26
+ version: '7'
41
27
  - !ruby/object:Gem::Dependency
42
- name: i18n
43
28
  requirement: !ruby/object:Gem::Requirement
44
29
  requirements:
45
30
  - - "!="
46
31
  - !ruby/object:Gem::Version
47
32
  version: 1.8.8
33
+ name: i18n
48
34
  type: :runtime
49
35
  prerelease: false
50
36
  version_requirements: !ruby/object:Gem::Requirement
@@ -53,32 +39,26 @@ dependencies:
53
39
  - !ruby/object:Gem::Version
54
40
  version: 1.8.8
55
41
  - !ruby/object:Gem::Dependency
56
- name: neo4j-ruby-driver
57
42
  requirement: !ruby/object:Gem::Requirement
58
43
  requirements:
59
44
  - - ">="
60
- - !ruby/object:Gem::Version
61
- version: 4.4.1
62
- - - "<"
63
45
  - !ruby/object:Gem::Version
64
46
  version: '5'
47
+ name: neo4j-ruby-driver
65
48
  type: :runtime
66
49
  prerelease: false
67
50
  version_requirements: !ruby/object:Gem::Requirement
68
51
  requirements:
69
52
  - - ">="
70
- - !ruby/object:Gem::Version
71
- version: 4.4.1
72
- - - "<"
73
53
  - !ruby/object:Gem::Version
74
54
  version: '5'
75
55
  - !ruby/object:Gem::Dependency
76
- name: orm_adapter
77
56
  requirement: !ruby/object:Gem::Requirement
78
57
  requirements:
79
58
  - - ">="
80
59
  - !ruby/object:Gem::Version
81
60
  version: 0.5.0
61
+ name: orm_adapter
82
62
  type: :runtime
83
63
  prerelease: false
84
64
  version_requirements: !ruby/object:Gem::Requirement
@@ -87,12 +67,12 @@ dependencies:
87
67
  - !ruby/object:Gem::Version
88
68
  version: 0.5.0
89
69
  - !ruby/object:Gem::Dependency
90
- name: sorted_set
91
70
  requirement: !ruby/object:Gem::Requirement
92
71
  requirements:
93
72
  - - ">="
94
73
  - !ruby/object:Gem::Version
95
74
  version: '0'
75
+ name: sorted_set
96
76
  type: :runtime
97
77
  prerelease: false
98
78
  version_requirements: !ruby/object:Gem::Requirement
@@ -101,12 +81,12 @@ dependencies:
101
81
  - !ruby/object:Gem::Version
102
82
  version: '0'
103
83
  - !ruby/object:Gem::Dependency
104
- name: guard
105
84
  requirement: !ruby/object:Gem::Requirement
106
85
  requirements:
107
86
  - - ">="
108
87
  - !ruby/object:Gem::Version
109
88
  version: '0'
89
+ name: guard
110
90
  type: :development
111
91
  prerelease: false
112
92
  version_requirements: !ruby/object:Gem::Requirement
@@ -115,12 +95,12 @@ dependencies:
115
95
  - !ruby/object:Gem::Version
116
96
  version: '0'
117
97
  - !ruby/object:Gem::Dependency
118
- name: guard-rspec
119
98
  requirement: !ruby/object:Gem::Requirement
120
99
  requirements:
121
100
  - - ">="
122
101
  - !ruby/object:Gem::Version
123
102
  version: '0'
103
+ name: guard-rspec
124
104
  type: :development
125
105
  prerelease: false
126
106
  version_requirements: !ruby/object:Gem::Requirement
@@ -129,12 +109,12 @@ dependencies:
129
109
  - !ruby/object:Gem::Version
130
110
  version: '0'
131
111
  - !ruby/object:Gem::Dependency
132
- name: guard-rubocop
133
112
  requirement: !ruby/object:Gem::Requirement
134
113
  requirements:
135
114
  - - ">="
136
115
  - !ruby/object:Gem::Version
137
116
  version: '0'
117
+ name: guard-rubocop
138
118
  type: :development
139
119
  prerelease: false
140
120
  version_requirements: !ruby/object:Gem::Requirement
@@ -143,12 +123,12 @@ dependencies:
143
123
  - !ruby/object:Gem::Version
144
124
  version: '0'
145
125
  - !ruby/object:Gem::Dependency
146
- name: neo4j-rake_tasks
147
126
  requirement: !ruby/object:Gem::Requirement
148
127
  requirements:
149
128
  - - ">="
150
129
  - !ruby/object:Gem::Version
151
130
  version: 0.3.0
131
+ name: neo4j-rake_tasks
152
132
  type: :development
153
133
  prerelease: false
154
134
  version_requirements: !ruby/object:Gem::Requirement
@@ -157,12 +137,12 @@ dependencies:
157
137
  - !ruby/object:Gem::Version
158
138
  version: 0.3.0
159
139
  - !ruby/object:Gem::Dependency
160
- name: os
161
140
  requirement: !ruby/object:Gem::Requirement
162
141
  requirements:
163
142
  - - ">="
164
143
  - !ruby/object:Gem::Version
165
144
  version: '0'
145
+ name: os
166
146
  type: :development
167
147
  prerelease: false
168
148
  version_requirements: !ruby/object:Gem::Requirement
@@ -171,12 +151,12 @@ dependencies:
171
151
  - !ruby/object:Gem::Version
172
152
  version: '0'
173
153
  - !ruby/object:Gem::Dependency
174
- name: pry
175
154
  requirement: !ruby/object:Gem::Requirement
176
155
  requirements:
177
156
  - - ">="
178
157
  - !ruby/object:Gem::Version
179
158
  version: '0'
159
+ name: pry
180
160
  type: :development
181
161
  prerelease: false
182
162
  version_requirements: !ruby/object:Gem::Requirement
@@ -185,26 +165,26 @@ dependencies:
185
165
  - !ruby/object:Gem::Version
186
166
  version: '0'
187
167
  - !ruby/object:Gem::Dependency
188
- name: railties
189
168
  requirement: !ruby/object:Gem::Requirement
190
169
  requirements:
191
170
  - - ">="
192
171
  - !ruby/object:Gem::Version
193
- version: '4.0'
172
+ version: '7'
173
+ name: railties
194
174
  type: :development
195
175
  prerelease: false
196
176
  version_requirements: !ruby/object:Gem::Requirement
197
177
  requirements:
198
178
  - - ">="
199
179
  - !ruby/object:Gem::Version
200
- version: '4.0'
180
+ version: '7'
201
181
  - !ruby/object:Gem::Dependency
202
- name: rake
203
182
  requirement: !ruby/object:Gem::Requirement
204
183
  requirements:
205
184
  - - ">="
206
185
  - !ruby/object:Gem::Version
207
186
  version: '0'
187
+ name: rake
208
188
  type: :development
209
189
  prerelease: false
210
190
  version_requirements: !ruby/object:Gem::Requirement
@@ -213,12 +193,12 @@ dependencies:
213
193
  - !ruby/object:Gem::Version
214
194
  version: '0'
215
195
  - !ruby/object:Gem::Dependency
216
- name: rubocop
217
196
  requirement: !ruby/object:Gem::Requirement
218
197
  requirements:
219
198
  - - ">="
220
199
  - !ruby/object:Gem::Version
221
200
  version: 0.56.0
201
+ name: rubocop
222
202
  type: :development
223
203
  prerelease: false
224
204
  version_requirements: !ruby/object:Gem::Requirement
@@ -227,12 +207,12 @@ dependencies:
227
207
  - !ruby/object:Gem::Version
228
208
  version: 0.56.0
229
209
  - !ruby/object:Gem::Dependency
230
- name: yard
231
210
  requirement: !ruby/object:Gem::Requirement
232
211
  requirements:
233
212
  - - ">="
234
213
  - !ruby/object:Gem::Version
235
214
  version: '0'
215
+ name: yard
236
216
  type: :development
237
217
  prerelease: false
238
218
  version_requirements: !ruby/object:Gem::Requirement
@@ -241,12 +221,12 @@ dependencies:
241
221
  - !ruby/object:Gem::Version
242
222
  version: '0'
243
223
  - !ruby/object:Gem::Dependency
244
- name: dryspec
245
224
  requirement: !ruby/object:Gem::Requirement
246
225
  requirements:
247
226
  - - ">="
248
227
  - !ruby/object:Gem::Version
249
228
  version: '0'
229
+ name: dryspec
250
230
  type: :development
251
231
  prerelease: false
252
232
  version_requirements: !ruby/object:Gem::Requirement
@@ -255,12 +235,12 @@ dependencies:
255
235
  - !ruby/object:Gem::Version
256
236
  version: '0'
257
237
  - !ruby/object:Gem::Dependency
258
- name: rspec
259
238
  requirement: !ruby/object:Gem::Requirement
260
239
  requirements:
261
240
  - - ">="
262
241
  - !ruby/object:Gem::Version
263
242
  version: '3.10'
243
+ name: rspec
264
244
  type: :development
265
245
  prerelease: false
266
246
  version_requirements: !ruby/object:Gem::Requirement
@@ -294,6 +274,7 @@ files:
294
274
  - lib/active_graph/class_arguments.rb
295
275
  - lib/active_graph/config.rb
296
276
  - lib/active_graph/core/cypher_error.rb
277
+ - lib/active_graph/core/element.rb
297
278
  - lib/active_graph/core/entity.rb
298
279
  - lib/active_graph/core/instrumentable.rb
299
280
  - lib/active_graph/core/label.rb
@@ -309,19 +290,9 @@ files:
309
290
  - lib/active_graph/core/result.rb
310
291
  - lib/active_graph/core/schema.rb
311
292
  - lib/active_graph/core/schema_errors.rb
293
+ - lib/active_graph/core/type.rb
312
294
  - lib/active_graph/core/wrappable.rb
313
295
  - lib/active_graph/error.rb
314
- - lib/active_graph/generators/active_model.rb
315
- - lib/active_graph/generators/generated_attribute.rb
316
- - lib/active_graph/generators/migration/templates/migration.erb
317
- - lib/active_graph/generators/migration_generator.rb
318
- - lib/active_graph/generators/migration_helper.rb
319
- - lib/active_graph/generators/model/templates/migration.erb
320
- - lib/active_graph/generators/model/templates/model.erb
321
- - lib/active_graph/generators/model_generator.rb
322
- - lib/active_graph/generators/source_path_helper.rb
323
- - lib/active_graph/generators/upgrade_v8/templates/migration.erb
324
- - lib/active_graph/generators/upgrade_v8_generator.rb
325
296
  - lib/active_graph/lazy_attribute_hash.rb
326
297
  - lib/active_graph/migration.rb
327
298
  - lib/active_graph/migrations.rb
@@ -423,6 +394,15 @@ files:
423
394
  - lib/active_graph/type_converters.rb
424
395
  - lib/active_graph/undeclared_properties.rb
425
396
  - lib/active_graph/version.rb
397
+ - lib/rails/generators/active_graph/migration/migration_generator.rb
398
+ - lib/rails/generators/active_graph/migration/templates/migration.erb
399
+ - lib/rails/generators/active_graph/model/model_generator.rb
400
+ - lib/rails/generators/active_graph/model/templates/migration.erb
401
+ - lib/rails/generators/active_graph/model/templates/model.erb
402
+ - lib/rails/generators/active_graph/upgrade_v8/templates/migration.erb
403
+ - lib/rails/generators/active_graph/upgrade_v8/upgrade_v8_generator.rb
404
+ - lib/rails/generators/migration_helper.rb
405
+ - lib/rails/generators/source_path_helper.rb
426
406
  homepage: https://github.com/neo4jrb/activegraph/
427
407
  licenses:
428
408
  - MIT
@@ -1,33 +0,0 @@
1
- class ActiveGraph::Generators::ActiveModel < Rails::Generators::ActiveModel #:nodoc:
2
- def self.all(klass)
3
- "#{klass}.all"
4
- end
5
-
6
- def self.find(klass, params = nil)
7
- "#{klass}.find(#{params})"
8
- end
9
-
10
- def self.build(klass, params = nil)
11
- if params
12
- "#{klass}.new(#{params})"
13
- else
14
- "#{klass}.new"
15
- end
16
- end
17
-
18
- def save
19
- "#{name}.save"
20
- end
21
-
22
- def update_attributes(params = nil)
23
- "#{name}.update_attributes(#{params})"
24
- end
25
-
26
- def errors
27
- "#{name}.errors"
28
- end
29
-
30
- def destroy
31
- "#{name}.destroy"
32
- end
33
- end
@@ -1,17 +0,0 @@
1
- module ActiveGraph
2
- module Generators
3
- module GeneratedAttribute #:nodoc:
4
- def type_class
5
- case type.to_s.downcase
6
- when 'any' then 'any'
7
- when 'datetime' then 'DateTime'
8
- when 'date' then 'Date'
9
- when 'integer', 'number', 'fixnum' then 'Integer'
10
- when 'float' then 'Float'
11
- else
12
- 'String'
13
- end
14
- end
15
- end
16
- end
17
- end