closure_tree 4.1.0 → 4.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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