activegraph 11.0.0.beta.1-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (144) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +2016 -0
  3. data/CONTRIBUTORS +12 -0
  4. data/Gemfile +24 -0
  5. data/README.md +111 -0
  6. data/activegraph.gemspec +52 -0
  7. data/bin/rake +17 -0
  8. data/config/locales/en.yml +5 -0
  9. data/config/neo4j/add_classnames.yml +1 -0
  10. data/config/neo4j/config.yml +35 -0
  11. data/lib/active_graph.rb +123 -0
  12. data/lib/active_graph/ansi.rb +14 -0
  13. data/lib/active_graph/attribute_set.rb +32 -0
  14. data/lib/active_graph/base.rb +77 -0
  15. data/lib/active_graph/class_arguments.rb +39 -0
  16. data/lib/active_graph/config.rb +135 -0
  17. data/lib/active_graph/core.rb +14 -0
  18. data/lib/active_graph/core/connection_failed_error.rb +6 -0
  19. data/lib/active_graph/core/cypher_error.rb +37 -0
  20. data/lib/active_graph/core/entity.rb +11 -0
  21. data/lib/active_graph/core/instrumentable.rb +37 -0
  22. data/lib/active_graph/core/label.rb +135 -0
  23. data/lib/active_graph/core/logging.rb +44 -0
  24. data/lib/active_graph/core/node.rb +15 -0
  25. data/lib/active_graph/core/querable.rb +41 -0
  26. data/lib/active_graph/core/query.rb +485 -0
  27. data/lib/active_graph/core/query_builder.rb +18 -0
  28. data/lib/active_graph/core/query_clauses.rb +727 -0
  29. data/lib/active_graph/core/query_ext.rb +24 -0
  30. data/lib/active_graph/core/query_find_in_batches.rb +46 -0
  31. data/lib/active_graph/core/record.rb +51 -0
  32. data/lib/active_graph/core/result.rb +31 -0
  33. data/lib/active_graph/core/schema.rb +65 -0
  34. data/lib/active_graph/core/schema_errors.rb +12 -0
  35. data/lib/active_graph/core/wrappable.rb +30 -0
  36. data/lib/active_graph/errors.rb +59 -0
  37. data/lib/active_graph/lazy_attribute_hash.rb +38 -0
  38. data/lib/active_graph/migration.rb +148 -0
  39. data/lib/active_graph/migrations.rb +27 -0
  40. data/lib/active_graph/migrations/base.rb +77 -0
  41. data/lib/active_graph/migrations/check_pending.rb +20 -0
  42. data/lib/active_graph/migrations/helpers.rb +105 -0
  43. data/lib/active_graph/migrations/helpers/id_property.rb +72 -0
  44. data/lib/active_graph/migrations/helpers/relationships.rb +66 -0
  45. data/lib/active_graph/migrations/helpers/schema.rb +63 -0
  46. data/lib/active_graph/migrations/migration_file.rb +24 -0
  47. data/lib/active_graph/migrations/runner.rb +195 -0
  48. data/lib/active_graph/migrations/schema.rb +64 -0
  49. data/lib/active_graph/migrations/schema_migration.rb +14 -0
  50. data/lib/active_graph/model_schema.rb +139 -0
  51. data/lib/active_graph/node.rb +110 -0
  52. data/lib/active_graph/node/callbacks.rb +8 -0
  53. data/lib/active_graph/node/dependent.rb +11 -0
  54. data/lib/active_graph/node/dependent/association_methods.rb +49 -0
  55. data/lib/active_graph/node/dependent/query_proxy_methods.rb +52 -0
  56. data/lib/active_graph/node/dependent_callbacks.rb +31 -0
  57. data/lib/active_graph/node/enum.rb +26 -0
  58. data/lib/active_graph/node/has_n.rb +602 -0
  59. data/lib/active_graph/node/has_n/association.rb +278 -0
  60. data/lib/active_graph/node/has_n/association/rel_factory.rb +61 -0
  61. data/lib/active_graph/node/has_n/association/rel_wrapper.rb +23 -0
  62. data/lib/active_graph/node/has_n/association_cypher_methods.rb +108 -0
  63. data/lib/active_graph/node/id_property.rb +224 -0
  64. data/lib/active_graph/node/id_property/accessor.rb +62 -0
  65. data/lib/active_graph/node/initialize.rb +21 -0
  66. data/lib/active_graph/node/labels.rb +207 -0
  67. data/lib/active_graph/node/labels/index.rb +37 -0
  68. data/lib/active_graph/node/labels/reloading.rb +21 -0
  69. data/lib/active_graph/node/node_list_formatter.rb +13 -0
  70. data/lib/active_graph/node/node_wrapper.rb +54 -0
  71. data/lib/active_graph/node/orm_adapter.rb +82 -0
  72. data/lib/active_graph/node/persistence.rb +186 -0
  73. data/lib/active_graph/node/property.rb +60 -0
  74. data/lib/active_graph/node/query.rb +76 -0
  75. data/lib/active_graph/node/query/query_proxy.rb +367 -0
  76. data/lib/active_graph/node/query/query_proxy_eager_loading.rb +177 -0
  77. data/lib/active_graph/node/query/query_proxy_eager_loading/association_tree.rb +75 -0
  78. data/lib/active_graph/node/query/query_proxy_enumerable.rb +110 -0
  79. data/lib/active_graph/node/query/query_proxy_find_in_batches.rb +19 -0
  80. data/lib/active_graph/node/query/query_proxy_link.rb +139 -0
  81. data/lib/active_graph/node/query/query_proxy_methods.rb +303 -0
  82. data/lib/active_graph/node/query/query_proxy_methods_of_mass_updating.rb +99 -0
  83. data/lib/active_graph/node/query_methods.rb +68 -0
  84. data/lib/active_graph/node/reflection.rb +86 -0
  85. data/lib/active_graph/node/rels.rb +11 -0
  86. data/lib/active_graph/node/scope.rb +166 -0
  87. data/lib/active_graph/node/unpersisted.rb +48 -0
  88. data/lib/active_graph/node/validations.rb +59 -0
  89. data/lib/active_graph/paginated.rb +27 -0
  90. data/lib/active_graph/railtie.rb +108 -0
  91. data/lib/active_graph/relationship.rb +68 -0
  92. data/lib/active_graph/relationship/callbacks.rb +21 -0
  93. data/lib/active_graph/relationship/initialize.rb +28 -0
  94. data/lib/active_graph/relationship/persistence.rb +133 -0
  95. data/lib/active_graph/relationship/persistence/query_factory.rb +95 -0
  96. data/lib/active_graph/relationship/property.rb +92 -0
  97. data/lib/active_graph/relationship/query.rb +99 -0
  98. data/lib/active_graph/relationship/rel_wrapper.rb +31 -0
  99. data/lib/active_graph/relationship/related_node.rb +87 -0
  100. data/lib/active_graph/relationship/types.rb +80 -0
  101. data/lib/active_graph/relationship/validations.rb +8 -0
  102. data/lib/active_graph/schema/operation.rb +102 -0
  103. data/lib/active_graph/shared.rb +48 -0
  104. data/lib/active_graph/shared/attributes.rb +217 -0
  105. data/lib/active_graph/shared/callbacks.rb +66 -0
  106. data/lib/active_graph/shared/cypher.rb +37 -0
  107. data/lib/active_graph/shared/declared_properties.rb +204 -0
  108. data/lib/active_graph/shared/declared_property.rb +109 -0
  109. data/lib/active_graph/shared/declared_property/index.rb +37 -0
  110. data/lib/active_graph/shared/enum.rb +167 -0
  111. data/lib/active_graph/shared/filtered_hash.rb +79 -0
  112. data/lib/active_graph/shared/identity.rb +34 -0
  113. data/lib/active_graph/shared/initialize.rb +65 -0
  114. data/lib/active_graph/shared/marshal.rb +23 -0
  115. data/lib/active_graph/shared/mass_assignment.rb +63 -0
  116. data/lib/active_graph/shared/permitted_attributes.rb +28 -0
  117. data/lib/active_graph/shared/persistence.rb +272 -0
  118. data/lib/active_graph/shared/property.rb +249 -0
  119. data/lib/active_graph/shared/query_factory.rb +122 -0
  120. data/lib/active_graph/shared/rel_type_converters.rb +43 -0
  121. data/lib/active_graph/shared/serialized_properties.rb +30 -0
  122. data/lib/active_graph/shared/type_converters.rb +439 -0
  123. data/lib/active_graph/shared/typecasted_attributes.rb +99 -0
  124. data/lib/active_graph/shared/typecaster.rb +53 -0
  125. data/lib/active_graph/shared/validations.rb +44 -0
  126. data/lib/active_graph/tasks/migration.rake +204 -0
  127. data/lib/active_graph/timestamps.rb +11 -0
  128. data/lib/active_graph/timestamps/created.rb +9 -0
  129. data/lib/active_graph/timestamps/updated.rb +9 -0
  130. data/lib/active_graph/transaction.rb +22 -0
  131. data/lib/active_graph/transactions.rb +57 -0
  132. data/lib/active_graph/type_converters.rb +7 -0
  133. data/lib/active_graph/undeclared_properties.rb +53 -0
  134. data/lib/active_graph/version.rb +3 -0
  135. data/lib/active_graph/wrapper.rb +4 -0
  136. data/lib/rails/generators/active_graph/migration/migration_generator.rb +16 -0
  137. data/lib/rails/generators/active_graph/migration/templates/migration.erb +9 -0
  138. data/lib/rails/generators/active_graph/model/model_generator.rb +89 -0
  139. data/lib/rails/generators/active_graph/model/templates/migration.erb +11 -0
  140. data/lib/rails/generators/active_graph/model/templates/model.erb +15 -0
  141. data/lib/rails/generators/active_graph/upgrade_v8/templates/migration.erb +17 -0
  142. data/lib/rails/generators/active_graph/upgrade_v8/upgrade_v8_generator.rb +34 -0
  143. data/lib/rails/generators/active_graph_generator.rb +121 -0
  144. metadata +423 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: def0f5ce7c7930cddaf5f825f8bd390c593acb72e9366cb62c471985d04b4c99
4
+ data.tar.gz: 21ba04478d0ae0d355c56ab1ca551d91b05d8e66bd26f3e164d61fede01fa8a5
5
+ SHA512:
6
+ metadata.gz: 99d3b195ef17a9f0e5e74f852ef6654a98383e19bf6848660bb7bf02eb6bf22a4873f59c5024c98b1c4ecf57a46574d2db35805214c3fc2840ce503074cb6323
7
+ data.tar.gz: 6f11b6290d17c93d3006dec6b6ec982b7e318e945c326e1ffe56f41cff900c2f4efa6f7de834e6585934279847555eabf5be64181ba4864451fda81f3586b075
@@ -0,0 +1,2016 @@
1
+ # Change Log
2
+ All notable changes to this project will be documented in this file.
3
+ This file should follow the standards specified on [http://keepachangelog.com/]
4
+ This project adheres to [Semantic Versioning](http://semver.org/).
5
+
6
+ ## [10.0.1] 2020-07-26
7
+
8
+ ## Fixed
9
+
10
+ - fixed incorrect id comparison, which could result in lost relationships (https://github.com/neo4jrb/activegraph/issues/1611)
11
+ - brought back BigDecimalConverter
12
+ - fixed rails template (Thanks @ekampp)
13
+
14
+ ## [10.0.0] 2020-07-06
15
+
16
+ - neo4j 4.0 support (default database only)
17
+ - dropped support for neo4j 3.3 or earlier
18
+ - full bolt support
19
+ - full causal cluster support
20
+ - removal of http support
21
+ - removal of embedded support (neo4j embedded is still supported via bolt)
22
+ - support for a neo4j ruby driver with an api of the official drivers
23
+ - discontinuation of the ``neo4j-core`` gem. Its functionality is replaced partially by ``neo4j-ruby-driver`` and
24
+ partially by ``activegraph``
25
+ - higher naming consistency with ``activerecord`` and the official ``neo4j-java-driver``
26
+ - configuration more consistent with ``activerecord``
27
+ - changed transaction API
28
+ - support for sessions with bookmarks and read and write transaction
29
+ - enforcing has one constraint on relationships
30
+ - better handling of has_many (no deletion and recreation)
31
+ - executing association callbacks on relationship deletion
32
+
33
+ ## [9.6.1] 2019-12-18
34
+
35
+ ## Fixed
36
+
37
+ - Fixed duplicate records with with_associations on QueryProxy. (#1576)
38
+
39
+ ## [9.6.0] 2019-09-3
40
+
41
+ ## Added
42
+
43
+ - support for activemodel and activesupport version 6 (thanks @mrhardikjoshi)
44
+
45
+ ## Fixed
46
+
47
+ - fixed cypher generation for `remove_property` (thanks @lshimokawa)
48
+ - cleaned up deprecations, unused files and badges (thanks @olleolleolle)
49
+
50
+ ## [9.5.3] 2019-08-16
51
+
52
+ ## Fixed
53
+
54
+ - Enforces has_one uniqness constraint on relationship with config flag. (#1566)
55
+ - Restricting activemodel and activesupport version to < 6.0.
56
+
57
+ ## [9.5.2] 2019-08-06
58
+
59
+ ## Fixed
60
+
61
+ - Made neo4j_community gem a development dependency rather than a runtime dependency.
62
+
63
+ ## [9.5.1] 2019-07-31
64
+
65
+ ## Fixed
66
+
67
+ - Reverse has_one relationships with ActiveRel (thanks @amitsuryavanshi / #1560)
68
+
69
+ ## [9.5.0] 2019-06-17
70
+
71
+ ## Added
72
+
73
+ - Variable length relatinships in eager laoding (thanks @amitsuryavanshi / #1545)
74
+
75
+ ## Fixed
76
+
77
+ - fixed `wait_for_connection` (thanks @ayghor / see #1540)
78
+ - Reverse has_one relationships (thanks @amitsuryavanshi / #1548)
79
+ - Missing require 'forwardable' (thanks @jschulenklopper / #1535)
80
+
81
+ ## [9.4.0] 2018-12-20
82
+
83
+ ## Added
84
+
85
+ - `verbose_query_logs` configuration option to allow outputting of source location of queries
86
+ - Adaptor classes loaded dynamically on demand
87
+ - Optionally specify the full adaptor class name instead of session type only (supports driver adaptor)
88
+
89
+ ## Fixed
90
+
91
+ - Wrong conflicting node aliases on same `branch` usage (see #1526)
92
+ - Incorrect order when `order` and `with_associations` are used together
93
+ - `ScopeEvalContext` redirects now all method missing calls to QueryProxy or Target
94
+
95
+ ## [9.3.0] 2018-07-12
96
+
97
+ ## Added
98
+
99
+ - Scopes will now automatically show up on instances as well as classes / proxies
100
+
101
+ ## [9.2.4] 2018-05-20
102
+
103
+ ## Fixed
104
+
105
+ - BigDecimal handling on properties (thanks @klobuczek / see #1507)
106
+
107
+ ## [9.2.3] 2018-05-10
108
+
109
+ ## Fixed
110
+
111
+ - Rescue when node labels cause a LoadError in addition to a NameError (thanks @Grafikart / see #1500)
112
+
113
+ ## [9.2.2] 2018-04-19
114
+
115
+ ## Fixed
116
+
117
+ - Introduced a fix to account for the fact that `ActiveModel` now returns a frozen `Hash` for `changed_attributes` (thanks @anamba and subvertallchris / see #1496 and #1499)
118
+
119
+ ## [9.2.1] 2018-04-01
120
+
121
+ ## Fixed
122
+
123
+ - Fixed .first and .last methods for QueryProxyMethods (thanks @kopylovvlad / see #1494)
124
+
125
+ ## [9.2.0] 2018-03-27
126
+
127
+ ## Added
128
+
129
+ - Ability to create association with `labels: false` by default (thanks @thefliik / see #1485)
130
+
131
+ ## [9.1.8] 2018-03-27
132
+
133
+ ## Fixed
134
+
135
+ - Micro-optimizations which help when dealing with a lot of data (thanks @jgaskins / see #1490)
136
+
137
+ ## [9.1.8] 2018-03-27
138
+
139
+ ## Fixed
140
+
141
+ - Micro-optimizations which help when dealing with a lot of data (thanks @jgaskins / see #1490)
142
+
143
+ ## [9.1.7] 2018-03-27
144
+
145
+ ## Fixed
146
+
147
+ - Created helpful error message to AssociationTree (thanks @thefliik / see #1488)
148
+
149
+ ## [9.1.6] 2018-03-27
150
+
151
+ ## Fixed
152
+
153
+ - Adding link to `CHANGELOG.md` as shown on https://olivierlacan.com/posts/changelogs-on-rubygems-org/
154
+
155
+ ## [9.1.5] 2018-03-18
156
+
157
+ ## Fixed
158
+
159
+ - Performance improvement for attributes (thanks @jgaskins / see #1487)
160
+
161
+ ## [9.1.4] 2018-02-20
162
+
163
+ ## Fixed
164
+
165
+ - Fixed issue with `ActiveRel.find` for when the ID isn't there (thanks @lshimokawa / WARNING: Use of `ActiveRel.find` is NOT recommended, see #1482)
166
+
167
+ ## [9.1.3] 2018-02-01
168
+
169
+ ## Fixed
170
+
171
+ - Fixed issue with Rails 5.1 where `neo4j_config.session` refers to the wrong this (thanks @RicardoTrindade / see #1471 and #1475)
172
+
173
+ ## [9.1.2] 2017-12-18
174
+
175
+ ## Fixed
176
+
177
+ - Issue where the order of `ORDER BY` was from `.order` method was not being respected for chains with `with_association` (thanks @klobuczek / see #1454)
178
+
179
+ ## [9.1.1] 2017-12-12
180
+
181
+ ## Fixed
182
+
183
+ - Model.find will, when raising an error about not being able to find the object, now call `inspect` on the ID value to make it clearer what the error is about (thanks @anamba / see #1314)
184
+
185
+ ## [9.1.0] 2017-11-24
186
+
187
+ ## Added
188
+
189
+ - Add `rel_where_not` to allow negative filtering of relationships (thanks @pmaite88 / see #1446)
190
+
191
+ ## [9.0.7] 2017-11-24
192
+
193
+ ## Fixes
194
+
195
+ - Fix "Variable `other_rel` not defined" error when destroying objects with a `dependent: :delete_orphans` associations (thanks @nearapogee, @TyGuy, and @leehericks / see #1395)
196
+
197
+ ## [9.0.6] 2017-11-21
198
+
199
+ ## Fixes
200
+
201
+ - Ensure `RecordNotFound` consistent in providing the model (thanks @leviwilson / see #1442)
202
+
203
+ ## [9.0.5] 2017-10-16
204
+
205
+ ## Fixes
206
+
207
+ - Ensure `branch` and `with_association` methods propagate `distinct` (thanks @klobuczek / see #1438)
208
+
209
+ ## [9.0.4] 2017-10-15
210
+
211
+ ## Fixes
212
+
213
+ - Change YAML.safe_load call in `neo4j:schema:load` rake task to allow Symbols (thanks @evanob / see #1439)
214
+
215
+ ## [9.0.3] 2017-10-12
216
+
217
+ ### Fixed
218
+
219
+ - Ensure branch method propagates with_association_tree context (brought forward from 8.3.1. Thanks @klobuczek / see #1437)
220
+
221
+ ## [9.0.2] 2017-10-08
222
+
223
+ - Accidental release
224
+
225
+ ## [9.0.1] 2017-09-26
226
+
227
+ ### Fixed
228
+
229
+ - Properties defined on a superclass after the subclass has been defined will now take effect on the subclass (intended to be released in 9.0.0) (thanks @thefliik / see #1428)
230
+
231
+ ## [9.0.0] 2017-09-26
232
+
233
+ ### Changed
234
+
235
+ - By default, `enum` values are now case-insensitive (but there are local and global `_case_sensitive` options [see the docs](http://neo4jrb.readthedocs.io/en/9.0.x/ActiveNode.html#enums)) (thanks @thefliik / see #1419)
236
+
237
+ ## [8.3.4] 2017-10-16
238
+
239
+ ## Fixes
240
+
241
+ - Ensure `branch` and `with_association` methods propagate `distinct` (thanks @klobuczek / see #1438)
242
+
243
+ ## [8.3.3] 2017-10-15
244
+
245
+ ## Fixes
246
+
247
+ - Change YAML.safe_load call in `neo4j:schema:load` rake task to allow Symbols (thanks @evanob / see #1439)
248
+
249
+ ## [8.3.2] 2017-10-12
250
+
251
+ ## Fixes
252
+
253
+ - Ensure branch method propagates with_association_tree context (thanks @klobuczek / see #1437)
254
+
255
+ ## [8.3.1] 2017-10-08
256
+
257
+ - Accidental release
258
+
259
+ ## [8.3.0] 2017-09-25
260
+
261
+ ### Changed
262
+
263
+ - Allow `chainable: true` option when calling `has_one` associations to start chaining (thanks @thefliik / see #1422)
264
+
265
+ ## [8.2.5] 2017-09-23
266
+
267
+ ### Fixes
268
+
269
+ - Error when using `pluck(:id)` on an association which has an array argument for `model_class` (thanks @thefliik / see #1426)
270
+
271
+ ## [8.2.4] 2017-09-20
272
+
273
+ ### Fixes
274
+
275
+ - Fixes ability to run `rails destroy model` and `rails destroy migration` (thanks @thefliik / see #1420)
276
+
277
+ ## [8.2.3] 2017-09-19
278
+
279
+ ### Fixes
280
+
281
+ - Scopes now work when inherited three or more levels deep (see #1415, #1413, #1412 / thanks @thefliik)
282
+
283
+ ## [8.2.2] 2017-09-18
284
+
285
+ ### Fixes
286
+
287
+ - Allow enums to be created without associated indexes (thanks @thefliik / see #1411)
288
+
289
+ ## [8.2.1] 2017-09-01
290
+
291
+ ### Fixes
292
+
293
+ - Bringing forward changes from 8.1.x
294
+
295
+ ## [8.2.0] 2017-09-01
296
+
297
+ ### Added
298
+
299
+ - Ability to load nested associations with one query using `with_associations` (big thanks to @klobuczek / see #1398)
300
+
301
+ ## [8.1.4] 2017-08-17
302
+
303
+ ### Fixed
304
+
305
+ - Make sure that we handle the state of the SchemaMigration correctly when we get failures in non-transactional migrations (see #1383 / thanks @leviwilson and @ProGM)
306
+
307
+ ## [8.1.4] 2017-08-17
308
+
309
+ ### Fixed
310
+
311
+ - Issue where node Cypher variable could change during a `branch` (see issue #1348 / thanks @klobuczek for the report)
312
+
313
+ ## [8.1.3] 2017-06-29
314
+
315
+ ### Fixed
316
+
317
+ - `ActiveRel` `.first` / `.last` aren't dependable for ordering in Neo4j enterprise, so fixed test (be aware that using `.first` / `.last` are not recommended in `ActiveRel`) (see #1396 / thanks @klobuczek)
318
+ - Labels for models are now returned alphabetically (see #1396 / thanks @klobuczek)
319
+ - JSON serialization is fixed for `String` and objects in general which respond to `to_json` (see #1397 / thanks @leviwilson)
320
+
321
+ ## [8.1.2] 2017-06-20
322
+
323
+ ### Fixed
324
+
325
+ - Populates relationship with with already retrieved node (see #1393 / thanks @klobuczek)
326
+
327
+ ## [8.1.1] 2017-06-15
328
+
329
+ ### Added
330
+
331
+ - Comment to the top of the `schema.yml` file to help explain it's presence
332
+
333
+ ## [8.1.0] 2017-06-07
334
+
335
+ ### Fixed
336
+
337
+ - Issue where `neo4j:schema:load` rake task would set schema migration properties as `version` rather than `migration_id`
338
+
339
+ ## [8.1.0.rc.2] 2017-06-06
340
+
341
+ ### Removed
342
+
343
+ - Support for jRuby 1.7.x
344
+
345
+ ## [8.1.0.rc.1] 2017-05-05
346
+
347
+ ### Added
348
+
349
+ - Created `neo4j:schema:dump` and `neo4j:schema:load` rake tasks to create `schema.yml` files which can be checked into the repository for quick setup of a fresh database
350
+
351
+ ### Changed
352
+
353
+ - Removed `before` and `after` callback options from associations (model callbacks still exist)
354
+
355
+ ## [8.0.18] 2017-06-04
356
+
357
+ ### Fixed
358
+
359
+ - Migration name when generating a model shouldn't be the same as the model (see #1387 / thanks @thefliik and @apotonick)
360
+
361
+ ## [8.0.17] 2017-05-03
362
+
363
+ ### Fixed
364
+
365
+ - Don't lock out Rails 5.1 in `gemspec`
366
+
367
+ ## [8.0.16] 2017-05-01
368
+
369
+ ### Fixed
370
+
371
+ - Don't lock out Rails 5.1 in `gemspec`
372
+
373
+ ## [8.0.15] 2017-04-24
374
+
375
+ ### Fixed
376
+
377
+ - Error message for getting distinct on count was not clear
378
+
379
+ ## [8.0.14] 2017-04-15
380
+
381
+ ### Fixed
382
+
383
+ - Simple change to description in gemspec file to remove "Ruby on Rails" and "Rack" as the gem can be use in any Ruby-based script / application
384
+
385
+ ## [8.0.13] 2017-04-07
386
+
387
+ ### Fixed
388
+
389
+ - Removed `put(s|c)` statements to avoid issues with background jobs (thanks @andyweiss1982 and @sureshblp71)
390
+
391
+ ## [8.0.12] 2017-03-28
392
+
393
+ ### Fixed
394
+
395
+ - Sessions in the `neo4j` gem are automatically set to have `wrap_level: :proc` to ensure that nodes and relationships are wrapped in models (even if you aren't using Rails)
396
+
397
+ ## [8.0.11] 2017-03-23
398
+
399
+ ### Fixed
400
+
401
+ - Fix issue where an association (which hasn't been accessed) is accessed from an ActiveNode callback
402
+
403
+ ## [8.0.9] 2017-03-15
404
+
405
+ ### Fixed
406
+
407
+ - Fix more Ruby 2.4 deprecations re: Integer (see #1363 / thanks @jboler)
408
+
409
+ ## [8.0.9] 2017-03-09
410
+
411
+ ### Fixed
412
+
413
+ - Support `to_ary` on association proxies to help support serializers (thanks @gnapse / see #1362)
414
+
415
+ ## [8.0.8] 2017-02-27
416
+
417
+ ### Fixed
418
+
419
+ - Performance and response consistency improvements to `exists?` methods
420
+
421
+ ## [8.0.7] 2017-02-24
422
+
423
+ ### Fixed
424
+
425
+ - Fix Ruby 2.4 deprecations re: Integer (see #1360 / thanks @jboler)
426
+
427
+ ## [8.0.6] 2017-02-04
428
+
429
+ ### Fixed
430
+
431
+ - Rake tasks broken without Rails (thanks @CoralineAda, @phreakocious, and @Joshfindit, see #1330, #1331, and #1353)
432
+
433
+ ## [8.0.5] 2017-01-05
434
+
435
+ ### Fixed
436
+
437
+ - When invalid session type is given, an exception will be raised to aid debugging (see #1335 / thanks @Joshfindit)
438
+
439
+ ## [8.0.4] 2017-01-03
440
+
441
+ ### Fixed
442
+
443
+ - Fixed/refactored `wait_for_connection`
444
+
445
+ ## [8.0.3] 2017-01-03
446
+
447
+ ### Fixed
448
+
449
+ - Fixed/refactored `wait_for_connection`
450
+
451
+ ## [8.0.2] 2016-12-22
452
+
453
+ ### Fixed
454
+
455
+ - Camelization of class names for migrations should now match the snake case of the migration file name (see #1329)
456
+
457
+ ## [8.0.1] 2016-12-20
458
+
459
+ ### Fixed
460
+
461
+ - Use UTC timezone for timestamps on migration files
462
+
463
+ ## [8.0.0] 2016-12-14
464
+
465
+ NO CHANGES FROM 8.0.0.rc.4
466
+
467
+ ## [8.0.0.rc.4] 2016-10-12
468
+
469
+ ### Changed
470
+
471
+ - `find_or_create_by` on an association does not look for nodes which aren't related to the node in question (thanks for the report @efatsi / see #1240)
472
+
473
+ ### Fixed
474
+
475
+ - Inconsistent `drop_constraint` and `drop_index` behavior: they were accepting `force` option (like `add_*` methods)
476
+ - `PendingMigrationError` not showing pending migrations versions
477
+ - Fixed `silenced: true` for `Neo4j::Migration::Runner` option, not working properly
478
+ - Removed "strange" inheritance between Neo4j::Migrations::Base and the legacy Neo4j::Migration class
479
+ - Avoid creating the `SchemaMigration` model constraint when it already exists
480
+
481
+ ## [8.0.0.rc.3] 2016-10-12
482
+
483
+ # Added
484
+
485
+ - `distinct` method for QueryProxy (thanks @ProGM / see #1305)
486
+ - Added `update_node_property` / `update_node_properties` (aliased as `update_column` / `update_columns`)
487
+
488
+ ## [8.0.0.rc.2] 2016-10-07
489
+
490
+ ### Fixed
491
+
492
+ - Pending migration check was failing when there are no migrations
493
+
494
+ ## [8.0.0.rc.1] 2016-10-04
495
+
496
+ ### Changed
497
+
498
+ - Pending migrations check, now using a Rack Middleware instead of failing on startup (thanks @ProGM / see #1300)
499
+
500
+ ### Added
501
+
502
+ - Add support for undeclared properties on specific models (see #1294 / thanks @klobuczek)
503
+ - Add `update_node_property` and `update_node_properties` methods, aliased as `update_column` and `update_columns`, to persist changes without triggering validations, callbacks, timestamps, etc,...
504
+
505
+ ## [8.0.0.alpha.12] 2016-09-29
506
+
507
+ ### Fixed
508
+
509
+ - Allow multiple arguments to scopes (see #1297 / thanks @klobuczek)
510
+ - Fixed validations with unpersisted nodes (see #1293 / thanks @klobuczek & @ProGM)
511
+ - Fixed various association bugs (see #1293 / thanks @klobuczek & @ProGM)
512
+ - Fix `as` losing the current query chain scope (see #1298 and #1278 / thanks @ProGM & @ernestoe)
513
+
514
+ ## [8.0.0.alpha.11] 2016-09-27
515
+
516
+ ### Fixed
517
+ - Don't fire database when accessing to unpersisted model associations (thanks @klobuczek & @ProGM see #1273)
518
+ - `size` and `length` methods not taking account of `@deferred_objects` (see #1293)
519
+ - `update` was not rolling-back association changes when validations fail
520
+ - Broken Rails `neo4j:migrate_v8` generator
521
+
522
+ ### Changed
523
+ - `count` method in associations, now always fire the database like AR does
524
+ - Neo4j now passes all association validations specs, taken from AR (thanks @klobuczek)
525
+
526
+ ## [8.0.0.alpha.10] 2016-09-16
527
+
528
+ ### Fixed
529
+ - Remove blank objects from association results to be compatible with `ActiveRecord` (see #1276 / thanks klobuczek)
530
+ - Allow https scheme in the NEO4J_URL (see #1287 / thanks jacob-ewald)
531
+
532
+ ## [8.0.0.alpha.9] 2016-09-14
533
+
534
+ ### Fixed
535
+
536
+ - String / symbol issue for session types in railtie
537
+ - Put in fix for allowing models to reload for wrapping nodes / relationshps
538
+
539
+ ## [8.0.0.alpha.8] 2016-09-14
540
+
541
+ ### Fixed
542
+
543
+ - Issues with railtie
544
+
545
+ ## [8.0.0.alpha.7] 2016-09-13
546
+
547
+ ### Changed
548
+
549
+ - Multiple sessions in Rails config no longer supported
550
+
551
+ ## [8.0.0.alpha.6] 2016-09-12
552
+
553
+ ### Fixed
554
+
555
+ - Instead of using `session_type`, `session_url`, `session_path`, and `session_options` in config `session.type`, `session.url`, `session.path`, and `session.options` should now be used.
556
+ - Issue where `session_url` (now `session.url`) was not working
557
+ - Broken sessions when threading
558
+
559
+ ## [8.0.0.alpha.5] 2016-09-08
560
+
561
+ ### Fixed
562
+
563
+ - Various issues with not be able to run migrations when migration were pending (see 22b7e6aaadd46c11d421b4dac8d3fb15f663a4c4)
564
+
565
+ ## [8.0.0.alpha.4] 2016-09-08
566
+
567
+ ### Added
568
+
569
+ - A `Neo4j::Migrations.maintain_test_schema!` method, to keep the test database up to date with schema changes. (see #1277)
570
+ - A `Neo4j::Migrations.check_for_pending_migrations!` method, that fails when there are pending migration. In Rails, it's executed automatically on startup. (see #1277)
571
+ - Support for [`ForbiddenAttributesProtection` API](http://edgeapi.rubyonrails.org/classes/ActionController/StrongParameters.html) from ActiveRecord. (thanks ProGM, see #1245)
572
+
573
+ ### Changed
574
+
575
+ - `ActiveNode#destroy` and `ActiveRel#destroy` now return the object in question rather than `true` to be compatible with `ActiveRecord` (see #1254)
576
+
577
+ ### Fixed
578
+
579
+ - Bugs with using `neo_id` as `ActiveNode` `id_property` (thanks klobuczek / see #1274)
580
+
581
+ ## [8.0.0.alpha.3]
582
+
583
+ ### Skipped
584
+
585
+ ## [8.0.0.alpha.2] 2016-08-05
586
+
587
+ ### Changed
588
+
589
+ - Improve migration output format / show execution time in migrations
590
+
591
+ ### Fixed
592
+
593
+ - Caching of model index and constraint checks
594
+ - Error when running schema migrations. Migrations now give a warning and instructions if a migration fails and cannot be recovered
595
+ - Error when running rake tasks to generate "force" creations of indexes / constraints and there is no migration directory
596
+ - `WARNING` is no longer displayed for constraints defined from `id_property` (either one which is implict or explict)
597
+
598
+ ## [8.0.0.alpha.1] 2016-08-02
599
+
600
+ ### Changed
601
+
602
+ - Improved `QueryProxy` and `AssociationProxy` `#inspect` method to show a result preview (thanks ProGM / see #1228 #1232)
603
+ - Renamed the old migration task to `neo4j:legacy_migrate`
604
+ - Renamed the ENV variable to silence migrations output from `silenced` to `MIGRATIONS_SILENCED`
605
+ - Changed the behavior with transactions when a validation fails. This is a potentially breaking change, since now calling `save` would not fail the current transaction, as expected. (thanks ProGM / see #1156)
606
+ - Invalid options to the `property` method now raise an exception (see #1169)
607
+ - Label #indexes/#constraints return array without needing to access [:property_keys]
608
+ - `server_db` server type is no longer supported. Use `http` instead to connect to Neo4j via the HTTP JSON API
609
+
610
+ ### Added
611
+
612
+ - Allow to pass a Proc for a default property value (thanks @knapo / see #1250)
613
+ - Adding a new ActiveRecord-like migration framework (thanks ProGM / see #1197)
614
+ - Adding a set of rake tasks to manage migrations (thanks ProGM / see #1197)
615
+ - Implemented autoloading for new and legacy migration modules (there's no need to `require` them anymore)
616
+ - Adding explicit identity method for use in Query strings (thanks brucek / see #1159)
617
+ - New adaptor-based API has been created for connecting to Neo4j (See the [upgrade guide](TODO!!!!)). Changes include:
618
+ - The old APIs are deprecated and will be removed later.
619
+ - In the new API, there is no such thing as a "current" session. Users of `neo4j-core` must create and maintain references themselves to their sessions
620
+ - New `Neo4j::Core::Node` and `Neo4j::Core::Relationshp` classes have been created to provide consistent results between adaptors. `Neo4j::Core::Path` has also been added
621
+ - New API is centered around Cypher. No special methods are defined to, for example, load/create/etc... nodes/relationships
622
+ - There is now a new API for making multiple queries in the same HTTP request
623
+ - It is now possible to subscribe separately to events for querying in different adaptors and for HTTP requests (see [the docs](TODO!!!!))
624
+ - Schema queries (changes to indexes/constraints) happen in a separate thread for performance and reduce the complexity of the code
625
+ - New session API does not include replacement for on_next_session_available
626
+ - Adding a migration helper to mass relabel migrations (thanks @JustinAiken / see #1166 #1239)
627
+ - Added support for `find_or_initialize_by` and `first_or_initialize` methods from ActiveRecord (thanks ProGM / see #1164)
628
+ - Support for using Neo4j-provided IDs (`neo_id`) instead of UUID or another Ruby-provided ID. (Huge thanks to @klobuczek, see #1174)
629
+
630
+ ### Fixed
631
+
632
+ - Made some memory optimizations (thanks ProGM / see #1221)
633
+
634
+ ## [7.2.3] - 09-28-2016
635
+
636
+ ### Fixed
637
+
638
+ - `as` resetting scope of the current query chain (see #1298)
639
+
640
+ ## [7.2.2] - 09-22-2016
641
+
642
+ ### Fixed
643
+
644
+ - `where` clause with question mark parameter and array values only using the first element (see #1247 #1290)
645
+
646
+ ## [7.2.1] - 09-19-2016
647
+
648
+ ### Fixed
649
+
650
+ - During ActiveRel create, node and rel property values formatted like Cypher props (`{val}`) were interpreted as props, causing errors.
651
+
652
+ ## [7.2.0] - 08-23-2016
653
+
654
+ ### Added
655
+
656
+ - Backporting #1245 to 7.x versions. It implements the [`ForbiddenAttributesProtection` API](http://edgeapi.rubyonrails.org/classes/ActionController/StrongParameters.html) from ActiveRecord.
657
+
658
+ ## [7.1.4] - 09-20-2016
659
+
660
+ ### Fixed
661
+
662
+ - `where` clause with question mark parameter and array values only using the first element (see #1247 #1290)
663
+
664
+ ## [7.1.3] - 08-18-2016
665
+
666
+ ### Changed
667
+
668
+ - Default value for `enum` is `nil` instead of the first value. This is a **BREAKING** change but is being released as a patch because the original behavior was considered a bug. See [this pull request](https://github.com/neo4jrb/neo4j/pull/1270) (thanks to ProGM and andyweiss1982)
669
+
670
+ ## [7.1.2] - 08-01-2016
671
+
672
+ ### Fixed
673
+
674
+ - Fixed issue where the label wrapping cache would get stuck
675
+
676
+ ## [7.1.1] - 07-22-2016
677
+
678
+ ### Fixed
679
+
680
+ - `AssociationProxy` changed so that `pluck` can be used in rails/acivesupport 5 (thanks ProGM / see #1243)
681
+
682
+ ## [7.1.0] - 07-14-2016
683
+
684
+ ### Changed
685
+
686
+ - Gemspec dependency requirements were modified where ActiveModel, ActiveSupport, and Railties are concerned. The gem now requires >= 4.0, < 5.1.
687
+ - `ActiveModel::Serializers::Xml` is only included if supported if available.
688
+
689
+ ## [7.0.16] - 09-20-2016
690
+
691
+ ### Fixed
692
+
693
+ - `where` clause with question mark parameter and array values only using the first element (see #1247 #1290)
694
+
695
+ ## [7.0.15] - 08-18-2016
696
+
697
+ ### Changed
698
+
699
+ - Default value for `enum` is `nil` instead of the first value. This is a **BREAKING** change but is being released as a patch because the original behavior was considered a bug. See [this pull request](https://github.com/neo4jrb/neo4j/pull/1270) (thanks to ProGM and andyweiss1982)
700
+
701
+ ## [7.0.14] - 07-10-2016
702
+
703
+ ### Fixed
704
+
705
+ - Bug in setting `NEO4J_TYPE` (thanks bloomdido / see #1235)
706
+
707
+ ## [7.0.12] - 06-27-2016
708
+
709
+ ### Fixed
710
+
711
+ - Bug where models weren't being loaded correctly by label (thanks bloomdido / see #1220)
712
+
713
+ ## [7.0.11] - 06-09-2016
714
+
715
+ ### Fixed
716
+
717
+ - Fix dipendence from JSON when using outside of rails (thanks ProGM)
718
+
719
+ ## [7.0.10] - 06-07-2016
720
+
721
+ ### Fixed
722
+
723
+ - Calling `.create` on associations shouldn't involve extra queries (thanks for the report from rahulmeena13 / see #1216)
724
+
725
+ ## [7.0.9] - 05-30-2016
726
+
727
+ ### Fixed
728
+
729
+ - Fix to parens in Cypher query for `with_associations` for Neo4j 3.0 (thanks ProGM / see #1211)
730
+
731
+ ## [7.0.8] - 05-27-2016
732
+
733
+ ### Fixed
734
+
735
+ - Fix to `find_in_batches` (thanks to ProGM / see #1208)
736
+
737
+ ## [7.0.7] - 05-26-2016
738
+
739
+ ### Fixed
740
+
741
+ - Allow models to use their superclass' scopes (forward-ported from 6.1.11 / thanks to veetow for the heads-up / see #1205)
742
+
743
+ ## [7.0.6] - 05-11-2016
744
+
745
+ ### Added
746
+
747
+ - Explination about why you can't have an index and a constraint at the same time
748
+
749
+ ## [7.0.5] - 05-06-2016
750
+
751
+ ### Fixed
752
+
753
+ - Added parens to delete_all query to support new required syntax in Neo4j 3.0
754
+
755
+ ## [7.0.4] - 05-06-2016
756
+
757
+ ### Fixed
758
+
759
+ - A bug/inconsistency between ActiveNode's class method `create` and instance `save` led to faulty validation of associations in some cases.
760
+
761
+ ## [7.0.3] - 04-28-2016
762
+
763
+ ### Fixed
764
+
765
+ - Added parens to queries to support new required syntax in Neo4j 3.0
766
+
767
+ ## [7.0.2] - 04-10-2016
768
+
769
+ ### Fixed
770
+
771
+ - Multiparameter Attributes for properties of type `Time` were failing due to a hack that should have been removed with `ActiveAttr`'s removal
772
+ - Rel creation factory was not using backticks around rel type during create action.
773
+
774
+ ## [7.0.1] - 03-22-2016
775
+
776
+ ### Fixed
777
+
778
+ - Conversion of string values from form inputs (thanks to jbhannah / see #1163)
779
+
780
+ ## [7.0.0] - 03-18-2016
781
+
782
+ No changes from `rc.7`
783
+
784
+ ## [7.0.0.rc.7] - 03-16-2016
785
+
786
+ ### Changed
787
+
788
+ - `with_associations` now generates separate `OPTIONAL MATCH` clauses, separated by `WITH` clauses and is preceeded by a `WITH` clause.
789
+
790
+ ## [7.0.0.rc.6] - 03-16-2016
791
+
792
+ ### Fixed
793
+
794
+ - Question mark methods (`node.foo?`) broke when ActiveAttr was removed
795
+
796
+ ## [7.0.0.rc.5] - 03-14-2016
797
+
798
+ ### Fixed
799
+
800
+ - Fixed issue where backticks weren't being added to where clauses for `with_associations`
801
+
802
+ ## [7.0.0.rc.4] - 03-11-2016
803
+
804
+ ### Fixed
805
+
806
+ - Catching errors for 404s in Rails (thanks ProGm, see #1153)
807
+
808
+ ## [7.0.0.rc.3] - 03-08-2016
809
+
810
+ ### Fixed
811
+
812
+ - Allow for array values when querying for enums (i.e. `where(enum_field: [:value1, :value2])`) (see #1150)
813
+
814
+ ## [7.0.0.rc.2] - 03-08-2016
815
+
816
+ ### Fixed
817
+
818
+ - Issue where creating relationships via `has_one` association created two relationships (forward ported from 6.0.7 / 6.1.9)
819
+
820
+ ## [7.0.0.rc.1] - 03-08-2016
821
+
822
+ ### Changed
823
+
824
+ - All explicit dependencies on `ActiveAttr` code that was not removed outright can now be found in the `Neo4j::Shared` namespace.
825
+ - All type conversion uses Neo4j.rb-owned converters in the `Neo4j::Shared::TypeConverters` namespace. This is of particular importance where `Boolean` is concerned. Where explicitly using `ActiveAttr::Typecasting::Boolean`, use `Neo4j::Shared::Boolean`.
826
+ - `Neo4j::Shared::TypeConverters.converters` was replaced with `Neo4j::Shared::TypeConverters::CONVERTERS`.
827
+ - Error classes refactor: All errors now inherits from `Neo4j::Error`. All specific `InvalidParameterError` were replaced with a more generic `Neo4j::InvalidParameterError`.
828
+ - When calling `Node.find(...)` with missing ids, `Neo4j::RecordNotFound` now returns a better error message and some informations about the query.
829
+
830
+ #### Internal
831
+
832
+ - Ran transpec and fixed error warning (thanks brucek / #1132)
833
+
834
+ ### Added
835
+
836
+ - A number of modules and unit tests were moved directly from the ActiveAttr gem, which is no longer being maintained.
837
+ - `ActiveNode` models now respond to `update_all` (thanks ProGM / #1113)
838
+ - Association chains now respond to `update_all` and `update_all_rels` (thanks ProGM / #1113)
839
+ - Rails will now rescue all `Neo4j::RecordNotFound` errors with a 404 status code by default
840
+ - A clone of [ActiveRecord::Enum](http://edgeapi.rubyonrails.org/classes/ActiveRecord/Enum.html) API. See docs for details. (thanks ProGM / #1129)
841
+ - Added #branch method to `QueryProxy` to allow for easy branching of matches in association chains (thanks ProGM / #1147 / #1143)
842
+ - The `.match` method on ActiveNode model class has changed to allow a second argument which takes `on_create`, `on_match`, and `set` keys. These allow you to define attribute values for the Cypher `MERGE` in the different cases (thanks leviwilson / see #1123)
843
+
844
+ ### Removed
845
+
846
+ - All external [ActiveAttr](https://github.com/cgriego/active_attr) dependencies.
847
+ - All `call` class methods from Type Converters. Use `to_ruby` instead.
848
+ - `Neo4j::ActiveNode::Labels::InvalidQueryError`, since it's unused.
849
+
850
+ ## [6.1.12] - 05-27-2016
851
+
852
+ ### Fixed
853
+
854
+ - Fix to `find_in_batches` (thanks to ProGM / see #1208)
855
+
856
+ ## [6.1.11] - 05-25-2016
857
+
858
+ ### Fixed
859
+
860
+ - Allow models to use their superclass' scopes (thanks to veetow for the heads-up / see #1205)
861
+
862
+ ## [6.1.10] - 03-14-2016
863
+
864
+ ### Fixed
865
+
866
+ - Fixed issue where backticks weren't being added to where clauses for `with_associations`
867
+
868
+ ## [6.1.9] - 2016-03-08
869
+
870
+ ### Fixed
871
+
872
+ - Issue where creating relationships via `has_one` association created two relationships (forward ported from 6.0.7)
873
+
874
+ ## [6.1.8] - 2016-03-02
875
+
876
+ ### Fixed
877
+
878
+ - The `@attributes` hash of the first node of each class returned from the database would have have the wrong id property key. This did not appear to cause any problems accessing the value and would be normal for subsequent saves of the affected node as well as all other nodes.
879
+
880
+ ## [6.1.7] - 2016-02-16
881
+
882
+ ### Fixed
883
+
884
+ - Bug related to creating subclassed nodes alongside rels in ActiveRel. (#1135. Thanks, brucek!)
885
+
886
+ ## [6.1.6] - 2016-02-03
887
+
888
+ ### Added
889
+
890
+ - `wait_for_connection` configuration variable allows you to tell the gem to wait for up to 60 seconds for Neo4j to be available. This is useful in environments such as Docker Compose
891
+
892
+ ## [6.1.5] - 2016-01-28
893
+
894
+ ### Fixed
895
+
896
+ - Calls to `.find`/`.find_by_id`/`.find_by_ids` now respect scopes and associations
897
+
898
+ ## [6.1.4] - 2016-01-26
899
+
900
+ ### Fixed
901
+
902
+ - Model generators now respect module namespaces (thanks to michaeldelorenzo in #1119)
903
+
904
+ ## [6.1.3] - 2016-01-20
905
+
906
+ ### Fixed
907
+
908
+ - Issue where `ActiveRel.create` would not work with `RelatedNode` (`rel.from_node`) instances (Thanks, djvs #1107)
909
+
910
+ ## [6.1.2] - 2016-01-19
911
+
912
+ ### Fixed
913
+
914
+ - Issue where `inspect` failed outside of Rails (Thanks to louspringer, #1111)
915
+
916
+ ## [6.1.1] - 2016-01-01
917
+
918
+ ### Fixed
919
+
920
+ - Fixed version requirement for `neo4j-core` in gemspec
921
+
922
+ ## [6.1.0] - 2016-01-01
923
+
924
+ ### Changed
925
+
926
+ - When a `model_class` is specified on an association which is not an ActiveNode model, an error is raised
927
+ - The `model_class` option on associations can no longer be a `Class` constant (should be a String, Symbol, nil, false, or an Array of Symbols/Strings)
928
+ - The `rel_class` option on associations can no longer be a `Class` constant (should be a String, Symbol, or nil)
929
+ - The `from_class` and `to_class` arguments can no longer be a `Class` constant (should be a String, Symbol, :any, or false)
930
+ - ActiveNode and ActiveRel models can now be marshaled (thanks to jhoffner for the suggestion in #1093)
931
+
932
+ ### Fixed
933
+
934
+ - Inheritance of properties in ActiveRel is fixed (see #1080)
935
+
936
+ ### Added
937
+
938
+ - `config/neo4j.yml` now renders with an ERB step (thanks to mrstif via #1060)
939
+ - `#increment`, `#increment!` and `#concurrent_increment!` methods added to instances of ActiveNode and ActiveRel (thanks to ProGM in #1074)
940
+
941
+ ## [6.0.9] - 05-27-2016
942
+
943
+ ### Fixed
944
+
945
+ - Fix to `find_in_batches` (thanks to ProGM / see #1208)
946
+
947
+ ## [6.0.8] - 03-14-2016
948
+
949
+ ### Fixed
950
+
951
+ - Fixed issue where backticks weren't being added to where clauses for `with_associations`
952
+
953
+ ## [6.0.7] - 03-08-2016
954
+
955
+ ### Fixed
956
+
957
+ - Issue where creating relationships via `has_one` association created two relationships
958
+
959
+ ## [6.0.6] - 01-20-2016
960
+
961
+ ### Fixed
962
+
963
+ - Issue where `inspect` failed outside of Rails (Thanks to louspringer, #1111)
964
+
965
+ ## [6.0.5] - 12-29-2015
966
+
967
+ ### Fixed
968
+
969
+ - If a property and a scope have the same name, a "Stack level too deep" error occurs. Fixed by removing the instance method which scopes define. Could break something, but I very much doubt anybody is using this, and if they are it's likely a bug (#1088)
970
+
971
+ ## [6.0.4] - 12-23-2015
972
+
973
+ ### Fixed
974
+
975
+ - When a `model_class` is specified on an association which is not an ActiveNode model, an error is raised
976
+
977
+ ## [6.0.3] - 12-18-2015
978
+
979
+ ### Fixed
980
+
981
+ - Fixed issue where find_or_create was prioritizing property`s default value rather than what was being passed in (Thanks to brucek via #1071)
982
+
983
+ ## [6.0.2] - 12-16-2015
984
+
985
+ ### Fixed
986
+
987
+ - Fixed issue where association setting can't be set on initialize via #new (#1065)
988
+
989
+ ## [6.0.1] - 11-27-2015
990
+
991
+ ### Fixed
992
+
993
+ - `#with_associations` should use multiple `OPTIONAL MATCH` clauses instead of one so that matches are independent (behavior changed in Neo4j 2.3.0) (forward ported from 5.2.15)
994
+
995
+ ## [6.0.0] - 11-24-2015
996
+
997
+ ### Fixed
998
+
999
+ - Refactor unpersisted association logic to store objects directly on the object rather than the association proxy since different association proxies may be created at different times (see #1043)
1000
+
1001
+ ## [6.0.0.rc.4] - 11-19-2015
1002
+
1003
+ ### Fixed
1004
+
1005
+ - Following a '#with' with a '#count' no longer causes issues with variables specified twice
1006
+
1007
+ ## [6.0.0.rc.3] - 11-18-2015
1008
+
1009
+ ### Fixed
1010
+
1011
+ - Removed extra `MATCH` which occurs from `proxy_as` calls
1012
+
1013
+ ## [6.0.0.rc.2] - 11-17-2015
1014
+
1015
+ ### Changed
1016
+
1017
+ - `QueryProxy#<<` and `#create`, when `rel_class` option is set, will use `RelClass.create!` instead of `create` to alert the user of failed rel creations.
1018
+
1019
+ ## [6.0.0.rc.1] - 11-13-2015
1020
+
1021
+ This release contains no changes since the last alpha. Below are all modifications introduced in alpha releases.
1022
+
1023
+ ### Changed
1024
+
1025
+ - `_classname` property has been completely removed, officially dropping support for Neo4j < 2.1.5.
1026
+ - `ActiveRel#creates_unique` and the `:unique` Association option take arguments to control how the query is built. See https://github.com/neo4jrb/neo4j/pull/1038.
1027
+ - `#<<` and `#create` methods on associations now create with the `rel_class` when available so that validations/callbacks/defaults are all used as expected
1028
+ - Allow calling of `#method=` methods via model `new` method `Hash` argument
1029
+ - Remove uniqueness validation for `id_property` because we already have Neo4j constraints
1030
+ - Improved eager loading when no with_associations is specified (see #905)
1031
+ - Change size and length so that they match expected Ruby / ActiveRecord behavior (see http://stackoverflow.com/questions/6083219/activerecord-size-vs-count and #875)
1032
+ - Refactoring around indexing and constraints in `Neo4j::ActiveNode`. The public interfaces are unchanged.
1033
+ - `Neo4j::Shared::DeclaredPropertyManager` was renamed `Neo4j::Shared::DeclaredProperties`. All methods referencing the old name were updated to reflect this.
1034
+ - Methods that were using `Neo4j::Session#on_session_available` were updated to reflect the upstream change to `on_next_session_available`.
1035
+ - `rel_where` will now use ActiveRel classes for type conversion, when possible.
1036
+ - Converters will look for a `converted?` method to determine whether an object is of the appropriate type for the database. This allows converters to be responsible for multiple types, if required.
1037
+ - Removed the ability to set both an exact index and unique constraint on the same property in a model. Unique constraints also provide exact indexes.
1038
+ - Deprecated all methods in ActiveRel's Query module except for those that allow finding by id.
1039
+ - Return `true` on successful `#save!` calls (Thanks to jmdeldin)
1040
+
1041
+ ### Added
1042
+
1043
+ - Optional three-argument signature for `ActiveRel#create` and `#create!`, just like `initialize`.
1044
+ - Alternate `ActiveRel` init syntax: `RelClass.new(from_node, to_node, args)`. This is optional, so giving a single hash with props with or without nodes is still possible.
1045
+ - `ActiveRel` `create` actions can now handle unpersisted nodes.
1046
+ - `rel_order` method for association chaining
1047
+ - Support `config/neo4j.yaml`
1048
+ - Look for ENV variables for Neo4j URL / path for Rails apps
1049
+ - New classes for schema operations, predictably called `Neo4j::Schema::Operation` and subclasses `UniqueConstraintOperation` and `ExactIndexOperation`. These provide methods to aid in the additional, removal, and presence checking of indexes and constraints.
1050
+ - A few methods were added to `Neo4j::Shared::DeclaredProperties` to make it easier to work with. In particular, `[key]` acts as a shortcut for `DeclaredProperties#registered_properties`.
1051
+ - Type Converters were added for String, Integer, Fixnum, BigDecimal, and Boolean to provide type conversion for these objects in QueryProxy.
1052
+ - Support for Array arguments to ActiveRel's `from_class` and `to_class`.
1053
+
1054
+ ### Fixed
1055
+
1056
+ - Regression RE: properties being overwritten with their defaults on save in alpha.10.
1057
+ - Long properties in `ActiveNode`/`ActiveRel` `#inspect` are truncated
1058
+ - Property defaults are set initially when an instance of a model is loaded, then checked again before save to ensure `valid?` works.
1059
+ - `QueryProxy` was not converting Boolean properties correctly
1060
+ - Certain actions that were intended as once-in-the-app's-lifetime events, notably schema operations, will only occur immediately upon the first session's establishment.
1061
+ - Context now set for Model.all QueryProxy so that logs can reflect that it wasn't just a raw Cypher query
1062
+
1063
+ ### Removed
1064
+
1065
+ - Railtie was removing username/password and putting them into the session options. This has been unneccessary in `neo4j-core` for a while now
1066
+
1067
+ ## [6.0.0.alpha.12] - 11-5-2015
1068
+
1069
+ ### Changed
1070
+ - `_classname` property has been completely removed, officially dropping support for Neo4j < 2.1.5.
1071
+ - `ActiveRel#creates_unique` and the `:unique` Association option take arguments to control how the query is built. See https://github.com/neo4jrb/neo4j/pull/1038.
1072
+
1073
+ ### Added
1074
+ - Optional three-argument signature for `ActiveRel#create` and `#create!`, just like `initialize`.
1075
+
1076
+ ## [6.0.0.alpha.11] - 11-3-2015
1077
+
1078
+ ### Fixed
1079
+ - Regression RE: properties being overwritten with their defaults on save in alpha.10.
1080
+
1081
+ ### Changed
1082
+ - `#<<` and `#create` methods on associations now create with the `rel_class` when available so that validations/callbacks/defaults are all used as expected
1083
+ - Allow calling of `#method=` methods via model `new` method `Hash` argument
1084
+
1085
+ ### Added
1086
+ - Alternate `ActiveRel` init syntax: `RelClass.new(from_node, to_node, args)`. This is optional, so giving a single hash with props with or without nodes is still possible.
1087
+
1088
+ ## [6.0.0.alpha.10] - 11-2-2015
1089
+
1090
+ ### Fixed
1091
+ - Long properties in `ActiveNode`/`ActiveRel` `#inspect` are truncated
1092
+ - Property defaults are set initially when an instance of a model is loaded, then checked again before save to ensure `valid?` works.
1093
+
1094
+ ### Added
1095
+ - `ActiveRel` `create` actions can now handle unpersisted nodes.
1096
+
1097
+ ## [6.0.0.alpha.9] - 10-27-2015
1098
+
1099
+ ### Fixed
1100
+ - `uninitialized constant Neo4j::Core::CypherSession` error
1101
+
1102
+ ## [6.0.0.alpha.8] - 10-19-2015
1103
+
1104
+ ### Added
1105
+
1106
+ - `rel_order` method for association chaining
1107
+
1108
+ ## [6.0.0.alpha.7] - 10-19-2015
1109
+
1110
+ ### Changed
1111
+
1112
+ - Remove uniqueness validation for `id_property` because we already have Neo4j constraints
1113
+
1114
+ ### Added
1115
+
1116
+ - Support `config/neo4j.yaml`
1117
+
1118
+ ## [6.0.0.alpha.6] - 10-18-2015
1119
+
1120
+ ### Changed
1121
+
1122
+ - Improved eager loading when no with_associations is specified (see #905)
1123
+
1124
+ ## [6.0.0.alpha.5] - 10-18-2015
1125
+
1126
+ ### Changed
1127
+
1128
+ - Change size and length so that they match expected Ruby / ActiveRecord behavior (see http://stackoverflow.com/questions/6083219/activerecord-size-vs-count and #875)
1129
+
1130
+ ## [6.0.0.alpha.4] - 10-17-2015
1131
+
1132
+ ### Fixed
1133
+
1134
+ - `QueryProxy` was not converting Boolean properties correctly
1135
+
1136
+ ## [6.0.0.alpha.3] - 10-14-2015
1137
+
1138
+ ### Removed
1139
+
1140
+ - Railtie was removing username/password and putting them into the session options. This has been unneccessary in `neo4j-core` for a while now
1141
+
1142
+ ## [6.0.0.alpha.2] - 10-14-2015
1143
+
1144
+ ### Added
1145
+
1146
+ - Look for ENV variables for Neo4j URL / path for Rails apps
1147
+
1148
+ ## [6.0.0.alpha.1] - 10-12-2015
1149
+
1150
+ ### Changed
1151
+
1152
+ - Refactoring around indexing and constraints in `Neo4j::ActiveNode`. The public interfaces are unchanged.
1153
+ - `Neo4j::Shared::DeclaredPropertyManager` was renamed `Neo4j::Shared::DeclaredProperties`. All methods referencing the old name were updated to reflect this.
1154
+ - Methods that were using `Neo4j::Session#on_session_available` were updated to reflect the upstream change to `on_next_session_available`.
1155
+ - `rel_where` will now use ActiveRel classes for type conversion, when possible.
1156
+ - Converters will look for a `converted?` method to determine whether an object is of the appropriate type for the database. This allows converters to be responsible for multiple types, if required.
1157
+ - Removed the ability to set both an exact index and unique constraint on the same property in a model. Unique constraints also provide exact indexes.
1158
+ - Deprecated all methods in ActiveRel's Query module except for those that allow finding by id.
1159
+ - Return `true` on successful `#save!` calls (Thanks to jmdeldin)
1160
+
1161
+ ### Added
1162
+
1163
+ - New classes for schema operations, predictably called `Neo4j::Schema::Operation` and subclasses `UniqueConstraintOperation` and `ExactIndexOperation`. These provide methods to aid in the additional, removal, and presence checking of indexes and constraints.
1164
+ - A few methods were added to `Neo4j::Shared::DeclaredProperties` to make it easier to work with. In particular, `[key]` acts as a shortcut for `DeclaredProperties#registered_properties`.
1165
+ - Type Converters were added for String, Integer, Fixnum, BigDecimal, and Boolean to provide type conversion for these objects in QueryProxy.
1166
+ - Support for Array arguments to ActiveRel's `from_class` and `to_class`.
1167
+
1168
+ ### Fixed
1169
+
1170
+ - Certain actions that were intended as once-in-the-app's-lifetime events, notably schema operations, will only occur immediately upon the first session's establishment.
1171
+ - Context now set for Model.all QueryProxy so that logs can reflect that it wasn't just a raw Cypher query
1172
+
1173
+ ## [5.2.15] - 11-27-2015
1174
+
1175
+ ### Fixed
1176
+
1177
+ - `#with_associations` should use multiple `OPTIONAL MATCH` clauses instead of one so that matches are independent (behavior changed in Neo4j 2.3.0)
1178
+
1179
+ ## [5.2.13] - 10-26-2015
1180
+
1181
+ ### Fixed
1182
+ - Fixed `#after_initialize` and `#after_find` callbacks.
1183
+ - The `#touch` method should to raise errors when unsuccessful and avoid `#attributes` for performance.
1184
+
1185
+ ## [5.2.12] - 10-25-2015
1186
+
1187
+ ### Fixed
1188
+ - Fix the `#touch` method for `ActiveNode` and `ActiveRel`
1189
+
1190
+ ## [5.2.11] - 10-18-2015
1191
+
1192
+ ### Fixed
1193
+ - Unable to give additional options as first argument to chained QueryProxy method
1194
+
1195
+ ## [5.2.10] - 10-14-2015
1196
+
1197
+ ### Fixed
1198
+ - `has_one` does not define `_id` methods if they are already defined. Also use `method_defined?` instead of `respond_to?` since it is at the class level
1199
+
1200
+ ## [5.2.9] - 09-30-2015
1201
+
1202
+ ### Fixed
1203
+ - Better error message for `ActiveRel` creation when from_node|to_node is not persisted
1204
+
1205
+ ## [5.2.8] - 09-30-2015
1206
+
1207
+ ### Fixed
1208
+ - Support `references` in model/scaffold generators
1209
+
1210
+ ## [5.2.7] - 09-25-2015
1211
+
1212
+ ### Fixed
1213
+ - Allow for association `model_class` to be prepended with double colons
1214
+
1215
+ ## [5.2.6] - 09-16-2015
1216
+
1217
+ ### Fixed
1218
+
1219
+ - Fixed issue where caching an association causes further queries on the association to return the cached result
1220
+
1221
+ ## [5.2.5] - 09-11-2015
1222
+
1223
+ ### Fixed
1224
+
1225
+ - Regression in last release caused properties to revert to default on update if not present in the properties for update
1226
+
1227
+ ## [5.2.4] - 09-11-2015
1228
+
1229
+ ### Fixed
1230
+ - Use `debug` log level for query logging
1231
+ - `updated_at` properties were not being added up `update` events, only updated.
1232
+ - Default values of Boolean properties were not being set when `default: false`
1233
+ - `props_for_update` was using String keys instead of Symbols, like `props_for_update`
1234
+ - `props_for_create` and `props_for_update` were not adding default property values to the hash.
1235
+ - ActiveNode's `merge` and `find_or_create` methods were not setting default values of declared properties when `ON CREATE` was triggered. The code now uses `props_for_create`.
1236
+
1237
+ ## [5.2.3] - 09-07-2015
1238
+
1239
+ Added bugfixes from 5.1.4 and 5.1.5 that were missed in earlier 5.2.x releases:
1240
+ - `AssociationProxy` now responds to `serializable_hash` so that `include` can be used in `render json` in Rails controllers
1241
+ - Fixed errors when trying to call `#{association}_ids=` on an unpersisted node with UUIDs or an array thereof.
1242
+ - Removed extra Cypher query to replace relationships when working with unpersisted nodes and association=.
1243
+ - Bug related to Rails reloading an app and returning nodes without first reinitializing models, resulting in CypherNodes.
1244
+
1245
+ ## [5.2.2] - 09-06-2015
1246
+
1247
+ ### Fixed
1248
+ - Fixed setting of association(_id|_ids) on .create
1249
+
1250
+ ## [5.2.1] - 09-04-2015
1251
+
1252
+ ### Fixed
1253
+ - Now possible to configure `record_timestamps` with rails `config`
1254
+
1255
+ ## [5.2.0] - 08-30-2015
1256
+
1257
+ ### Added
1258
+ - `props_for_persistence`, `props_for_create`, `props_for_update` instance methods for all nodes and rels. Each returns a hash with properties appropriate for sending to the database in a Cypher query to create or update an object.
1259
+ - Added `record_timestamps` configuration do default all `ActiveNode` and `ActiveRel` models to have `created_at` and `updated_at` timestamps (from #939, thanks @rebecca-eakins)
1260
+ - Added `timestamp_type` configuration to specify how timestamps should be stored (from #939, thanks @rebecca-eakins)
1261
+
1262
+ ### Changed
1263
+ - Methods related to basic node and rel persistence (`save`, `create_model`, `_create_node`, others) were refactored to make the processes simpler, clearer, and slightly faster.
1264
+ - Unit test directory structure was rearranged to mirror the `lib` directory.
1265
+
1266
+ ## [5.1.3] - 08-23-2015
1267
+
1268
+ ### Fixed
1269
+ - `has_one` associations are now properly cached (like `has_many` associations)
1270
+ - `QueryProxy` now responds to `#to_ary`. Fixes integration with ActiveModelSerializer gem
1271
+
1272
+
1273
+ ## [5.1.2] - 08-20-2015
1274
+
1275
+ ### Fixed
1276
+ - When association has `model_class` and `type: false` the association doesn't work (see: https://github.com/neo4jrb/neo4j/pull/930)
1277
+
1278
+ ## [5.1.1] - 08-19-2015
1279
+
1280
+ ### Fixed
1281
+ - Fixed a bug where the `Neo4j::Timestamps` mixin was not able to be included
1282
+
1283
+ ## [5.1.0.rc.3] - 08-17-2015
1284
+
1285
+ ### Fixed
1286
+ - Associations defined in ActiveNode models will delegate `unique?` to the model set in `rel_class`. This makes it easier for the rel class to act as the single source of truth for relationship behavior.
1287
+
1288
+ ### Added
1289
+ - ActiveRel: `#{related_node}_neo_id` instance methods to match CypherRelationship. Works with start/from and end/to.
1290
+ - ActiveRel: `type` now has a new alias, `rel_type`. You might recognize this from the `(Cypher|Embedded)Relationship` class and ActiveNode association option.
1291
+ - Contributing to the gem? Rejoice, for it now supports [Dotenv](https://github.com/bkeepers/dotenv).
1292
+
1293
+ ## [5.1.0.rc.2] - 08-16-2015
1294
+
1295
+ ### Added
1296
+ - Ability to use `#where_not` method on `ActiveNode` / `QueryProxy`
1297
+
1298
+ ## [5.1.0.rc.1] - 08-14-2015
1299
+
1300
+ ### Fixed
1301
+ - Added a `before_remove_const` method to clear cached models when Rails `reload!` is called. 5.0.1 included a workaround but this appears to cut to the core of the issue. See https://github.com/neo4jrb/neo4j/pull/855.
1302
+ - To prevent errors, changing an index to constraint or constraint to index will drop the existing index/constraint before adding the new.
1303
+ - Fixed `AssociationProxy#method_missing` so it properly raises errors.
1304
+
1305
+ ### Added
1306
+ - Added ability to view `model_class` from `Association` class for `rails_admin` Neo4j adapter
1307
+ - QueryProxy `where` will now look for declared properties matching hash keys. When found, it will send the value through that property's type converter if the type matches the property's unconverted state.
1308
+ - Improved handling of unpersisted nodes with associations. You can now use `<<` to create associations between unpersisted nodes. A `save` will cascade through unpersisted objects, creating nodes and rels along the way. See https://github.com/neo4jrb/neo4j/pull/871
1309
+ - Support formatted cypher queries for easy reading by humans via the `pretty_logged_cypher_queries` configuration variable
1310
+ - Ability to query for just IDs on associations
1311
+ - On `QueryProxy` objects you can now use an `:id` key in `where` and `find_by` methods to refer to the property from `id_property` (`uuid` by default)
1312
+ - Added `ActiveRel.creates_unique` and deprecated `ActiveRel.creates_unique_rel`
1313
+ - Added #inspect method to ActiveRel to show Cypher-style representation of from node, to node, and relationship type
1314
+ - Added `Neo4j::Timestamps`, `Neo4j::Timestamps::Created`, and `Neo4j::Timestamps::Updated` mixins to add timestamp properties to `ActiveNode` or `ActiveRel` classes
1315
+
1316
+ ### Changed
1317
+
1318
+ - Methods related to ActiveNode's IdProperty module were refactored to improve performance and simplify the API. Existing `default_properties` methods were reworked to reflect their use as-implemented: storage for a single default property, not multiple.
1319
+ - Implementation adjustments that improve node and rel initialization speed, particularly when loading large numbers of objects from the database.
1320
+
1321
+ ## [5.0.15] - 08-12-2015
1322
+
1323
+ ### Fixed
1324
+
1325
+ - `reload!` within Rails apps will work correctly. An earlier release included a workaround but this uses ActiveModel's system for clearing caches to provide a more thorough resolution.
1326
+
1327
+ ## [5.0.14] - 08-09-2015
1328
+
1329
+ ### Fixed
1330
+
1331
+ - Calling `all` on a QueryProxy chain would cause the currently set node identity within Cypher to be lost.
1332
+
1333
+ ## [5.0.13] - 08-07-2015
1334
+
1335
+ ### Fixed
1336
+ - Backport AssociationProxy#method_missing fix to raise errors on invalid methods
1337
+ - Fix the count issue on depth two associations (#881)
1338
+
1339
+ ## [5.0.12] - ?
1340
+
1341
+ ### Fixed
1342
+ - Break between associations so that potential `where` clauses get applied to the correct `(OPTIONAL )MATCH` clause
1343
+
1344
+ ### Fixed
1345
+ - Delegate `first` and `last` from `AssociationProxy` to `QueryProxy`
1346
+ - Fix `order` behavior for `first` and `last` in `QueryProxy`
1347
+
1348
+ ## [5.0.11] - ?
1349
+
1350
+ ### Fixed
1351
+ - Delegate `first` and `last` from `AssociationProxy` to `QueryProxy`
1352
+ - Fix `order` behavior for `first` and `last` in `QueryProxy`
1353
+
1354
+ ## [5.0.10] - 2015-07-31
1355
+
1356
+ ### Fixed
1357
+ - Fix what should have been a very obvious bug in `_active_record_destroyed_behavior` behavior
1358
+ - Add eager loading to QueryProxy so that it works in all expected places
1359
+
1360
+ ## [5.0.9] - 2015-07-29
1361
+
1362
+ ### Fixed
1363
+ - "NameError: uninitialized constant Class::Date" (https://github.com/neo4jrb/neo4j/issues/852)
1364
+
1365
+ ## [5.0.8] - 2015-07-26
1366
+
1367
+ ### Changed
1368
+ - Copied QueryClauseMethods doc from master
1369
+
1370
+ ## [5.0.7] - 2015-07-26
1371
+
1372
+ ### Changed
1373
+ - Copied `docs` folder from master because a lot of work had gone into the docs since 5.0.0 was released
1374
+
1375
+ ## [5.0.6] - 2015-07-22
1376
+
1377
+ ### Fixed
1378
+ - Fix query logging so that by default it only outputs to the user in the console and development server. Logger can be changed with `neo4j.config.logger` configuration option
1379
+
1380
+ ## [5.0.5] - 2015-07-19
1381
+
1382
+ ### Added
1383
+ - Added `log_cypher_queries` configuration option so that queries aren't on by default but that they can be controlled
1384
+
1385
+ ## [5.0.4] - 2015-07-17
1386
+
1387
+ ### Fixed
1388
+ - Fixed bug which caused `QueryProxy` context to repeat (showed up in query logging)
1389
+
1390
+ ## [5.0.3] - 2015-07-14
1391
+
1392
+ ### Changed
1393
+ - Moved `#with_associations` method from `AssociationProxy` to `QueryProxy` so that all `QueryProxy` chains can benefit from it.
1394
+ - Added `_active_record_destroyed_behavior` semi-hidden configuration variable so that behavior for `ActiveNode#destroyed?` and `ActiveRel#destroyed?` can be changed to upcoming 6.0.0 behavior (matching ActiveRecord) where the database is not accessed.
1395
+
1396
+ ## [5.0.2] - 2015-06-30
1397
+
1398
+ ### Fixed
1399
+ - Fix error when calling `#empty?` or `#blank?` on a query chain with on `order` specified
1400
+ - Make `#find_each` and `#find_in_batches` return the actual objects rather than the result objects
1401
+ - Query logging on console should be to STDOUT with `puts`. Using `Rails.logger` outputs to the file in the `log` directory
1402
+ - Modified queryproxy include? to accept a uuid instead of full node
1403
+
1404
+ ## [5.0.1] - 2015-06-23
1405
+
1406
+ ### Fixed
1407
+ - Longstanding bug that would prevent association changes (`<<` and ActiveRel.create) in Rails after `reload!` had been called, see https://github.com/neo4jrb/neo4j/pull/839
1408
+ - ActiveNode#inspect wasn't displaying the id_property
1409
+ - Default property values and magic typecasting not being inherited correctly
1410
+
1411
+ ### Changed
1412
+ - In the absense of a `model_class` key, associations defined in ActiveNode models will use `from_/to_class` defined in `rel_class` to find destination. (Huge thanks to @olance, #838)
1413
+ - ActiveRel's DSL was made a bit friendlier by making the `type`, `from_class` and `to_class` methods return their set values when called without arguments.
1414
+ - Reworked ActiveRel's wrapper to behave more like ActiveNode's, removing some duplicate methods and moving others to Neo4j::Shared, resulting in a big performance boost when returning large numbers of rels.
1415
+ - Updated gemspec to require neo4j-core 5.0.1+
1416
+
1417
+ ### Added
1418
+ - ActiveRel was given `find_or_create_by`, usable across single associations.
1419
+
1420
+ ## [5.0.0] - 2015-06-18
1421
+
1422
+ ### Fixed
1423
+ - Prevented `to_key` from requiring an extra DB query. (See https://github.com/neo4jrb/neo4j/pull/827)
1424
+
1425
+ ### Added
1426
+ - QueryProxy associations accept `labels: false` option to prevent generated Cypher from using labels.
1427
+
1428
+ ### Changed
1429
+ - Properties explicitly set to type `Time` will no longer be converted to `DateTime`.
1430
+
1431
+ ## [5.0.0.rc.3] - 2015-06-07
1432
+
1433
+ ### Fixed
1434
+ - Associations now allow `unique` option. Error handling is generalized to make this testable (Thanks to @olance, see #824)
1435
+
1436
+ ## [5.0.0.rc.2] - 2015-05-20
1437
+
1438
+ ### Changed
1439
+ - Set Ruby version requirement back to 1.9.3 because of problems with JRuby
1440
+
1441
+ ## [5.0.0.rc.1] - 2015-05-20
1442
+
1443
+ ### Changed
1444
+ - Ruby 2.0.0 now required (>= 2.2.1 is recommended)
1445
+ - All `ActiveNode` associations now require either a `type`, `origin`, or `rel_class` option. Only one is allowed
1446
+ - Defining associations will fail if unknown options are used (#796)
1447
+ - `Model#find` fails if no node found (`Model#find_by` available when `nil` result desired) (#799)
1448
+ - `#find_or_create` and `#merge` model class methods have been added
1449
+ - Ensuring that all model callbacks are happening within transactions
1450
+ - Major refactoring using `rubocop` with a lot of focus on speed improvements
1451
+ - Specifically when loading many nodes at once we've measured 3x speed improvements
1452
+
1453
+ ### Fixed
1454
+ - `#find` on `QueryProxy` objects now does a model `find` rather than an `Enumerable` find
1455
+ - Subclassed model classes now both create and query against it's ancestor's labels in addition to it's own (#690)
1456
+ - `#first` and `#last` now work property when precedend by an `#order` in a `QueryProxy` chain (#720)
1457
+ - `#count` when called after `#limit` will be performed within the bounds of limit specified
1458
+
1459
+ ### Added
1460
+ - Eager Loading is now supported! See: [http://neo4jrb.readthedocs.org/en/latest/ActiveNode.html#eager-loading]
1461
+ - Associations now return `AssociationProxy` objects (which are `Enumerable`) which have convenient `#inspect` methods for cleaner viewing in the Ruby console
1462
+ - `model_class` key on associations now supports an Array (#589)
1463
+ - When using `all` inside of a class method an argument for the node name can now be passed in (#737)
1464
+ - Query(Proxy) syntax of `where("foo = ?", val)` and `where("foo = {bar}", bar: val)` now supported (#675)
1465
+ - `module_handling` config option now available to control how class module namespaces translate to Neo4j labels (#753) (See: [http://neo4jrb.readthedocs.org/en/latest/Configuration.html])
1466
+ - `#id_property` method has new `constraints` option to disable automatic uuid constraint (#738/#736)
1467
+
1468
+ (There are probably other changes too!)
1469
+
1470
+ **Changes above this point should conform to [http://keepachangelog.com/]**
1471
+
1472
+ ## [4.1.2]
1473
+ - Fixes two bugs related to inheritance: one regarding ActiveRel classes and relationship types, the other regarding ActiveNode primary_key properties not being set when a model is loaded prior to Neo4j session.
1474
+
1475
+ ## [4.1.1]
1476
+ - Switches use of Fixnum to Integer to improve 32-bit support
1477
+
1478
+ ## [4.1.0]
1479
+ This release includes many performance fixes and new features. The most notable:
1480
+ - Huge stylist cleanup/refactoring by Brian on the entire gem by Brian armed with Rubocop. See http://neo4jrb.io/blog/2014/12/29/stay-out-of-trouble.html.
1481
+ - Every node create, update, and destroy is now wrapped in a transaction. See http://neo4jrb.io/blog/2015/01/06/transactions_everywhere.html.
1482
+ - New `dependent` options for associations: `:delete`, `:destroy`, `:delete_orphans`, `:destroy_orphans`. See http://neo4jrb.io/blog/2015/01/07/association_dependent_options.html.
1483
+ - New `unique: true` option for associations, `creates_unique_rel` class method for ActiveRel. Both of these will result in relationship creation Cypher using "CREATE UNIQUE" instead of "CREATE".
1484
+ - Fixed an n+1 query issue during node creation and update.
1485
+ - Dieter simplified some code related to frozen attributes. See https://github.com/neo4jrb/neo4j/pull/655.
1486
+ We now have a new website online at http://neo4jrb.io! Keep an eye on it for news and blogs related to this and other projects.
1487
+
1488
+ ## [4.0.0]
1489
+ - Change neo4j-core dependency from 3.1.0 to 4.0.0.
1490
+
1491
+ ## [4.0.0.rc.4]
1492
+ - _classname property is disabled by default for ActiveRel! It had been disabled for ActiveNode, this just evens the score.
1493
+ - Fixes a bug to create better `result` labels in Cypher.
1494
+ - Made the `delete_all` and `destroy_all` ActiveNode class methods consistent with their ActiveRecord counterparts. `destroy_all` previously performed its deletes in Cypher but it should have been returning nodes to Ruby and calling `destroy`. `delete_all` didn't exist at all.
1495
+
1496
+ ## [4.0.0.rc.3]
1497
+ Released minutes after rc.2 to catch one late addition!
1498
+ - Adds serialization support for QueryProxy.
1499
+
1500
+ ## [4.0.0.rc.2]
1501
+ This release builds on features introduced in the first RC. We are releasing this as another RC because the API may be tweaked before release.
1502
+ - New `proxy_as` for Core::Query to build QueryProxy chains onto Core::Query objects!
1503
+ - Using `proxy_as`, new `optional` method in QueryProxy to use the `OPTIONAL MATCH` Cypher function.
1504
+ - `match_to` and methods that depend on it now support arrays of nodes or IDs.
1505
+ - New `rels_to`/`all_rels_to` methods.
1506
+ - New `delete` and `destroy` methods in QueryProxy to easily remove relationships.
1507
+ - Serialized objects will include IDs by default.
1508
+
1509
+ ## [4.0.0.rc.1]
1510
+ This release introduces API changes that may be considered breaking under certain conditions. See See https://github.com/neo4jrb/neo4j/wiki/Neo4j.rb-v4-Introduction.
1511
+ Please use https://github.com/neo4jrb/neo4j/issues for support regarding this update! You can also reach us on Twitter: @neo4jrb (Brian) and @subvertallmedia (Chris).
1512
+ - Default behavior changed: relationship types default to all caps, no prepending of "#". This behavior can be changed.
1513
+ - ActiveRel models no longer require explicit calling of `type`. When missing, the model will infer a type using the class name following the same rules used to determine automatic relationship types from ActiveNode models.
1514
+ - _classname properties will not be added automatically if you are using a version Neo4j >= 2.1.5. Instead, models are found using labels or relationship type. This is a potentially breaking change, particularly where ActiveRel is concerned. See the link at the beginning of this message for the steps required to work around this.
1515
+ - Query scopes are now chainable! Call `all` at the start of your scope or method to take advantage of this.
1516
+ - Changes required for Neo4j 2.2.
1517
+ - Support for custom typecasters.
1518
+ - New method `rel_where`, expanded behavior of `match_to` and `first_rel_to`
1519
+ - Implemented ActiveSupport load hooks.
1520
+ - Assorted performance improvements and refactoring.
1521
+
1522
+ ## [3.0.4]
1523
+ - Gemspec requires the latest neo4j-core.
1524
+ - Fixed a pagination bug — thanks, @chrisgogreen!
1525
+ - New QueryProxy methods `match_to` and `first_rel_to` are pretty cool.
1526
+ - include_root_in_json is now configurable through config.neo4j.include_root_in_json or Neo4j::Config[:include_root_in_json]. Also cool.
1527
+ - There's a new `delete_all` method for QueryProxy, too.
1528
+ - @codebeige removed the `include?` class method, which was smart.
1529
+ - Did I mention we won an award from Neo Tech? Check it out. https://github.com/neo4jrb/neo4j#welcome-to-neo4jrb
1530
+
1531
+ ## [3.0.3]
1532
+ - Gemspec has been updated to require neo4j-core 3.0.5
1533
+ - Added `find_in_batches`
1534
+ - Pagination has been updated to allow better ordering. Relaunch of neo4j-will_paginate as neo4j-will_paginate_redux is imminent!
1535
+ - Everything is better: `create`'s handling of blocks, better behavior from `count`, better ActiveRel from_class/to_class checks, better handling of rel_class strings, and more
1536
+ - Added a new find_or_create_by class method
1537
+
1538
+ Big thanks to new contributors Miha Rekar and Michael Perez! Also check out or Github issues, where we're discussing changes for 3.1.0. https://github.com/neo4jrb/neo4j/issues
1539
+
1540
+ ## [3.0.2]
1541
+ - "Model#all" now evaluates lazily, models no longer include Enumerable
1542
+ - Faster, more efficient uniqueness validations
1543
+ - Adjusted many common queries to use params, will improve performance
1544
+ - ActiveRel fixes: create uses Core Query instead of Core's `rels` method, `{ classname: #{_classname} }` no longer inserted into every query, find related node IDs without loading the nodes
1545
+ - Allow inheritance when checking model class on a relation (Andrew Jones)
1546
+ - Provided migrations will use Rake.original_dir instead of Rails.env to provide better compatibility with frameworks other than Rails
1547
+ - rel_class option in ActiveNode models will now accept string of a model name
1548
+ - Additional bug fixes
1549
+
1550
+ ## [3.0.1]
1551
+ - Removed reference to neo4j-core from Gemfile and set neo4j.gemspec to use neo4j-core ~>3.0.0
1552
+
1553
+ ## [3.0.0]
1554
+ No change from rc 4
1555
+
1556
+ ## [3.0.0.rc.4]
1557
+ - UUIDs are now automatically specified on models as neo IDs won't be reliable
1558
+ in future versions of neo4j
1559
+ - Migrations now supported (including built-in migrations to migrate UUIDs and
1560
+ insert the _classname property which is used for performance)
1561
+ - Association reflection
1562
+ - Model.find supports ids/node objects as well as arrays of id/node objects
1563
+ - rake tasks now get automatically included into rails app
1564
+
1565
+
1566
+ ## [3.0.0.rc.3]
1567
+ - thread safety improvements
1568
+ - scope and general refactoring
1569
+ - Added ability to create relationships on init (persisted on save)
1570
+
1571
+ ## [3.0.0.rc.2]
1572
+ - Use newer neo4j-core release
1573
+
1574
+ ## [3.0.0.rc.1]
1575
+ - Support for count, size, length, empty, blank? for has_many relationship
1576
+ - Support for rails logger of cypher queries in development
1577
+ - Support for distinct count
1578
+ - Optimized methods: https://github.com/andreasronge/neo4j/wiki/Optimized-Methods
1579
+ - Queries should respect mapped label names (#421)
1580
+ - Warn if no session is available
1581
+ - Fix broken == and equality (#424)
1582
+
1583
+ ## [3.0.0.alpha.11]
1584
+ - Bug fixes
1585
+
1586
+ ## [3.0.0.alpha.10]
1587
+ - ActiveRel support, see Wiki pages (chris #393)
1588
+
1589
+ ## [3.0.0.alpha.9]
1590
+ - Complete rewrite of the query api, see wiki page (#406, chris, brian)
1591
+ - Performance improvements (#382,#400, #402, chris)
1592
+ - idproperty - user defined primary keys (#396,#389)
1593
+ - Reimplementation of Neo4j::Config
1594
+ - Serialization of node properties (#381)
1595
+ - Better first,last syntax (#379)
1596
+
1597
+ ## [3.0.0.alpha.8]
1598
+ - Integration with new Query API from neo4j-core including:
1599
+ - - .query_as and #query_as methods to get queries from models (#366)
1600
+ - - .qq method for QuickQuery syntax ( https://github.com/andreasronge/neo4j/wiki/Neo4j-v3#quickquery-work-in-progress / #366)
1601
+ - Before and after callbacks on associations (#373)
1602
+ - .find / .all / .count changed to be more like ActiveRecord
1603
+ - .first / .last methods (#378)
1604
+ - .find_by / .find_by! (#375)
1605
+
1606
+ ## [3.0.0.alpha.7]
1607
+ - Bug fix uniqueness-validator (#356 from JohnKellyFerguson)
1608
+ - Many improvements, like update_attributes and validation while impl orm_adapter, Brian Underwood
1609
+ - Impl orm_adapter API for neo4j so it can be used from for example devise, Brian Underwood (#355)
1610
+ - Fix of inheritance of Neo4j::ActiveNode (#307)
1611
+ - Expose add_label, and remove_label (#335)
1612
+ - Fixed auto loading of classes bug, (#349)
1613
+ - Bumped neo4j-core, 3.0.0.alpha.16
1614
+
1615
+ ## [3.0.0.alpha.6]
1616
+ - Support for Heroku URLs, see wiki https://github.com/andreasronge/neo4j/wiki/Neo4j-v3 (#334)
1617
+
1618
+ ## [3.0.0.alpha.5]
1619
+ - Added allow session options via 'config.neo4j.session_options' so it can run on heroku (#333)
1620
+ - Relaxed Dependencies for Rails 4.1 (#332)
1621
+ - Using neo4j-core version 3.0.0.alpha.12
1622
+
1623
+ ## [3.0.0.alpha.4]
1624
+ - Implemented validates_uniqueness_of (#311)
1625
+ - Using neo4j-core version 3.0.0.alpha.11
1626
+
1627
+ ## [3.0.0.alpha.3]
1628
+ - Support for rails scaffolds
1629
+ - Support for created_at and updated_at (#305)
1630
+ - Support for ability to select a session to use per model (#299)
1631
+ - BugFix: updating a model should not clear out old properties (#296)
1632
+
1633
+ ## [3.0.0.alpha.2]
1634
+ - Support for both embedded (only JRuby) and server API (runs on MRI Ruby !)
1635
+ - Simple Rails app now work
1636
+ - Support for has_n and has_one method
1637
+ - ActiveModel support, callback, validation
1638
+ - Declared properties (via active_attr gem)
1639
+
1640
+ ## [2.3.0 / 2013-07-18]
1641
+ - Fix Issue with HA console when ruby-debug is loaded (#261, thekendalmiller)
1642
+ - Use 1.9 Neo4j
1643
+
1644
+ ## [2.2.4 / 2013-05-19]
1645
+ - get_or_create should return wrapped ruby nodes, alex-klepa, #241, #246
1646
+ - Make sure freeze does not have side effects, #235
1647
+ - Fix for carrierwave-neo4j (attribute_defaults), #235
1648
+
1649
+ ## [2.2.3 / 2012-12-28]
1650
+ - Support for HA cluster with neo4j 1.9.X, #228, #99, #223
1651
+ - Make sure the Identity map is cleared after an exception, #214
1652
+ - Relationship other_node should return wrapped node, #226
1653
+ - Automatically convert DateTimes to UTC, (neo4j-wrapper #7)
1654
+ - get_or_create should return a wrapped node (neo4j-wrapper #8)
1655
+ - Make it work with Neo4j 1.7.1 (neo4j-core, #19)
1656
+
1657
+ ## [2.2.2 - skipped]
1658
+
1659
+ ## [2.2.1 / 2012-12-18]
1660
+ - Fix for JRuby 1.7.1 and Equal #225
1661
+ - Fix for create nodes and relationship using Cypher (neo4j-core #17)
1662
+
1663
+ ## [2.2.0 / 2012-10-02]
1664
+ - Using neo4j-cypher gem (1.0.0)
1665
+ - Fix of neo4j-core configuration issue using boolean values #218
1666
+ - Fixed RSpec issue on JRuby 1.7.x #217
1667
+ - Aliased has_many to has_n, #183
1668
+
1669
+ ## [2.2.0.rc1 / 2012-09-21]
1670
+ - Use neo4j-core and neo4j-wrapper version 2.2.0.rc1
1671
+ - Use the neo4j-cypher gem
1672
+ - Better support for Orm Adapter, #212
1673
+ - Use Cypher query when finder method does not have a lucene index, #210
1674
+
1675
+ ## [2.0.1 / 2012-06-06]
1676
+ - Use neo4j-core and neo4j-wrapper version 2.0.1
1677
+
1678
+ ## [2.0.0 / 2012-05-07]
1679
+ (same as rc2)
1680
+
1681
+ ## [2.0.0.rc2 / 2012-05-04]
1682
+ - Enable Identity Map by default
1683
+ - Added versioning for Neo4j::Core
1684
+
1685
+ ## [2.0.0.rc1 / 2012-05-03]
1686
+ - Fix of rake task to upgrade to 2.0
1687
+ - Various Cypher DSL improvements, core(#3,#4,#5), #196
1688
+ - Added Neo4j::VERSION
1689
+
1690
+ ## [2.0.0.alpha.9 / 2012-04-27]
1691
+ - Fix for rails scaffold generator
1692
+
1693
+ ## [2.0.0.alpha.8 / 2012-04-27]
1694
+ - Fix for "relationship to :all assigned twice for single instance" #178
1695
+ - Fix for callback fire more then once (=> performance increase) #172
1696
+ - Support for lucene search on array properties, #118
1697
+ - Support for creating unique entities (get_or_create) #143
1698
+ - Support for specifying has_n/has_one relationship with Strings instead of Class #160
1699
+ - Support for serializer of hash and arrays on properties #185
1700
+ - Fix for Neo4j::Rails::Relationship default property, #195
1701
+ - Added support for pagination, see the neo4j-will_paginate gem
1702
+ - Fixed Rails generators
1703
+ - Added Cypher DSL support for is_a?
1704
+ - Fix for "write_attribute persistes, contrary to AR convention" closes #182
1705
+
1706
+ ## [2.0.0.alpha.7 / 2012-04-19]
1707
+ - fix for Neo4j::Config bug - did not work from rails to set the db location, closes #191
1708
+ - has_n and has_one method generate class method returning the name of the relationship as a Symbol, closes #170
1709
+ - Raise exception if trying to index boolean property, closes #180
1710
+ - Made start_node= and end_node= protected closes 186
1711
+ - Support for things like @dungeon.monsters.dangerous { |m| m[:weapon?] == 'sword' } closes #181
1712
+
1713
+ ## [2.0.0.alpha.6 / 2012-04-15]
1714
+ - Complete rewrite and smaller change of API + lots of refactoring and better RSpecs
1715
+ - Moved code to the neo4j-core and neo4j-wrapper gems
1716
+ - Changed API - index properties using the Neo4j::Rails::Model (property :name, :index => :exact)
1717
+ - Changed API - rel_type always returns a Symbol
1718
+ - Changed API - #rels and #rel first parameter is always :outgoing, :incoming or :both
1719
+ - Cypher DSL support, see neo4j-core
1720
+ - Made the Lucene indexing more flexible
1721
+ - Renamed size methods to count since it does simply count all the relationships (e.g. Person.all.count)
1722
+ - Modularization - e.g. make it possible to create your own wrapper
1723
+ - Added builder method for has_one relationships (just like ActiveRecord build_best_friend)
1724
+
1725
+ ## [2.0.0.alpha.5 / 2012-03-27]
1726
+ - Fix for HA/cluster bug [#173]
1727
+ - Upgrade to neo4j-community jars 1.7.0.alpha.1
1728
+ - Fix for rails 3.2 [#131]
1729
+ - Fix for BatchInserter bug, [#139]
1730
+ - Added rake task for upgrading [#116]
1731
+ - Added scripts for upgrading database [#116]
1732
+
1733
+ ## [2.0.0.alpha.4 / 2012-01-17]
1734
+ - Fix node and rel enumerable for JRuby 1.9, Dmytrii Nagirniak
1735
+ - Remove the will_paginate and move it to a separate gem Dmytrii Nagirniak, [#129][#132]
1736
+ - Use type converter to determine how to handle multi-param attributes, Dmyitrii Nagirniak [#97]
1737
+ - Set default storage_path in Rails to db [#96]
1738
+ - Fix numeric Converter with nils and Float converter, Dmytrii Nagirniak
1739
+ - Fix Neo4j::Rails::Model.find incorrect behavior with negative numbers, Dmytrii Nagirniak [#101]
1740
+ - Allow to use symbols in batch inserter [#104]
1741
+ - Split neo4j-jars gem into three jars, community,advanced&enterprise
1742
+
1743
+ == 2.0.0.alpha.1 / 2012-01-11
1744
+ - Split JARS into a separate gem (neo4j-jars) [#115]
1745
+ - Changed prefix of relationships so that it allows having incoming relationships from different classes with different relationship names. Migration is needed to update an already existing database - see issue #116. [#117]
1746
+ - Fix for undefined method 'add_unpersited_outgoing_rel' [#111]
1747
+ - Fix for Rails models named Property [#108] (Vivek Prahlad)
1748
+
1749
+
1750
+ == 1.3.1 / 2011-12-14
1751
+ - Make all relationships visible in Rails callback (rspecs #87, Dmytrii Nagirniak) [#211]
1752
+ - Enable travis to build JRuby 1.9 (pull #87, Dmytrii Nagirniak) [#214]
1753
+ - Support for composite lucene queries with OR and NOT (pull #89, Deepak N)
1754
+ - Enforce the correct converter on a property type when the type is given (pull #86, Dmytrii Nagirniak)
1755
+ - Development: make it easier to run RSpecs and guard (pull #85, Dmytrii Nagirniak)
1756
+ - Added ability to disable observer (pull #84, Dmytrii Nagirniak)
1757
+ - Fixing multiple assignment of has_one assocaition (pull #83 Deepak N)
1758
+ - Accept association_id for has_one assocations (pull #82, Deepak N)
1759
+ - Upgrade to 1.6.M01 Neo4j java jars [#209]
1760
+ - Defer warning message 'Unknown outgoing relationship' (pull #81, Vivek Prahlad)
1761
+ - Added string converter, e.g. property :name, :type => String (pull #80, Dmytrii Nagirniak)
1762
+ - Added symbol converter e.g. property :status, :type => Symbol (pull #79, Dmytrii Nagirniak) [#205]
1763
+
1764
+ == 1.3.0 / 2011-12-06
1765
+ - Added neo4j-upgrade script to rename lucene index files and upgrade to 1.5 [#197]
1766
+ - Expose Neo4j::NodeMixin#index_types returning available indices (useful for Cypher queries) [#194]
1767
+ - The to_other method is now available also in the Neo4j::Rails API [#193]
1768
+ - Expose rel_type method for Neo4j::Rails::Relationship [#196]
1769
+ - Support for breadth and depth first traversals [#198]
1770
+ - Support for cypher query [#197]
1771
+ - Fix for rule node concurrency issue (pull #78, Vivek Prahlad)
1772
+ - Bugfix for the uniqueness validation for properties with quotes (pull #76, Vivek Prahlad)
1773
+ - More performance tweaks (pull #75, #77, Vivek Prahlad)
1774
+ - Fixing add_index for properties other than type string (pull #74, Deepak N)
1775
+ - Significant performance boost for creating large numbers of models in a transaction (pull #73, Vivek Prahlad)
1776
+ - Upgrade to neo4j 1.5 jars (pull #72, Vivek Prahlad)
1777
+ - Fix for assigning nil values to incoming has_one relation (pull #70, Deepak N)
1778
+ - Support for revert and fixes for Neo4j::Rails::Versioning (pull #71, Vivek Prahlad)
1779
+
1780
+ == 1.2.6 / 2011-11-02
1781
+ - Generators can now generate relationships as well [#195]
1782
+ - Better will_paginate support for Neo4j::Rails::Model [#194]
1783
+ - Fixing updated_at to be set only if model has changed (pull #68, Deepak N)
1784
+ - Bringing back changes removed during identiy map to fix bug [#190] (Deepak N)
1785
+ - Fixing updated_at to be set only if model has changed, using callbacks instead of overriding method for stamping time (Deepak N)
1786
+ - Added versioning support (pull #67) (Vivek Prahlad)
1787
+
1788
+ == 1.2.5 / 2011-10-21
1789
+ - Faster traversals by avoiding loading Ruby wrappers (new method 'raw' on traversals) [#189]
1790
+ - Support for IdentityMap [#188]
1791
+ - Improved performance in event handler (Vivek Prahlad)
1792
+ - Fixing issue with validates_presence_of validation (Vivek Prahlad)
1793
+ - Implemented compositions support on Neo4j::Rails::Relationship (Kalyan Akella)
1794
+ - Added after_initialize callback (Deepak N)
1795
+ - Fixed performance issues on node deleted (Vivek Prahlad)
1796
+ - Fixed a performance issue in the index_registry (Vivek Prahlad)
1797
+ - Fixed uniqueness validation for :case_sensitive => false (Vivek Prahlad)
1798
+ - Fixed update_attributes deleting relations when model is invalid (Deepak N)
1799
+ - Fixed timestamp rails generator (Marcio Toshio)
1800
+
1801
+ == 1.2.4 / 2011-10-07
1802
+ - Support for traversing with Neo4j::Node#eval_paths and setting uniqueness on traversals [#187]
1803
+ - Removed unnecessary node creation on database start up (class nodes attached to reference node) (Vivek Prahlad)
1804
+ - Safer multitenancy - automatically reset the reference node in thread local context after each request using rack middleware
1805
+ - Bugfixes for multitenancy (Deepak N and Vivek Prahlad)
1806
+
1807
+ == 1.2.3 / 2011-10-01
1808
+ - Multitenancy support by namespaced-indices & changeable reference node (Vivek Prahlad, pull 41)
1809
+ - Added a Neo4j::Rails::Model#columns which returns all defined properties [#186]
1810
+ - Fixed validation associated entities, parent model should be invalid if its nested model(s) is invalid (Vivek Prahlad)
1811
+ - Fixed property validation to read value before conversion as per active model conventions (Deepak N)
1812
+ - Fixed property_before_type_cast for loaded models (Deepak N)
1813
+ - Better support for nested models via ActionView field_for [#185]
1814
+ - BUG: fix for null pointer issue after delete_all on Neo4j::Rails::Model#has_n relationships (Vivek Prahlad)
1815
+ - BUG: init_on_create was not called when creating a new relationship via the << operator [#183]
1816
+
1817
+ == 1.2.2 / 2011-09-15
1818
+ - Added compositions support for rails mode (Deepak N)
1819
+ - Added support for nested transactions at the Rails model level (Vivek Prahlad)
1820
+ - Fixing issue where save for invalid entities puts them into an inconsistent state (Vivek Prahlad)
1821
+ - Fix for issue with save when validation fails (Vivek Prahlad)
1822
+ - Fix for accepts_nested_attributes_for when the associated entities are created before a new node (Vivek Prahlad)
1823
+ - Fix to allow has_one relationships to handle nil assignments in models (Vivek Prahlad)
1824
+ - Observers support for neo4j rails model using active model (Deepak N)
1825
+ - Override ActiveModel i18n_scope for neo4j (Deepak N)
1826
+ - Added finders similar to active record and mongoid (Deepak N)
1827
+ - Added find!, find_or_create_by and find_or_initialize_by methods, similar to active record finders (Deepak N)
1828
+
1829
+ == 1.2.1 / 2011-08-29
1830
+ - Fixed failing RSpecs for devise-neo4j gem - column_names method on neo4j orm adapter throws NoMethodError (thanks Deepak N)
1831
+
1832
+ == 1.2.0 / 2011-08-16
1833
+ - Upgrade to java library neo4j 1.4.1, see http://neo4j.rubyforge.org/guides/configuration.html
1834
+
1835
+ == 1.1.4 / 2011-08-10
1836
+ - Fixed dependency to will_paginate, locked to 3.0.pre4 (newly released 3.0.0 does not work yet with neo4j.rb)
1837
+
1838
+ == 1.1.3 / 2011-08-09
1839
+ - real recursive rule to the top class, subclasses with rules did not work (Frédéric Vanclef)
1840
+ - BUG: not able to create array properties on relationships (Pere Urbon)
1841
+ - BUG: lucene did not work if starting up neo4j in read only mode (like rails console when the rails is already running)
1842
+
1843
+ == 1.1.2 / 2011-06-08
1844
+ - Added configuration option 'enable_rules' to disable the _all relationships and custom rules [#176]
1845
+ - Added a #node method on the Neo4j::Node and Neo4j::NodeMixin. Works like the #rel method but returns the node instead. [#174]
1846
+ - Simplify creating relationship between two existing nodes [#175]
1847
+
1848
+ == 1.1.1 / 2011-05-26
1849
+ - Made neo4j compatible with rails 3.1.0.rc1 [#170]
1850
+ - Fix for neo4j-devise [#171]
1851
+ - BUG: Neo4j::GraphAlgo shortest path does raise exception if two nodes are not connected [#172]
1852
+
1853
+ == 1.1.0 / 2011-05-13
1854
+ - Support for embedding neo4j.rb by providing an already running db instance (#168)
1855
+ - Neo4j::Rails::Relationships should be ActiveModel compliant (#156)
1856
+ - Support for incoming relationships in Neo4j::Rails::Model (#157)
1857
+ - to_json method for models no tags √ resolved (#154)
1858
+ - Implement hash so that it will work with Sets (#160)
1859
+ - Modified the traverser to allow iterating over paths not just over end_nodes (#161)
1860
+ - Create method should take a block to initialize itself (#162)
1861
+ - Upgrade to 1.3 neo4j java library (#164)
1862
+ - Default `nodes' invocation for Algo path finders (#165)
1863
+ - Property and index class methods modified to take arbitrary number of symbols optionally followed by options hash (#166)
1864
+ - BUG: Setting property :system on Neo4j::Rails::Model should work (#163)
1865
+ - BUG: update_attributes should convert values according to Type (#155)
1866
+ - BUG: Neo4j::RelationshipMixin#relationship_type broken #(169)
1867
+ - BUG: Relationship.load(nil) == Relationship.load(0) (#167)
1868
+ - BUG: Full text search returns nil in rails model (#153)
1869
+
1870
+ ## [1.0.0 / 2011-03-02]
1871
+ - Complete rewrite of everything.
1872
+ - Replaced the lucene module with using the java neo4j-lucene integration instead
1873
+ - Lots of improvements of the API
1874
+ - Better ActiveModel/Rails integration
1875
+
1876
+ ## [0.4.4 / 2010-08-01]
1877
+ - Fixed bug on traversing when using the RelationshipMixin (#121)
1878
+ - BatchInserter and JRuby 1.6 - Fix iteration error with trying to modify in-place hash
1879
+
1880
+ ## [0.4.3 / 2010-04-10]
1881
+ - Fixed .gitignore - make sure that we do not include unnecessarily files like neo4j databases. Release 0.4.2 contained test data.
1882
+ - Added synchronize around Index.new so that two thread can't modify the same index at the same time.
1883
+
1884
+ ## [0.4.2 / 2010-04-08]
1885
+ - No index on properties for the initialize method bug (#116)
1886
+ - Tidy up Thread Synchronization in Lucene wrapper - lucene indexing performance improvement (#117)
1887
+ - Permission bug loading neo4j jar file (#118)
1888
+ - Spike: Make NodeMixin ActiveModel complient - experimental (#115)
1889
+
1890
+ ## [0.4.1 / 2010-03-11]
1891
+ - Migrations (#108)
1892
+ - BatchInserter (#111)
1893
+ - Neo4j::Relationship.new should take a hash of properties (#110)
1894
+ - Upgrade to neo4j-1.0 (#114)
1895
+ - Bigfix: has_one should replace old relationship (#106)
1896
+ - Bugfix: custom accessors for NodeMixin#update (#113)
1897
+ - Bugfix: Indexed properties problem on extented ruby classes critical "properties indexer" (#112)
1898
+
1899
+ ## [0.4.0 / 2010-02-06]
1900
+ - Performance improvements and Refactoring: Use and Extend Neo4j Java Classes (#97)
1901
+ - Support for Index and Declaration of Properties on Relationships (#91)
1902
+ - Upgrade to neo4j-1.0 rc (#100)
1903
+ - All internal properties should be prefix with a '_',0.4.0 (#105)
1904
+ - Generate relationship accessor methods for declared has_n and has_one relationships (#104)
1905
+ - New way of creating relationship - Neo4j::Relationship.new (#103)
1906
+ - Neo4j#init_node method should take one or more args (#98)
1907
+ - Namespaced relationships: has_one...from using the wrong has_n...to(#92)
1908
+ - Neo4j::NodeMixin and Neo4j::Node should allow a hash for initialization (#99)
1909
+
1910
+ ## [0.3.3 / 2009-11-25]
1911
+ - Support for a counter property on has_lists (#75)
1912
+ - Support for Cascade delete. On has_n, had_one and has_list (#81)
1913
+ - NodeMixin#all should work with inheritance - Child classes should have a relationship of their own. (#64)
1914
+ - Support for other lucene analyzer then StandardAnalyzer (#87)
1915
+ - NodeMixin initialize should accept block like docs (#82)
1916
+ - Add incoming relationship should work as expected: n1.relationships.incoming(:foo) << n2 (#80)
1917
+ - Delete node from a has_list relationship should work as expected (#79)
1918
+ - Improve stacktraces (#94)
1919
+ - Removed sideeffect of rspecs (#90)
1920
+ - Add debug method on NodeMixin to print it self (#88)
1921
+ - Removed to_a method (#73)
1922
+ - Upgrade to neo4j-1.0b10 (#95)
1923
+ - Upgrade to lucene 2.9.0 (#83)
1924
+ - Refactoring: RSpecs (#74)
1925
+ - Refactoring: aggregate each, renamed to property aggregator (#72)
1926
+ - BugFix: neo4j gem cannot be built from the source (#86)
1927
+ - BugFix: Neo4j::relationship should not raise Exception if there are no relationships (#78)
1928
+
1929
+ ## [0.3.2 / 2009-09-17]
1930
+ - Added support for aggregating nodes (#65)
1931
+ - Wrapped Neo4j GraphAlgo AllSimplePath (#70)
1932
+ - Added traversal with traversal position (#71)
1933
+ - Removed DynamicAccessors mixin, replaced by [] operator (#67)
1934
+ - Impl Neo4j.all_nodes (#69)
1935
+ - Upgrated Neo4j jar file to 1.0-b9
1936
+ - The Neo4j#relationship method now allows a filter parameter (#66)
1937
+ - Neo4j.rb now can read database not created by Neo4j.rb - does not require classname property (#63)
1938
+ - REST - added an "all" value for the depth traversal query parameter (#62)
1939
+ - REST - Performance improvments using the Rest Mixin (#60)
1940
+
1941
+ ## [0.3.1 / 2009-07-25]
1942
+ - Feature, extension - find path between given pair of nodes (#58)
1943
+ - Fix a messy exception on GET /nodes/UnknownClassName (#57)
1944
+ - Bug - exception on GET /nodes/classname/rel if rel is a has_one relationship (#56)
1945
+ - Bug: GET /nodes/classname missing out nodes with no properties (#55)
1946
+ - Bug: Lucene sorting caused exception if there were no documents (#54)
1947
+ - Bug: reindexer fails to connect nodes to the IndexNode (#53)
1948
+
1949
+ ## [0.3.0 / 2009-06-25]
1950
+ - Neo4j should track node changes
1951
+ - RESTful support for lucene queries, sorting and paging
1952
+ - RESTful support for Relationships
1953
+ - RESTful support for Node and properties
1954
+ - Experimental support for Master-Slave Replication via REST
1955
+ - RESTful Node representation should contain hyperlinks to relationships
1956
+ - Added some handy method like first and empty? on relationships
1957
+ - Use new neo4j: neo-1.0-b8
1958
+ - Add an event handler for create/delete nodes start/stop neo, update property/relationship
1959
+ - The NodeMixin should behave like a hash, added [] and []= methods
1960
+ - Support list topology - has_list and belongs_to_list Neo4j::NodeMixin Classmethods
1961
+ - Should be possible to add relationships without declaring them (Neo4j#relationships.outgoing(:friends) << node)
1962
+ - Neo4j extensions file structure, should be easy to create your own extensions
1963
+ - Rename relation to relationship (Neo4j::Relations => Neo4j::Relationships, DynamicRelation => Relationship) [data incompatible change]
1964
+ - Auto Transaction is now optional
1965
+ - Setting Float properties fails under JRuby1.2.0
1966
+ - Bug: Indexing relationships does not work
1967
+ - Make the ReferenceNode include Neo4j::NodeMixin
1968
+ - Added handy Neo4j class that simply includes the Neo4j::NodeMixin
1969
+ - Neo4j::IndexNode now holds references to all nodes (Neo4j.ref_node -> Neo4j::IndexNode -> ...)
1970
+
1971
+
1972
+ ## [0.2.1 / 2009-03-15]
1973
+ - Refactoring of lucene indexing of the node space (28)
1974
+ - Fixed bug on Neo4j::Nodemixin#property? (#22)
1975
+
1976
+
1977
+ ## [0.2.0 / 2009-01-20]
1978
+ - Impl. Neo4j::Node#traverse - enables traversal and filtering using TraversalPosition info (#17,#19)
1979
+ - Impl. traversal to any depth (#15)
1980
+ - Impl. traversal several relationships type at the same time (#16)
1981
+ - Fixed a Lucene timezone bug (#20)
1982
+ - Lots of refactoring of the neo4j.rb traversal code and RSpecs
1983
+
1984
+ ## [0.1.0 / 2008-12-18]
1985
+ - Property can now be of any type (and not only String, Fixnum, Float)
1986
+ - Indexing and Query with Date and DateTime
1987
+ - YARD documentation
1988
+ - Properties can be removed
1989
+ - A property can be set to nil (it will then be removed).
1990
+
1991
+ ## [0.0.7 / 2008-12-10]
1992
+ - Added method to_param and methods on the value object needed for Ruby on Rails
1993
+ - Impl. update from a value object/hash for a node
1994
+ - Impl. generation of value object classes/instances from a node.
1995
+ - Refactoring the Transaction handling (reuse PlaceboTransaction instances if possible)
1996
+ - Removed the need to start and stop neo. It will be done automatically when needed.
1997
+
1998
+
1999
+ ## [0.0.6 / 2008-12-03]
2000
+ - Removed the configuration from the Neo4j.start method. Now exist in Neo4j::Config and Lucene::Config.
2001
+ - Implemented sort_by method.
2002
+ - Lazy loading of search result. Execute the query and load the nodes only if needed.
2003
+ - Added support to use lucene query language, example: Person.find("name:foo AND age:42")
2004
+ - All test now uses RAM based lucene indexes.
2005
+
2006
+ ## [0.0.5 / 2008-11-17]
2007
+ - Supports keeping lucene index in memory instead of on disk
2008
+ - Added support for lucene full text search
2009
+ - Fixed so neo4j runs on JRuby 1.1.5
2010
+ - Implemented support for reindex all instances of a node class. This is needed if the lucene index is kept in memory or if the index is changed.
2011
+ - Added ReferenceNode. All nodes now have a relationship from this reference node.
2012
+ - Lots of refactoring
2013
+ - Added the IMDB example. It shows how to create a neo database, lucene queries and node traversals.
2014
+
2015
+ ## [0.0.4 / 2008-10-23]
2016
+ - First release to rubyforge