closure_tree 4.1.0 → 4.2.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.
@@ -43,15 +43,25 @@ describe "empty db" do
43
43
  User.all.to_a.should =~ [@root, @mid, @leaf]
44
44
  end
45
45
 
46
+ it "should have children" do
47
+ @root.children.to_a.should == [@mid]
48
+ @mid.children.to_a.should == [@leaf]
49
+ @leaf.children.to_a.should == []
50
+ end
51
+
52
+ it "roots should have children" do
53
+ User.roots.first.children.to_a.should =~ [@mid]
54
+ end
55
+
46
56
  it "should return a root and leaf without middle User" do
47
- User.roots.should == [@root]
48
- User.leaves.should == [@leaf]
57
+ User.roots.to_a.should == [@root]
58
+ User.leaves.to_a.should == [@leaf]
49
59
  end
50
60
 
51
61
  it "should delete leaves" do
52
62
  User.leaves.destroy_all
53
- User.roots.should == [@root] # untouched
54
- User.leaves.should == [@mid]
63
+ User.roots.to_a.should == [@root] # untouched
64
+ User.leaves.to_a.should == [@mid]
55
65
  end
56
66
 
57
67
  it "should delete roots and maintain hierarchies" do
metadata CHANGED
@@ -1,184 +1,188 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: closure_tree
3
- version: !ruby/object:Gem::Version
4
- hash: 59
5
- prerelease:
6
- segments:
7
- - 4
8
- - 1
9
- - 0
10
- version: 4.1.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 4.2.0
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Matthew McEachen
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2013-06-02 00:00:00 -07:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- requirement: &id001 !ruby/object:Gem::Requirement
23
- none: false
24
- requirements:
25
- - - ">="
26
- - !ruby/object:Gem::Version
27
- hash: 7
28
- segments:
29
- - 3
30
- - 0
31
- - 0
11
+ date: 2013-06-10 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activerecord
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ! '>='
18
+ - !ruby/object:Gem::Version
32
19
  version: 3.0.0
33
20
  type: :runtime
34
- name: activerecord
35
- version_requirements: *id001
36
21
  prerelease: false
37
- - !ruby/object:Gem::Dependency
38
- requirement: &id002 !ruby/object:Gem::Requirement
39
- none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 19
44
- segments:
45
- - 0
46
- - 0
47
- - 6
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ! '>='
25
+ - !ruby/object:Gem::Version
26
+ version: 3.0.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: with_advisory_lock
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
48
33
  version: 0.0.6
49
34
  type: :runtime
50
- name: with_advisory_lock
51
- version_requirements: *id002
52
35
  prerelease: false
53
- - !ruby/object:Gem::Dependency
54
- requirement: &id003 !ruby/object:Gem::Requirement
55
- none: false
56
- requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- hash: 3
60
- segments:
61
- - 0
62
- version: "0"
63
- type: :development
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: 0.0.6
41
+ - !ruby/object:Gem::Dependency
64
42
  name: rake
65
- version_requirements: *id003
66
- prerelease: false
67
- - !ruby/object:Gem::Dependency
68
- requirement: &id004 !ruby/object:Gem::Requirement
69
- none: false
70
- requirements:
71
- - - ">="
72
- - !ruby/object:Gem::Version
73
- hash: 3
74
- segments:
75
- - 0
76
- version: "0"
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
77
48
  type: :development
78
- name: yard
79
- version_requirements: *id004
80
49
  prerelease: false
81
- - !ruby/object:Gem::Dependency
82
- requirement: &id005 !ruby/object:Gem::Requirement
83
- none: false
84
- requirements:
85
- - - ">="
86
- - !ruby/object:Gem::Version
87
- hash: 3
88
- segments:
89
- - 0
90
- version: "0"
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: yard
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
91
62
  type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
92
70
  name: rspec
93
- version_requirements: *id005
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ! '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
94
77
  prerelease: false
95
- - !ruby/object:Gem::Dependency
96
- requirement: &id006 !ruby/object:Gem::Requirement
97
- none: false
98
- requirements:
99
- - - ">="
100
- - !ruby/object:Gem::Version
101
- hash: 3
102
- segments:
103
- - 0
104
- version: "0"
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: fuubar
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
105
90
  type: :development
106
- name: rspec-rails
107
- version_requirements: *id006
108
91
  prerelease: false
109
- - !ruby/object:Gem::Dependency
110
- requirement: &id007 !ruby/object:Gem::Requirement
111
- none: false
112
- requirements:
113
- - - ">="
114
- - !ruby/object:Gem::Version
115
- hash: 3
116
- segments:
117
- - 0
118
- version: "0"
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: rspec-rails
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ! '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
119
104
  type: :development
120
- name: mysql2
121
- version_requirements: *id007
122
105
  prerelease: false
123
- - !ruby/object:Gem::Dependency
124
- requirement: &id008 !ruby/object:Gem::Requirement
125
- none: false
126
- requirements:
127
- - - ">="
128
- - !ruby/object:Gem::Version
129
- hash: 3
130
- segments:
131
- - 0
132
- version: "0"
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: mysql2
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
133
118
  type: :development
134
- name: pg
135
- version_requirements: *id008
136
119
  prerelease: false
137
- - !ruby/object:Gem::Dependency
138
- requirement: &id009 !ruby/object:Gem::Requirement
139
- none: false
140
- requirements:
141
- - - ">="
142
- - !ruby/object:Gem::Version
143
- hash: 3
144
- segments:
145
- - 0
146
- version: "0"
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: pg
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ! '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
147
132
  type: :development
148
- name: sqlite3
149
- version_requirements: *id009
150
133
  prerelease: false
151
- - !ruby/object:Gem::Dependency
152
- requirement: &id010 !ruby/object:Gem::Requirement
153
- none: false
154
- requirements:
155
- - - ">="
156
- - !ruby/object:Gem::Version
157
- hash: 3
158
- segments:
159
- - 0
160
- version: "0"
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
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ! '>='
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
161
146
  type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ! '>='
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
162
154
  name: uuidtools
163
- version_requirements: *id010
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ! '>='
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
164
161
  prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ! '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
165
167
  description: Easily and efficiently make your ActiveRecord model support hierarchies
166
- email:
168
+ email:
167
169
  - matthew-github@mceachen.org
168
170
  executables: []
169
-
170
171
  extensions: []
171
-
172
172
  extra_rdoc_files: []
173
-
174
- files:
173
+ files:
175
174
  - lib/closure_tree/acts_as_tree.rb
176
175
  - lib/closure_tree/deterministic_ordering.rb
176
+ - lib/closure_tree/digraphs.rb
177
+ - lib/closure_tree/finders.rb
178
+ - lib/closure_tree/hash_tree.rb
179
+ - lib/closure_tree/hierarchy_maintenance.rb
177
180
  - lib/closure_tree/model.rb
178
181
  - lib/closure_tree/numeric_deterministic_ordering.rb
179
182
  - lib/closure_tree/support.rb
183
+ - lib/closure_tree/support_attributes.rb
184
+ - lib/closure_tree/support_flags.rb
180
185
  - lib/closure_tree/version.rb
181
- - lib/closure_tree/with_advisory_lock.rb
182
186
  - lib/closure_tree.rb
183
187
  - MIT-LICENSE
184
188
  - Rakefile
@@ -199,41 +203,30 @@ files:
199
203
  - spec/tag_spec.rb
200
204
  - spec/user_spec.rb
201
205
  - spec/uuid_tag_spec.rb
202
- has_rdoc: true
203
206
  homepage: http://mceachen.github.io/closure_tree/
204
207
  licenses: []
205
-
208
+ metadata: {}
206
209
  post_install_message:
207
210
  rdoc_options: []
208
-
209
- require_paths:
211
+ require_paths:
210
212
  - lib
211
- required_ruby_version: !ruby/object:Gem::Requirement
212
- none: false
213
- requirements:
214
- - - ">="
215
- - !ruby/object:Gem::Version
216
- hash: 3
217
- segments:
218
- - 0
219
- version: "0"
220
- required_rubygems_version: !ruby/object:Gem::Requirement
221
- none: false
222
- requirements:
223
- - - ">="
224
- - !ruby/object:Gem::Version
225
- hash: 3
226
- segments:
227
- - 0
228
- version: "0"
213
+ required_ruby_version: !ruby/object:Gem::Requirement
214
+ requirements:
215
+ - - ! '>='
216
+ - !ruby/object:Gem::Version
217
+ version: '0'
218
+ required_rubygems_version: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ! '>='
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
229
223
  requirements: []
230
-
231
224
  rubyforge_project:
232
- rubygems_version: 1.6.2
225
+ rubygems_version: 2.0.3
233
226
  signing_key:
234
- specification_version: 3
227
+ specification_version: 4
235
228
  summary: Easily and efficiently make your ActiveRecord model support hierarchies
236
- test_files:
229
+ test_files:
237
230
  - spec/cuisine_type_spec.rb
238
231
  - spec/db/database.yml
239
232
  - spec/db/schema.rb
@@ -250,3 +243,4 @@ test_files:
250
243
  - spec/tag_spec.rb
251
244
  - spec/user_spec.rb
252
245
  - spec/uuid_tag_spec.rb
246
+ has_rdoc:
@@ -1,28 +0,0 @@
1
- require 'with_advisory_lock'
2
- require 'active_support/concern'
3
-
4
- module ClosureTree
5
- module WithAdvisoryLock
6
- extend ActiveSupport::Concern
7
-
8
- def ct_with_advisory_lock(&block)
9
- self.class.ct_with_advisory_lock(&block)
10
- end
11
-
12
- included do
13
- class_eval do
14
- def self.ct_with_advisory_lock(&block)
15
- if _ct.options[:with_advisory_lock]
16
- with_advisory_lock("closure_tree") do
17
- transaction do
18
- yield
19
- end
20
- end
21
- else
22
- yield
23
- end
24
- end
25
- end
26
- end
27
- end
28
- end