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

Sign up to get free protection for your applications and to get access to all the features.
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