closure_tree 7.3.0 → 9.1.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 +4 -4
- data/CHANGELOG.md +31 -0
- data/README.md +125 -39
- data/bin/rails +15 -0
- data/bin/rake +7 -7
- data/closure_tree.gemspec +21 -19
- data/lib/closure_tree/active_record_support.rb +6 -14
- data/lib/closure_tree/arel_helpers.rb +83 -0
- data/lib/closure_tree/deterministic_ordering.rb +2 -0
- data/lib/closure_tree/digraphs.rb +7 -5
- data/lib/closure_tree/finders.rb +104 -55
- data/lib/closure_tree/has_closure_tree.rb +5 -4
- data/lib/closure_tree/has_closure_tree_root.rb +12 -17
- data/lib/closure_tree/hash_tree.rb +3 -2
- data/lib/closure_tree/hash_tree_support.rb +38 -13
- data/lib/closure_tree/hierarchy_maintenance.rb +20 -30
- data/lib/closure_tree/model.rb +31 -31
- data/lib/closure_tree/numeric_deterministic_ordering.rb +90 -60
- data/lib/closure_tree/numeric_order_support.rb +20 -18
- data/lib/closure_tree/support.rb +30 -44
- data/lib/closure_tree/support_attributes.rb +31 -5
- data/lib/closure_tree/support_flags.rb +2 -12
- data/lib/closure_tree/test/matcher.rb +10 -12
- data/lib/closure_tree/version.rb +3 -1
- data/lib/closure_tree.rb +14 -22
- data/lib/generators/closure_tree/migration_generator.rb +7 -8
- metadata +30 -81
- data/.github/workflows/ci.yml +0 -96
- data/.gitignore +0 -17
- data/.rspec +0 -1
- data/.yardopts +0 -3
- data/Appraisals +0 -105
- data/Gemfile +0 -3
- data/Rakefile +0 -28
- data/_config.yml +0 -1
- data/bin/appraisal +0 -29
- data/bin/rspec +0 -29
- data/lib/closure_tree/configuration.rb +0 -9
- data/lib/generators/closure_tree/config_generator.rb +0 -12
- data/lib/generators/closure_tree/templates/config.rb +0 -5
- data/mktree.rb +0 -38
- data/tests.sh +0 -11
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'closure_tree/active_record_support'
|
2
4
|
require 'forwardable'
|
3
5
|
require 'rails/generators'
|
@@ -36,17 +38,14 @@ module ClosureTree
|
|
36
38
|
|
37
39
|
def ct
|
38
40
|
@ct ||= if target_class.respond_to?(:_ct)
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
41
|
+
target_class._ct
|
42
|
+
else
|
43
|
+
raise "Please RTFM and add the `has_closure_tree` (or `acts_as_tree`) annotation to #{class_name} before creating the migration."
|
44
|
+
end
|
43
45
|
end
|
44
46
|
|
45
47
|
def migration_version
|
46
|
-
|
47
|
-
if major >= 5
|
48
|
-
"[#{major}.#{ActiveRecord::VERSION::MINOR}]"
|
49
|
-
end
|
48
|
+
"[#{ActiveRecord::VERSION::MAJOR}.#{ActiveRecord::VERSION::MINOR}]"
|
50
49
|
end
|
51
50
|
|
52
51
|
def self.next_migration_number(dirname)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: closure_tree
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 9.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew McEachen
|
8
|
-
|
8
|
+
- Abdelkader Boudih
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -16,42 +16,42 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 7.2.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 7.2.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: with_advisory_lock
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 7.0.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 7.0.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: zeitwerk
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
48
|
-
type: :
|
47
|
+
version: '2.7'
|
48
|
+
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '2.7'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: database_cleaner
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -67,21 +67,7 @@ dependencies:
|
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: parallel
|
70
|
+
name: minitest
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
86
72
|
requirements:
|
87
73
|
- - ">="
|
@@ -95,7 +81,7 @@ dependencies:
|
|
95
81
|
- !ruby/object:Gem::Version
|
96
82
|
version: '0'
|
97
83
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
84
|
+
name: minitest-reporters
|
99
85
|
requirement: !ruby/object:Gem::Requirement
|
100
86
|
requirements:
|
101
87
|
- - ">="
|
@@ -109,35 +95,7 @@ dependencies:
|
|
109
95
|
- !ruby/object:Gem::Version
|
110
96
|
version: '0'
|
111
97
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - ">="
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - ">="
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '0'
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: rspec-rails
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - ">="
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '0'
|
132
|
-
type: :development
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - ">="
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '0'
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
name: sqlite3
|
98
|
+
name: parallel
|
141
99
|
requirement: !ruby/object:Gem::Requirement
|
142
100
|
requirements:
|
143
101
|
- - ">="
|
@@ -178,31 +136,22 @@ dependencies:
|
|
178
136
|
- - ">="
|
179
137
|
- !ruby/object:Gem::Version
|
180
138
|
version: '0'
|
181
|
-
description: Easily and efficiently make your ActiveRecord model support hierarchies
|
182
139
|
email:
|
183
|
-
- matthew
|
140
|
+
- matthew+github@mceachen.org
|
141
|
+
- terminale@gmail.com
|
184
142
|
executables: []
|
185
143
|
extensions: []
|
186
144
|
extra_rdoc_files: []
|
187
145
|
files:
|
188
|
-
- ".github/workflows/ci.yml"
|
189
|
-
- ".gitignore"
|
190
|
-
- ".rspec"
|
191
|
-
- ".yardopts"
|
192
|
-
- Appraisals
|
193
146
|
- CHANGELOG.md
|
194
|
-
- Gemfile
|
195
147
|
- MIT-LICENSE
|
196
148
|
- README.md
|
197
|
-
-
|
198
|
-
- _config.yml
|
199
|
-
- bin/appraisal
|
149
|
+
- bin/rails
|
200
150
|
- bin/rake
|
201
|
-
- bin/rspec
|
202
151
|
- closure_tree.gemspec
|
203
152
|
- lib/closure_tree.rb
|
204
153
|
- lib/closure_tree/active_record_support.rb
|
205
|
-
- lib/closure_tree/
|
154
|
+
- lib/closure_tree/arel_helpers.rb
|
206
155
|
- lib/closure_tree/deterministic_ordering.rb
|
207
156
|
- lib/closure_tree/digraphs.rb
|
208
157
|
- lib/closure_tree/finders.rb
|
@@ -219,17 +168,18 @@ files:
|
|
219
168
|
- lib/closure_tree/support_flags.rb
|
220
169
|
- lib/closure_tree/test/matcher.rb
|
221
170
|
- lib/closure_tree/version.rb
|
222
|
-
- lib/generators/closure_tree/config_generator.rb
|
223
171
|
- lib/generators/closure_tree/migration_generator.rb
|
224
|
-
- lib/generators/closure_tree/templates/config.rb
|
225
172
|
- lib/generators/closure_tree/templates/create_hierarchies_table.rb.erb
|
226
|
-
|
227
|
-
- tests.sh
|
228
|
-
homepage: http://mceachen.github.io/closure_tree/
|
173
|
+
homepage: https://github.com/ClosureTree/closure_tree/
|
229
174
|
licenses:
|
230
175
|
- MIT
|
231
|
-
metadata:
|
232
|
-
|
176
|
+
metadata:
|
177
|
+
bug_tracker_uri: https://github.com/ClosureTree/closure_tree/issues
|
178
|
+
changelog_uri: https://github.com/ClosureTree/closure_tree/blob/master/CHANGELOG.md
|
179
|
+
documentation_uri: https://www.rubydoc.info/gems/closure_tree/9.1.0
|
180
|
+
homepage_uri: https://closuretree.github.io/closure_tree/
|
181
|
+
source_code_uri: https://github.com/ClosureTree/closure_tree
|
182
|
+
rubygems_mfa_required: 'true'
|
233
183
|
rdoc_options: []
|
234
184
|
require_paths:
|
235
185
|
- lib
|
@@ -237,15 +187,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
237
187
|
requirements:
|
238
188
|
- - ">="
|
239
189
|
- !ruby/object:Gem::Version
|
240
|
-
version:
|
190
|
+
version: 3.3.0
|
241
191
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
242
192
|
requirements:
|
243
193
|
- - ">="
|
244
194
|
- !ruby/object:Gem::Version
|
245
195
|
version: '0'
|
246
196
|
requirements: []
|
247
|
-
rubygems_version: 3.
|
248
|
-
signing_key:
|
197
|
+
rubygems_version: 3.6.9
|
249
198
|
specification_version: 4
|
250
199
|
summary: Easily and efficiently make your ActiveRecord model support hierarchies
|
251
200
|
test_files: []
|
data/.github/workflows/ci.yml
DELETED
@@ -1,96 +0,0 @@
|
|
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
DELETED
data/.rspec
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
--color
|
data/.yardopts
DELETED
data/Appraisals
DELETED
@@ -1,105 +0,0 @@
|
|
1
|
-
|
2
|
-
appraise 'activerecord-4.2' do
|
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
|
9
|
-
|
10
|
-
platforms :jruby do
|
11
|
-
gem 'activerecord-jdbcmysql-adapter'
|
12
|
-
gem 'activerecord-jdbcpostgresql-adapter'
|
13
|
-
gem 'activerecord-jdbcsqlite3-adapter'
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
appraise 'activerecord-5.0' do
|
18
|
-
gem 'activerecord', '~> 5.0.0'
|
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
|
30
|
-
end
|
31
|
-
|
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
|
90
|
-
end
|
91
|
-
|
92
|
-
appraise 'activerecord-edge' do
|
93
|
-
gem 'activerecord', github: 'rails/rails'
|
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
|
105
|
-
end
|
data/Gemfile
DELETED
data/Rakefile
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'bundler/gem_tasks'
|
4
|
-
require 'rspec/core/rake_task'
|
5
|
-
|
6
|
-
RSpec::Core::RakeTask.new(:spec) do |task|
|
7
|
-
task.pattern = 'spec/closure_tree/*_spec.rb'
|
8
|
-
end
|
9
|
-
|
10
|
-
task default: :spec
|
11
|
-
|
12
|
-
namespace :spec do
|
13
|
-
desc 'Run all spec variants'
|
14
|
-
task :all do
|
15
|
-
rake = 'bin/rake'
|
16
|
-
fail unless system("#{rake} spec:generators")
|
17
|
-
|
18
|
-
[['', ''], ['db_prefix_', ''], ['', '_db_suffix'], ['abc_', '_123']].each do |prefix, suffix|
|
19
|
-
env = "DB_PREFIX=#{prefix} DB_SUFFIX=#{suffix}"
|
20
|
-
fail unless system("#{rake} spec #{env}")
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
desc 'Run generator specs'
|
25
|
-
RSpec::Core::RakeTask.new(:generators) do |task|
|
26
|
-
task.pattern = 'spec/generators/*_spec.rb'
|
27
|
-
end
|
28
|
-
end
|
data/_config.yml
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
theme: jekyll-theme-leap-day
|
data/bin/appraisal
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
#
|
5
|
-
# This file was generated by Bundler.
|
6
|
-
#
|
7
|
-
# The application 'appraisal' is installed as part of a gem, and
|
8
|
-
# this file is here to facilitate running it.
|
9
|
-
#
|
10
|
-
|
11
|
-
require "pathname"
|
12
|
-
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
13
|
-
Pathname.new(__FILE__).realpath)
|
14
|
-
|
15
|
-
bundle_binstub = File.expand_path("../bundle", __FILE__)
|
16
|
-
|
17
|
-
if File.file?(bundle_binstub)
|
18
|
-
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
19
|
-
load(bundle_binstub)
|
20
|
-
else
|
21
|
-
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
22
|
-
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
require "rubygems"
|
27
|
-
require "bundler/setup"
|
28
|
-
|
29
|
-
load Gem.bin_path("appraisal", "appraisal")
|
data/bin/rspec
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
#
|
5
|
-
# This file was generated by Bundler.
|
6
|
-
#
|
7
|
-
# The application 'rspec' is installed as part of a gem, and
|
8
|
-
# this file is here to facilitate running it.
|
9
|
-
#
|
10
|
-
|
11
|
-
require "pathname"
|
12
|
-
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
13
|
-
Pathname.new(__FILE__).realpath)
|
14
|
-
|
15
|
-
bundle_binstub = File.expand_path("../bundle", __FILE__)
|
16
|
-
|
17
|
-
if File.file?(bundle_binstub)
|
18
|
-
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
19
|
-
load(bundle_binstub)
|
20
|
-
else
|
21
|
-
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
22
|
-
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
require "rubygems"
|
27
|
-
require "bundler/setup"
|
28
|
-
|
29
|
-
load Gem.bin_path("rspec-core", "rspec")
|
@@ -1,12 +0,0 @@
|
|
1
|
-
module ClosureTree
|
2
|
-
module Generators # :nodoc:
|
3
|
-
class ConfigGenerator < Rails::Generators::Base # :nodoc:
|
4
|
-
source_root File.expand_path('../templates', __FILE__)
|
5
|
-
desc 'Install closure tree config.'
|
6
|
-
|
7
|
-
def config
|
8
|
-
template 'config.rb', 'config/initializers/closure_tree_config.rb'
|
9
|
-
end
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
data/mktree.rb
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
#!/usr/bin/env bundle exec ruby -I lib:spec
|
2
|
-
|
3
|
-
# Simple benchmark utility to create a closure tree based on the topology of the current filesystem
|
4
|
-
|
5
|
-
#ENV['NONUKES'] = '1'
|
6
|
-
require 'spec_helper'
|
7
|
-
require 'findler'
|
8
|
-
require 'pathname'
|
9
|
-
|
10
|
-
# Returns the current path, split into an array.
|
11
|
-
# Pathname.new("/a/b/c").path_array = ["a", "b", "c"]
|
12
|
-
class Pathname
|
13
|
-
def path_array
|
14
|
-
a = []
|
15
|
-
each_filename { |ea| a << ea }
|
16
|
-
a
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
cnt = 0
|
21
|
-
f = Findler.new '/'
|
22
|
-
iter = f.iterator
|
23
|
-
Tag.with_advisory_lock('closure_tree') do
|
24
|
-
while (nxt = iter.next_file) && ((cnt += 1) < 1000)
|
25
|
-
t = Tag.find_or_create_by_path(nxt.path_array)
|
26
|
-
puts "created #{nxt.to_s}"
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
puts "Tag.all.size: #{Tag.all.size}"
|
31
|
-
puts "TagHierarchy.all.size: #{TagHierarchy.all.size}"
|
32
|
-
|
33
|
-
puts 'Tag.roots performance:'
|
34
|
-
puts Benchmark.measure { Tag.roots.size }
|
35
|
-
|
36
|
-
puts 'Tag.leaves performance:'
|
37
|
-
puts Benchmark.measure { Tag.leaves.size }
|
38
|
-
|