closure_tree 7.4.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 (43) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -0
  3. data/README.md +123 -38
  4. data/bin/rails +15 -0
  5. data/bin/rake +7 -7
  6. data/closure_tree.gemspec +20 -19
  7. data/lib/closure_tree/active_record_support.rb +6 -14
  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 +7 -5
  13. data/lib/closure_tree/finders.rb +104 -55
  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 +3 -2
  17. data/lib/closure_tree/hash_tree_support.rb +38 -13
  18. data/lib/closure_tree/hierarchy_maintenance.rb +20 -30
  19. data/lib/closure_tree/model.rb +31 -31
  20. data/lib/closure_tree/numeric_deterministic_ordering.rb +90 -60
  21. data/lib/closure_tree/numeric_order_support.rb +20 -18
  22. data/lib/closure_tree/support.rb +31 -38
  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 +7 -8
  30. data/lib/generators/closure_tree/templates/config.rb +2 -0
  31. metadata +25 -86
  32. data/.github/workflows/ci.yml +0 -98
  33. data/.gitignore +0 -17
  34. data/.rspec +0 -1
  35. data/.yardopts +0 -3
  36. data/Appraisals +0 -105
  37. data/Gemfile +0 -7
  38. data/Rakefile +0 -37
  39. data/_config.yml +0 -1
  40. data/bin/appraisal +0 -29
  41. data/bin/rspec +0 -29
  42. data/mktree.rb +0 -38
  43. 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)
@@ -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,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: closure_tree
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.4.0
4
+ version: 9.0.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-10-17 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,28 @@ 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
41
- - !ruby/object:Gem::Dependency
42
- name: appraisal
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
40
+ version: 7.0.0
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: database_cleaner
57
43
  requirement: !ruby/object:Gem::Requirement
@@ -67,35 +53,7 @@ dependencies:
67
53
  - !ruby/object:Gem::Version
68
54
  version: '0'
69
55
  - !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
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: pg
56
+ name: minitest
99
57
  requirement: !ruby/object:Gem::Requirement
100
58
  requirements:
101
59
  - - ">="
@@ -109,7 +67,7 @@ dependencies:
109
67
  - !ruby/object:Gem::Version
110
68
  version: '0'
111
69
  - !ruby/object:Gem::Dependency
112
- name: rspec-instafail
70
+ name: minitest-reporters
113
71
  requirement: !ruby/object:Gem::Requirement
114
72
  requirements:
115
73
  - - ">="
@@ -123,21 +81,7 @@ dependencies:
123
81
  - !ruby/object:Gem::Version
124
82
  version: '0'
125
83
  - !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
84
+ name: parallel
141
85
  requirement: !ruby/object:Gem::Requirement
142
86
  requirements:
143
87
  - - ">="
@@ -178,30 +122,23 @@ dependencies:
178
122
  - - ">="
179
123
  - !ruby/object:Gem::Version
180
124
  version: '0'
181
- description: Easily and efficiently make your ActiveRecord model support hierarchies
182
125
  email:
183
- - matthew-github@mceachen.org
126
+ - matthew+github@mceachen.org
127
+ - terminale@gmail.com
184
128
  executables: []
185
129
  extensions: []
186
130
  extra_rdoc_files: []
187
131
  files:
188
- - ".github/workflows/ci.yml"
189
- - ".gitignore"
190
- - ".rspec"
191
- - ".yardopts"
192
- - Appraisals
193
132
  - CHANGELOG.md
194
- - Gemfile
195
133
  - MIT-LICENSE
196
134
  - README.md
197
- - Rakefile
198
- - _config.yml
199
- - bin/appraisal
135
+ - bin/rails
200
136
  - bin/rake
201
- - bin/rspec
202
137
  - closure_tree.gemspec
203
138
  - lib/closure_tree.rb
204
139
  - lib/closure_tree/active_record_support.rb
140
+ - lib/closure_tree/adapter_support.rb
141
+ - lib/closure_tree/arel_helpers.rb
205
142
  - lib/closure_tree/configuration.rb
206
143
  - lib/closure_tree/deterministic_ordering.rb
207
144
  - lib/closure_tree/digraphs.rb
@@ -223,13 +160,16 @@ files:
223
160
  - lib/generators/closure_tree/migration_generator.rb
224
161
  - lib/generators/closure_tree/templates/config.rb
225
162
  - lib/generators/closure_tree/templates/create_hierarchies_table.rb.erb
226
- - mktree.rb
227
- - tests.sh
228
- homepage: http://mceachen.github.io/closure_tree/
163
+ homepage: https://github.com/ClosureTree/closure_tree/
229
164
  licenses:
230
165
  - MIT
231
- metadata: {}
232
- post_install_message:
166
+ metadata:
167
+ bug_tracker_uri: https://github.com/ClosureTree/closure_tree/issues
168
+ changelog_uri: https://github.com/ClosureTree/closure_tree/blob/master/CHANGELOG.md
169
+ documentation_uri: https://www.rubydoc.info/gems/closure_tree/9.0.0
170
+ homepage_uri: https://closuretree.github.io/closure_tree/
171
+ source_code_uri: https://github.com/ClosureTree/closure_tree
172
+ rubygems_mfa_required: 'true'
233
173
  rdoc_options: []
234
174
  require_paths:
235
175
  - lib
@@ -237,15 +177,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
237
177
  requirements:
238
178
  - - ">="
239
179
  - !ruby/object:Gem::Version
240
- version: 2.0.0
180
+ version: 3.3.0
241
181
  required_rubygems_version: !ruby/object:Gem::Requirement
242
182
  requirements:
243
183
  - - ">="
244
184
  - !ruby/object:Gem::Version
245
185
  version: '0'
246
186
  requirements: []
247
- rubygems_version: 3.0.3
248
- signing_key:
187
+ rubygems_version: 3.6.9
249
188
  specification_version: 4
250
189
  summary: Easily and efficiently make your ActiveRecord model support hierarchies
251
190
  test_files: []
@@ -1,98 +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
- - ruby: '2.6'
59
- rails: activerecord_edge
60
-
61
- steps:
62
- - name: Checkout
63
- uses: actions/checkout@v2
64
-
65
- - name: Setup Ruby
66
- uses: ruby/setup-ruby@v1
67
- with:
68
- ruby-version: ${{ matrix.ruby }}
69
-
70
- - name: Set DB Adapter
71
- env:
72
- RAILS_VERSION: ${{ matrix.rails }}
73
- DB_ADAPTER: ${{ matrix.adapter }}
74
-
75
- # See: https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-README.md#mysql
76
- run: |
77
- if [ "${DB_ADAPTER}" = "mysql2" ]; then
78
- sudo systemctl start mysql.service
79
- mysql -u root -proot -e 'create database closure_tree;'
80
- fi
81
-
82
- - name: Bundle
83
- env:
84
- RAILS_VERSION: ${{ matrix.rails }}
85
- DB_ADAPTER: ${{ matrix.adapter }}
86
- BUNDLE_GEMFILE: gemfiles/${{ matrix.rails }}.gemfile
87
- run: |
88
- gem install bundler
89
- bundle config path vendor/bundle
90
- bundle install --jobs 4 --retry 3
91
-
92
- - name: RSpec
93
- env:
94
- RAILS_VERSION: ${{ matrix.rails }}
95
- DB_ADAPTER: ${{ matrix.adapter }}
96
- BUNDLE_GEMFILE: gemfiles/${{ matrix.rails }}.gemfile
97
- WITH_ADVISORY_LOCK_PREFIX: ${{ github.run_id }}
98
- 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,7 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gemspec
4
-
5
-
6
- gem "bump", "~> 0.10.0"
7
- gem "github_changelog_generator", "~> 1.16"
data/Rakefile DELETED
@@ -1,37 +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
29
-
30
- require 'github_changelog_generator/task'
31
- GitHubChangelogGenerator::RakeTask.new :changelog do |config|
32
- config.user = 'ClosureTree'
33
- config.project = 'closure_tree'
34
- config.issues = false
35
- config.future_release = '5.2.0'
36
- config.since_tag = 'v7.3.0'
37
- 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")
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