yeti 0.1.7 → 0.2.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/lib/yeti/context.rb +1 -1
- data/lib/yeti/editor.rb +4 -8
- data/lib/yeti/search.rb +1 -1
- data/lib/yeti/version.rb +1 -1
- data/spec/yeti/editor_spec.rb +21 -9
- metadata +9 -3
data/lib/yeti/context.rb
CHANGED
data/lib/yeti/editor.rb
CHANGED
@@ -4,7 +4,7 @@ module Yeti
|
|
4
4
|
include ActiveModel::Dirty
|
5
5
|
|
6
6
|
attr_reader :context
|
7
|
-
delegate :id, :to_param, to: :edited
|
7
|
+
delegate :id, :to_param, :persisted?, to: :edited
|
8
8
|
|
9
9
|
def initialize(context, given_id=nil)
|
10
10
|
@context = context
|
@@ -27,15 +27,11 @@ module Yeti
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def find_by_id(id)
|
30
|
-
raise NotImplementedError, "#find_by_id"
|
30
|
+
raise NotImplementedError, "#{self.class}#find_by_id"
|
31
31
|
end
|
32
32
|
|
33
33
|
def new_object
|
34
|
-
raise NotImplementedError, "#new_object"
|
35
|
-
end
|
36
|
-
|
37
|
-
def persisted?
|
38
|
-
!!given_id
|
34
|
+
raise NotImplementedError, "#{self.class}#new_object"
|
39
35
|
end
|
40
36
|
|
41
37
|
def update_attributes(attrs)
|
@@ -68,7 +64,7 @@ module Yeti
|
|
68
64
|
end
|
69
65
|
|
70
66
|
def persist!
|
71
|
-
raise NotImplementedError, "#persist!"
|
67
|
+
raise NotImplementedError, "#{self.class}#persist!"
|
72
68
|
end
|
73
69
|
|
74
70
|
def without_error?
|
data/lib/yeti/search.rb
CHANGED
data/lib/yeti/version.rb
CHANGED
data/spec/yeti/editor_spec.rb
CHANGED
@@ -16,26 +16,38 @@ describe Yeti::Editor do
|
|
16
16
|
lambda{ subject.persist! }.should raise_error NotImplementedError
|
17
17
|
end
|
18
18
|
context "with a given id" do
|
19
|
+
let(:edited){ mock :edited }
|
19
20
|
subject{ Yeti::Editor.new context, 1 }
|
20
|
-
|
21
|
+
before{ subject.stub(:find_by_id).with(1).and_return edited }
|
21
22
|
it "uses #find_by_id to find the main object being edited" do
|
22
|
-
subject.
|
23
|
-
|
23
|
+
subject.edited.should be edited
|
24
|
+
end
|
25
|
+
it "delegates persisted? to edited" do
|
26
|
+
edited.stub(:persisted?).and_return(expected = mock)
|
27
|
+
subject.persisted?.should be expected
|
24
28
|
end
|
25
29
|
end
|
26
30
|
context "with id nil" do
|
31
|
+
let(:edited){ mock :edited }
|
27
32
|
subject{ Yeti::Editor.new context, nil }
|
28
|
-
|
33
|
+
before{ subject.stub(:new_object).and_return edited }
|
29
34
|
it "uses #new_object to initialize main object being edited" do
|
30
|
-
subject.
|
31
|
-
|
35
|
+
subject.edited.should be edited
|
36
|
+
end
|
37
|
+
it "delegates persisted? to edited" do
|
38
|
+
edited.stub(:persisted?).and_return(expected = mock)
|
39
|
+
subject.persisted?.should be expected
|
32
40
|
end
|
33
41
|
end
|
34
42
|
context "without id" do
|
35
|
-
|
43
|
+
let(:edited){ mock :edited }
|
44
|
+
before{ subject.stub(:new_object).and_return edited }
|
36
45
|
it "uses #new_object to initialize main object being edited" do
|
37
|
-
subject.
|
38
|
-
|
46
|
+
subject.edited.should be edited
|
47
|
+
end
|
48
|
+
it "delegates persisted? to edited" do
|
49
|
+
edited.stub(:persisted?).and_return(expected = mock)
|
50
|
+
subject.persisted?.should be expected
|
39
51
|
end
|
40
52
|
end
|
41
53
|
context "when not valid" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yeti
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.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: 2012-
|
12
|
+
date: 2012-12-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activemodel
|
@@ -112,15 +112,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
112
112
|
- - ! '>='
|
113
113
|
- !ruby/object:Gem::Version
|
114
114
|
version: '0'
|
115
|
+
segments:
|
116
|
+
- 0
|
117
|
+
hash: 3787282194085503627
|
115
118
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
116
119
|
none: false
|
117
120
|
requirements:
|
118
121
|
- - ! '>='
|
119
122
|
- !ruby/object:Gem::Version
|
120
123
|
version: '0'
|
124
|
+
segments:
|
125
|
+
- 0
|
126
|
+
hash: 3787282194085503627
|
121
127
|
requirements: []
|
122
128
|
rubyforge_project:
|
123
|
-
rubygems_version: 1.8.
|
129
|
+
rubygems_version: 1.8.23
|
124
130
|
signing_key:
|
125
131
|
specification_version: 3
|
126
132
|
summary: Editor pattern simplifies edition of multiple objects at once using ActiveModel
|