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 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