acts_as_orderable 0.1.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.
data.tar.gz.sig ADDED
Binary file
data/CHANGELOG.rdoc ADDED
@@ -0,0 +1,2 @@
1
+ = Version 0.1.0
2
+ * Gem existence started
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source "http://rubygems.org"
2
+ gemspec
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2010 Maciej Mensfeld
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Manifest ADDED
@@ -0,0 +1,10 @@
1
+ CHANGELOG.rdoc
2
+ Gemfile
3
+ MIT-LICENSE
4
+ Manifest
5
+ README.md
6
+ Rakefile
7
+ init.rb
8
+ lib/acts_as_orderable.rb
9
+ spec/acts_as_orderable_spec.rb
10
+ spec/spec_helper.rb
data/README.md ADDED
@@ -0,0 +1,84 @@
1
+ # ActsAsOrderable
2
+ ## Install
3
+
4
+ gem install acts_as_orderable
5
+
6
+ and in your Gemfile:
7
+
8
+ gem 'acts_as_orderable'
9
+
10
+ Model declaration:
11
+
12
+ class CoolClass < ActiveRecord::Base
13
+ acts_as_orderable
14
+ end
15
+
16
+ ## About
17
+
18
+ Simple Rails gem allowing ActiveRecord models to have order and to move them up and down
19
+
20
+ Requirements
21
+
22
+ table.integer :element_order, :default => 0, :null => false
23
+
24
+ It works well with acts_ac_tree (each node has its own order so they don't interfere with each other)
25
+
26
+ Use `:position => :first` or `:position => :last` to set default new element behavior - should it be append as and first or last element. Default is `:last`. This default behavior will also be used when switching parents when you use `acts_as_tree`.
27
+
28
+ ## Example
29
+
30
+ class CoolClass < ActiveRecord::Base
31
+ acts_as_orderable
32
+ end
33
+
34
+ # Creating some records record
35
+ a = CoolClass.new(:name => A); a.save
36
+ b = CoolClass.new(:name => B); b.save
37
+ c = CoolClass.new(:name => C); c.save
38
+ d = CoolClass.new(:name => D); d.save
39
+
40
+ #Order:
41
+ 0 => A
42
+ 1 => B
43
+ 2 => C
44
+ 3 => D
45
+
46
+ Lets take element C and lest move it 1 element up
47
+
48
+ c.move_up(1)
49
+
50
+ #New Order:
51
+ 0 => A
52
+ 1 => C
53
+ 2 => B
54
+ 3 => D
55
+
56
+ Now lest move C 2 elements down
57
+
58
+ c.move_down(2)
59
+
60
+ # Order:
61
+ 0 => A
62
+ 1 => B
63
+ 2 => D
64
+ 3 => C
65
+
66
+ # Additional notes
67
+
68
+ With acts_as_tree plugin, you use it in the same way, just remember that you operate on a node order.
69
+
70
+ There is one more thing: if you look into element_order column, numbers are not always like: 0, 1, 2, 3, 4, etc. They are more like 0, 1, 23, 452, 523.
71
+ That's because when you delete a row, there will be deleted also one "order". But don't worry, everything works fine even then.
72
+
73
+ ## Note on Patches/Pull Requests
74
+
75
+ * Fork the project.
76
+ * Make your feature addition or bug fix.
77
+ * Add tests for it. This is important so I don't break it in a future version unintentionally.
78
+ * Commit, do not mess with Rakefile, version, or history.
79
+ (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
80
+ * Send me a pull request. Bonus points for topic branches.
81
+
82
+ ## Copyright
83
+
84
+ Copyright (c) 2011 Maciej Mensfeld. See LICENSE for details.
data/Rakefile ADDED
@@ -0,0 +1,13 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+ require 'echoe'
4
+
5
+ Echoe.new('acts_as_orderable', '0.1.0') do |p|
6
+ p.description = "Rails gem allowing ActiveRecord models to have order and to move them up and down"
7
+ p.url = "https://github.com/mensfeld/Acts-as-Orderable"
8
+ p.author = "Maciej Mensfeld"
9
+ p.email = "maciej@mensfeld.pl"
10
+ p.ignore_pattern = ["tmp/*", "script/*"]
11
+ p.development_dependencies = ["rspec >=2.0.0", "active_record"]
12
+ end
13
+
@@ -0,0 +1,37 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{acts_as_orderable}
5
+ s.version = "0.1.0"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Maciej Mensfeld"]
9
+ s.cert_chain = ["/home/mencio/.cert_keys/gem-public_cert.pem"]
10
+ s.date = %q{2011-04-17}
11
+ s.description = %q{Rails gem allowing ActiveRecord models to have order and to move them up and down}
12
+ s.email = %q{maciej@mensfeld.pl}
13
+ s.extra_rdoc_files = ["CHANGELOG.rdoc", "README.md", "lib/acts_as_orderable.rb"]
14
+ s.files = ["CHANGELOG.rdoc", "Gemfile", "MIT-LICENSE", "Manifest", "README.md", "Rakefile", "init.rb", "lib/acts_as_orderable.rb", "spec/acts_as_orderable_spec.rb", "spec/spec_helper.rb", "acts_as_orderable.gemspec"]
15
+ s.homepage = %q{https://github.com/mensfeld/Acts-as-Orderable}
16
+ s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Acts_as_orderable", "--main", "README.md"]
17
+ s.require_paths = ["lib"]
18
+ s.rubyforge_project = %q{acts_as_orderable}
19
+ s.rubygems_version = %q{1.5.2}
20
+ s.signing_key = %q{/home/mencio/.cert_keys/gem-private_key.pem}
21
+ s.summary = %q{Rails gem allowing ActiveRecord models to have order and to move them up and down}
22
+
23
+ if s.respond_to? :specification_version then
24
+ s.specification_version = 3
25
+
26
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
27
+ s.add_development_dependency(%q<rspec>, [">= 2.0.0"])
28
+ s.add_development_dependency(%q<active_record>, [">= 0"])
29
+ else
30
+ s.add_dependency(%q<rspec>, [">= 2.0.0"])
31
+ s.add_dependency(%q<active_record>, [">= 0"])
32
+ end
33
+ else
34
+ s.add_dependency(%q<rspec>, [">= 2.0.0"])
35
+ s.add_dependency(%q<active_record>, [">= 0"])
36
+ end
37
+ end
data/init.rb ADDED
@@ -0,0 +1,2 @@
1
+ require 'acts_as_orderable'
2
+
@@ -0,0 +1,127 @@
1
+ module Acts
2
+ module AsOrderable
3
+
4
+ def self.included(base)
5
+ base.extend AddActsAsMethod
6
+ end
7
+
8
+ module AddActsAsMethod
9
+
10
+ # Should new element be first || last
11
+ def acts_as_orderable(*sources)
12
+ class_eval <<-END
13
+ scope :ordered, order('element_order ASC')
14
+ after_create :init_me!
15
+ include Acts::AsOrderable::InstanceMethods
16
+ END
17
+
18
+ options = sources.extract_options!.stringify_keys
19
+ new_pos = options.delete("position")
20
+ new_pos = (new_pos && new_pos.to_sym == :first) ? :first : :last
21
+
22
+ parent_column = options.delete("tree_column")
23
+ # Determine tree column (first from param - else check default acts_as_tree "parent_id")
24
+ unless parent_column
25
+ parent_column = 'parent_id' if self.column_names.include? 'parent_id'
26
+ end
27
+
28
+ # Set class attributes
29
+ cattr_accessor :new_element_position
30
+ self.new_element_position = new_pos
31
+ cattr_accessor :parent_column
32
+ self.parent_column = parent_column
33
+
34
+ # Define methods for assigning new parent - when we change parent
35
+ # we need to be first or last element (according to new_el_pos)
36
+ self.send(:define_method, "#{parent_column}=".to_sym) do |new_parent|
37
+ super new_parent
38
+ # If object exist (been saved and we're just changing its parent)
39
+ init_me! unless self.new_record?
40
+ end if parent_column
41
+ end
42
+ end
43
+
44
+ # Istance methods
45
+ module InstanceMethods
46
+
47
+ # Fetches previous element - if there's no previous elements - return nil
48
+ def previous
49
+ self.class.where("element_order < #{self.element_order} #{search_node_query}").order("element_order DESC").limit(1).first
50
+ end
51
+
52
+ # Fetches previous element - if there's no previous elements - return nil
53
+ def next
54
+ self.class.where("element_order > #{self.element_order} #{search_node_query}").order("element_order ASC").limit(1).first
55
+ end
56
+
57
+ def move_up(steps = 1)
58
+ move(steps)
59
+ end
60
+
61
+ def move_down(steps = 1)
62
+ move(-steps)
63
+ end
64
+
65
+ private
66
+
67
+ # Set default order
68
+ def init_me!
69
+ self.element_order = 0
70
+ if self.class.new_element_position == :first
71
+ self.class.where("id != #{self.id} #{search_node_query}").all.each do |el|
72
+ el.element_order += 1
73
+ el.save
74
+ end
75
+ else
76
+ el = self.class.where("id != #{self.id} #{search_node_query}").order('element_order DESC').limit(1).first
77
+ if el
78
+ self.element_order = el.element_order+1
79
+ else
80
+ self.element_order = 0
81
+ end
82
+ end
83
+ self.save
84
+ end
85
+
86
+ # Moves us up (+) or down (-)
87
+ def move(steps)
88
+ # If you want to stay in place - just stay
89
+ return if steps == 0 || self.class.count < 2
90
+
91
+ # Lets pick those records which are - we limit query - because we only
92
+ # need those objects that are on our "way" to a new location
93
+ way = steps < 0 ? ' > ' : ' < '
94
+ way_order = steps < 0 ? 'ASC' : 'DESC'
95
+ els = self.class.where("element_order #{way} ? #{search_node_query}
96
+ AND id != ?", self.element_order, self.id).order("element_order #{way_order}").limit(steps.abs)
97
+
98
+ return unless els.count > 0
99
+
100
+ our_new_order = els.first.element_order
101
+ els.each do |el|
102
+ el.element_order += steps > 0 ? 1 : -1
103
+ el.save
104
+ end
105
+ self.element_order = our_new_order
106
+ self.save
107
+ end
108
+
109
+ # Builds query part used to fetch only elements from uor node (or do nothing)
110
+ def search_node_query(init_end = true)
111
+ p_c = self.class.parent_column
112
+ # If parent exists - fetch our parent_id and put it into query
113
+ if p_c
114
+ parent_id_query = "#{p_c} "
115
+ parent_id_query += self.send(p_c) ? "= #{self.send(p_c)}" : 'IS NULL'
116
+ parent_id_query = "AND #{parent_id_query}" if init_end
117
+ else
118
+ parent_id_query = nil
119
+ end
120
+ parent_id_query
121
+ end
122
+
123
+ end
124
+ end
125
+ end
126
+
127
+ ActiveRecord::Base.send(:include, Acts::AsOrderable)
@@ -0,0 +1,315 @@
1
+ require 'spec_helper'
2
+
3
+ ROOT = File.expand_path(File.dirname(__FILE__))
4
+
5
+ class CoolElement < ActiveRecord::Base
6
+ acts_as_orderable
7
+ end
8
+
9
+ class CoolerElement < ActiveRecord::Base
10
+ acts_as_orderable :position => :first
11
+ end
12
+
13
+ class WayCoolerElement < ActiveRecord::Base
14
+ acts_as_tree
15
+ acts_as_orderable
16
+ end
17
+
18
+ describe CoolElement do
19
+ subject { CoolElement }
20
+ before(:each){ CoolElement.destroy_all}
21
+
22
+ context "when adding first element" do
23
+ it "always should have order equal 0" do
24
+ a = subject.new
25
+ a.save
26
+ a.element_order.should == 0
27
+ end
28
+ end
29
+
30
+ context "when we add second and third elements" do
31
+
32
+ it "should be in a correct order" do
33
+ a=subject.create; b=subject.create; c=subject.create
34
+ a.reload; b.reload; c.reload
35
+ a.element_order.should == 0
36
+ b.element_order.should == 1
37
+ c.element_order.should == 2
38
+ end
39
+
40
+ it "should return valid previous element" do
41
+ a=subject.create; b=subject.create; c=subject.create
42
+ a.reload; b.reload; c.reload
43
+ a.previous.should == nil
44
+ b.previous.should == a
45
+ c.previous.should == b
46
+ end
47
+
48
+ it "should return valid next element" do
49
+ a=subject.create; b=subject.create; c=subject.create
50
+ a.reload; b.reload; c.reload
51
+ a.next.should == b
52
+ b.next.should == c
53
+ c.next.should == nil
54
+ end
55
+
56
+ it "should be able to move them up" do
57
+ a=subject.create; b=subject.create; c=subject.create
58
+ a.reload; b.reload; c.reload
59
+ c.move_up
60
+ a.reload; b.reload; c.reload
61
+ a.element_order.should == 0
62
+ c.element_order.should == 1
63
+ b.element_order.should == 2
64
+ c.move_up
65
+ a.reload; b.reload; c.reload
66
+ c.element_order.should == 0
67
+ a.element_order.should == 1
68
+ b.element_order.should == 2
69
+ c.move_up
70
+ a.reload; b.reload; c.reload
71
+ c.element_order.should == 0
72
+ a.element_order.should == 1
73
+ b.element_order.should == 2
74
+ a.move_up
75
+ a.reload; b.reload; c.reload
76
+ a.element_order.should == 0
77
+ c.element_order.should == 1
78
+ b.element_order.should == 2
79
+ end
80
+
81
+ it "should be able to move them down" do
82
+ a=subject.create; b=subject.create; c=subject.create
83
+ a.reload; b.reload; c.reload
84
+ a.move_down
85
+ a.reload; b.reload; c.reload
86
+ b.element_order.should == 0
87
+ a.element_order.should == 1
88
+ c.element_order.should == 2
89
+ a.move_down
90
+ a.reload; b.reload; c.reload
91
+ b.element_order.should == 0
92
+ c.element_order.should == 1
93
+ a.element_order.should == 2
94
+ a.move_down
95
+ a.reload; b.reload; c.reload
96
+ b.element_order.should == 0
97
+ c.element_order.should == 1
98
+ a.element_order.should == 2
99
+ b.move_down
100
+ a.reload; b.reload; c.reload
101
+ c.element_order.should == 0
102
+ b.element_order.should == 1
103
+ a.element_order.should == 2
104
+ end
105
+
106
+ end
107
+
108
+ context "when we delete one" do
109
+ it "should work just fine" do
110
+ a=subject.create; b=subject.create; c=subject.create; d=subject.create
111
+ a.reload; b.reload; c.reload; d.reload
112
+ b.destroy
113
+ a.reload; c.reload; d.reload
114
+ a.move_down
115
+ a.reload; c.reload; d.reload
116
+ a.element_order.should be > c.element_order
117
+ a.element_order.should be < d.element_order
118
+ a.move_up
119
+ a.reload; c.reload; d.reload
120
+ a.element_order.should be < c.element_order
121
+ a.element_order.should be < d.element_order
122
+ end
123
+ end
124
+
125
+ end
126
+
127
+ describe CoolerElement do
128
+ subject { CoolerElement }
129
+ before(:each){ CoolerElement.destroy_all}
130
+
131
+ context "when adding first element" do
132
+ it "always should have order equal 0" do
133
+ a = subject.new
134
+ a.save
135
+ a.element_order.should == 0
136
+ end
137
+ end
138
+
139
+ context "when we add second and third elements" do
140
+
141
+ it "should be in a correct order" do
142
+ a=subject.create; b=subject.create; c=subject.create
143
+ a.reload; b.reload; c.reload
144
+ c.element_order.should == 0
145
+ b.element_order.should == 1
146
+ a.element_order.should == 2
147
+ end
148
+
149
+ it "should return valid previous element" do
150
+ a=subject.create; b=subject.create; c=subject.create
151
+ a.reload; b.reload; c.reload
152
+ c.previous.should == nil
153
+ b.previous.should == c
154
+ end
155
+
156
+ it "should return valid next element" do
157
+ a=subject.create; b=subject.create; c=subject.create
158
+ a.reload; b.reload; c.reload
159
+ a.next.should == nil
160
+ b.next.should == a
161
+ c.next.should == b
162
+ end
163
+
164
+ it "should be able to move them up" do
165
+ a=subject.create; b=subject.create; c=subject.create
166
+ a.reload; b.reload; c.reload
167
+ a.move_up
168
+ a.reload; b.reload; c.reload
169
+ c.element_order.should == 0
170
+ a.element_order.should == 1
171
+ b.element_order.should == 2
172
+ a.move_up
173
+ a.reload; b.reload; c.reload
174
+ a.element_order.should == 0
175
+ c.element_order.should == 1
176
+ b.element_order.should == 2
177
+ a.move_up
178
+ a.reload; b.reload; c.reload
179
+ a.element_order.should == 0
180
+ c.element_order.should == 1
181
+ b.element_order.should == 2
182
+ b.move_up
183
+ a.reload; b.reload; c.reload
184
+ a.element_order.should == 0
185
+ b.element_order.should == 1
186
+ c.element_order.should == 2
187
+ end
188
+
189
+ it "should be able to move them down" do
190
+ a=subject.create; b=subject.create; c=subject.create
191
+ a.reload; b.reload; c.reload
192
+ c.move_down
193
+ a.reload; b.reload; c.reload
194
+ b.element_order.should == 0
195
+ c.element_order.should == 1
196
+ a.element_order.should == 2
197
+ c.move_down
198
+ a.reload; b.reload; c.reload
199
+ b.element_order.should == 0
200
+ a.element_order.should == 1
201
+ c.element_order.should == 2
202
+ c.move_down
203
+ a.reload; b.reload; c.reload
204
+ b.element_order.should == 0
205
+ a.element_order.should == 1
206
+ c.element_order.should == 2
207
+ b.move_down
208
+ a.reload; b.reload; c.reload
209
+ a.element_order.should == 0
210
+ b.element_order.should == 1
211
+ c.element_order.should == 2
212
+ end
213
+
214
+ end
215
+
216
+ context "when we delete one" do
217
+ it "should work just fine" do
218
+ a=subject.create; b=subject.create; c=subject.create; d=subject.create
219
+ a.reload; b.reload; c.reload; d.reload
220
+ b.destroy
221
+ a.reload; c.reload; d.reload
222
+ d.move_down
223
+ a.reload; c.reload; d.reload
224
+ d.element_order.should be > c.element_order
225
+ d.element_order.should be < a.element_order
226
+ d.move_up
227
+ a.reload; c.reload; d.reload
228
+ d.element_order.should be < c.element_order
229
+ d.element_order.should be < a.element_order
230
+ end
231
+ end
232
+
233
+ end
234
+
235
+ describe WayCoolerElement do
236
+ subject { WayCoolerElement }
237
+ before(:each){ WayCoolerElement.destroy_all}
238
+
239
+ context "when adding first child element" do
240
+
241
+ it "always should have order equal 0" do
242
+ a = ''
243
+ 5.times {a = subject.create}
244
+ a = a.children.create
245
+ a.save
246
+ a.element_order.should == 0
247
+ end
248
+
249
+ end
250
+
251
+ context "when switching roots order" do
252
+
253
+ it "should not interfere with children" do
254
+ a = subject.create
255
+ b = subject.create
256
+ a.reload; b.reload
257
+ a.element_order.should == 0
258
+ b.element_order.should == 1
259
+ aa = a.children.create
260
+ ab = a.children.create
261
+ ac = a.children.create
262
+ ba = b.children.create
263
+ bb = b.children.create
264
+ bc = b.children.create
265
+ a.reload; b.reload
266
+ aa.reload; ab.reload; ac.reload;
267
+ ba.reload; bb.reload; bc.reload;
268
+ a.element_order.should == 0
269
+ b.element_order.should == 1
270
+ aa.element_order.should == 0
271
+ ab.element_order.should == 1
272
+ ac.element_order.should == 2
273
+ ba.element_order.should == 0
274
+ bb.element_order.should == 1
275
+ bc.element_order.should == 2
276
+ a.move_down
277
+ a.reload; b.reload
278
+ a.element_order.should == 1
279
+ b.element_order.should == 0
280
+ aa.reload; ab.reload; ac.reload;
281
+ ba.reload; bb.reload; bc.reload;
282
+ aa.element_order.should == 0
283
+ ab.element_order.should == 1
284
+ ac.element_order.should == 2
285
+ ba.element_order.should == 0
286
+ bb.element_order.should == 1
287
+ bc.element_order.should == 2
288
+ end
289
+
290
+ end
291
+
292
+ context "when changing root element" do
293
+ it "should be last" do
294
+ a = subject.create
295
+ b = subject.create
296
+ aa = a.children.create
297
+ ab = a.children.create
298
+ a.reload; b.reload; aa.reload; ab.reload
299
+ aa.parent_id = nil
300
+ aa.save
301
+ a.reload; b.reload; aa.reload; ab.reload
302
+ a.element_order.should == 0
303
+ b.element_order.should == 1
304
+ aa.element_order.should == 2
305
+ ac = a.children.create
306
+ a.reload; b.reload; aa.reload; ab.reload; ac.reload
307
+ a.element_order.should == 0
308
+ b.element_order.should == 1
309
+ aa.element_order.should == 2
310
+ ab.element_order.should == 1
311
+ ac.element_order.should == 2
312
+ end
313
+ end
314
+
315
+ end
@@ -0,0 +1,29 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
+
4
+ require 'rubygems'
5
+ require 'sqlite3'
6
+ require 'active_record'
7
+ require 'acts_as_orderable'
8
+ require 'acts_as_tree'
9
+
10
+ ActiveRecord::Base.establish_connection(
11
+ :adapter => "sqlite3",
12
+ :database => ":memory:"
13
+ )
14
+
15
+ ActiveRecord::Schema.define do
16
+ create_table :cool_elements do |table|
17
+ table.integer :element_order, :default => 0
18
+ end
19
+
20
+ create_table :cooler_elements do |table|
21
+ table.integer :element_order, :default => 0
22
+ end
23
+
24
+ create_table :way_cooler_elements do |table|
25
+ table.integer :parent_id
26
+ table.integer :element_order, :default => 0
27
+ end
28
+ end
29
+
metadata ADDED
@@ -0,0 +1,115 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: acts_as_orderable
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.1.0
6
+ platform: ruby
7
+ authors:
8
+ - Maciej Mensfeld
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain:
12
+ - |
13
+ -----BEGIN CERTIFICATE-----
14
+ MIIDMjCCAhqgAwIBAgIBADANBgkqhkiG9w0BAQUFADA/MQ8wDQYDVQQDDAZtYWNp
15
+ ZWoxGDAWBgoJkiaJk/IsZAEZFghtZW5zZmVsZDESMBAGCgmSJomT8ixkARkWAnBs
16
+ MB4XDTExMDQwOTA5NDcyMloXDTEyMDQwODA5NDcyMlowPzEPMA0GA1UEAwwGbWFj
17
+ aWVqMRgwFgYKCZImiZPyLGQBGRYIbWVuc2ZlbGQxEjAQBgoJkiaJk/IsZAEZFgJw
18
+ bDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL0+nG3V4/exIeiJ0IN+
19
+ wVfq8Utcu4Qpo+58EIVMIu3FiK+8w6MBvatZnUrRu12pqWLw9xrUkCiYeRErD+jF
20
+ AmdggIM/tu9CcjvURXH7VeTzOVA+pnV+eJWMD61o8HljFVcb/nyEYYVKErtr9/O4
21
+ QrIGv5lnszq1PMj2sBMy2gOP1YnzawncMLmkpp/T5SU4JZ5gAktGMRVz8RxmZzF5
22
+ 6NVqFLbuqSRSU5U//WJvZVJt8dycCGgQzBM4Vi3nkOWyjIF0BANf1TqnlU2u6s8d
23
+ UK1AoDZfg5feef5e8eqoomHebX1opNGM/SOQhu3LRgax4rJfnl6VS3I2wighohsf
24
+ AgcCAwEAAaM5MDcwCQYDVR0TBAIwADAdBgNVHQ4EFgQUGlrWBqxVieAPk7NEzBDp
25
+ kM+iAMMwCwYDVR0PBAQDAgSwMA0GCSqGSIb3DQEBBQUAA4IBAQAJMoyBaJs8boiz
26
+ lFpbw6MWjk+7ZhqoHpFrWEV4nzb5GzyHZ7GU/pa1fSEQR0SCs+LnTLQbAYNQyUTT
27
+ O+UsTuA7xzI//v6cSodv3Q9NbfoDlou74xv1NXorWoosQFMpVWrXv+c/1RqU3cq4
28
+ WUr+rRiveEXG4tXOwkrpX8KH8xVp2vQZcGw3AXPqhzfqDGzpHd6ws3lk+8HoSrSo
29
+ 2L68tDoxraF2Z2toAg9vfFw1+mOeDk1xVIPVcBy3tJxstHfHGHlQuMiRiDQX2b2D
30
+ YYU8UWVt2841IwB5Dgl4O+atXhe9ZTBO0W32pl4Bq5CP9lhQRT1KL7sxfznJlF7Y
31
+ BH3YFsdk
32
+ -----END CERTIFICATE-----
33
+
34
+ date: 2011-04-17 00:00:00 +02:00
35
+ default_executable:
36
+ dependencies:
37
+ - !ruby/object:Gem::Dependency
38
+ name: rspec
39
+ prerelease: false
40
+ requirement: &id001 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: 2.0.0
46
+ type: :development
47
+ version_requirements: *id001
48
+ - !ruby/object:Gem::Dependency
49
+ name: active_record
50
+ prerelease: false
51
+ requirement: &id002 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: "0"
57
+ type: :development
58
+ version_requirements: *id002
59
+ description: Rails gem allowing ActiveRecord models to have order and to move them up and down
60
+ email: maciej@mensfeld.pl
61
+ executables: []
62
+
63
+ extensions: []
64
+
65
+ extra_rdoc_files:
66
+ - CHANGELOG.rdoc
67
+ - README.md
68
+ - lib/acts_as_orderable.rb
69
+ files:
70
+ - CHANGELOG.rdoc
71
+ - Gemfile
72
+ - MIT-LICENSE
73
+ - Manifest
74
+ - README.md
75
+ - Rakefile
76
+ - init.rb
77
+ - lib/acts_as_orderable.rb
78
+ - spec/acts_as_orderable_spec.rb
79
+ - spec/spec_helper.rb
80
+ - acts_as_orderable.gemspec
81
+ has_rdoc: true
82
+ homepage: https://github.com/mensfeld/Acts-as-Orderable
83
+ licenses: []
84
+
85
+ post_install_message:
86
+ rdoc_options:
87
+ - --line-numbers
88
+ - --inline-source
89
+ - --title
90
+ - Acts_as_orderable
91
+ - --main
92
+ - README.md
93
+ require_paths:
94
+ - lib
95
+ required_ruby_version: !ruby/object:Gem::Requirement
96
+ none: false
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: "0"
101
+ required_rubygems_version: !ruby/object:Gem::Requirement
102
+ none: false
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: "1.2"
107
+ requirements: []
108
+
109
+ rubyforge_project: acts_as_orderable
110
+ rubygems_version: 1.5.2
111
+ signing_key:
112
+ specification_version: 3
113
+ summary: Rails gem allowing ActiveRecord models to have order and to move them up and down
114
+ test_files: []
115
+
metadata.gz.sig ADDED
@@ -0,0 +1,2 @@
1
+ w6�Q�I �PC������Xk��6w՗L!^�-��X�����-�L�A��Q��A-%)!q��4bzfi��.�o��e��ϜGkw��q�A����Nގ?[�u�Z�r
2
+ �$l���,;i4�f�0�� r�X6��a�9��~^��ɭL����&s�bZEW��'�]j9\N�%�����vWz |��ܼ�ȁ��K}�m�,�]�F{|�È��#���)_1���H�1�,(b�(ba}