mongoid-list 0.5.3 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ee70af388cbaca26fbeeee305a1d39680c68c8aa
4
- data.tar.gz: 2ea617436993882c21f6d96dd6b45608888f3a23
3
+ metadata.gz: 1bc8db58867c8a657789d5531ea6d521a0e03538
4
+ data.tar.gz: 3612c5394262ee8c7edf085d68dd74e8a15cbbbb
5
5
  SHA512:
6
- metadata.gz: 6f6a3c4f8b0f92606549c534c92eb045c74caca1aafbdc09345c1ffd5a9282f4b9d2bffab687edcf307d6e5bac99ceafd0b65f6d652b77f18c6aab2cc8894a16
7
- data.tar.gz: 16ec2fc27a2c01f6a8e52a9cda91191fca53b4bd31a2655ebb7f5776e69474f97e6260b1f3778eeb8666d14fddbf11ae9cedaec3f3a1664de0b322f7f4c626cd
6
+ metadata.gz: e7284c34aa95047c45d4e3cd793cf49be0bd87d4f337b31a0e14b087e8dcf9ad5f8430dd83ef287f58197f92007f8aa97e40d1a2e54a64cf77efcf3b6e9ecf4b
7
+ data.tar.gz: 28bd66e603e0e81c6eef973e03f4ff97f33ca41249431c902218863c64310faa5585b18de1a285ea4995a6734528f8f13e1a332b72429f371b0815463af88418
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/Guardfile CHANGED
@@ -2,7 +2,7 @@ guard 'spork', wait: 20 do
2
2
  watch('Gemfile')
3
3
  end
4
4
 
5
- guard :rspec do
5
+ guard :rspec, cmd: "bundle exec rspec" do
6
6
  watch('spec/spec_helper.rb') { "spec" }
7
7
  watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
8
8
  watch(%r{^spec/.+_spec\.rb})
@@ -7,13 +7,20 @@ module Mongoid
7
7
  class << self
8
8
 
9
9
  def update_positions!(binding, elements)
10
+ root_doc = binding_root(binding)
10
11
  load_list_elements(binding, elements).each_with_index do |element, idx|
11
- (binding.base._parent || binding.base).collection.find(element.atomic_selector).update(
12
- { "$set" => { "#{element.atomic_path}.$.position" => (idx+1) } }
12
+ # element.set(position: idx+1)
13
+ root_doc.collection.find(element.atomic_selector).update(
14
+ { "$set" => { "#{element.atomic_position}.position" => (idx+1) } }
13
15
  )
14
16
  end
15
17
  end
16
18
 
19
+ def binding_root(binding)
20
+ binding.base._parent || binding.base
21
+ end
22
+
23
+
17
24
  private
18
25
 
19
26
  def load_list_elements(binding, elements)
@@ -27,10 +34,10 @@ module Mongoid
27
34
 
28
35
 
29
36
  def update_positions!
30
- items.each do |item|
37
+ items.each_with_index do |item, idx|
31
38
  next unless should_operate_on_item?(item)
32
39
  criteria = item.atomic_selector
33
- updates = { '$inc' => { "#{item.atomic_path}.$.position" => changes[:by] } }
40
+ updates = { '$inc' => { "#{item.atomic_path}.#{idx}.position" => changes[:by] } }
34
41
  item._root.class.collection.find(criteria).update(updates)
35
42
  end
36
43
  end
@@ -1,5 +1,5 @@
1
1
  module Mongoid
2
2
  module List
3
- VERSION = "0.5.3"
3
+ VERSION = "0.6.0"
4
4
  end
5
5
  end
@@ -19,11 +19,11 @@ Gem::Specification.new do |s|
19
19
 
20
20
  s.add_dependency('mongoid', [ '~> 4.0.0' ])
21
21
 
22
- s.add_development_dependency('rspec', [ '>= 2.l4.0' ])
23
- s.add_development_dependency('guard', [ '>= 2.4.0' ])
22
+ s.add_development_dependency('rspec', [ '>= 3.1.0' ])
23
+ s.add_development_dependency('guard', [ '>= 2.8.0' ])
24
24
  s.add_development_dependency('guard-rspec', [ '>= 4.2.0' ])
25
- s.add_development_dependency('guard-spork', [ '>= 1.5.0' ])
26
- s.add_development_dependency('listen', [ '>= 2.5.0' ])
27
- s.add_development_dependency('database_cleaner', [ '~> 1.2.0' ])
25
+ s.add_development_dependency('guard-spork', [ '>= 2.0.0' ])
26
+ s.add_development_dependency('listen', [ '>= 2.8.0' ])
27
+ s.add_development_dependency('database_cleaner', [ '~> 1.3.0' ])
28
28
 
29
29
  end
@@ -2,6 +2,41 @@ require "spec_helper"
2
2
 
3
3
  describe Mongoid::List::Embedded do
4
4
 
5
+ describe ".binding_root" do
6
+
7
+ subject do
8
+ Mongoid::List::Embedded
9
+ end
10
+
11
+ let(:root) do
12
+ Container.create!
13
+ end
14
+
15
+ let(:embedded) do
16
+ root.items.create!
17
+ end
18
+
19
+ context "w/ Child Embed" do
20
+
21
+ it "returns @root" do
22
+ expect(subject.binding_root(root.items)).to eq root
23
+ end
24
+
25
+ end
26
+
27
+ context "w/ Deeply Embedded" do
28
+
29
+ let!(:deeply_embedded) { embedded.items.create! }
30
+
31
+ it "returns @root" do
32
+ expect(subject.binding_root(embedded.items)).to eq root
33
+ end
34
+
35
+ end
36
+
37
+ end
38
+
39
+
5
40
  describe "#initialization" do
6
41
 
7
42
  let(:container) do
@@ -376,8 +376,8 @@ describe Mongoid::List do
376
376
  end
377
377
 
378
378
  it "should have moved last items up" do
379
- container.items.first.items.find(item1.id).position.should eq 1
380
- container.items.first.items.find(item3.id).position.should eq 2
379
+ expect(item1.reload.position).to eq 1
380
+ expect(item3.reload.position).to eq 2
381
381
  end
382
382
 
383
383
  end
@@ -466,7 +466,7 @@ describe Mongoid::List do
466
466
  context "when unscoped" do
467
467
 
468
468
  subject { Simple.create }
469
- specify { subject.list_scope_changing?.should be_false }
469
+ specify { subject.list_scope_changing?.should be_falsey }
470
470
 
471
471
  end
472
472
 
@@ -476,14 +476,14 @@ describe Mongoid::List do
476
476
 
477
477
  context "but no change to :group" do
478
478
 
479
- specify { subject.list_scope_changing?.should be_false }
479
+ specify { subject.list_scope_changing?.should be_falsey }
480
480
 
481
481
  end
482
482
 
483
483
  context "with change to :group" do
484
484
 
485
485
  before { subject.group = "B" }
486
- specify { subject.list_scope_changing?.should be_true }
486
+ specify { subject.list_scope_changing?.should be_truthy }
487
487
 
488
488
  end
489
489
 
@@ -856,18 +856,18 @@ describe Mongoid::List do
856
856
  end
857
857
 
858
858
  it "should change doc1 from :position of 1 to 2" do
859
- doc1.position.should eq 1
860
- doc1.reload.position.should eq 2
859
+ expect(doc1.position).to eq 1
860
+ expect(doc1.reload.position).to eq 2
861
861
  end
862
862
 
863
863
  it "should change doc2 from :position of 2 to 1" do
864
- doc2.position.should eq 2
865
- doc2.reload.position.should eq 1
864
+ expect(doc2.position).to eq 2
865
+ expect(doc2.reload.position).to eq 1
866
866
  end
867
867
 
868
868
  it "should not change doc3 from :position of 3" do
869
- doc3.position.should eq 3
870
- doc3.reload.position.should eq 3
869
+ expect(doc3.position).to eq 3
870
+ expect(doc3.reload.position).to eq 3
871
871
  end
872
872
 
873
873
  end
@@ -885,24 +885,25 @@ describe Mongoid::List do
885
885
  end
886
886
 
887
887
  it "should change doc1 from :position of 1 to 2" do
888
- doc1.position.should eq 1
889
- doc1.reload.position.should eq 2
888
+ expect(doc1.position).to eq 1
889
+ expect(doc1.reload.position).to eq 2
890
890
  end
891
891
 
892
892
  it "should change doc2 from :position of 2 to 1" do
893
- doc2.position.should eq 2
894
- doc2.reload.position.should eq 1
893
+ expect(doc2.position).to eq 2
894
+ expect(doc2.reload.position).to eq 1
895
895
  end
896
896
 
897
897
  it "should change doc3 from :position of 3 to 4" do
898
- doc3.position.should eq 3
899
- doc3.reload.position.should eq 4
898
+ expect(doc3.position).to eq 3
899
+ expect(doc3.reload.position).to eq 4
900
900
  end
901
901
 
902
902
  it "should change doc4 from :position of 4 to 3" do
903
- doc4.position.should eq 4
904
- doc4.reload.position.should eq 3
903
+ expect(doc4.position).to eq 4
904
+ expect(doc4.reload.position).to eq 3
905
905
  end
906
+
906
907
  end
907
908
 
908
909
  context "on a Deeply Embedded Collection" do
@@ -925,23 +926,23 @@ describe Mongoid::List do
925
926
  end
926
927
 
927
928
  it "should change doc1 from :position of 1 to 3" do
928
- doc1.position.should eq 1
929
- doc1.reload.position.should eq 3
929
+ expect(doc1.position).to eq 1
930
+ expect(doc1.reload.position).to eq 3
930
931
  end
931
932
 
932
933
  it "should change @doc2 from :position of 2 to 4" do
933
- doc2.position.should eq 2
934
- doc2.reload.position.should eq 4
934
+ expect(doc2.position).to eq 2
935
+ expect(doc2.reload.position).to eq 4
935
936
  end
936
937
 
937
938
  it "should change @doc3 from :position of 3 to 1" do
938
- doc3.position.should eq 3
939
- doc3.reload.position.should eq 1
939
+ expect(doc3.position).to eq 3
940
+ expect(doc3.reload.position).to eq 1
940
941
  end
941
942
 
942
943
  it "should change @doc4 from :position of 4 to 2" do
943
- doc4.position.should eq 4
944
- doc4.reload.position.should eq 2
944
+ expect(doc4.position).to eq 4
945
+ expect(doc4.reload.position).to eq 2
945
946
  end
946
947
 
947
948
  end
@@ -18,8 +18,6 @@ Spork.prefork do
18
18
 
19
19
  RSpec.configure do |config|
20
20
 
21
- config.color_enabled = true
22
-
23
21
  config.filter_run focus: true
24
22
  config.run_all_when_everything_filtered = true
25
23
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid-list
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dave Krupinski
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-14 00:00:00.000000000 Z
11
+ date: 2014-12-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mongoid
@@ -30,28 +30,28 @@ dependencies:
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 2.l4.0
33
+ version: 3.1.0
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 2.l4.0
40
+ version: 3.1.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: guard
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 2.4.0
47
+ version: 2.8.0
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 2.4.0
54
+ version: 2.8.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: guard-rspec
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -72,42 +72,42 @@ dependencies:
72
72
  requirements:
73
73
  - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: 1.5.0
75
+ version: 2.0.0
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: 1.5.0
82
+ version: 2.0.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: listen
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: 2.5.0
89
+ version: 2.8.0
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: 2.5.0
96
+ version: 2.8.0
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: database_cleaner
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 1.2.0
103
+ version: 1.3.0
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 1.2.0
110
+ version: 1.3.0
111
111
  description:
112
112
  email: dave@davekrupinski.com
113
113
  executables: []
@@ -115,6 +115,7 @@ extensions: []
115
115
  extra_rdoc_files: []
116
116
  files:
117
117
  - ".gitignore"
118
+ - ".rspec"
118
119
  - ".ruby-gemset"
119
120
  - ".ruby-version"
120
121
  - Gemfile
@@ -161,7 +162,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
161
162
  version: '0'
162
163
  requirements: []
163
164
  rubyforge_project:
164
- rubygems_version: 2.2.2
165
+ rubygems_version: 2.4.2
165
166
  signing_key:
166
167
  specification_version: 4
167
168
  summary: Simple list behavior for Mongoid