closure_tree 8.0.0 → 9.0.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.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -0
  3. data/README.md +111 -38
  4. data/bin/rails +15 -0
  5. data/bin/rake +7 -7
  6. data/closure_tree.gemspec +11 -17
  7. data/lib/closure_tree/active_record_support.rb +4 -1
  8. data/lib/closure_tree/adapter_support.rb +11 -0
  9. data/lib/closure_tree/arel_helpers.rb +83 -0
  10. data/lib/closure_tree/configuration.rb +2 -0
  11. data/lib/closure_tree/deterministic_ordering.rb +2 -0
  12. data/lib/closure_tree/digraphs.rb +6 -4
  13. data/lib/closure_tree/finders.rb +103 -54
  14. data/lib/closure_tree/has_closure_tree.rb +5 -2
  15. data/lib/closure_tree/has_closure_tree_root.rb +12 -17
  16. data/lib/closure_tree/hash_tree.rb +2 -1
  17. data/lib/closure_tree/hash_tree_support.rb +38 -13
  18. data/lib/closure_tree/hierarchy_maintenance.rb +19 -26
  19. data/lib/closure_tree/model.rb +29 -29
  20. data/lib/closure_tree/numeric_deterministic_ordering.rb +90 -55
  21. data/lib/closure_tree/numeric_order_support.rb +20 -18
  22. data/lib/closure_tree/support.rb +29 -32
  23. data/lib/closure_tree/support_attributes.rb +31 -5
  24. data/lib/closure_tree/support_flags.rb +2 -12
  25. data/lib/closure_tree/test/matcher.rb +10 -12
  26. data/lib/closure_tree/version.rb +3 -1
  27. data/lib/closure_tree.rb +22 -2
  28. data/lib/generators/closure_tree/config_generator.rb +3 -1
  29. data/lib/generators/closure_tree/migration_generator.rb +6 -4
  30. data/lib/generators/closure_tree/templates/config.rb +2 -0
  31. metadata +12 -104
  32. data/.github/workflows/ci.yml +0 -72
  33. data/.github/workflows/ci_jruby.yml +0 -68
  34. data/.github/workflows/ci_truffleruby.yml +0 -71
  35. data/.github/workflows/release.yml +0 -17
  36. data/.gitignore +0 -17
  37. data/.release-please-manifest.json +0 -1
  38. data/.rspec +0 -1
  39. data/.tool-versions +0 -1
  40. data/.yardopts +0 -3
  41. data/Appraisals +0 -61
  42. data/Gemfile +0 -6
  43. data/Rakefile +0 -32
  44. data/bin/appraisal +0 -29
  45. data/bin/rspec +0 -29
  46. data/mktree.rb +0 -38
  47. data/release-please-config.json +0 -4
  48. data/test/closure_tree/cache_invalidation_test.rb +0 -36
  49. data/test/closure_tree/cuisine_type_test.rb +0 -42
  50. data/test/closure_tree/generator_test.rb +0 -49
  51. data/test/closure_tree/has_closure_tree_root_test.rb +0 -80
  52. data/test/closure_tree/hierarchy_maintenance_test.rb +0 -56
  53. data/test/closure_tree/label_test.rb +0 -674
  54. data/test/closure_tree/metal_test.rb +0 -59
  55. data/test/closure_tree/model_test.rb +0 -9
  56. data/test/closure_tree/namespace_type_test.rb +0 -13
  57. data/test/closure_tree/parallel_test.rb +0 -162
  58. data/test/closure_tree/pool_test.rb +0 -33
  59. data/test/closure_tree/support_test.rb +0 -18
  60. data/test/closure_tree/tag_test.rb +0 -8
  61. data/test/closure_tree/user_test.rb +0 -175
  62. data/test/closure_tree/uuid_tag_test.rb +0 -8
  63. data/test/support/query_counter.rb +0 -25
  64. data/test/support/tag_examples.rb +0 -923
  65. data/test/test_helper.rb +0 -99
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  ClosureTree.configure do |config|
2
4
  # Some PaaS like Heroku don't have available the db in some build steps like
3
5
  # assets:precompile, this is skipped when this value is true, default = false
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: closure_tree
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.0.0
4
+ version: 9.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew McEachen
@@ -16,48 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 7.1.0
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: 7.1.0
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: 5.0.0
34
- - - "<"
35
- - !ruby/object:Gem::Version
36
- version: 6.0.0
33
+ version: 7.0.0
37
34
  type: :runtime
38
35
  prerelease: false
39
36
  version_requirements: !ruby/object:Gem::Requirement
40
37
  requirements:
41
38
  - - ">="
42
39
  - !ruby/object:Gem::Version
43
- version: 5.0.0
44
- - - "<"
45
- - !ruby/object:Gem::Version
46
- version: 6.0.0
47
- - !ruby/object:Gem::Dependency
48
- name: appraisal
49
- requirement: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- version: '0'
54
- type: :development
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: '0'
40
+ version: 7.0.0
61
41
  - !ruby/object:Gem::Dependency
62
42
  name: database_cleaner
63
43
  requirement: !ruby/object:Gem::Requirement
@@ -72,34 +52,6 @@ dependencies:
72
52
  - - ">="
73
53
  - !ruby/object:Gem::Version
74
54
  version: '0'
75
- - !ruby/object:Gem::Dependency
76
- name: generator_spec
77
- requirement: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - ">="
80
- - !ruby/object:Gem::Version
81
- version: '0'
82
- type: :development
83
- prerelease: false
84
- version_requirements: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- version: '0'
89
- - !ruby/object:Gem::Dependency
90
- name: parallel
91
- requirement: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - ">="
94
- - !ruby/object:Gem::Version
95
- version: '0'
96
- type: :development
97
- prerelease: false
98
- version_requirements: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - ">="
101
- - !ruby/object:Gem::Version
102
- version: '0'
103
55
  - !ruby/object:Gem::Dependency
104
56
  name: minitest
105
57
  requirement: !ruby/object:Gem::Requirement
@@ -129,21 +81,7 @@ dependencies:
129
81
  - !ruby/object:Gem::Version
130
82
  version: '0'
131
83
  - !ruby/object:Gem::Dependency
132
- name: rspec-instafail
133
- requirement: !ruby/object:Gem::Requirement
134
- requirements:
135
- - - ">="
136
- - !ruby/object:Gem::Version
137
- version: '0'
138
- type: :development
139
- prerelease: false
140
- version_requirements: !ruby/object:Gem::Requirement
141
- requirements:
142
- - - ">="
143
- - !ruby/object:Gem::Version
144
- version: '0'
145
- - !ruby/object:Gem::Dependency
146
- name: rspec-rails
84
+ name: parallel
147
85
  requirement: !ruby/object:Gem::Requirement
148
86
  requirements:
149
87
  - - ">="
@@ -191,27 +129,16 @@ executables: []
191
129
  extensions: []
192
130
  extra_rdoc_files: []
193
131
  files:
194
- - ".github/workflows/ci.yml"
195
- - ".github/workflows/ci_jruby.yml"
196
- - ".github/workflows/ci_truffleruby.yml"
197
- - ".github/workflows/release.yml"
198
- - ".gitignore"
199
- - ".release-please-manifest.json"
200
- - ".rspec"
201
- - ".tool-versions"
202
- - ".yardopts"
203
- - Appraisals
204
132
  - CHANGELOG.md
205
- - Gemfile
206
133
  - MIT-LICENSE
207
134
  - README.md
208
- - Rakefile
209
- - bin/appraisal
135
+ - bin/rails
210
136
  - bin/rake
211
- - bin/rspec
212
137
  - closure_tree.gemspec
213
138
  - lib/closure_tree.rb
214
139
  - lib/closure_tree/active_record_support.rb
140
+ - lib/closure_tree/adapter_support.rb
141
+ - lib/closure_tree/arel_helpers.rb
215
142
  - lib/closure_tree/configuration.rb
216
143
  - lib/closure_tree/deterministic_ordering.rb
217
144
  - lib/closure_tree/digraphs.rb
@@ -233,35 +160,16 @@ files:
233
160
  - lib/generators/closure_tree/migration_generator.rb
234
161
  - lib/generators/closure_tree/templates/config.rb
235
162
  - lib/generators/closure_tree/templates/create_hierarchies_table.rb.erb
236
- - mktree.rb
237
- - release-please-config.json
238
- - test/closure_tree/cache_invalidation_test.rb
239
- - test/closure_tree/cuisine_type_test.rb
240
- - test/closure_tree/generator_test.rb
241
- - test/closure_tree/has_closure_tree_root_test.rb
242
- - test/closure_tree/hierarchy_maintenance_test.rb
243
- - test/closure_tree/label_test.rb
244
- - test/closure_tree/metal_test.rb
245
- - test/closure_tree/model_test.rb
246
- - test/closure_tree/namespace_type_test.rb
247
- - test/closure_tree/parallel_test.rb
248
- - test/closure_tree/pool_test.rb
249
- - test/closure_tree/support_test.rb
250
- - test/closure_tree/tag_test.rb
251
- - test/closure_tree/user_test.rb
252
- - test/closure_tree/uuid_tag_test.rb
253
- - test/support/query_counter.rb
254
- - test/support/tag_examples.rb
255
- - test/test_helper.rb
256
163
  homepage: https://github.com/ClosureTree/closure_tree/
257
164
  licenses:
258
165
  - MIT
259
166
  metadata:
260
167
  bug_tracker_uri: https://github.com/ClosureTree/closure_tree/issues
261
168
  changelog_uri: https://github.com/ClosureTree/closure_tree/blob/master/CHANGELOG.md
262
- documentation_uri: https://www.rubydoc.info/gems/closure_tree/8.0.0
169
+ documentation_uri: https://www.rubydoc.info/gems/closure_tree/9.0.0
263
170
  homepage_uri: https://closuretree.github.io/closure_tree/
264
171
  source_code_uri: https://github.com/ClosureTree/closure_tree
172
+ rubygems_mfa_required: 'true'
265
173
  rdoc_options: []
266
174
  require_paths:
267
175
  - lib
@@ -276,7 +184,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
276
184
  - !ruby/object:Gem::Version
277
185
  version: '0'
278
186
  requirements: []
279
- rubygems_version: 3.6.7
187
+ rubygems_version: 3.6.9
280
188
  specification_version: 4
281
189
  summary: Easily and efficiently make your ActiveRecord model support hierarchies
282
190
  test_files: []
@@ -1,72 +0,0 @@
1
- ---
2
- name: CI
3
-
4
- on:
5
- push:
6
- branches:
7
- - master
8
- pull_request:
9
- branches:
10
- - master
11
-
12
-
13
- jobs:
14
- rspec:
15
- runs-on: ubuntu-latest
16
- services:
17
- mysql:
18
- image: mysql/mysql-server
19
- ports:
20
- - "3306:3306"
21
- env:
22
- MYSQL_ROOT_PASSWORD: root
23
- MYSQL_DATABASE: closure_tree_test
24
- MYSQL_ROOT_HOST: '%'
25
- postgres:
26
- image: 'postgres'
27
- ports: ['5432:5432']
28
- env:
29
- POSTGRES_PASSWORD: postgres
30
- POSTGRES_DB: closure_tree_test
31
- options: >-
32
- --health-cmd pg_isready
33
- --health-interval 10s
34
- --health-timeout 5s
35
- --health-retries 5
36
-
37
- strategy:
38
- fail-fast: false
39
- matrix:
40
- ruby:
41
- - '3.3'
42
- rails:
43
- - activerecord_8.0
44
- - activerecord_7.2
45
- - activerecord_7.1
46
- - activerecord_edge
47
- adapter:
48
- - 'sqlite3:///:memory:'
49
- - mysql2://root:root@0/closure_tree_test
50
- - postgres://closure_tree:closure_tree@0/closure_tree_test
51
-
52
- steps:
53
- - name: Checkout
54
- uses: actions/checkout@v3
55
-
56
- - name: Setup Ruby
57
- uses: ruby/setup-ruby@v1
58
- with:
59
- ruby-version: ${{ matrix.ruby }}
60
- bundler-cache: true
61
- rubygems: latest
62
- env:
63
- BUNDLE_GEMFILE: gemfiles/${{ matrix.rails }}.gemfile
64
- RAILS_ENV: test
65
-
66
- - name: RSpec
67
- env:
68
- RAILS_VERSION: ${{ matrix.rails }}
69
- DB_ADAPTER: ${{ matrix.adapter }}
70
- BUNDLE_GEMFILE: gemfiles/${{ matrix.rails }}.gemfile
71
- WITH_ADVISORY_LOCK_PREFIX: ${{ github.run_id }}
72
- run: bin/rake
@@ -1,68 +0,0 @@
1
- ---
2
- name: CI Jruby
3
-
4
- on:
5
- push:
6
- branches:
7
- - master
8
- pull_request:
9
- branches:
10
- - master
11
- concurrency:
12
- group: ci-${{ github.head_ref }}-jruby
13
- cancel-in-progress: true
14
-
15
- jobs:
16
- rspec:
17
- runs-on: ubuntu-latest
18
- services:
19
- mysql:
20
- image: mysql/mysql-server
21
- ports:
22
- - "3306:3306"
23
- env:
24
- MYSQL_ROOT_PASSWORD: root
25
- MYSQL_DATABASE: closure_tree_test
26
- MYSQL_ROOT_HOST: '%'
27
- postgres:
28
- image: 'postgres'
29
- ports: ['5432:5432']
30
- env:
31
- POSTGRES_PASSWORD: postgres
32
- POSTGRES_DB: closure_tree_test
33
- options: >-
34
- --health-cmd pg_isready
35
- --health-interval 10s
36
- --health-timeout 5s
37
- --health-retries 5
38
-
39
- strategy:
40
- fail-fast: false
41
- matrix:
42
- rails:
43
- - activerecord_7.1
44
- adapter:
45
- - 'sqlite3:///:memory:'
46
- - mysql2://root:root@0/closure_tree_test
47
- - postgres://closure_tree:closure_tree@0/closure_tree_test
48
- steps:
49
- - name: Checkout
50
- uses: actions/checkout@v3
51
-
52
- - name: Setup Ruby
53
- uses: ruby/setup-ruby@v1
54
- with:
55
- ruby-version: jruby
56
- bundler-cache: true
57
- rubygems: latest
58
- env:
59
- BUNDLE_GEMFILE: gemfiles/${{ matrix.rails }}.gemfile
60
- RAILS_ENV: test
61
-
62
- - name: RSpec
63
- env:
64
- RAILS_VERSION: ${{ matrix.rails }}
65
- DB_ADAPTER: ${{ matrix.adapter }}
66
- BUNDLE_GEMFILE: gemfiles/${{ matrix.rails }}.gemfile
67
- WITH_ADVISORY_LOCK_PREFIX: ${{ github.run_id }}
68
- run: bin/rake
@@ -1,71 +0,0 @@
1
- ---
2
- name: CI Truffleruby
3
-
4
- on:
5
- push:
6
- branches:
7
- - master
8
- pull_request:
9
- branches:
10
- - master
11
- concurrency:
12
- group: ci-${{ github.head_ref }}-truffleruby
13
- cancel-in-progress: true
14
-
15
- jobs:
16
- rspec:
17
- runs-on: ubuntu-latest
18
- services:
19
- mysql:
20
- image: mysql/mysql-server
21
- ports:
22
- - "3306:3306"
23
- env:
24
- MYSQL_ROOT_PASSWORD: root
25
- MYSQL_DATABASE: closure_tree_test
26
- MYSQL_ROOT_HOST: '%'
27
- postgres:
28
- image: 'postgres'
29
- ports: ['5432:5432']
30
- env:
31
- POSTGRES_PASSWORD: postgres
32
- POSTGRES_DB: closure_tree_test
33
- options: >-
34
- --health-cmd pg_isready
35
- --health-interval 10s
36
- --health-timeout 5s
37
- --health-retries 5
38
-
39
- strategy:
40
- fail-fast: false
41
- matrix:
42
- ruby:
43
- - truffleruby
44
- rails:
45
- - activerecord_7.1
46
- adapter:
47
- - 'sqlite3:///:memory:'
48
- - mysql2://root:root@0/closure_tree_test
49
- - postgres://closure_tree:closure_tree@0/closure_tree_test
50
-
51
- steps:
52
- - name: Checkout
53
- uses: actions/checkout@v3
54
-
55
- - name: Setup Ruby
56
- uses: ruby/setup-ruby@v1
57
- with:
58
- ruby-version: truffleruby
59
- bundler-cache: true
60
- rubygems: latest
61
- env:
62
- BUNDLE_GEMFILE: gemfiles/${{ matrix.rails }}.gemfile
63
- RAILS_ENV: test
64
-
65
- - name: RSpec
66
- env:
67
- RAILS_VERSION: ${{ matrix.rails }}
68
- DB_ADAPTER: ${{ matrix.adapter }}
69
- BUNDLE_GEMFILE: gemfiles/${{ matrix.rails }}.gemfile
70
- WITH_ADVISORY_LOCK_PREFIX: ${{ github.run_id }}
71
- run: bin/rake
@@ -1,17 +0,0 @@
1
- name: release-please
2
-
3
- on:
4
- push:
5
- branches:
6
- - master
7
- workflow_dispatch:
8
-
9
- permissions:
10
- contents: write
11
- pull-requests: write
12
-
13
- jobs:
14
- release-please:
15
- runs-on: ubuntu-latest
16
- steps:
17
- - uses: googleapis/release-please-action@v4
data/.gitignore DELETED
@@ -1,17 +0,0 @@
1
- .bundle/
2
- .history/
3
- .idea/
4
- pkg/
5
- rdoc/
6
- doc/
7
- *.sqlite3.db
8
- *.log
9
- tmp/
10
- .DS_Store
11
- .yardoc/
12
- .rvmrc
13
- *.lock
14
- .ruby-*
15
- *.iml
16
- .env
17
- coverage/
@@ -1 +0,0 @@
1
- {".":"8.0.0"}
data/.rspec DELETED
@@ -1 +0,0 @@
1
- --color
data/.tool-versions DELETED
@@ -1 +0,0 @@
1
- ruby 3.4.4
data/.yardopts DELETED
@@ -1,3 +0,0 @@
1
- --readme README.md
2
- --charset utf-8
3
- 'lib/**/*.rb'
data/Appraisals DELETED
@@ -1,61 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- appraise 'activerecord-7.1' do
4
- gem 'activerecord', '~> 7.1.0'
5
- platforms :ruby, :truffleruby do
6
- gem 'mysql2'
7
- gem 'pg'
8
- gem 'sqlite3', '< 2.0'
9
- end
10
-
11
- platforms :jruby do
12
- gem 'activerecord-jdbcmysql-adapter'
13
- gem 'activerecord-jdbcpostgresql-adapter'
14
- gem 'activerecord-jdbcsqlite3-adapter'
15
- end
16
- end
17
-
18
- appraise 'activerecord-7.2' do
19
- gem 'activerecord', '~> 7.2.0'
20
- platforms :ruby do
21
- gem 'mysql2'
22
- gem 'pg'
23
- gem 'sqlite3'
24
- end
25
-
26
- platforms :jruby do
27
- gem 'activerecord-jdbcmysql-adapter'
28
- gem 'activerecord-jdbcpostgresql-adapter'
29
- gem 'activerecord-jdbcsqlite3-adapter'
30
- end
31
- end
32
-
33
- appraise 'activerecord-8.0' do
34
- gem 'activerecord', '~> 8.0.0'
35
- platforms :ruby do
36
- gem 'mysql2'
37
- gem 'pg'
38
- gem 'sqlite3'
39
- end
40
-
41
- platforms :jruby do
42
- gem 'activerecord-jdbcmysql-adapter'
43
- gem 'activerecord-jdbcpostgresql-adapter'
44
- gem 'activerecord-jdbcsqlite3-adapter'
45
- end
46
- end
47
-
48
- appraise 'activerecord-edge' do
49
- gem 'activerecord', github: 'rails/rails'
50
- platforms :ruby do
51
- gem 'mysql2'
52
- gem 'pg'
53
- gem 'sqlite3'
54
- end
55
-
56
- platforms :jruby do
57
- gem 'activerecord-jdbcmysql-adapter'
58
- gem 'activerecord-jdbcpostgresql-adapter'
59
- gem 'activerecord-jdbcsqlite3-adapter'
60
- end
61
- end
data/Gemfile DELETED
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source 'https://rubygems.org'
4
-
5
- gemspec
6
-
data/Rakefile DELETED
@@ -1,32 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'bundler/gem_tasks'
4
- require 'rspec/core/rake_task'
5
- require 'rake/testtask'
6
-
7
- RSpec::Core::RakeTask.new(:spec) do |task|
8
- task.pattern = 'spec/closure_tree/*_spec.rb'
9
- end
10
-
11
- task default: %i[spec test]
12
-
13
- namespace :spec do
14
- desc 'Run all spec variants'
15
- task :all do
16
- rake = 'bin/rake'
17
-
18
- [['', ''], ['db_prefix_', ''], ['', '_db_suffix'], %w[abc_ _123]].each do |prefix, suffix|
19
- env = "DB_PREFIX=#{prefix} DB_SUFFIX=#{suffix}"
20
- raise unless system("#{rake} spec #{env}")
21
- end
22
- end
23
- end
24
-
25
- Rake::TestTask.new do |t|
26
- t.libs.push 'lib'
27
- t.libs.push 'test'
28
- t.pattern = 'test/**/*_test.rb'
29
- t.verbose = true
30
- end
31
-
32
- task default: 'spec:all'
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")
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
-
@@ -1,4 +0,0 @@
1
- {
2
- "release-type": "ruby",
3
- "package-name": "closure_tree"
4
- }