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