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.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +31 -0
  3. data/README.md +125 -39
  4. data/bin/rails +15 -0
  5. data/bin/rake +7 -7
  6. data/closure_tree.gemspec +21 -19
  7. data/lib/closure_tree/active_record_support.rb +6 -14
  8. data/lib/closure_tree/arel_helpers.rb +83 -0
  9. data/lib/closure_tree/deterministic_ordering.rb +2 -0
  10. data/lib/closure_tree/digraphs.rb +7 -5
  11. data/lib/closure_tree/finders.rb +104 -55
  12. data/lib/closure_tree/has_closure_tree.rb +5 -4
  13. data/lib/closure_tree/has_closure_tree_root.rb +12 -17
  14. data/lib/closure_tree/hash_tree.rb +3 -2
  15. data/lib/closure_tree/hash_tree_support.rb +38 -13
  16. data/lib/closure_tree/hierarchy_maintenance.rb +20 -30
  17. data/lib/closure_tree/model.rb +31 -31
  18. data/lib/closure_tree/numeric_deterministic_ordering.rb +90 -60
  19. data/lib/closure_tree/numeric_order_support.rb +20 -18
  20. data/lib/closure_tree/support.rb +30 -44
  21. data/lib/closure_tree/support_attributes.rb +31 -5
  22. data/lib/closure_tree/support_flags.rb +2 -12
  23. data/lib/closure_tree/test/matcher.rb +10 -12
  24. data/lib/closure_tree/version.rb +3 -1
  25. data/lib/closure_tree.rb +14 -22
  26. data/lib/generators/closure_tree/migration_generator.rb +7 -8
  27. metadata +30 -81
  28. data/.github/workflows/ci.yml +0 -96
  29. data/.gitignore +0 -17
  30. data/.rspec +0 -1
  31. data/.yardopts +0 -3
  32. data/Appraisals +0 -105
  33. data/Gemfile +0 -3
  34. data/Rakefile +0 -28
  35. data/_config.yml +0 -1
  36. data/bin/appraisal +0 -29
  37. data/bin/rspec +0 -29
  38. data/lib/closure_tree/configuration.rb +0 -9
  39. data/lib/generators/closure_tree/config_generator.rb +0 -12
  40. data/lib/generators/closure_tree/templates/config.rb +0 -5
  41. data/mktree.rb +0 -38
  42. 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
- target_class._ct
40
- else
41
- fail "Please RTFM and add the `has_closure_tree` (or `acts_as_tree`) annotation to #{class_name} before creating the migration."
42
- end
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
- major = ActiveRecord::VERSION::MAJOR
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: 7.3.0
4
+ version: 9.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew McEachen
8
- autorequire:
8
+ - Abdelkader Boudih
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-07-07 00:00:00.000000000 Z
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: 4.2.10
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: 4.2.10
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: 4.0.0
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: 4.0.0
40
+ version: 7.0.0
41
41
  - !ruby/object:Gem::Dependency
42
- name: appraisal
42
+ name: zeitwerk
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
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: '0'
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: generator_spec
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: pg
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: rspec-instafail
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-github@mceachen.org
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
- - Rakefile
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/configuration.rb
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
- - mktree.rb
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
- post_install_message:
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: 2.0.0
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.0.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: []
@@ -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
@@ -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
- tmp/
15
- .ruby-*
16
- *.iml
17
- coverage/
data/.rspec DELETED
@@ -1 +0,0 @@
1
- --color
data/.yardopts DELETED
@@ -1,3 +0,0 @@
1
- --readme README.md
2
- --charset utf-8
3
- 'lib/**/*.rb'
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
@@ -1,3 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gemspec
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,9 +0,0 @@
1
- module ClosureTree
2
- class Configuration # :nodoc:
3
- attr_accessor :database_less
4
-
5
- def initialize
6
- @database_less = ENV['DATABASE_URL'].to_s.include?('//user:pass@127.0.0.1/')
7
- end
8
- end
9
- end
@@ -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
@@ -1,5 +0,0 @@
1
- ClosureTree.configure do |config|
2
- # Some PaaS like Heroku don't have available the db in some build steps like
3
- # assets:precompile, this is skipped when this value is true, default = false
4
- # config.database_less = true
5
- 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
-
data/tests.sh DELETED
@@ -1,11 +0,0 @@
1
- #!/bin/sh -ex
2
-
3
- for RMI in 2.3.1 #jruby-1.6.13 :P
4
- do
5
- rbenv local $RMI
6
- appraisal bundle install
7
- for DB in mysql sqlite postgresql
8
- do
9
- appraisal rake spec:all WITH_ADVISORY_LOCK_PREFIX=$(date +%s) DB=$DB
10
- done
11
- done