mongoid-list 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -9,6 +9,7 @@ module Mongoid
9
9
  def update_positions!(klass, elements)
10
10
  elements.each_with_index do |element, idx|
11
11
  id = element.kind_of?(Hash) ? element['id'] : element
12
+ id = Moped::BSON::ObjectId.from_string(id) if id.is_a?(String)
12
13
  klass.collection.find({ _id: id }).update({ '$set' => { position: (idx + 1) } })
13
14
  end
14
15
  end
@@ -1,5 +1,5 @@
1
1
  module Mongoid
2
2
  module List
3
- VERSION = "0.2.0"
3
+ VERSION = "0.3.0"
4
4
  end
5
5
  end
data/mongoid-list.gemspec CHANGED
@@ -7,7 +7,6 @@ require "mongoid/list/version"
7
7
  Gem::Specification.new do |s|
8
8
  s.name = 'mongoid-list'
9
9
  s.version = Mongoid::List::VERSION
10
- s.date = '2013-02-06'
11
10
  s.authors = [ 'Dave Krupinski' ]
12
11
  s.email = 'dave@davekrupinski.com'
13
12
  s.summary = 'Simple list behavior for Mongoid'
@@ -18,15 +17,13 @@ Gem::Specification.new do |s|
18
17
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
18
  s.require_paths = ["lib"]
20
19
 
21
- s.add_dependency('mongoid', [ '>= 3.0.0' ])
20
+ s.add_dependency('mongoid', [ '>= 3.1.0' ])
22
21
 
23
22
  s.add_development_dependency('rspec', [ '>= 2.13.0' ])
24
23
  s.add_development_dependency('guard', [ '>= 1.8.0' ])
25
24
  s.add_development_dependency('guard-rspec', [ '>= 2.5.0' ])
26
25
  s.add_development_dependency('guard-spork', [ '>= 1.5.0' ])
27
- s.add_development_dependency('listen', [ '>= 1.0.0' ])
28
- s.add_development_dependency('database_cleaner', [ '~> 0.9.0 ' ])
29
-
30
- s.add_development_dependency('rspecify')
26
+ s.add_development_dependency('listen', [ '>= 1.1.0' ])
27
+ s.add_development_dependency('database_cleaner', [ '~> 1.0.0 ' ])
31
28
 
32
29
  end
@@ -82,6 +82,33 @@ describe Mongoid::List::Collection do
82
82
 
83
83
  describe "#update_positions_in_list!" do
84
84
 
85
+ context "string Ids" do
86
+
87
+ let!(:obj1) { Simple.create }
88
+ let!(:obj2) { Simple.create }
89
+ let!(:obj3) { Simple.create }
90
+
91
+ before do
92
+ Simple.update_positions_in_list!([obj2.id.to_s, obj1.id.to_s, obj3.id.to_s])
93
+ end
94
+
95
+ it "should change obj1 from :position of 1 to 2" do
96
+ obj1.position.should eq 1
97
+ obj1.reload.position.should eq 2
98
+ end
99
+
100
+ it "should change obj2 from :position of 2 to 1" do
101
+ obj2.position.should eq 2
102
+ obj2.reload.position.should eq 1
103
+ end
104
+
105
+ it "should not change obj3 from :position of 3" do
106
+ obj3.position.should eq 3
107
+ obj3.reload.position.should eq 3
108
+ end
109
+
110
+ end
111
+
85
112
  context "unscoped" do
86
113
 
87
114
  let!(:obj1) { Simple.create }
@@ -116,6 +116,32 @@ describe Mongoid::List::Embedded do
116
116
  Container.create!
117
117
  end
118
118
 
119
+ context "with String Ids" do
120
+
121
+ let!(:obj1) { container.items.create! }
122
+ let!(:obj2) { container.items.create! }
123
+ let!(:obj3) { container.items.create! }
124
+
125
+ before do
126
+ container.items.update_positions_in_list!([ obj2.id.to_s, obj1.id.to_s, obj3.id.to_s ])
127
+ end
128
+
129
+ it "should change obj1 from :position of 1 to 2" do
130
+ obj1.position.should eq 1
131
+ obj1.reload.position.should eq 2
132
+ end
133
+
134
+ it "should change obj2 from :position of 2 to 1" do
135
+ obj2.position.should eq 2
136
+ obj2.reload.position.should eq 1
137
+ end
138
+
139
+ it "should not change obj3 from :position of 3" do
140
+ obj3.position.should eq 3
141
+ obj3.reload.position.should eq 3
142
+ end
143
+
144
+ end
119
145
  context "unscoped" do
120
146
 
121
147
  let!(:obj1) { container.items.create! }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid-list
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-06 00:00:00.000000000 Z
12
+ date: 2013-05-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mongoid
@@ -18,7 +18,7 @@ dependencies:
18
18
  requirements:
19
19
  - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
- version: 3.0.0
21
+ version: 3.1.0
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
- version: 3.0.0
29
+ version: 3.1.0
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: rspec
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -98,7 +98,7 @@ dependencies:
98
98
  requirements:
99
99
  - - ! '>='
100
100
  - !ruby/object:Gem::Version
101
- version: 1.0.0
101
+ version: 1.1.0
102
102
  type: :development
103
103
  prerelease: false
104
104
  version_requirements: !ruby/object:Gem::Requirement
@@ -106,7 +106,7 @@ dependencies:
106
106
  requirements:
107
107
  - - ! '>='
108
108
  - !ruby/object:Gem::Version
109
- version: 1.0.0
109
+ version: 1.1.0
110
110
  - !ruby/object:Gem::Dependency
111
111
  name: database_cleaner
112
112
  requirement: !ruby/object:Gem::Requirement
@@ -114,7 +114,7 @@ dependencies:
114
114
  requirements:
115
115
  - - ~>
116
116
  - !ruby/object:Gem::Version
117
- version: 0.9.0
117
+ version: 1.0.0
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
@@ -122,23 +122,7 @@ dependencies:
122
122
  requirements:
123
123
  - - ~>
124
124
  - !ruby/object:Gem::Version
125
- version: 0.9.0
126
- - !ruby/object:Gem::Dependency
127
- name: rspecify
128
- requirement: !ruby/object:Gem::Requirement
129
- none: false
130
- requirements:
131
- - - ! '>='
132
- - !ruby/object:Gem::Version
133
- version: '0'
134
- type: :development
135
- prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
- requirements:
139
- - - ! '>='
140
- - !ruby/object:Gem::Version
141
- version: '0'
125
+ version: 1.0.0
142
126
  description:
143
127
  email: dave@davekrupinski.com
144
128
  executables: []