closure_tree 6.5.0 → 7.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.github/workflows/ci.yml +96 -0
- data/.gitignore +2 -0
- data/.rspec +1 -1
- data/Appraisals +90 -7
- data/CHANGELOG.md +94 -42
- data/Gemfile +0 -12
- data/README.md +66 -23
- data/Rakefile +7 -10
- data/_config.yml +1 -0
- data/bin/appraisal +29 -0
- data/bin/rake +29 -0
- data/bin/rspec +29 -0
- data/closure_tree.gemspec +16 -9
- 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 +5 -7
- data/lib/closure_tree/hash_tree_support.rb +4 -4
- data/lib/closure_tree/hierarchy_maintenance.rb +28 -8
- 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 +78 -79
- data/.travis.yml +0 -29
- 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: 7034c0f3149bb3fabe92f4d03f118e4704b80a5ccbfa371e50f1a0f7f624c534
|
4
|
+
data.tar.gz: 9a9faf0245f8252442c3c2e80a73eeccdf1e94d748dcb8a2ace96ebf131984c1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 13ee25bbdd76b240ebc74a2f3b6b5846c09a302f60ec2d48dff0d0d8a825f015a66bed08e1eec2bdfad80d437e139337e9e9bbdbb0831ac3b0a4bd5e0493e7e8
|
7
|
+
data.tar.gz: 97f0e9bbde7fb694bf52833cfd9c469b5f22944752b5f33586486c2edd10958ac422dc957a847d3ba63153de85b63e9e84494b0529cb855590a72610726d5c2f
|
@@ -0,0 +1,96 @@
|
|
1
|
+
---
|
2
|
+
name: CI
|
3
|
+
|
4
|
+
on:
|
5
|
+
- push
|
6
|
+
- pull_request
|
7
|
+
|
8
|
+
jobs:
|
9
|
+
rspec:
|
10
|
+
runs-on: ubuntu-20.04
|
11
|
+
|
12
|
+
services:
|
13
|
+
postgres:
|
14
|
+
image: 'postgres:13'
|
15
|
+
ports: ['5432:5432']
|
16
|
+
env:
|
17
|
+
POSTGRES_PASSWORD: postgres
|
18
|
+
POSTGRES_DB: closure_tree
|
19
|
+
options: >-
|
20
|
+
--health-cmd pg_isready
|
21
|
+
--health-interval 10s
|
22
|
+
--health-timeout 5s
|
23
|
+
--health-retries 5
|
24
|
+
|
25
|
+
strategy:
|
26
|
+
fail-fast: false
|
27
|
+
matrix:
|
28
|
+
ruby:
|
29
|
+
- '3.0'
|
30
|
+
- '2.7'
|
31
|
+
- '2.6'
|
32
|
+
- '2.5'
|
33
|
+
rails:
|
34
|
+
- activerecord_6.1
|
35
|
+
- activerecord_6.0
|
36
|
+
- activerecord_5.2
|
37
|
+
- activerecord_5.1
|
38
|
+
- activerecord_5.0
|
39
|
+
- activerecord_4.2
|
40
|
+
- activerecord_edge
|
41
|
+
adapter:
|
42
|
+
- sqlite3
|
43
|
+
- mysql2
|
44
|
+
- postgresql
|
45
|
+
exclude:
|
46
|
+
- ruby: '2.7'
|
47
|
+
rails: activerecord_4.2
|
48
|
+
- ruby: '3.0'
|
49
|
+
rails: activerecord_4.2
|
50
|
+
- ruby: '3.0'
|
51
|
+
rails: activerecord_5.0
|
52
|
+
- ruby: '3.0'
|
53
|
+
rails: activerecord_5.1
|
54
|
+
- ruby: '3.0'
|
55
|
+
rails: activerecord_5.2
|
56
|
+
- ruby: '2.5'
|
57
|
+
rails: activerecord_edge
|
58
|
+
|
59
|
+
steps:
|
60
|
+
- name: Checkout
|
61
|
+
uses: actions/checkout@v2
|
62
|
+
|
63
|
+
- name: Setup Ruby
|
64
|
+
uses: ruby/setup-ruby@v1
|
65
|
+
with:
|
66
|
+
ruby-version: ${{ matrix.ruby }}
|
67
|
+
|
68
|
+
- name: Set DB Adapter
|
69
|
+
env:
|
70
|
+
RAILS_VERSION: ${{ matrix.rails }}
|
71
|
+
DB_ADAPTER: ${{ matrix.adapter }}
|
72
|
+
|
73
|
+
# See: https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-README.md#mysql
|
74
|
+
run: |
|
75
|
+
if [ "${DB_ADAPTER}" = "mysql2" ]; then
|
76
|
+
sudo systemctl start mysql.service
|
77
|
+
mysql -u root -proot -e 'create database closure_tree;'
|
78
|
+
fi
|
79
|
+
|
80
|
+
- name: Bundle
|
81
|
+
env:
|
82
|
+
RAILS_VERSION: ${{ matrix.rails }}
|
83
|
+
DB_ADAPTER: ${{ matrix.adapter }}
|
84
|
+
BUNDLE_GEMFILE: gemfiles/${{ matrix.rails }}.gemfile
|
85
|
+
run: |
|
86
|
+
gem install bundler
|
87
|
+
bundle config path vendor/bundle
|
88
|
+
bundle install --jobs 4 --retry 3
|
89
|
+
|
90
|
+
- name: RSpec
|
91
|
+
env:
|
92
|
+
RAILS_VERSION: ${{ matrix.rails }}
|
93
|
+
DB_ADAPTER: ${{ matrix.adapter }}
|
94
|
+
BUNDLE_GEMFILE: gemfiles/${{ matrix.rails }}.gemfile
|
95
|
+
WITH_ADVISORY_LOCK_PREFIX: ${{ github.run_id }}
|
96
|
+
run: bin/rake --trace spec:all
|
data/.gitignore
CHANGED
data/.rspec
CHANGED
@@ -1 +1 @@
|
|
1
|
-
--
|
1
|
+
--color
|
data/Appraisals
CHANGED
@@ -1,22 +1,105 @@
|
|
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
|
75
|
+
end
|
76
|
+
|
77
|
+
appraise 'activerecord-6.1' do
|
78
|
+
gem 'activerecord', '~> 6.1.0'
|
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
|
17
90
|
end
|
18
91
|
|
19
92
|
appraise 'activerecord-edge' do
|
20
93
|
gem 'activerecord', github: 'rails/rails'
|
21
|
-
|
94
|
+
platforms :ruby do
|
95
|
+
gem 'mysql2'
|
96
|
+
gem 'pg'
|
97
|
+
gem 'sqlite3'
|
98
|
+
end
|
99
|
+
|
100
|
+
platforms :jruby do
|
101
|
+
gem 'activerecord-jdbcmysql-adapter'
|
102
|
+
gem 'activerecord-jdbcpostgresql-adapter'
|
103
|
+
gem 'activerecord-jdbcsqlite3-adapter'
|
104
|
+
end
|
22
105
|
end
|
data/CHANGELOG.md
CHANGED
@@ -1,27 +1,79 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
-
### 6.5.0
|
4
3
|
|
5
|
-
|
6
|
-
|
4
|
+
### 7.3.0
|
5
|
+
- Ruby 3.0 support
|
6
|
+
|
7
|
+
### 7.2.0
|
8
|
+
- Ruby 2.7 support
|
9
|
+
- Ordering raw SQL argument wrapped with Arel.sql
|
10
|
+
|
11
|
+
### 7.1.0
|
12
|
+
Closure Tree is now tested against Rails 6.0
|
13
|
+
- Directly require core_ext for String#strip_heredoc[PR 350](https://github.com/ClosureTree/closure_tree/pull/350)
|
14
|
+
- Call Module#module_parent instead of deprecated #parent[PR 354](https://github.com/ClosureTree/closure_tree/pull/354)
|
15
|
+
|
16
|
+
### 7.0.0
|
17
|
+
Closure Tree is now tested against Rails 5.2
|
18
|
+
|
19
|
+
- Postpone configuration (database introspection)[PR 264](https://github.com/ClosureTree/closure_tree/pull/264)
|
20
|
+
- Fix "tree.find_by_path([])" [PR 288](https://github.com/ClosureTree/closure_tree/pull/288)
|
21
|
+
- Fixed generator specs and added migration version [PR 292](https://github.com/ClosureTree/closure_tree/pull/292)
|
22
|
+
- Eliminate deprecation warnings in ActiveRecord 5.2 [PR 296](https://github.com/ClosureTree/closure_tree/pull/296)
|
23
|
+
- When using 'oracle_enhanced', remove 'AS' on the table_name alias. [PR 298](https://github.com/ClosureTree/closure_tree/pull/298)
|
24
|
+
- README update [PR 301](https://github.com/ClosureTree/closure_tree/pull/301)
|
25
|
+
- Add `with_descendant` finder [PR 302](https://github.com/ClosureTree/closure_tree/pull/302)
|
26
|
+
- Fix pg version for rails prior 5.1 [PR 303](https://github.com/ClosureTree/closure_tree/pull/303)
|
27
|
+
- Test on Rails 5.2 & fix mysql for older Rails [PR 304](https://github.com/ClosureTree/closure_tree/pull/304)
|
28
|
+
- Test with ActiveRecord 5.2.0 [PR 307](https://github.com/ClosureTree/closure_tree/pull/307)
|
29
|
+
- README update [PR 310](https://github.com/ClosureTree/closure_tree/pull/310)
|
30
|
+
- FactoryBot linter failing for a model that uses closure_tree [PR 311](https://github.com/ClosureTree/closure_tree/pull/311)
|
31
|
+
- Added dont_order_roots option [PR 312](https://github.com/ClosureTree/closure_tree/pull/312)
|
32
|
+
- Added instance methods to determine the relationship between 2 nodes [PR 314](https://github.com/ClosureTree/closure_tree/pull/314)
|
33
|
+
- Add an instance method to check the relationship between 2 nodes: #family_of? [PR 319](https://github.com/ClosureTree/closure_tree/pull/319)
|
34
|
+
- Remove options restrictions on has_closure_tree_root [PR 321](https://github.com/ClosureTree/closure_tree/pull/321)
|
35
|
+
- Fix uninitialized variable warnings [PR 323](https://github.com/ClosureTree/closure_tree/pull/323)
|
36
|
+
|
37
|
+
### 6.6.0
|
38
|
+
|
39
|
+
Closure Tree is now tested against Rails 5.1, and just passed 50 contributors and
|
40
|
+
1000 stars on github! 🎉!
|
41
|
+
|
42
|
+
Note that Closure Tree has moved to a new "Closure Tree" github organization.
|
43
|
+
**Future gem releases will be done by other contributors.**
|
44
|
+
|
45
|
+
* ActiveSupport 5.1 deprecation warnings were addressed in [PR
|
46
|
+
262](https://github.com/ClosureTree/closure_tree/pull/262). Thanks, [Charles
|
47
|
+
Pence](https://github.com/cpence)!
|
48
|
+
* ActiveSupport 5.1 test failures were fixed in
|
49
|
+
[PR 280](https://github.com/ClosureTree/closure_tree/pull/280).
|
50
|
+
Thanks, [Bobby Uhlenbrock](https://github.com/uhlenbrock)!
|
51
|
+
* A database connection was leaked at startup, fixed in [PR
|
52
|
+
263](https://github.com/ClosureTree/closure_tree/pull/263). Thanks, [Andrey
|
53
|
+
Novikov](https://github.com/Envek)!
|
54
|
+
|
55
|
+
### 6.5.0
|
7
56
|
|
57
|
+
* Merged [PR 258](https://github.com/ClosureTree/closure_tree/pull/258) which
|
58
|
+
improves hierarchy maintenance with large trees. Thanks, [Nikolay
|
59
|
+
Bekirov](https://github.com/nbekirov)!
|
8
60
|
### 6.4.0
|
9
61
|
|
10
|
-
* Merged [PR 236](https://github.com/
|
62
|
+
* Merged [PR 236](https://github.com/ClosureTree/closure_tree/pull/236) which adds documentation for `has_closure_tree_root`.
|
11
63
|
* Added ruby 2.4 and dropped Rails 4.1 from the build matrix.
|
12
64
|
|
13
65
|
### 6.3.0
|
14
66
|
|
15
|
-
* `prepend_child` [handles invalid children properly now](https://github.com/
|
67
|
+
* `prepend_child` [handles invalid children properly now](https://github.com/ClosureTree/closure_tree/issues/249).
|
16
68
|
Thanks [Amit Saxena](https://github.com/amitsaxena)!
|
17
69
|
* Dropped official support for jruby and ruby 2.0 (no code was changed)
|
18
70
|
|
19
71
|
### 6.2.0
|
20
72
|
|
21
|
-
* Fix for [MySQL lock lengths](https://github.com/
|
73
|
+
* Fix for [MySQL lock lengths](https://github.com/ClosureTree/closure_tree/issues/231).
|
22
74
|
Thanks to [Liam](https://github.com/hut8)!
|
23
|
-
* [Tom Smyth](https://github.com/hooverlunch) added [eager tree loading](https://github.com/
|
24
|
-
* Merged [PR 200](https://github.com/
|
75
|
+
* [Tom Smyth](https://github.com/hooverlunch) added [eager tree loading](https://github.com/ClosureTree/closure_tree/pull/232)
|
76
|
+
* 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).
|
25
77
|
|
26
78
|
### 6.1.0
|
27
79
|
|
@@ -45,7 +97,7 @@
|
|
45
97
|
* Dropped support for versions of Rails 3.2 and 4.0 (which are no longer supported).
|
46
98
|
* Dropped support for Ruby 1.9 and JRuby 1.9 (which are no longer supported).
|
47
99
|
* Added support for `.hash_tree` from `.parent` and `.children`.
|
48
|
-
Addresses [PR146](https://github.com/
|
100
|
+
Addresses [PR146](https://github.com/ClosureTree/closure_tree/pull/146).
|
49
101
|
Thanks for reporting this and the breaking test, [Mike](https://github.com/mkralla11)!
|
50
102
|
|
51
103
|
### 5.2.0
|
@@ -56,7 +108,7 @@
|
|
56
108
|
* [Ryan Selk](https://github.com/rselk) made several enhancements to the migration generation (thanks!).
|
57
109
|
* [ruok5](https://github.com/ruok5) updated the README to clarify a heirarchy maintenance usecase. Thanks!
|
58
110
|
* Made migrations error with a helpful message if the target didn't have the `has_closure_tree` or
|
59
|
-
`acts_as_tree` annotation. This addresses [issue 131](https://github.com/
|
111
|
+
`acts_as_tree` annotation. This addresses [issue 131](https://github.com/ClosureTree/closure_tree/issues/131).
|
60
112
|
|
61
113
|
### 5.1.1
|
62
114
|
|
@@ -67,7 +119,7 @@
|
|
67
119
|
|
68
120
|
* [Abdelkader Boudih](https://github.com/seuros) added a database generator
|
69
121
|
for the hierarchies table. Thanks!
|
70
|
-
* [Jason Weathered](https://github.com/jasoncodes) fixed [issue #117](https://github.com/
|
122
|
+
* [Jason Weathered](https://github.com/jasoncodes) fixed [issue #117](https://github.com/ClosureTree/closure_tree/pull/117)
|
71
123
|
with the preordered traversal code that assumed the primary key column was called `id`. Thanks!
|
72
124
|
|
73
125
|
### 5.0.0
|
@@ -91,13 +143,13 @@
|
|
91
143
|
|
92
144
|
### 4.6.2
|
93
145
|
|
94
|
-
* Pulled in [106](https://github.com/
|
146
|
+
* Pulled in [106](https://github.com/ClosureTree/closure_tree/pull/106) which fixed a bug introduced
|
95
147
|
in 4.6.0 which broke if the numeric ordering column wasn't named 'sort_order'. Tests have been
|
96
148
|
added. Thanks for the fix, [Fission Xuiptz](https://github.com/fissionxuiptz)!
|
97
149
|
|
98
150
|
### 4.6.1
|
99
151
|
|
100
|
-
* Address [issue 60](https://github.com/
|
152
|
+
* Address [issue 60](https://github.com/ClosureTree/closure_tree/issues/60) (use `.empty?` rather
|
101
153
|
than `.nil?`—thanks for the suggestion, [Leonel Galán](https://github.com/leonelgalan),
|
102
154
|
[Doug Mayer](https://github.com/doxavore) and [Samnang Chhun](https://github.com/samnang)!
|
103
155
|
|
@@ -124,7 +176,7 @@
|
|
124
176
|
|
125
177
|
### 4.4.0
|
126
178
|
|
127
|
-
* Added ```.self_and_descendant_ids``` and ```.self_and_ancestors_ids``` from [PR92](https://github.com/
|
179
|
+
* Added ```.self_and_descendant_ids``` and ```.self_and_ancestors_ids``` from [PR92](https://github.com/ClosureTree/closure_tree/pull/92).
|
128
180
|
Thanks, [Kir Shatrov](https://github.com/kirs)!
|
129
181
|
|
130
182
|
* Dropped support for Rails 3.0.
|
@@ -139,7 +191,7 @@
|
|
139
191
|
### 4.2.9
|
140
192
|
|
141
193
|
* Support for Heroku's cray assets:precompile hack for Rails 4.
|
142
|
-
Addresses [issue 78](https://github.com/
|
194
|
+
Addresses [issue 78](https://github.com/ClosureTree/closure_tree/issues/78).
|
143
195
|
Thanks for the assist, [Alex Bowman](https://github.com/axlekb).
|
144
196
|
|
145
197
|
### 4.2.8
|
@@ -149,7 +201,7 @@
|
|
149
201
|
### 4.2.7
|
150
202
|
|
151
203
|
* ```self_and_ancestors``` and ```ancestry_hierarchy``` are reloaded
|
152
|
-
when nodes are reparented. Addresses [issue 68](https://github.com/
|
204
|
+
when nodes are reparented. Addresses [issue 68](https://github.com/ClosureTree/closure_tree/issues/68).
|
153
205
|
Thanks for the assist, [Ivan Stana](https://github.com/istana).
|
154
206
|
|
155
207
|
### 4.2.6
|
@@ -169,12 +221,12 @@
|
|
169
221
|
### 4.2.4
|
170
222
|
|
171
223
|
* Support for ```root?```, ```child?```, and proper parent-child associations
|
172
|
-
when both the parent and the child are not persisted. Addresses [issue 64](https://github.com/
|
224
|
+
when both the parent and the child are not persisted. Addresses [issue 64](https://github.com/ClosureTree/closure_tree/issues/64).
|
173
225
|
Thanks for the help, [Gabriel Mazetto](https://github.com/brodock)!
|
174
226
|
|
175
227
|
### 4.2.3
|
176
228
|
|
177
|
-
* Fixed ```attr_accessible?``` error introduced in 4.2.2 ([issue 66](https://github.com/
|
229
|
+
* Fixed ```attr_accessible?``` error introduced in 4.2.2 ([issue 66](https://github.com/ClosureTree/closure_tree/issues/66)).
|
178
230
|
* Switched to use new WithAdvisoryLock::DatabaseAdapterSupport (in v0.0.9) to add Postgis support
|
179
231
|
|
180
232
|
### 4.2.2
|
@@ -204,11 +256,11 @@
|
|
204
256
|
|
205
257
|
* Numeric, deterministically ordered siblings will always be [0..#{self_and_siblings.count}]
|
206
258
|
(previously, the sort order might use negative values, which broke the preordering).
|
207
|
-
Resolves [issue 49](https://github.com/
|
259
|
+
Resolves [issue 49](https://github.com/ClosureTree/closure_tree/issues/49). Thanks for the help,
|
208
260
|
[Leonel Galan](https://github.com/leonelgalan), [Juan Hoyos](https://github.com/elhoyos), and
|
209
261
|
[Michael Elfassy](https://github.com/elfassy)!
|
210
262
|
|
211
|
-
* The ```order``` option can be a symbol now. Resolves [issue 46](https://github.com/
|
263
|
+
* The ```order``` option can be a symbol now. Resolves [issue 46](https://github.com/ClosureTree/closure_tree/issues/46).
|
212
264
|
|
213
265
|
### 4.0.0
|
214
266
|
|
@@ -223,22 +275,22 @@
|
|
223
275
|
### 3.10.2
|
224
276
|
|
225
277
|
* Prevent faulty SQL statement when ```#siblings``` is called on an unsaved records.
|
226
|
-
Resolves [issue 52](https://github.com/
|
278
|
+
Resolves [issue 52](https://github.com/ClosureTree/closure_tree/pull/52). Perfect pull
|
227
279
|
request by [Gary Greyling](https://github.com/garygreyling).
|
228
280
|
|
229
281
|
* The ```.roots``` class method now correctly respects the ```:order``` option.
|
230
|
-
Resolves [issue 53](https://github.com/
|
282
|
+
Resolves [issue 53](https://github.com/ClosureTree/closure_tree/issues/53).
|
231
283
|
Thanks for finding this, [Brendon Muir](https://github.com/brendon)!
|
232
284
|
|
233
285
|
### 3.10.1
|
234
286
|
|
235
287
|
* Multipart constant names like "Admin::PageHierarchy" are now supported.
|
236
|
-
Resolves [issue 47](https://github.com/
|
288
|
+
Resolves [issue 47](https://github.com/ClosureTree/closure_tree/issues/47).
|
237
289
|
Thanks for the perfect pull request, [Simon Menke](https://github.com/fd)!
|
238
290
|
|
239
291
|
* Committing transactions involving large numbers of hierarchy model classes was very slow due
|
240
292
|
to hash collisions in the hierarchy class. A better hash implementation addressed
|
241
|
-
[issue 48](https://github.com/
|
293
|
+
[issue 48](https://github.com/ClosureTree/closure_tree/issues/48).
|
242
294
|
Thanks, [Joel Turkel](https://github.com/jturkel)!
|
243
295
|
|
244
296
|
### 3.10.0
|
@@ -267,19 +319,19 @@ All three of these improvements were suggested by Andrew Bromwich. Thanks!
|
|
267
319
|
### 3.8.0
|
268
320
|
|
269
321
|
* Support for preordered descendants. This requires a numeric sort order column.
|
270
|
-
Resolves [feature request 38](https://github.com/
|
322
|
+
Resolves [feature request 38](https://github.com/ClosureTree/closure_tree/issues/38).
|
271
323
|
* Moved modules from ```acts_as_tree``` into separate files
|
272
324
|
|
273
325
|
### 3.7.3
|
274
326
|
|
275
327
|
Due to MySQL's inability to lock rows properly, I've switched to advisory_locks for
|
276
328
|
all write paths. This will prevent deadlocks, addressing
|
277
|
-
[issue 41](https://github.com/
|
329
|
+
[issue 41](https://github.com/ClosureTree/closure_tree/issues/41).
|
278
330
|
|
279
331
|
### 3.7.2
|
280
332
|
|
281
333
|
* Support for UUID primary keys. Addresses
|
282
|
-
[issue 40](https://github.com/
|
334
|
+
[issue 40](https://github.com/ClosureTree/closure_tree/issues/40). Thanks for the pull request,
|
283
335
|
[Julien](https://github.com/calexicoz)!
|
284
336
|
|
285
337
|
### 3.7.1
|
@@ -290,7 +342,7 @@ all write paths. This will prevent deadlocks, addressing
|
|
290
342
|
### 3.7.0
|
291
343
|
|
292
344
|
**Thread safety!**
|
293
|
-
* [Advisory locks](https://github.com/
|
345
|
+
* [Advisory locks](https://github.com/ClosureTree/with_advisory_lock) were
|
294
346
|
integrated with the class-level ```find_or_create_by_path``` and ```rebuild!```.
|
295
347
|
* Pessimistic locking is used by the instance-level ```find_or_create_by_path```.
|
296
348
|
|
@@ -303,7 +355,7 @@ wasting time on the ruby side.
|
|
303
355
|
### 3.6.7
|
304
356
|
|
305
357
|
* Added workaround for ActiveRecord::Observer usage pre-db-creation. Addresses
|
306
|
-
[issue 32](https://github.com/
|
358
|
+
[issue 32](https://github.com/ClosureTree/closure_tree/issues/32).
|
307
359
|
Thanks, [Don Morrison](https://github.com/elskwid)!
|
308
360
|
|
309
361
|
### 3.6.6
|
@@ -314,28 +366,28 @@ Thanks, [James Miller](https://github.com/bensie)!
|
|
314
366
|
### 3.6.5
|
315
367
|
|
316
368
|
* Use ```quote_table_name``` instead of ```quote_column_name```. Addresses
|
317
|
-
[issue 29](https://github.com/
|
369
|
+
[issue 29](https://github.com/ClosureTree/closure_tree/issues/29). Thanks,
|
318
370
|
[Marcello Barnaba](https://github.com/vjt)!
|
319
371
|
|
320
372
|
### 3.6.4
|
321
373
|
|
322
374
|
* Use ```.pluck``` when available for ```.ids_from```. Addresses
|
323
|
-
[issue 26](https://github.com/
|
375
|
+
[issue 26](https://github.com/ClosureTree/closure_tree/issues/26). Thanks,
|
324
376
|
[Chris Sturgill](https://github.com/sturgill)!
|
325
377
|
|
326
378
|
### 3.6.3
|
327
379
|
|
328
|
-
* Fixed [issue 24](https://github.com/
|
380
|
+
* Fixed [issue 24](https://github.com/ClosureTree/closure_tree/issues/24), which optimized ```#hash_tree```
|
329
381
|
for roots. Thanks, [Saverio Trioni](https://github.com/rewritten)!
|
330
382
|
|
331
383
|
### 3.6.2
|
332
384
|
|
333
|
-
* Fixed [issue 23](https://github.com/
|
385
|
+
* Fixed [issue 23](https://github.com/ClosureTree/closure_tree/issues/23), which added support for ```#siblings```
|
334
386
|
when sort_order wasn't specified. Thanks, [Gary Greyling](https://github.com/garygreyling)!
|
335
387
|
|
336
388
|
### 3.6.1
|
337
389
|
|
338
|
-
* Fixed [issue 20](https://github.com/
|
390
|
+
* Fixed [issue 20](https://github.com/ClosureTree/closure_tree/issues/20), which affected
|
339
391
|
deterministic ordering when siblings where different STI classes. Thanks, [edwinramirez](https://github.com/edwinramirez)!
|
340
392
|
|
341
393
|
### 3.6.0
|
@@ -345,16 +397,16 @@ Added support for:
|
|
345
397
|
* ActiveRecord::Base.table_name_prefix
|
346
398
|
* ActiveRecord::Base.table_name_suffix
|
347
399
|
|
348
|
-
This addresses [issue 21](https://github.com/
|
400
|
+
This addresses [issue 21](https://github.com/ClosureTree/closure_tree/issues/21). Thanks, [Judd Blair](https://github.com/juddblair)!
|
349
401
|
|
350
402
|
### 3.5.2
|
351
403
|
|
352
404
|
* Added ```find_all_by_generation```
|
353
|
-
for [feature request 17](https://github.com/
|
405
|
+
for [feature request 17](https://github.com/ClosureTree/closure_tree/issues/17).
|
354
406
|
|
355
407
|
### 3.4.2
|
356
408
|
|
357
|
-
* Fixed [issue 18](https://github.com/
|
409
|
+
* Fixed [issue 18](https://github.com/ClosureTree/closure_tree/issues/18), which affected
|
358
410
|
append_node/prepend_node ordering when the first node didn't have an explicit order_by value
|
359
411
|
|
360
412
|
### 3.4.1
|
@@ -363,7 +415,7 @@ This addresses [issue 21](https://github.com/mceachen/closure_tree/issues/21). T
|
|
363
415
|
|
364
416
|
### 3.4.0
|
365
417
|
|
366
|
-
Fixed [issue 15](https://github.com/
|
418
|
+
Fixed [issue 15](https://github.com/ClosureTree/closure_tree/issues/15):
|
367
419
|
* "parent" is now attr_accessible, which adds support for constructor-provided parents.
|
368
420
|
* updated readme accordingly
|
369
421
|
|
@@ -373,7 +425,7 @@ Fixed [issue 15](https://github.com/mceachen/closure_tree/issues/15):
|
|
373
425
|
|
374
426
|
### 3.3.1
|
375
427
|
|
376
|
-
* Added support for partially-unsaved hierarchies [issue 13](https://github.com/
|
428
|
+
* Added support for partially-unsaved hierarchies [issue 13](https://github.com/ClosureTree/closure_tree/issues/13):
|
377
429
|
```
|
378
430
|
a = Tag.new(name: "a")
|
379
431
|
b = Tag.new(name: "b")
|
@@ -388,7 +440,7 @@ a.save
|
|
388
440
|
### 3.2.1
|
389
441
|
|
390
442
|
* Added ```ancestor_ids```, ```descendant_ids```, and ```sibling_ids```
|
391
|
-
* Added example spec to solve [issue 9](https://github.com/
|
443
|
+
* Added example spec to solve [issue 9](https://github.com/ClosureTree/closure_tree/issues/9)
|
392
444
|
|
393
445
|
### 3.2.0
|
394
446
|
|
@@ -400,7 +452,7 @@ a.save
|
|
400
452
|
|
401
453
|
### 3.0.4
|
402
454
|
|
403
|
-
* Merged [pull request](https://github.com/
|
455
|
+
* Merged [pull request](https://github.com/ClosureTree/closure_tree/pull/8) to fix ```.siblings``` and ```.self_and_siblings```
|
404
456
|
(Thanks, [eljojo](https://github.com/eljojo)!)
|
405
457
|
|
406
458
|
### 3.0.3
|
@@ -415,7 +467,7 @@ a.save
|
|
415
467
|
|
416
468
|
### 3.0.1
|
417
469
|
|
418
|
-
* Support 3.2.0's fickle deprecation of InstanceMethods (Thanks, [jheiss](https://github.com/
|
470
|
+
* Support 3.2.0's fickle deprecation of InstanceMethods (Thanks, [jheiss](https://github.com/ClosureTree/closure_tree/pull/5))!
|
419
471
|
|
420
472
|
### 3.0.0
|
421
473
|
|