closure_tree 6.4.0 → 7.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.gitignore +1 -0
- data/.travis.yml +19 -12
- data/Appraisals +75 -7
- data/CHANGELOG.md +92 -39
- data/Gemfile +0 -12
- data/README.md +67 -24
- data/_config.yml +1 -0
- data/closure_tree.gemspec +10 -7
- data/lib/closure_tree/finders.rb +32 -9
- data/lib/closure_tree/has_closure_tree.rb +4 -0
- data/lib/closure_tree/has_closure_tree_root.rb +4 -6
- data/lib/closure_tree/hash_tree_support.rb +4 -4
- data/lib/closure_tree/hierarchy_maintenance.rb +31 -11
- data/lib/closure_tree/model.rb +42 -16
- data/lib/closure_tree/numeric_deterministic_ordering.rb +20 -6
- data/lib/closure_tree/numeric_order_support.rb +7 -3
- data/lib/closure_tree/support.rb +18 -12
- data/lib/closure_tree/support_attributes.rb +10 -1
- data/lib/closure_tree/support_flags.rb +1 -4
- data/lib/closure_tree/version.rb +1 -1
- data/lib/generators/closure_tree/migration_generator.rb +8 -0
- data/lib/generators/closure_tree/templates/create_hierarchies_table.rb.erb +1 -1
- metadata +29 -75
- data/gemfiles/activerecord_4.2.gemfile +0 -19
- data/gemfiles/activerecord_5.0.gemfile +0 -19
- data/gemfiles/activerecord_5.0_foreigner.gemfile +0 -20
- data/gemfiles/activerecord_edge.gemfile +0 -20
- data/img/example.png +0 -0
- data/img/preorder.png +0 -0
- data/spec/cache_invalidation_spec.rb +0 -39
- data/spec/cuisine_type_spec.rb +0 -38
- data/spec/db/database.yml +0 -21
- data/spec/db/models.rb +0 -128
- data/spec/db/schema.rb +0 -166
- data/spec/fixtures/tags.yml +0 -98
- data/spec/generators/migration_generator_spec.rb +0 -48
- data/spec/has_closure_tree_root_spec.rb +0 -154
- data/spec/hierarchy_maintenance_spec.rb +0 -16
- data/spec/label_spec.rb +0 -554
- data/spec/matcher_spec.rb +0 -34
- data/spec/metal_spec.rb +0 -55
- data/spec/model_spec.rb +0 -9
- data/spec/namespace_type_spec.rb +0 -13
- data/spec/parallel_spec.rb +0 -159
- data/spec/spec_helper.rb +0 -24
- data/spec/support/database.rb +0 -52
- data/spec/support/database_cleaner.rb +0 -14
- data/spec/support/exceed_query_limit.rb +0 -18
- data/spec/support/hash_monkey_patch.rb +0 -13
- data/spec/support/query_counter.rb +0 -18
- data/spec/support/sqlite3_with_advisory_lock.rb +0 -10
- data/spec/support_spec.rb +0 -14
- data/spec/tag_examples.rb +0 -665
- data/spec/tag_spec.rb +0 -6
- data/spec/user_spec.rb +0 -174
- data/spec/uuid_tag_spec.rb +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: b0625b057493bad32e0431a7ac4cdba5abc8ee8ac29d09edab97953a68e670bd
|
4
|
+
data.tar.gz: b99a0700c15e962034444aa6393a774a20ea8fd996c312af1aadf2ad941d938f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 630b296849c1c26b4129e21d29e502d02fa61daa481b1c518846817208ab92f6c8ff75c708a687f1068a2c4ce84ad60b7d711d58a4e03a2a53a2f2ee6c459a89
|
7
|
+
data.tar.gz: b40be25daf8524d0a9cd5776163ec5a0be247fdf20e7172e3b2bd64b4002591224de88f145c20dacf087c0ec11dbfbc24ca56ef4ec27415f29977e9f092d2ac3
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -1,18 +1,17 @@
|
|
1
1
|
cache: bundler
|
2
|
-
sudo: false
|
3
2
|
language: ruby
|
3
|
+
|
4
4
|
rvm:
|
5
|
-
- 2.
|
6
|
-
- 2.
|
7
|
-
- 2.
|
8
|
-
# these haven't been passing for a while:
|
9
|
-
# - jruby-head
|
10
|
-
# - rbx
|
5
|
+
- 2.7.1
|
6
|
+
- 2.6.3
|
7
|
+
- 2.5.5
|
11
8
|
|
12
9
|
gemfile:
|
13
|
-
- gemfiles/
|
14
|
-
- gemfiles/activerecord_5.
|
10
|
+
- gemfiles/activerecord_6.0.gemfile
|
11
|
+
- gemfiles/activerecord_5.2.gemfile
|
12
|
+
- gemfiles/activerecord_5.1.gemfile
|
15
13
|
- gemfiles/activerecord_5.0.gemfile
|
14
|
+
- gemfiles/activerecord_4.2.gemfile
|
16
15
|
- gemfiles/activerecord_edge.gemfile
|
17
16
|
|
18
17
|
env:
|
@@ -20,10 +19,18 @@ env:
|
|
20
19
|
- DB=mysql
|
21
20
|
- DB=postgresql
|
22
21
|
|
22
|
+
services:
|
23
|
+
- mysql
|
24
|
+
- postgresql
|
25
|
+
|
23
26
|
script: WITH_ADVISORY_LOCK_PREFIX=$TRAVIS_JOB_ID bundle exec rake --trace spec:all
|
24
27
|
|
25
28
|
matrix:
|
26
29
|
allow_failures:
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
+
- gemfile: gemfiles/activerecord_edge.gemfile
|
31
|
+
- gemfile: gemfiles/activerecord_6.0.gemfile
|
32
|
+
exclude:
|
33
|
+
- rvm: 2.5.5
|
34
|
+
gemfile: gemfiles/activerecord_edge.gemfile
|
35
|
+
- rvm: 2.7.1
|
36
|
+
gemfile: gemfiles/activerecord_4.2.gemfile
|
data/Appraisals
CHANGED
@@ -1,22 +1,90 @@
|
|
1
1
|
|
2
2
|
appraise 'activerecord-4.2' do
|
3
3
|
gem 'activerecord', '~> 4.2.0'
|
4
|
+
platforms :ruby do
|
5
|
+
gem 'mysql2', "< 0.5"
|
6
|
+
gem 'pg', "~> 0.21"
|
7
|
+
gem 'sqlite3', '~> 1.3.13'
|
8
|
+
end
|
4
9
|
|
5
|
-
platforms :
|
6
|
-
gem '
|
10
|
+
platforms :jruby do
|
11
|
+
gem 'activerecord-jdbcmysql-adapter'
|
12
|
+
gem 'activerecord-jdbcpostgresql-adapter'
|
13
|
+
gem 'activerecord-jdbcsqlite3-adapter'
|
7
14
|
end
|
8
15
|
end
|
9
16
|
|
10
|
-
appraise 'activerecord-5.0
|
17
|
+
appraise 'activerecord-5.0' do
|
11
18
|
gem 'activerecord', '~> 5.0.0'
|
12
|
-
|
19
|
+
platforms :ruby do
|
20
|
+
gem 'mysql2'
|
21
|
+
gem 'pg'
|
22
|
+
gem 'sqlite3', '~> 1.3.13'
|
23
|
+
end
|
24
|
+
|
25
|
+
platforms :jruby do
|
26
|
+
gem 'activerecord-jdbcmysql-adapter'
|
27
|
+
gem 'activerecord-jdbcpostgresql-adapter'
|
28
|
+
gem 'activerecord-jdbcsqlite3-adapter'
|
29
|
+
end
|
13
30
|
end
|
14
31
|
|
15
|
-
appraise 'activerecord-5.
|
16
|
-
gem 'activerecord', '~> 5.
|
32
|
+
appraise 'activerecord-5.1' do
|
33
|
+
gem 'activerecord', '~> 5.1.0'
|
34
|
+
platforms :ruby do
|
35
|
+
gem 'mysql2'
|
36
|
+
gem 'pg'
|
37
|
+
gem 'sqlite3', '~> 1.3.13'
|
38
|
+
end
|
39
|
+
|
40
|
+
platforms :jruby do
|
41
|
+
gem 'activerecord-jdbcmysql-adapter'
|
42
|
+
gem 'activerecord-jdbcpostgresql-adapter'
|
43
|
+
gem 'activerecord-jdbcsqlite3-adapter'
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
appraise 'activerecord-5.2' do
|
48
|
+
gem 'activerecord', '~> 5.2.0'
|
49
|
+
platforms :ruby do
|
50
|
+
gem 'mysql2'
|
51
|
+
gem 'pg'
|
52
|
+
gem 'sqlite3'
|
53
|
+
end
|
54
|
+
|
55
|
+
platforms :jruby do
|
56
|
+
gem 'activerecord-jdbcmysql-adapter'
|
57
|
+
gem 'activerecord-jdbcpostgresql-adapter'
|
58
|
+
gem 'activerecord-jdbcsqlite3-adapter'
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
appraise 'activerecord-6.0' do
|
63
|
+
gem 'activerecord', '~> 6.0.0'
|
64
|
+
platforms :ruby do
|
65
|
+
gem 'mysql2'
|
66
|
+
gem 'pg'
|
67
|
+
gem 'sqlite3'
|
68
|
+
end
|
69
|
+
|
70
|
+
platforms :jruby do
|
71
|
+
gem 'activerecord-jdbcmysql-adapter'
|
72
|
+
gem 'activerecord-jdbcpostgresql-adapter'
|
73
|
+
gem 'activerecord-jdbcsqlite3-adapter'
|
74
|
+
end
|
17
75
|
end
|
18
76
|
|
19
77
|
appraise 'activerecord-edge' do
|
20
78
|
gem 'activerecord', github: 'rails/rails'
|
21
|
-
|
79
|
+
platforms :ruby do
|
80
|
+
gem 'mysql2'
|
81
|
+
gem 'pg'
|
82
|
+
gem 'sqlite3'
|
83
|
+
end
|
84
|
+
|
85
|
+
platforms :jruby do
|
86
|
+
gem 'activerecord-jdbcmysql-adapter'
|
87
|
+
gem 'activerecord-jdbcpostgresql-adapter'
|
88
|
+
gem 'activerecord-jdbcsqlite3-adapter'
|
89
|
+
end
|
22
90
|
end
|
data/CHANGELOG.md
CHANGED
@@ -1,22 +1,75 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
### 7.2.0
|
4
|
+
- Ruby 2.7 support
|
5
|
+
- Ordering raw SQL argument wrapped with Arel.sql
|
6
|
+
|
7
|
+
### 7.1.0
|
8
|
+
Closure Tree is now tested against Rails 6.0
|
9
|
+
- Directly require core_ext for String#strip_heredoc[PR 350](https://github.com/ClosureTree/closure_tree/pull/350)
|
10
|
+
- Call Module#module_parent instead of deprecated #parent[PR 354](https://github.com/ClosureTree/closure_tree/pull/354)
|
11
|
+
|
12
|
+
### 7.0.0
|
13
|
+
Closure Tree is now tested against Rails 5.2
|
14
|
+
|
15
|
+
- Postpone configuration (database introspection)[PR 264](https://github.com/ClosureTree/closure_tree/pull/264)
|
16
|
+
- Fix "tree.find_by_path([])" [PR 288](https://github.com/ClosureTree/closure_tree/pull/288)
|
17
|
+
- Fixed generator specs and added migration version [PR 292](https://github.com/ClosureTree/closure_tree/pull/292)
|
18
|
+
- Eliminate deprecation warnings in ActiveRecord 5.2 [PR 296](https://github.com/ClosureTree/closure_tree/pull/296)
|
19
|
+
- When using 'oracle_enhanced', remove 'AS' on the table_name alias. [PR 298](https://github.com/ClosureTree/closure_tree/pull/298)
|
20
|
+
- README update [PR 301](https://github.com/ClosureTree/closure_tree/pull/301)
|
21
|
+
- Add `with_descendant` finder [PR 302](https://github.com/ClosureTree/closure_tree/pull/302)
|
22
|
+
- Fix pg version for rails prior 5.1 [PR 303](https://github.com/ClosureTree/closure_tree/pull/303)
|
23
|
+
- Test on Rails 5.2 & fix mysql for older Rails [PR 304](https://github.com/ClosureTree/closure_tree/pull/304)
|
24
|
+
- Test with ActiveRecord 5.2.0 [PR 307](https://github.com/ClosureTree/closure_tree/pull/307)
|
25
|
+
- README update [PR 310](https://github.com/ClosureTree/closure_tree/pull/310)
|
26
|
+
- FactoryBot linter failing for a model that uses closure_tree [PR 311](https://github.com/ClosureTree/closure_tree/pull/311)
|
27
|
+
- Added dont_order_roots option [PR 312](https://github.com/ClosureTree/closure_tree/pull/312)
|
28
|
+
- Added instance methods to determine the relationship between 2 nodes [PR 314](https://github.com/ClosureTree/closure_tree/pull/314)
|
29
|
+
- Add an instance method to check the relationship between 2 nodes: #family_of? [PR 319](https://github.com/ClosureTree/closure_tree/pull/319)
|
30
|
+
- Remove options restrictions on has_closure_tree_root [PR 321](https://github.com/ClosureTree/closure_tree/pull/321)
|
31
|
+
- Fix uninitialized variable warnings [PR 323](https://github.com/ClosureTree/closure_tree/pull/323)
|
32
|
+
|
33
|
+
### 6.6.0
|
34
|
+
|
35
|
+
Closure Tree is now tested against Rails 5.1, and just passed 50 contributors and
|
36
|
+
1000 stars on github! 🎉!
|
37
|
+
|
38
|
+
Note that Closure Tree has moved to a new "Closure Tree" github organization.
|
39
|
+
**Future gem releases will be done by other contributors.**
|
40
|
+
|
41
|
+
* ActiveSupport 5.1 deprecation warnings were addressed in [PR
|
42
|
+
262](https://github.com/ClosureTree/closure_tree/pull/262). Thanks, [Charles
|
43
|
+
Pence](https://github.com/cpence)!
|
44
|
+
* ActiveSupport 5.1 test failures were fixed in
|
45
|
+
[PR 280](https://github.com/ClosureTree/closure_tree/pull/280).
|
46
|
+
Thanks, [Bobby Uhlenbrock](https://github.com/uhlenbrock)!
|
47
|
+
* A database connection was leaked at startup, fixed in [PR
|
48
|
+
263](https://github.com/ClosureTree/closure_tree/pull/263). Thanks, [Andrey
|
49
|
+
Novikov](https://github.com/Envek)!
|
50
|
+
|
51
|
+
### 6.5.0
|
52
|
+
|
53
|
+
* Merged [PR 258](https://github.com/ClosureTree/closure_tree/pull/258) which
|
54
|
+
improves hierarchy maintenance with large trees. Thanks, [Nikolay
|
55
|
+
Bekirov](https://github.com/nbekirov)!
|
3
56
|
### 6.4.0
|
4
57
|
|
5
|
-
* Merged [PR 236](https://github.com/
|
58
|
+
* Merged [PR 236](https://github.com/ClosureTree/closure_tree/pull/236) which adds documentation for `has_closure_tree_root`.
|
6
59
|
* Added ruby 2.4 and dropped Rails 4.1 from the build matrix.
|
7
60
|
|
8
61
|
### 6.3.0
|
9
62
|
|
10
|
-
* `prepend_child` [handles invalid children properly now](https://github.com/
|
63
|
+
* `prepend_child` [handles invalid children properly now](https://github.com/ClosureTree/closure_tree/issues/249).
|
11
64
|
Thanks [Amit Saxena](https://github.com/amitsaxena)!
|
12
65
|
* Dropped official support for jruby and ruby 2.0 (no code was changed)
|
13
66
|
|
14
67
|
### 6.2.0
|
15
68
|
|
16
|
-
* Fix for [MySQL lock lengths](https://github.com/
|
69
|
+
* Fix for [MySQL lock lengths](https://github.com/ClosureTree/closure_tree/issues/231).
|
17
70
|
Thanks to [Liam](https://github.com/hut8)!
|
18
|
-
* [Tom Smyth](https://github.com/hooverlunch) added [eager tree loading](https://github.com/
|
19
|
-
* Merged [PR 200](https://github.com/
|
71
|
+
* [Tom Smyth](https://github.com/hooverlunch) added [eager tree loading](https://github.com/ClosureTree/closure_tree/pull/232)
|
72
|
+
* Merged [PR 200](https://github.com/ClosureTree/closure_tree/pull/200) which may or may not add support to SQLServer 2008 (but this is not a supported RDBMS).
|
20
73
|
|
21
74
|
### 6.1.0
|
22
75
|
|
@@ -40,7 +93,7 @@
|
|
40
93
|
* Dropped support for versions of Rails 3.2 and 4.0 (which are no longer supported).
|
41
94
|
* Dropped support for Ruby 1.9 and JRuby 1.9 (which are no longer supported).
|
42
95
|
* Added support for `.hash_tree` from `.parent` and `.children`.
|
43
|
-
Addresses [PR146](https://github.com/
|
96
|
+
Addresses [PR146](https://github.com/ClosureTree/closure_tree/pull/146).
|
44
97
|
Thanks for reporting this and the breaking test, [Mike](https://github.com/mkralla11)!
|
45
98
|
|
46
99
|
### 5.2.0
|
@@ -51,7 +104,7 @@
|
|
51
104
|
* [Ryan Selk](https://github.com/rselk) made several enhancements to the migration generation (thanks!).
|
52
105
|
* [ruok5](https://github.com/ruok5) updated the README to clarify a heirarchy maintenance usecase. Thanks!
|
53
106
|
* Made migrations error with a helpful message if the target didn't have the `has_closure_tree` or
|
54
|
-
`acts_as_tree` annotation. This addresses [issue 131](https://github.com/
|
107
|
+
`acts_as_tree` annotation. This addresses [issue 131](https://github.com/ClosureTree/closure_tree/issues/131).
|
55
108
|
|
56
109
|
### 5.1.1
|
57
110
|
|
@@ -62,7 +115,7 @@
|
|
62
115
|
|
63
116
|
* [Abdelkader Boudih](https://github.com/seuros) added a database generator
|
64
117
|
for the hierarchies table. Thanks!
|
65
|
-
* [Jason Weathered](https://github.com/jasoncodes) fixed [issue #117](https://github.com/
|
118
|
+
* [Jason Weathered](https://github.com/jasoncodes) fixed [issue #117](https://github.com/ClosureTree/closure_tree/pull/117)
|
66
119
|
with the preordered traversal code that assumed the primary key column was called `id`. Thanks!
|
67
120
|
|
68
121
|
### 5.0.0
|
@@ -86,13 +139,13 @@
|
|
86
139
|
|
87
140
|
### 4.6.2
|
88
141
|
|
89
|
-
* Pulled in [106](https://github.com/
|
142
|
+
* Pulled in [106](https://github.com/ClosureTree/closure_tree/pull/106) which fixed a bug introduced
|
90
143
|
in 4.6.0 which broke if the numeric ordering column wasn't named 'sort_order'. Tests have been
|
91
144
|
added. Thanks for the fix, [Fission Xuiptz](https://github.com/fissionxuiptz)!
|
92
145
|
|
93
146
|
### 4.6.1
|
94
147
|
|
95
|
-
* Address [issue 60](https://github.com/
|
148
|
+
* Address [issue 60](https://github.com/ClosureTree/closure_tree/issues/60) (use `.empty?` rather
|
96
149
|
than `.nil?`—thanks for the suggestion, [Leonel Galán](https://github.com/leonelgalan),
|
97
150
|
[Doug Mayer](https://github.com/doxavore) and [Samnang Chhun](https://github.com/samnang)!
|
98
151
|
|
@@ -119,7 +172,7 @@
|
|
119
172
|
|
120
173
|
### 4.4.0
|
121
174
|
|
122
|
-
* Added ```.self_and_descendant_ids``` and ```.self_and_ancestors_ids``` from [PR92](https://github.com/
|
175
|
+
* Added ```.self_and_descendant_ids``` and ```.self_and_ancestors_ids``` from [PR92](https://github.com/ClosureTree/closure_tree/pull/92).
|
123
176
|
Thanks, [Kir Shatrov](https://github.com/kirs)!
|
124
177
|
|
125
178
|
* Dropped support for Rails 3.0.
|
@@ -134,7 +187,7 @@
|
|
134
187
|
### 4.2.9
|
135
188
|
|
136
189
|
* Support for Heroku's cray assets:precompile hack for Rails 4.
|
137
|
-
Addresses [issue 78](https://github.com/
|
190
|
+
Addresses [issue 78](https://github.com/ClosureTree/closure_tree/issues/78).
|
138
191
|
Thanks for the assist, [Alex Bowman](https://github.com/axlekb).
|
139
192
|
|
140
193
|
### 4.2.8
|
@@ -144,7 +197,7 @@
|
|
144
197
|
### 4.2.7
|
145
198
|
|
146
199
|
* ```self_and_ancestors``` and ```ancestry_hierarchy``` are reloaded
|
147
|
-
when nodes are reparented. Addresses [issue 68](https://github.com/
|
200
|
+
when nodes are reparented. Addresses [issue 68](https://github.com/ClosureTree/closure_tree/issues/68).
|
148
201
|
Thanks for the assist, [Ivan Stana](https://github.com/istana).
|
149
202
|
|
150
203
|
### 4.2.6
|
@@ -164,12 +217,12 @@
|
|
164
217
|
### 4.2.4
|
165
218
|
|
166
219
|
* Support for ```root?```, ```child?```, and proper parent-child associations
|
167
|
-
when both the parent and the child are not persisted. Addresses [issue 64](https://github.com/
|
220
|
+
when both the parent and the child are not persisted. Addresses [issue 64](https://github.com/ClosureTree/closure_tree/issues/64).
|
168
221
|
Thanks for the help, [Gabriel Mazetto](https://github.com/brodock)!
|
169
222
|
|
170
223
|
### 4.2.3
|
171
224
|
|
172
|
-
* Fixed ```attr_accessible?``` error introduced in 4.2.2 ([issue 66](https://github.com/
|
225
|
+
* Fixed ```attr_accessible?``` error introduced in 4.2.2 ([issue 66](https://github.com/ClosureTree/closure_tree/issues/66)).
|
173
226
|
* Switched to use new WithAdvisoryLock::DatabaseAdapterSupport (in v0.0.9) to add Postgis support
|
174
227
|
|
175
228
|
### 4.2.2
|
@@ -199,11 +252,11 @@
|
|
199
252
|
|
200
253
|
* Numeric, deterministically ordered siblings will always be [0..#{self_and_siblings.count}]
|
201
254
|
(previously, the sort order might use negative values, which broke the preordering).
|
202
|
-
Resolves [issue 49](https://github.com/
|
255
|
+
Resolves [issue 49](https://github.com/ClosureTree/closure_tree/issues/49). Thanks for the help,
|
203
256
|
[Leonel Galan](https://github.com/leonelgalan), [Juan Hoyos](https://github.com/elhoyos), and
|
204
257
|
[Michael Elfassy](https://github.com/elfassy)!
|
205
258
|
|
206
|
-
* The ```order``` option can be a symbol now. Resolves [issue 46](https://github.com/
|
259
|
+
* The ```order``` option can be a symbol now. Resolves [issue 46](https://github.com/ClosureTree/closure_tree/issues/46).
|
207
260
|
|
208
261
|
### 4.0.0
|
209
262
|
|
@@ -218,22 +271,22 @@
|
|
218
271
|
### 3.10.2
|
219
272
|
|
220
273
|
* Prevent faulty SQL statement when ```#siblings``` is called on an unsaved records.
|
221
|
-
Resolves [issue 52](https://github.com/
|
274
|
+
Resolves [issue 52](https://github.com/ClosureTree/closure_tree/pull/52). Perfect pull
|
222
275
|
request by [Gary Greyling](https://github.com/garygreyling).
|
223
276
|
|
224
277
|
* The ```.roots``` class method now correctly respects the ```:order``` option.
|
225
|
-
Resolves [issue 53](https://github.com/
|
278
|
+
Resolves [issue 53](https://github.com/ClosureTree/closure_tree/issues/53).
|
226
279
|
Thanks for finding this, [Brendon Muir](https://github.com/brendon)!
|
227
280
|
|
228
281
|
### 3.10.1
|
229
282
|
|
230
283
|
* Multipart constant names like "Admin::PageHierarchy" are now supported.
|
231
|
-
Resolves [issue 47](https://github.com/
|
284
|
+
Resolves [issue 47](https://github.com/ClosureTree/closure_tree/issues/47).
|
232
285
|
Thanks for the perfect pull request, [Simon Menke](https://github.com/fd)!
|
233
286
|
|
234
287
|
* Committing transactions involving large numbers of hierarchy model classes was very slow due
|
235
288
|
to hash collisions in the hierarchy class. A better hash implementation addressed
|
236
|
-
[issue 48](https://github.com/
|
289
|
+
[issue 48](https://github.com/ClosureTree/closure_tree/issues/48).
|
237
290
|
Thanks, [Joel Turkel](https://github.com/jturkel)!
|
238
291
|
|
239
292
|
### 3.10.0
|
@@ -262,19 +315,19 @@ All three of these improvements were suggested by Andrew Bromwich. Thanks!
|
|
262
315
|
### 3.8.0
|
263
316
|
|
264
317
|
* Support for preordered descendants. This requires a numeric sort order column.
|
265
|
-
Resolves [feature request 38](https://github.com/
|
318
|
+
Resolves [feature request 38](https://github.com/ClosureTree/closure_tree/issues/38).
|
266
319
|
* Moved modules from ```acts_as_tree``` into separate files
|
267
320
|
|
268
321
|
### 3.7.3
|
269
322
|
|
270
323
|
Due to MySQL's inability to lock rows properly, I've switched to advisory_locks for
|
271
324
|
all write paths. This will prevent deadlocks, addressing
|
272
|
-
[issue 41](https://github.com/
|
325
|
+
[issue 41](https://github.com/ClosureTree/closure_tree/issues/41).
|
273
326
|
|
274
327
|
### 3.7.2
|
275
328
|
|
276
329
|
* Support for UUID primary keys. Addresses
|
277
|
-
[issue 40](https://github.com/
|
330
|
+
[issue 40](https://github.com/ClosureTree/closure_tree/issues/40). Thanks for the pull request,
|
278
331
|
[Julien](https://github.com/calexicoz)!
|
279
332
|
|
280
333
|
### 3.7.1
|
@@ -285,7 +338,7 @@ all write paths. This will prevent deadlocks, addressing
|
|
285
338
|
### 3.7.0
|
286
339
|
|
287
340
|
**Thread safety!**
|
288
|
-
* [Advisory locks](https://github.com/
|
341
|
+
* [Advisory locks](https://github.com/ClosureTree/with_advisory_lock) were
|
289
342
|
integrated with the class-level ```find_or_create_by_path``` and ```rebuild!```.
|
290
343
|
* Pessimistic locking is used by the instance-level ```find_or_create_by_path```.
|
291
344
|
|
@@ -298,7 +351,7 @@ wasting time on the ruby side.
|
|
298
351
|
### 3.6.7
|
299
352
|
|
300
353
|
* Added workaround for ActiveRecord::Observer usage pre-db-creation. Addresses
|
301
|
-
[issue 32](https://github.com/
|
354
|
+
[issue 32](https://github.com/ClosureTree/closure_tree/issues/32).
|
302
355
|
Thanks, [Don Morrison](https://github.com/elskwid)!
|
303
356
|
|
304
357
|
### 3.6.6
|
@@ -309,28 +362,28 @@ Thanks, [James Miller](https://github.com/bensie)!
|
|
309
362
|
### 3.6.5
|
310
363
|
|
311
364
|
* Use ```quote_table_name``` instead of ```quote_column_name```. Addresses
|
312
|
-
[issue 29](https://github.com/
|
365
|
+
[issue 29](https://github.com/ClosureTree/closure_tree/issues/29). Thanks,
|
313
366
|
[Marcello Barnaba](https://github.com/vjt)!
|
314
367
|
|
315
368
|
### 3.6.4
|
316
369
|
|
317
370
|
* Use ```.pluck``` when available for ```.ids_from```. Addresses
|
318
|
-
[issue 26](https://github.com/
|
371
|
+
[issue 26](https://github.com/ClosureTree/closure_tree/issues/26). Thanks,
|
319
372
|
[Chris Sturgill](https://github.com/sturgill)!
|
320
373
|
|
321
374
|
### 3.6.3
|
322
375
|
|
323
|
-
* Fixed [issue 24](https://github.com/
|
376
|
+
* Fixed [issue 24](https://github.com/ClosureTree/closure_tree/issues/24), which optimized ```#hash_tree```
|
324
377
|
for roots. Thanks, [Saverio Trioni](https://github.com/rewritten)!
|
325
378
|
|
326
379
|
### 3.6.2
|
327
380
|
|
328
|
-
* Fixed [issue 23](https://github.com/
|
381
|
+
* Fixed [issue 23](https://github.com/ClosureTree/closure_tree/issues/23), which added support for ```#siblings```
|
329
382
|
when sort_order wasn't specified. Thanks, [Gary Greyling](https://github.com/garygreyling)!
|
330
383
|
|
331
384
|
### 3.6.1
|
332
385
|
|
333
|
-
* Fixed [issue 20](https://github.com/
|
386
|
+
* Fixed [issue 20](https://github.com/ClosureTree/closure_tree/issues/20), which affected
|
334
387
|
deterministic ordering when siblings where different STI classes. Thanks, [edwinramirez](https://github.com/edwinramirez)!
|
335
388
|
|
336
389
|
### 3.6.0
|
@@ -340,16 +393,16 @@ Added support for:
|
|
340
393
|
* ActiveRecord::Base.table_name_prefix
|
341
394
|
* ActiveRecord::Base.table_name_suffix
|
342
395
|
|
343
|
-
This addresses [issue 21](https://github.com/
|
396
|
+
This addresses [issue 21](https://github.com/ClosureTree/closure_tree/issues/21). Thanks, [Judd Blair](https://github.com/juddblair)!
|
344
397
|
|
345
398
|
### 3.5.2
|
346
399
|
|
347
400
|
* Added ```find_all_by_generation```
|
348
|
-
for [feature request 17](https://github.com/
|
401
|
+
for [feature request 17](https://github.com/ClosureTree/closure_tree/issues/17).
|
349
402
|
|
350
403
|
### 3.4.2
|
351
404
|
|
352
|
-
* Fixed [issue 18](https://github.com/
|
405
|
+
* Fixed [issue 18](https://github.com/ClosureTree/closure_tree/issues/18), which affected
|
353
406
|
append_node/prepend_node ordering when the first node didn't have an explicit order_by value
|
354
407
|
|
355
408
|
### 3.4.1
|
@@ -358,7 +411,7 @@ This addresses [issue 21](https://github.com/mceachen/closure_tree/issues/21). T
|
|
358
411
|
|
359
412
|
### 3.4.0
|
360
413
|
|
361
|
-
Fixed [issue 15](https://github.com/
|
414
|
+
Fixed [issue 15](https://github.com/ClosureTree/closure_tree/issues/15):
|
362
415
|
* "parent" is now attr_accessible, which adds support for constructor-provided parents.
|
363
416
|
* updated readme accordingly
|
364
417
|
|
@@ -368,7 +421,7 @@ Fixed [issue 15](https://github.com/mceachen/closure_tree/issues/15):
|
|
368
421
|
|
369
422
|
### 3.3.1
|
370
423
|
|
371
|
-
* Added support for partially-unsaved hierarchies [issue 13](https://github.com/
|
424
|
+
* Added support for partially-unsaved hierarchies [issue 13](https://github.com/ClosureTree/closure_tree/issues/13):
|
372
425
|
```
|
373
426
|
a = Tag.new(name: "a")
|
374
427
|
b = Tag.new(name: "b")
|
@@ -383,7 +436,7 @@ a.save
|
|
383
436
|
### 3.2.1
|
384
437
|
|
385
438
|
* Added ```ancestor_ids```, ```descendant_ids```, and ```sibling_ids```
|
386
|
-
* Added example spec to solve [issue 9](https://github.com/
|
439
|
+
* Added example spec to solve [issue 9](https://github.com/ClosureTree/closure_tree/issues/9)
|
387
440
|
|
388
441
|
### 3.2.0
|
389
442
|
|
@@ -395,7 +448,7 @@ a.save
|
|
395
448
|
|
396
449
|
### 3.0.4
|
397
450
|
|
398
|
-
* Merged [pull request](https://github.com/
|
451
|
+
* Merged [pull request](https://github.com/ClosureTree/closure_tree/pull/8) to fix ```.siblings``` and ```.self_and_siblings```
|
399
452
|
(Thanks, [eljojo](https://github.com/eljojo)!)
|
400
453
|
|
401
454
|
### 3.0.3
|
@@ -410,7 +463,7 @@ a.save
|
|
410
463
|
|
411
464
|
### 3.0.1
|
412
465
|
|
413
|
-
* Support 3.2.0's fickle deprecation of InstanceMethods (Thanks, [jheiss](https://github.com/
|
466
|
+
* Support 3.2.0's fickle deprecation of InstanceMethods (Thanks, [jheiss](https://github.com/ClosureTree/closure_tree/pull/5))!
|
414
467
|
|
415
468
|
### 3.0.0
|
416
469
|
|