dm-is-list 0.9.6 → 0.9.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.
- data/Rakefile +1 -1
- data/lib/dm-is-list.rb +2 -2
- data/lib/dm-is-list/is/list.rb +3 -2
- data/lib/dm-is-list/is/version.rb +1 -1
- data/spec/integration/list_spec.rb +22 -23
- data/spec/spec_helper.rb +1 -1
- metadata +15 -5
data/Rakefile
CHANGED
@@ -10,7 +10,7 @@ AUTHOR = "Sindre Aarsaether"
|
|
10
10
|
EMAIL = "sindre [a] identu [d] no"
|
11
11
|
GEM_NAME = "dm-is-list"
|
12
12
|
GEM_VERSION = DataMapper::Is::List::VERSION
|
13
|
-
GEM_DEPENDENCIES = [["dm-core", GEM_VERSION]]
|
13
|
+
GEM_DEPENDENCIES = [["dm-core", GEM_VERSION], ["dm-adjust", GEM_VERSION]]
|
14
14
|
GEM_CLEAN = ["log", "pkg"]
|
15
15
|
GEM_EXTRAS = { :has_rdoc => true, :extra_rdoc_files => %w[ README.txt LICENSE TODO ] }
|
16
16
|
|
data/lib/dm-is-list.rb
CHANGED
@@ -2,10 +2,10 @@
|
|
2
2
|
require 'rubygems'
|
3
3
|
require 'pathname'
|
4
4
|
|
5
|
-
gem 'dm-core', '
|
5
|
+
gem 'dm-core', '~>0.9.7'
|
6
6
|
require 'dm-core'
|
7
7
|
|
8
|
-
gem 'dm-adjust', '
|
8
|
+
gem 'dm-adjust', '~>0.9.7'
|
9
9
|
require 'dm-adjust'
|
10
10
|
|
11
11
|
require Pathname(__FILE__).dirname.expand_path / 'dm-is-list' / 'is' / 'list.rb'
|
data/lib/dm-is-list/is/list.rb
CHANGED
@@ -150,8 +150,7 @@ module DataMapper
|
|
150
150
|
# @return <TrueClass, FalseClass> returns false if it cannot move to the position, otherwise true
|
151
151
|
# @see move_without_saving
|
152
152
|
def move(vector)
|
153
|
-
move_without_saving(vector)
|
154
|
-
save
|
153
|
+
move_without_saving(vector) && save
|
155
154
|
end
|
156
155
|
|
157
156
|
##
|
@@ -166,6 +165,7 @@ module DataMapper
|
|
166
165
|
minpos = self.class.list_options[:first]
|
167
166
|
prepos = self.original_values[:position] || self.position
|
168
167
|
maxpos = list.last ? (list.last == self ? prepos : list.last.position + 1) : minpos
|
168
|
+
|
169
169
|
newpos = case action
|
170
170
|
when :highest then minpos
|
171
171
|
when :lowest then maxpos
|
@@ -177,6 +177,7 @@ module DataMapper
|
|
177
177
|
else [action.to_i,maxpos].min
|
178
178
|
end
|
179
179
|
|
180
|
+
return false if [:lower, :higher].include?(action) && newpos == prepos
|
180
181
|
return false if !newpos || ([:above,:below].include?(action) && list_scope != object.list_scope)
|
181
182
|
return true if newpos == position && position == prepos || (newpos == maxpos && position == maxpos-1)
|
182
183
|
|
@@ -24,19 +24,19 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
|
|
24
24
|
is :list, :scope => [:user_id]
|
25
25
|
end
|
26
26
|
|
27
|
-
before :
|
27
|
+
before :each do
|
28
28
|
User.auto_migrate!(:default)
|
29
29
|
Todo.auto_migrate!(:default)
|
30
30
|
|
31
|
-
u1 = User.create
|
32
|
-
Todo.create
|
33
|
-
Todo.create
|
34
|
-
Todo.create
|
31
|
+
u1 = User.create(:name => "Johnny")
|
32
|
+
Todo.create(:user => u1, :title => "Write down what is needed in a list-plugin")
|
33
|
+
Todo.create(:user => u1, :title => "Complete a temporary version of is-list")
|
34
|
+
Todo.create(:user => u1, :title => "Squash bugs in nested-set")
|
35
35
|
|
36
|
-
u2 = User.create
|
37
|
-
Todo.create
|
38
|
-
Todo.create
|
39
|
-
Todo.create
|
36
|
+
u2 = User.create(:name => "Freddy")
|
37
|
+
Todo.create(:user => u2, :title => "Eat tasty cupcake")
|
38
|
+
Todo.create(:user => u2, :title => "Procrastinate on paid work")
|
39
|
+
Todo.create(:user => u2, :title => "Go to sleep")
|
40
40
|
|
41
41
|
end
|
42
42
|
|
@@ -79,11 +79,11 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
|
|
79
79
|
|
80
80
|
it 'should rearrange items correctly when moving :lower' do
|
81
81
|
repository(:default) do |repos|
|
82
|
-
Todo.get(3).position.should == 2
|
83
|
-
Todo.get(2).position.should == 3
|
84
|
-
Todo.get(3).move :lower
|
85
|
-
Todo.get(3).position.should == 3
|
86
82
|
Todo.get(2).position.should == 2
|
83
|
+
Todo.get(3).position.should == 3
|
84
|
+
Todo.get(2).move :lower
|
85
|
+
Todo.get(2).position.should == 3
|
86
|
+
Todo.get(3).position.should == 2
|
87
87
|
|
88
88
|
Todo.get(4).position.should == 1
|
89
89
|
end
|
@@ -107,23 +107,22 @@ if HAS_SQLITE3 || HAS_MYSQL || HAS_POSTGRES
|
|
107
107
|
|
108
108
|
it 'should not rearrange when trying to move top-item up, or bottom item down' do
|
109
109
|
repository(:default) do |repos|
|
110
|
-
Todo.get(
|
111
|
-
Todo.get(
|
112
|
-
Todo.get(
|
110
|
+
Todo.get(4).position.should == 1
|
111
|
+
Todo.get(4).move(:higher).should == false
|
112
|
+
Todo.get(4).position.should == 1
|
113
113
|
|
114
|
-
Todo.get(
|
115
|
-
Todo.get(
|
116
|
-
Todo.get(1).move(:lower).should == false
|
114
|
+
Todo.get(6).position.should == 3
|
115
|
+
Todo.get(6).move(:lower).should == false
|
117
116
|
end
|
118
117
|
end
|
119
118
|
|
120
119
|
it 'should rearrange items correctly when moving :above or :below' do
|
121
120
|
repository(:default) do |repos|
|
122
|
-
Todo.get(
|
123
|
-
Todo.get(5).position.should == 3
|
124
|
-
Todo.get(6).move(:below => Todo.get(5))
|
121
|
+
Todo.get(4).position.should == 1
|
125
122
|
Todo.get(6).position.should == 3
|
126
|
-
Todo.get(
|
123
|
+
Todo.get(4).move(:below => Todo.get(6))
|
124
|
+
Todo.get(4).position.should == 3
|
125
|
+
Todo.get(6).position.should == 2
|
127
126
|
end
|
128
127
|
end
|
129
128
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -10,7 +10,7 @@ def load_driver(name, default_uri)
|
|
10
10
|
lib = "do_#{name}"
|
11
11
|
|
12
12
|
begin
|
13
|
-
gem lib, '
|
13
|
+
gem lib, '~>0.9.7'
|
14
14
|
require lib
|
15
15
|
DataMapper.setup(name, ENV["#{name.to_s.upcase}_SPEC_URI"] || default_uri)
|
16
16
|
DataMapper::Repository.adapters[:default] = DataMapper::Repository.adapters[name]
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dm-is-list
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sindre Aarsaether
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-
|
12
|
+
date: 2008-11-18 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -20,7 +20,17 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - "="
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: 0.9.
|
23
|
+
version: 0.9.7
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: dm-adjust
|
27
|
+
type: :runtime
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.9.7
|
24
34
|
version:
|
25
35
|
- !ruby/object:Gem::Dependency
|
26
36
|
name: hoe
|
@@ -30,7 +40,7 @@ dependencies:
|
|
30
40
|
requirements:
|
31
41
|
- - ">="
|
32
42
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.
|
43
|
+
version: 1.8.2
|
34
44
|
version:
|
35
45
|
description: DataMapper plugin for creating and organizing lists
|
36
46
|
email:
|
@@ -79,7 +89,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
79
89
|
requirements: []
|
80
90
|
|
81
91
|
rubyforge_project: datamapper
|
82
|
-
rubygems_version: 1.
|
92
|
+
rubygems_version: 1.3.1
|
83
93
|
signing_key:
|
84
94
|
specification_version: 2
|
85
95
|
summary: DataMapper plugin for creating and organizing lists
|