acts_as_list 0.7.2 → 0.7.7
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.
- checksums.yaml +5 -13
- data/.gitignore +2 -0
- data/.travis.yml +21 -0
- data/Appraisals +13 -3
- data/CHANGELOG.md +316 -0
- data/Gemfile +5 -2
- data/README.md +14 -4
- data/Rakefile +8 -0
- data/gemfiles/rails_3_2.gemfile +6 -2
- data/gemfiles/rails_4_1.gemfile +6 -2
- data/gemfiles/rails_4_2.gemfile +5 -2
- data/gemfiles/rails_5_0.gemfile +24 -0
- data/lib/acts_as_list/active_record/acts/list.rb +135 -117
- data/lib/acts_as_list/version.rb +1 -1
- data/test/helper.rb +7 -0
- data/test/shared.rb +1 -0
- data/test/shared_list.rb +13 -1
- data/test/shared_no_addition.rb +11 -0
- data/test/shared_quoting.rb +21 -0
- data/test/test_joined_list.rb +64 -0
- data/test/test_list.rb +183 -3
- metadata +17 -14
- data/gemfiles/rails_3_2.gemfile.lock +0 -258
- data/gemfiles/rails_4_1.gemfile.lock +0 -262
- data/gemfiles/rails_4_2.gemfile.lock +0 -53
data/test/test_list.rb
CHANGED
@@ -1,7 +1,10 @@
|
|
1
1
|
# NOTE: following now done in helper.rb (better Readability)
|
2
2
|
require 'helper'
|
3
3
|
|
4
|
-
ActiveRecord::Base.establish_connection(
|
4
|
+
ActiveRecord::Base.establish_connection(
|
5
|
+
adapter: "sqlite3",
|
6
|
+
database: 'file:memdb1?mode=memory&cache=shared'
|
7
|
+
)
|
5
8
|
ActiveRecord::Schema.verbose = false
|
6
9
|
|
7
10
|
def setup_db(position_options = {})
|
@@ -16,9 +19,14 @@ def setup_db(position_options = {})
|
|
16
19
|
t.column :state, :integer
|
17
20
|
end
|
18
21
|
|
22
|
+
# This table is used to test table names and column names quoting
|
23
|
+
ActiveRecord::Base.connection.create_table 'table-name' do |t|
|
24
|
+
t.column :order, :integer
|
25
|
+
end
|
26
|
+
|
19
27
|
mixins = [ Mixin, ListMixin, ListMixinSub1, ListMixinSub2, ListWithStringScopeMixin,
|
20
28
|
ArrayScopeListMixin, ZeroBasedMixin, DefaultScopedMixin,
|
21
|
-
DefaultScopedWhereMixin, TopAdditionMixin, NoAdditionMixin ]
|
29
|
+
DefaultScopedWhereMixin, TopAdditionMixin, NoAdditionMixin, QuotedList ]
|
22
30
|
|
23
31
|
mixins << EnumArrayScopeListMixin if rails_4
|
24
32
|
|
@@ -42,7 +50,13 @@ def rails_4
|
|
42
50
|
end
|
43
51
|
|
44
52
|
def teardown_db
|
45
|
-
ActiveRecord::
|
53
|
+
if ActiveRecord::VERSION::MAJOR >= 5
|
54
|
+
tables = ActiveRecord::Base.connection.data_sources
|
55
|
+
else
|
56
|
+
tables = ActiveRecord::Base.connection.tables
|
57
|
+
end
|
58
|
+
|
59
|
+
tables.each do |table|
|
46
60
|
ActiveRecord::Base.connection.drop_table(table)
|
47
61
|
end
|
48
62
|
end
|
@@ -109,6 +123,29 @@ class NoAdditionMixin < Mixin
|
|
109
123
|
acts_as_list column: "pos", add_new_at: nil, scope: :parent_id
|
110
124
|
end
|
111
125
|
|
126
|
+
##
|
127
|
+
# The way we track changes to
|
128
|
+
# scope and position can get tripped up
|
129
|
+
# by someone using update_attributes within
|
130
|
+
# a callback because it causes multiple passes
|
131
|
+
# through the callback chain
|
132
|
+
module CallbackMixin
|
133
|
+
|
134
|
+
def self.included(base)
|
135
|
+
base.send :include, InstanceMethods
|
136
|
+
base.after_create :change_field
|
137
|
+
end
|
138
|
+
|
139
|
+
module InstanceMethods
|
140
|
+
def change_field
|
141
|
+
# doesn't matter what column changes, just
|
142
|
+
# need to change something
|
143
|
+
|
144
|
+
self.update_attributes(active: !self.active)
|
145
|
+
end
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
112
149
|
class TheAbstractClass < ActiveRecord::Base
|
113
150
|
self.abstract_class = true
|
114
151
|
self.table_name = 'mixins'
|
@@ -126,6 +163,18 @@ end
|
|
126
163
|
class TheBaseSubclass < TheBaseClass
|
127
164
|
end
|
128
165
|
|
166
|
+
class DBConfigTest < Minitest::Test
|
167
|
+
def test_db_config
|
168
|
+
# make sure sqlite3 accepts multi threaded access
|
169
|
+
assert_equal "file:memdb1?mode=memory&cache=shared", ActiveRecord::Base.connection.pool.spec.config[:database]
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
class QuotedList < ActiveRecord::Base
|
174
|
+
self.table_name = 'table-name'
|
175
|
+
acts_as_list column: :order
|
176
|
+
end
|
177
|
+
|
129
178
|
class ActsAsListTestCase < Minitest::Test
|
130
179
|
# No default test required as this class is abstract.
|
131
180
|
# Need for test/unit.
|
@@ -161,6 +210,49 @@ class ListTest < ActsAsListTestCase
|
|
161
210
|
setup_db
|
162
211
|
super
|
163
212
|
end
|
213
|
+
|
214
|
+
def test_insert_race_condition
|
215
|
+
# the bigger n is the more likely we will have a race condition
|
216
|
+
n = 1000
|
217
|
+
(1..n).each do |counter|
|
218
|
+
node = ListMixin.new parent_id: 1
|
219
|
+
node.pos = counter
|
220
|
+
node.save!
|
221
|
+
end
|
222
|
+
|
223
|
+
wait_for_it = true
|
224
|
+
threads = []
|
225
|
+
4.times do |i|
|
226
|
+
threads << Thread.new do
|
227
|
+
true while wait_for_it
|
228
|
+
ActiveRecord::Base.connection_pool.with_connection do |c|
|
229
|
+
n.times do
|
230
|
+
begin
|
231
|
+
ListMixin.where(parent_id: 1).order(:pos).last.insert_at(1)
|
232
|
+
rescue Exception
|
233
|
+
# ignore SQLite3::SQLException due to table locking
|
234
|
+
end
|
235
|
+
end
|
236
|
+
end
|
237
|
+
end
|
238
|
+
end
|
239
|
+
wait_for_it = false
|
240
|
+
threads.each(&:join)
|
241
|
+
|
242
|
+
assert_equal (1..n).to_a, ListMixin.where(parent_id: 1).order('pos').map(&:pos)
|
243
|
+
end
|
244
|
+
end
|
245
|
+
|
246
|
+
class ListWithCallbackTest < ActsAsListTestCase
|
247
|
+
|
248
|
+
include Shared::List
|
249
|
+
|
250
|
+
def setup
|
251
|
+
ListMixin.send(:include, CallbackMixin)
|
252
|
+
setup_db
|
253
|
+
super
|
254
|
+
end
|
255
|
+
|
164
256
|
end
|
165
257
|
|
166
258
|
class ListTestWithDefault < ActsAsListTestCase
|
@@ -208,6 +300,15 @@ class ArrayScopeListTestWithDefault < ActsAsListTestCase
|
|
208
300
|
end
|
209
301
|
end
|
210
302
|
|
303
|
+
class QuotingTestList < ActsAsListTestCase
|
304
|
+
include Shared::Quoting
|
305
|
+
|
306
|
+
def setup
|
307
|
+
setup_db_with_default
|
308
|
+
super
|
309
|
+
end
|
310
|
+
end
|
311
|
+
|
211
312
|
class DefaultScopedTest < ActsAsListTestCase
|
212
313
|
def setup
|
213
314
|
setup_db
|
@@ -568,3 +669,82 @@ class MultipleListsArrayScopeTest < ActsAsListTestCase
|
|
568
669
|
assert_equal [1], ArrayScopeListMixin.where(:parent_id => 4, :parent_type => 'anything').order(:pos).map(&:pos)
|
569
670
|
end
|
570
671
|
end
|
672
|
+
|
673
|
+
class TouchTest < ActsAsListTestCase
|
674
|
+
def setup
|
675
|
+
setup_db
|
676
|
+
4.times { ListMixin.create! updated_at: yesterday }
|
677
|
+
end
|
678
|
+
|
679
|
+
def now
|
680
|
+
Time.now.utc
|
681
|
+
end
|
682
|
+
|
683
|
+
def yesterday
|
684
|
+
1.day.ago
|
685
|
+
end
|
686
|
+
|
687
|
+
def updated_ats
|
688
|
+
ListMixin.pluck(:updated_at)
|
689
|
+
end
|
690
|
+
|
691
|
+
def test_moving_item_lower_touches_self_and_lower_item
|
692
|
+
ListMixin.first.move_lower
|
693
|
+
updated_ats[0..1].each do |updated_at|
|
694
|
+
assert_in_delta updated_at, now, 1.second
|
695
|
+
end
|
696
|
+
updated_ats[2..3].each do |updated_at|
|
697
|
+
assert_in_delta updated_at, yesterday, 1.second
|
698
|
+
end
|
699
|
+
end
|
700
|
+
|
701
|
+
def test_moving_item_higher_touches_self_and_higher_item
|
702
|
+
ListMixin.all.second.move_higher
|
703
|
+
updated_ats[0..1].each do |updated_at|
|
704
|
+
assert_in_delta updated_at, now, 1.second
|
705
|
+
end
|
706
|
+
updated_ats[2..3].each do |updated_at|
|
707
|
+
assert_in_delta updated_at, yesterday, 1.second
|
708
|
+
end
|
709
|
+
end
|
710
|
+
|
711
|
+
def test_moving_item_to_bottom_touches_all_other_items
|
712
|
+
ListMixin.first.move_to_bottom
|
713
|
+
updated_ats.each do |updated_at|
|
714
|
+
assert_in_delta updated_at, now, 1.second
|
715
|
+
end
|
716
|
+
end
|
717
|
+
|
718
|
+
def test_moving_item_to_top_touches_all_other_items
|
719
|
+
ListMixin.last.move_to_top
|
720
|
+
updated_ats.each do |updated_at|
|
721
|
+
assert_in_delta updated_at, now, 1.second
|
722
|
+
end
|
723
|
+
end
|
724
|
+
|
725
|
+
def test_removing_item_touches_all_lower_items
|
726
|
+
ListMixin.all.third.remove_from_list
|
727
|
+
updated_ats[0..1].each do |updated_at|
|
728
|
+
assert_in_delta updated_at, yesterday, 1.second
|
729
|
+
end
|
730
|
+
updated_ats[2..2].each do |updated_at|
|
731
|
+
assert_in_delta updated_at, now, 1.second
|
732
|
+
end
|
733
|
+
end
|
734
|
+
end
|
735
|
+
|
736
|
+
class ActsAsListTopTest < ActsAsListTestCase
|
737
|
+
def setup
|
738
|
+
setup_db
|
739
|
+
end
|
740
|
+
|
741
|
+
def test_acts_as_list_top
|
742
|
+
assert_equal 1, TheBaseSubclass.new.acts_as_list_top
|
743
|
+
assert_equal 0, ZeroBasedMixin.new.acts_as_list_top
|
744
|
+
end
|
745
|
+
|
746
|
+
def test_class_acts_as_list_top
|
747
|
+
assert_equal 1, TheBaseSubclass.acts_as_list_top
|
748
|
+
assert_equal 0, ZeroBasedMixin.acts_as_list_top
|
749
|
+
end
|
750
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: acts_as_list
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Heinemeier Hansson
|
@@ -10,34 +10,34 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2016-08-18 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activerecord
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - ">="
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: '3.0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
|
-
- -
|
26
|
+
- - ">="
|
27
27
|
- !ruby/object:Gem::Version
|
28
28
|
version: '3.0'
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: bundler
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
|
-
- -
|
33
|
+
- - ">="
|
34
34
|
- !ruby/object:Gem::Version
|
35
35
|
version: 1.0.0
|
36
36
|
type: :development
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
|
-
- -
|
40
|
+
- - ">="
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
version: 1.0.0
|
43
43
|
description: This "acts_as" extension provides the capabilities for sorting and reordering
|
@@ -49,21 +49,20 @@ executables: []
|
|
49
49
|
extensions: []
|
50
50
|
extra_rdoc_files: []
|
51
51
|
files:
|
52
|
-
- .gemtest
|
53
|
-
- .gitignore
|
54
|
-
- .travis.yml
|
52
|
+
- ".gemtest"
|
53
|
+
- ".gitignore"
|
54
|
+
- ".travis.yml"
|
55
55
|
- Appraisals
|
56
|
+
- CHANGELOG.md
|
56
57
|
- Gemfile
|
57
58
|
- MIT-LICENSE
|
58
59
|
- README.md
|
59
60
|
- Rakefile
|
60
61
|
- acts_as_list.gemspec
|
61
62
|
- gemfiles/rails_3_2.gemfile
|
62
|
-
- gemfiles/rails_3_2.gemfile.lock
|
63
63
|
- gemfiles/rails_4_1.gemfile
|
64
|
-
- gemfiles/rails_4_1.gemfile.lock
|
65
64
|
- gemfiles/rails_4_2.gemfile
|
66
|
-
- gemfiles/
|
65
|
+
- gemfiles/rails_5_0.gemfile
|
67
66
|
- init.rb
|
68
67
|
- lib/acts_as_list.rb
|
69
68
|
- lib/acts_as_list/active_record/acts/list.rb
|
@@ -74,8 +73,10 @@ files:
|
|
74
73
|
- test/shared_list.rb
|
75
74
|
- test/shared_list_sub.rb
|
76
75
|
- test/shared_no_addition.rb
|
76
|
+
- test/shared_quoting.rb
|
77
77
|
- test/shared_top_addition.rb
|
78
78
|
- test/shared_zero_based.rb
|
79
|
+
- test/test_joined_list.rb
|
79
80
|
- test/test_list.rb
|
80
81
|
homepage: http://github.com/swanandp/acts_as_list
|
81
82
|
licenses:
|
@@ -87,12 +88,12 @@ require_paths:
|
|
87
88
|
- lib
|
88
89
|
required_ruby_version: !ruby/object:Gem::Requirement
|
89
90
|
requirements:
|
90
|
-
- -
|
91
|
+
- - ">="
|
91
92
|
- !ruby/object:Gem::Version
|
92
93
|
version: 1.9.2
|
93
94
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
94
95
|
requirements:
|
95
|
-
- -
|
96
|
+
- - ">="
|
96
97
|
- !ruby/object:Gem::Version
|
97
98
|
version: '0'
|
98
99
|
requirements: []
|
@@ -109,6 +110,8 @@ test_files:
|
|
109
110
|
- test/shared_list.rb
|
110
111
|
- test/shared_list_sub.rb
|
111
112
|
- test/shared_no_addition.rb
|
113
|
+
- test/shared_quoting.rb
|
112
114
|
- test/shared_top_addition.rb
|
113
115
|
- test/shared_zero_based.rb
|
116
|
+
- test/test_joined_list.rb
|
114
117
|
- test/test_list.rb
|
@@ -1,258 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: ../
|
3
|
-
specs:
|
4
|
-
acts_as_list (0.7.2)
|
5
|
-
activerecord (>= 3.0)
|
6
|
-
|
7
|
-
GEM
|
8
|
-
remote: http://rubygems.org/
|
9
|
-
specs:
|
10
|
-
activemodel (3.2.21)
|
11
|
-
activesupport (= 3.2.21)
|
12
|
-
builder (~> 3.0.0)
|
13
|
-
activerecord (3.2.21)
|
14
|
-
activemodel (= 3.2.21)
|
15
|
-
activesupport (= 3.2.21)
|
16
|
-
arel (~> 3.0.2)
|
17
|
-
tzinfo (~> 0.3.29)
|
18
|
-
activesupport (3.2.21)
|
19
|
-
i18n (~> 0.6, >= 0.6.4)
|
20
|
-
multi_json (~> 1.0)
|
21
|
-
appraisal (1.0.2)
|
22
|
-
bundler
|
23
|
-
rake
|
24
|
-
thor (>= 0.14.0)
|
25
|
-
arel (3.0.3)
|
26
|
-
builder (3.0.4)
|
27
|
-
ffi2-generators (0.1.1)
|
28
|
-
i18n (0.7.0)
|
29
|
-
minitest (5.5.1)
|
30
|
-
multi_json (1.10.1)
|
31
|
-
rake (10.4.2)
|
32
|
-
rubinius-coverage (2.0.3)
|
33
|
-
rubinius-debugger (2.2.1)
|
34
|
-
rubinius-developer_tools (2.0.0)
|
35
|
-
rubinius-coverage (~> 2.0)
|
36
|
-
rubinius-debugger (~> 2.0)
|
37
|
-
rubinius-profiler (~> 2.0)
|
38
|
-
rubinius-profiler (2.0.1)
|
39
|
-
rubysl (2.1.0)
|
40
|
-
rubysl-abbrev (~> 2.0)
|
41
|
-
rubysl-base64 (~> 2.0)
|
42
|
-
rubysl-benchmark (~> 2.0)
|
43
|
-
rubysl-bigdecimal (~> 2.0)
|
44
|
-
rubysl-cgi (~> 2.0)
|
45
|
-
rubysl-cgi-session (~> 2.0)
|
46
|
-
rubysl-cmath (~> 2.0)
|
47
|
-
rubysl-complex (~> 2.0)
|
48
|
-
rubysl-continuation (~> 2.0)
|
49
|
-
rubysl-coverage (~> 2.0)
|
50
|
-
rubysl-csv (~> 2.0)
|
51
|
-
rubysl-curses (~> 2.0)
|
52
|
-
rubysl-date (~> 2.0)
|
53
|
-
rubysl-delegate (~> 2.0)
|
54
|
-
rubysl-digest (~> 2.0)
|
55
|
-
rubysl-drb (~> 2.0)
|
56
|
-
rubysl-e2mmap (~> 2.0)
|
57
|
-
rubysl-english (~> 2.0)
|
58
|
-
rubysl-enumerator (~> 2.0)
|
59
|
-
rubysl-erb (~> 2.0)
|
60
|
-
rubysl-etc (~> 2.0)
|
61
|
-
rubysl-expect (~> 2.0)
|
62
|
-
rubysl-fcntl (~> 2.0)
|
63
|
-
rubysl-fiber (~> 2.0)
|
64
|
-
rubysl-fileutils (~> 2.0)
|
65
|
-
rubysl-find (~> 2.0)
|
66
|
-
rubysl-forwardable (~> 2.0)
|
67
|
-
rubysl-getoptlong (~> 2.0)
|
68
|
-
rubysl-gserver (~> 2.0)
|
69
|
-
rubysl-io-console (~> 2.0)
|
70
|
-
rubysl-io-nonblock (~> 2.0)
|
71
|
-
rubysl-io-wait (~> 2.0)
|
72
|
-
rubysl-ipaddr (~> 2.0)
|
73
|
-
rubysl-irb (~> 2.1)
|
74
|
-
rubysl-logger (~> 2.0)
|
75
|
-
rubysl-mathn (~> 2.0)
|
76
|
-
rubysl-matrix (~> 2.0)
|
77
|
-
rubysl-mkmf (~> 2.0)
|
78
|
-
rubysl-monitor (~> 2.0)
|
79
|
-
rubysl-mutex_m (~> 2.0)
|
80
|
-
rubysl-net-ftp (~> 2.0)
|
81
|
-
rubysl-net-http (~> 2.0)
|
82
|
-
rubysl-net-imap (~> 2.0)
|
83
|
-
rubysl-net-pop (~> 2.0)
|
84
|
-
rubysl-net-protocol (~> 2.0)
|
85
|
-
rubysl-net-smtp (~> 2.0)
|
86
|
-
rubysl-net-telnet (~> 2.0)
|
87
|
-
rubysl-nkf (~> 2.0)
|
88
|
-
rubysl-observer (~> 2.0)
|
89
|
-
rubysl-open-uri (~> 2.0)
|
90
|
-
rubysl-open3 (~> 2.0)
|
91
|
-
rubysl-openssl (~> 2.0)
|
92
|
-
rubysl-optparse (~> 2.0)
|
93
|
-
rubysl-ostruct (~> 2.0)
|
94
|
-
rubysl-pathname (~> 2.0)
|
95
|
-
rubysl-prettyprint (~> 2.0)
|
96
|
-
rubysl-prime (~> 2.0)
|
97
|
-
rubysl-profile (~> 2.0)
|
98
|
-
rubysl-profiler (~> 2.0)
|
99
|
-
rubysl-pstore (~> 2.0)
|
100
|
-
rubysl-pty (~> 2.0)
|
101
|
-
rubysl-rational (~> 2.0)
|
102
|
-
rubysl-resolv (~> 2.0)
|
103
|
-
rubysl-rexml (~> 2.0)
|
104
|
-
rubysl-rinda (~> 2.0)
|
105
|
-
rubysl-rss (~> 2.0)
|
106
|
-
rubysl-scanf (~> 2.0)
|
107
|
-
rubysl-securerandom (~> 2.0)
|
108
|
-
rubysl-set (~> 2.0)
|
109
|
-
rubysl-shellwords (~> 2.0)
|
110
|
-
rubysl-singleton (~> 2.0)
|
111
|
-
rubysl-socket (~> 2.0)
|
112
|
-
rubysl-stringio (~> 2.0)
|
113
|
-
rubysl-strscan (~> 2.0)
|
114
|
-
rubysl-sync (~> 2.0)
|
115
|
-
rubysl-syslog (~> 2.0)
|
116
|
-
rubysl-tempfile (~> 2.0)
|
117
|
-
rubysl-thread (~> 2.0)
|
118
|
-
rubysl-thwait (~> 2.0)
|
119
|
-
rubysl-time (~> 2.0)
|
120
|
-
rubysl-timeout (~> 2.0)
|
121
|
-
rubysl-tmpdir (~> 2.0)
|
122
|
-
rubysl-tsort (~> 2.0)
|
123
|
-
rubysl-un (~> 2.0)
|
124
|
-
rubysl-uri (~> 2.0)
|
125
|
-
rubysl-weakref (~> 2.0)
|
126
|
-
rubysl-webrick (~> 2.0)
|
127
|
-
rubysl-xmlrpc (~> 2.0)
|
128
|
-
rubysl-yaml (~> 2.0)
|
129
|
-
rubysl-zlib (~> 2.0)
|
130
|
-
rubysl-abbrev (2.0.4)
|
131
|
-
rubysl-base64 (2.0.0)
|
132
|
-
rubysl-benchmark (2.0.1)
|
133
|
-
rubysl-bigdecimal (2.0.2)
|
134
|
-
rubysl-cgi (2.0.1)
|
135
|
-
rubysl-cgi-session (2.0.1)
|
136
|
-
rubysl-cmath (2.0.0)
|
137
|
-
rubysl-complex (2.0.0)
|
138
|
-
rubysl-continuation (2.0.0)
|
139
|
-
rubysl-coverage (2.0.3)
|
140
|
-
rubysl-csv (2.0.2)
|
141
|
-
rubysl-english (~> 2.0)
|
142
|
-
rubysl-curses (2.0.1)
|
143
|
-
rubysl-date (2.0.9)
|
144
|
-
rubysl-delegate (2.0.1)
|
145
|
-
rubysl-digest (2.0.3)
|
146
|
-
rubysl-drb (2.0.1)
|
147
|
-
rubysl-e2mmap (2.0.0)
|
148
|
-
rubysl-english (2.0.0)
|
149
|
-
rubysl-enumerator (2.0.0)
|
150
|
-
rubysl-erb (2.0.2)
|
151
|
-
rubysl-etc (2.0.3)
|
152
|
-
ffi2-generators (~> 0.1)
|
153
|
-
rubysl-expect (2.0.0)
|
154
|
-
rubysl-fcntl (2.0.4)
|
155
|
-
ffi2-generators (~> 0.1)
|
156
|
-
rubysl-fiber (2.0.0)
|
157
|
-
rubysl-fileutils (2.0.3)
|
158
|
-
rubysl-find (2.0.1)
|
159
|
-
rubysl-forwardable (2.0.1)
|
160
|
-
rubysl-getoptlong (2.0.0)
|
161
|
-
rubysl-gserver (2.0.0)
|
162
|
-
rubysl-socket (~> 2.0)
|
163
|
-
rubysl-thread (~> 2.0)
|
164
|
-
rubysl-io-console (2.0.0)
|
165
|
-
rubysl-io-nonblock (2.0.0)
|
166
|
-
rubysl-io-wait (2.0.0)
|
167
|
-
rubysl-ipaddr (2.0.0)
|
168
|
-
rubysl-irb (2.1.1)
|
169
|
-
rubysl-e2mmap (~> 2.0)
|
170
|
-
rubysl-mathn (~> 2.0)
|
171
|
-
rubysl-thread (~> 2.0)
|
172
|
-
rubysl-logger (2.1.0)
|
173
|
-
rubysl-mathn (2.0.0)
|
174
|
-
rubysl-matrix (2.1.0)
|
175
|
-
rubysl-e2mmap (~> 2.0)
|
176
|
-
rubysl-mkmf (2.0.1)
|
177
|
-
rubysl-fileutils (~> 2.0)
|
178
|
-
rubysl-shellwords (~> 2.0)
|
179
|
-
rubysl-monitor (2.0.0)
|
180
|
-
rubysl-mutex_m (2.0.0)
|
181
|
-
rubysl-net-ftp (2.0.1)
|
182
|
-
rubysl-net-http (2.0.4)
|
183
|
-
rubysl-cgi (~> 2.0)
|
184
|
-
rubysl-erb (~> 2.0)
|
185
|
-
rubysl-singleton (~> 2.0)
|
186
|
-
rubysl-net-imap (2.0.1)
|
187
|
-
rubysl-net-pop (2.0.1)
|
188
|
-
rubysl-net-protocol (2.0.1)
|
189
|
-
rubysl-net-smtp (2.0.1)
|
190
|
-
rubysl-net-telnet (2.0.0)
|
191
|
-
rubysl-nkf (2.0.1)
|
192
|
-
rubysl-observer (2.0.0)
|
193
|
-
rubysl-open-uri (2.0.0)
|
194
|
-
rubysl-open3 (2.0.0)
|
195
|
-
rubysl-openssl (2.2.1)
|
196
|
-
rubysl-optparse (2.0.1)
|
197
|
-
rubysl-shellwords (~> 2.0)
|
198
|
-
rubysl-ostruct (2.0.4)
|
199
|
-
rubysl-pathname (2.1.0)
|
200
|
-
rubysl-prettyprint (2.0.3)
|
201
|
-
rubysl-prime (2.0.1)
|
202
|
-
rubysl-profile (2.0.0)
|
203
|
-
rubysl-profiler (2.0.1)
|
204
|
-
rubysl-pstore (2.0.0)
|
205
|
-
rubysl-pty (2.0.3)
|
206
|
-
rubysl-rational (2.0.1)
|
207
|
-
rubysl-resolv (2.1.2)
|
208
|
-
rubysl-rexml (2.0.4)
|
209
|
-
rubysl-rinda (2.0.1)
|
210
|
-
rubysl-rss (2.0.0)
|
211
|
-
rubysl-scanf (2.0.0)
|
212
|
-
rubysl-securerandom (2.0.0)
|
213
|
-
rubysl-set (2.0.1)
|
214
|
-
rubysl-shellwords (2.0.0)
|
215
|
-
rubysl-singleton (2.0.0)
|
216
|
-
rubysl-socket (2.0.1)
|
217
|
-
rubysl-stringio (2.0.0)
|
218
|
-
rubysl-strscan (2.0.0)
|
219
|
-
rubysl-sync (2.0.0)
|
220
|
-
rubysl-syslog (2.1.0)
|
221
|
-
ffi2-generators (~> 0.1)
|
222
|
-
rubysl-tempfile (2.0.1)
|
223
|
-
rubysl-test-unit (2.0.2)
|
224
|
-
minitest
|
225
|
-
rubysl-thread (2.0.3)
|
226
|
-
rubysl-thwait (2.0.0)
|
227
|
-
rubysl-time (2.0.3)
|
228
|
-
rubysl-timeout (2.0.0)
|
229
|
-
rubysl-tmpdir (2.0.1)
|
230
|
-
rubysl-tsort (2.0.1)
|
231
|
-
rubysl-un (2.0.0)
|
232
|
-
rubysl-fileutils (~> 2.0)
|
233
|
-
rubysl-optparse (~> 2.0)
|
234
|
-
rubysl-uri (2.0.0)
|
235
|
-
rubysl-weakref (2.0.0)
|
236
|
-
rubysl-webrick (2.0.0)
|
237
|
-
rubysl-xmlrpc (2.0.0)
|
238
|
-
rubysl-yaml (2.1.0)
|
239
|
-
rubysl-zlib (2.0.1)
|
240
|
-
sqlite3 (1.3.10)
|
241
|
-
thor (0.19.1)
|
242
|
-
tzinfo (0.3.42)
|
243
|
-
|
244
|
-
PLATFORMS
|
245
|
-
ruby
|
246
|
-
|
247
|
-
DEPENDENCIES
|
248
|
-
activerecord (= 3.2.21)
|
249
|
-
activerecord-jdbcsqlite3-adapter
|
250
|
-
acts_as_list!
|
251
|
-
appraisal
|
252
|
-
bundler (>= 1.0.0)
|
253
|
-
minitest
|
254
|
-
rake
|
255
|
-
rubinius-developer_tools
|
256
|
-
rubysl (~> 2.0)
|
257
|
-
rubysl-test-unit
|
258
|
-
sqlite3
|