positionable 1.0.2 → 1.0.3

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.
@@ -91,9 +91,9 @@ module Positionable
91
91
  count = self.class.where("#{scope_id_attr} = ?", target_scope_id).count
92
92
  # An additional position is available if this record is new, or if it's moved to another scope
93
93
  if new_record? or target_scope_id != scope_id
94
- (start..(count + 1))
94
+ (start..(start + count))
95
95
  else
96
- (start..count)
96
+ (start..(start + count - 1))
97
97
  end
98
98
  end
99
99
 
@@ -1,3 +1,3 @@
1
1
  module Positionable
2
- VERSION = "1.0.2"
2
+ VERSION = "1.0.3"
3
3
  end
@@ -24,5 +24,5 @@ Gem::Specification.new do |s|
24
24
  s.add_development_dependency "simplecov"
25
25
  s.add_development_dependency "factory_girl"
26
26
 
27
- s.add_dependency "activerecord", "~> 3.1"
27
+ s.add_runtime_dependency "activerecord", "~> 3.1"
28
28
  end
@@ -451,20 +451,28 @@ describe Positionable do
451
451
  it "gives the range within a scope" do
452
452
  folder = Factory.create(:folder_with_documents)
453
453
  document = Document.new
454
- document.range(folder).should == (0..(folder.documents.count + 1))
454
+ document.range(folder).should == (0..folder.documents.count)
455
455
  end
456
456
 
457
457
  it "gives the range within its own scope by default" do
458
- document = Factory.build(:document)
459
- folder = document.folder
460
- document.range.should == (0..(folder.documents.count + 1))
458
+ folder = Factory.create(:folder_with_documents)
459
+ document = folder.documents.sample
460
+ document.range.should == (0..(folder.documents.count - 1))
461
461
  end
462
462
 
463
463
  it "gives the range within another scope" do
464
464
  document = Factory.build(:document)
465
465
  folder = Factory.create(:folder_with_documents)
466
466
  document.folder.should_not == folder # Meta!
467
- document.range(folder).should == (0..(folder.documents.count + 1))
467
+ document.range(folder).should == (0..folder.documents.count)
468
+ end
469
+
470
+ it "gives the range within another empty scope" do
471
+ document = Factory.build(:document)
472
+ folder = Factory.create(:folder)
473
+ document.folder.should_not == folder # Meta!
474
+ folder.documents.should be_empty # Meta!
475
+ document.range(folder).should == (0..0)
468
476
  end
469
477
 
470
478
  end
@@ -474,14 +482,14 @@ describe Positionable do
474
482
  it "gives the range within its own scope" do
475
483
  folder = Factory.create(:folder_with_documents)
476
484
  document = folder.documents.sample
477
- document.range(folder).should == (0..folder.documents.count)
485
+ document.range(folder).should == (0..(folder.documents.count - 1))
478
486
  end
479
487
 
480
488
  it "gives the range within another scope" do
481
489
  document = Factory.create(:document)
482
490
  folder = Factory.create(:folder_with_documents)
483
491
  document.folder.should_not == folder # Meta!
484
- document.range(folder).should == (0..(folder.documents.count + 1))
492
+ document.range(folder).should == (0..folder.documents.count)
485
493
  end
486
494
 
487
495
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: positionable
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-16 00:00:00.000000000 Z
12
+ date: 2012-03-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
16
- requirement: &70142130433320 !ruby/object:Gem::Requirement
16
+ requirement: &70099336314860 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.0.0
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70142130433320
24
+ version_requirements: *70099336314860
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &70142130421500 !ruby/object:Gem::Requirement
27
+ requirement: &70099336314240 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '2.3'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70142130421500
35
+ version_requirements: *70099336314240
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: sqlite3-ruby
38
- requirement: &70142130410640 !ruby/object:Gem::Requirement
38
+ requirement: &70099336313540 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70142130410640
46
+ version_requirements: *70099336313540
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: simplecov
49
- requirement: &70142130403860 !ruby/object:Gem::Requirement
49
+ requirement: &70099336312400 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70142130403860
57
+ version_requirements: *70099336312400
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: factory_girl
60
- requirement: &70142126204520 !ruby/object:Gem::Requirement
60
+ requirement: &70099336311600 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70142126204520
68
+ version_requirements: *70099336311600
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: activerecord
71
- requirement: &70142121886120 !ruby/object:Gem::Requirement
71
+ requirement: &70099336310240 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '3.1'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *70142121886120
79
+ version_requirements: *70099336310240
80
80
  description: This extension provides contiguous positionning capabilities to you ActiveRecord
81
81
  models.
82
82
  email:
@@ -120,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
120
  version: '0'
121
121
  requirements: []
122
122
  rubyforge_project: positionable
123
- rubygems_version: 1.8.16
123
+ rubygems_version: 1.8.17
124
124
  signing_key:
125
125
  specification_version: 3
126
126
  summary: A gem for positionning your ActiveRecord models.
@@ -131,4 +131,3 @@ test_files:
131
131
  - spec/support/matchers/contiguity_matcher.rb
132
132
  - spec/support/models.rb
133
133
  - spec/support/schema.rb
134
- has_rdoc: