yeti 0.1.7 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/lib/yeti/context.rb CHANGED
@@ -18,7 +18,7 @@ module Yeti
18
18
  end
19
19
 
20
20
  def find_account_by_id(id)
21
- raise NotImplementedError, "#find_account_by_id"
21
+ raise NotImplementedError, "#{self.class}#find_account_by_id"
22
22
  end
23
23
 
24
24
  private
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
@@ -50,7 +50,7 @@ module Yeti
50
50
  end
51
51
 
52
52
  def paginated_results
53
- raise NotImplementedError, "#paginated_results"
53
+ raise NotImplementedError, "#{self.class}#paginated_results"
54
54
  end
55
55
 
56
56
  private
data/lib/yeti/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Yeti
2
- VERSION = "0.1.7"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -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
- it{ should be_persisted }
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.stub(:find_by_id).with(1).and_return(expected = mock)
23
- subject.edited.should be expected
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
- it{ should_not be_persisted }
33
+ before{ subject.stub(:new_object).and_return edited }
29
34
  it "uses #new_object to initialize main object being edited" do
30
- subject.stub(:new_object).and_return(expected = mock)
31
- subject.edited.should be expected
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
- it{ should_not be_persisted }
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.stub(:new_object).and_return(expected = mock)
38
- subject.edited.should be expected
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.1.7
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-11-24 00:00:00.000000000 Z
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.24
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