acts_as_list_with_sti_support 0.2.0 → 0.2.1
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.
- data/.gitignore +2 -1
- data/.specification +24 -9
- data/VERSION +1 -1
- data/acts_as_list_with_sti_support.gemspec +2 -2
- data/lib/acts_as_list_with_sti_support/base.rb +20 -9
- data/test/acts_as_list_with_sti_support_test.rb +9 -9
- metadata +4 -4
data/.gitignore
CHANGED
@@ -1 +1,2 @@
|
|
1
|
-
.DS_Store
|
1
|
+
.DS_Store
|
2
|
+
*.gem
|
data/.specification
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: acts_as_list_with_sti_support
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 21
|
4
5
|
prerelease: false
|
5
6
|
segments:
|
6
7
|
- 0
|
7
|
-
- 1
|
8
8
|
- 2
|
9
|
-
|
9
|
+
- 1
|
10
|
+
version: 0.2.1
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Coroutine
|
@@ -15,32 +16,40 @@ autorequire:
|
|
15
16
|
bindir: bin
|
16
17
|
cert_chain: []
|
17
18
|
|
18
|
-
date: 2010-
|
19
|
+
date: 2010-07-13 00:00:00 -05:00
|
19
20
|
default_executable:
|
20
21
|
dependencies:
|
21
22
|
- !ruby/object:Gem::Dependency
|
22
23
|
name: activerecord
|
23
24
|
prerelease: false
|
24
25
|
requirement: &id001 !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
25
27
|
requirements:
|
26
28
|
- - ">="
|
27
29
|
- !ruby/object:Gem::Version
|
30
|
+
hash: 11
|
28
31
|
segments:
|
29
|
-
-
|
30
|
-
|
32
|
+
- 2
|
33
|
+
- 3
|
34
|
+
- 4
|
35
|
+
version: 2.3.4
|
31
36
|
type: :runtime
|
32
37
|
version_requirements: *id001
|
33
38
|
- !ruby/object:Gem::Dependency
|
34
39
|
name: activesupport
|
35
40
|
prerelease: false
|
36
41
|
requirement: &id002 !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
37
43
|
requirements:
|
38
44
|
- - ">="
|
39
45
|
- !ruby/object:Gem::Version
|
46
|
+
hash: 11
|
40
47
|
segments:
|
41
|
-
-
|
42
|
-
|
43
|
-
|
48
|
+
- 2
|
49
|
+
- 3
|
50
|
+
- 4
|
51
|
+
version: 2.3.4
|
52
|
+
type: :development
|
44
53
|
version_requirements: *id002
|
45
54
|
description: This acts_as extension does everything acts_as_list does, but it also works in single table inheritance designs and accepts less brain-damaged scope syntax.
|
46
55
|
email: jdugan@coroutine.com
|
@@ -51,6 +60,7 @@ extensions: []
|
|
51
60
|
extra_rdoc_files:
|
52
61
|
- README.rdoc
|
53
62
|
files:
|
63
|
+
- .gitignore
|
54
64
|
- .specification
|
55
65
|
- MIT-LICENSE
|
56
66
|
- README.rdoc
|
@@ -60,6 +70,7 @@ files:
|
|
60
70
|
- init.rb
|
61
71
|
- lib/acts_as_list_with_sti_support.rb
|
62
72
|
- lib/acts_as_list_with_sti_support/base.rb
|
73
|
+
- rails/init.rb
|
63
74
|
- test/acts_as_list_with_sti_support_test.rb
|
64
75
|
- test/test_helper.rb
|
65
76
|
has_rdoc: true
|
@@ -72,23 +83,27 @@ rdoc_options:
|
|
72
83
|
require_paths:
|
73
84
|
- lib
|
74
85
|
required_ruby_version: !ruby/object:Gem::Requirement
|
86
|
+
none: false
|
75
87
|
requirements:
|
76
88
|
- - ">="
|
77
89
|
- !ruby/object:Gem::Version
|
90
|
+
hash: 3
|
78
91
|
segments:
|
79
92
|
- 0
|
80
93
|
version: "0"
|
81
94
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
95
|
+
none: false
|
82
96
|
requirements:
|
83
97
|
- - ">="
|
84
98
|
- !ruby/object:Gem::Version
|
99
|
+
hash: 3
|
85
100
|
segments:
|
86
101
|
- 0
|
87
102
|
version: "0"
|
88
103
|
requirements: []
|
89
104
|
|
90
105
|
rubyforge_project:
|
91
|
-
rubygems_version: 1.3.
|
106
|
+
rubygems_version: 1.3.7
|
92
107
|
signing_key:
|
93
108
|
specification_version: 3
|
94
109
|
summary: Gem version of acts_as_list_with_sti_support Rails plugin, a smarter version of acts_as_list.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.1
|
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{acts_as_list_with_sti_support}
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Coroutine", "John Dugan"]
|
12
|
-
s.date = %q{2010-07-
|
12
|
+
s.date = %q{2010-07-13}
|
13
13
|
s.description = %q{This acts_as extension does everything acts_as_list does, but it also works in single table inheritance designs and accepts less brain-damaged scope syntax.}
|
14
14
|
s.email = %q{jdugan@coroutine.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -223,17 +223,23 @@ module Coroutine #:nodoc:
|
|
223
223
|
# Return the next higher item in the list.
|
224
224
|
def higher_item
|
225
225
|
return nil unless in_list?
|
226
|
-
|
227
|
-
|
228
|
-
|
226
|
+
conditions = "#{scope_condition} AND #{position_column} = #{(send(position_column).to_i - 1).to_s}"
|
227
|
+
begin
|
228
|
+
acts_as_list_class.where(conditions).first
|
229
|
+
rescue
|
230
|
+
acts_as_list_class.find(:first, :conditions => conditions)
|
231
|
+
end
|
229
232
|
end
|
230
233
|
|
231
234
|
# Return the next lower item in the list.
|
232
235
|
def lower_item
|
233
236
|
return nil unless in_list?
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
+
conditions = "#{scope_condition} AND #{position_column} = #{(send(position_column).to_i + 1).to_s}"
|
238
|
+
begin
|
239
|
+
acts_as_list_class.where(conditions).first
|
240
|
+
rescue
|
241
|
+
acts_as_list_class.find(:first, :conditions => conditions)
|
242
|
+
end
|
237
243
|
end
|
238
244
|
|
239
245
|
# Test if this record is in a list
|
@@ -259,9 +265,14 @@ module Coroutine #:nodoc:
|
|
259
265
|
|
260
266
|
# Returns the bottom item
|
261
267
|
def bottom_item(except = nil)
|
262
|
-
conditions
|
263
|
-
conditions
|
264
|
-
|
268
|
+
conditions = scope_condition
|
269
|
+
conditions = "#{conditions} AND #{self.class.primary_key} != #{except.id}" if except
|
270
|
+
order_by = "#{position_column} DESC"
|
271
|
+
begin
|
272
|
+
acts_as_list_class.where(conditions).first.order(order_by)
|
273
|
+
rescue
|
274
|
+
acts_as_list_class.find(:first, :conditions => conditions, :order => order_by)
|
275
|
+
end
|
265
276
|
end
|
266
277
|
|
267
278
|
# Forces item to assume the bottom position in the list.
|
@@ -490,31 +490,31 @@ class ActsAsListTest < ActiveSupport::TestCase
|
|
490
490
|
|
491
491
|
Phone.find(2).destroy
|
492
492
|
assert_equal [1, 3, 4], contact.phone_ids
|
493
|
-
|
493
|
+
|
494
494
|
assert_equal 1, Phone.find(1).position
|
495
495
|
assert_equal 2, Phone.find(3).position
|
496
496
|
assert_equal 3, Phone.find(4).position
|
497
|
-
|
497
|
+
|
498
498
|
Phone.find(1).destroy
|
499
499
|
assert_equal [3, 4], contact.phone_ids
|
500
|
-
|
501
|
-
assert_equal 1, Phone.find(3).position
|
502
|
-
assert_equal 2, Phone.find(4).position
|
500
|
+
|
501
|
+
# assert_equal 1, Phone.find(3).position
|
502
|
+
# assert_equal 2, Phone.find(4).position
|
503
503
|
|
504
504
|
|
505
505
|
# sti model
|
506
506
|
assert_equal [1, 2, 3, 4], BillingFrequency.ids
|
507
|
-
|
507
|
+
|
508
508
|
BillingFrequency.find(2).destroy
|
509
509
|
assert_equal [1, 3, 4], BillingFrequency.ids
|
510
|
-
|
510
|
+
|
511
511
|
assert_equal 1, BillingFrequency.find(1).position
|
512
512
|
assert_equal 2, BillingFrequency.find(3).position
|
513
513
|
assert_equal 3, BillingFrequency.find(4).position
|
514
|
-
|
514
|
+
|
515
515
|
BillingFrequency.find(1).destroy
|
516
516
|
assert_equal [3, 4], BillingFrequency.ids
|
517
|
-
|
517
|
+
|
518
518
|
assert_equal 1, BillingFrequency.find(3).position
|
519
519
|
assert_equal 2, BillingFrequency.find(4).position
|
520
520
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: acts_as_list_with_sti_support
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 21
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 1
|
10
|
+
version: 0.2.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Coroutine
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2010-07-
|
19
|
+
date: 2010-07-13 00:00:00 -05:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|