yeti 0.1.5 → 0.1.6

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.
@@ -57,8 +57,10 @@ module Yeti
57
57
  end
58
58
  end
59
59
 
60
- def save
61
- return false unless valid?
60
+ def save(opts={})
61
+ if opts.fetch :validate, true
62
+ return false unless valid?
63
+ end
62
64
  persist!
63
65
  @previously_changed = changes
64
66
  changed_attributes.clear
@@ -69,6 +71,10 @@ module Yeti
69
71
  raise NotImplementedError, "#persist!"
70
72
  end
71
73
 
74
+ def without_error?
75
+ errors.empty?
76
+ end
77
+
72
78
  private
73
79
 
74
80
  attr_reader :given_id
@@ -1,3 +1,3 @@
1
1
  module Yeti
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.6"
3
3
  end
@@ -43,6 +43,10 @@ describe Yeti::Editor do
43
43
  it "#save returns false" do
44
44
  subject.save.should be false
45
45
  end
46
+ it "#save(validate: false) calls persist! then returns true" do
47
+ subject.should_receive :persist!
48
+ subject.save(validate: false).should be true
49
+ end
46
50
  end
47
51
  context "when valid" do
48
52
  it "#save calls persist! then returns true" do
@@ -91,6 +95,7 @@ describe Yeti::Editor do
91
95
  end
92
96
  context "before validation" do
93
97
  its(:errors){ should be_empty }
98
+ it{ should be_without_error }
94
99
  end
95
100
  context "after validation" do
96
101
  it "has an error on name" do
@@ -98,6 +103,10 @@ describe Yeti::Editor do
98
103
  subject.errors[:name].should have(1).item
99
104
  subject.errors[:name].should == ["can't be blank"]
100
105
  end
106
+ it "is not without_error? anymore" do
107
+ subject.valid?
108
+ subject.should_not be_without_error
109
+ end
101
110
  it "can return untranslated error messages" do
102
111
  editor_class.class_eval do
103
112
  dont_translate_error_messages
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.5
4
+ version: 0.1.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -114,7 +114,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
114
114
  version: '0'
115
115
  segments:
116
116
  - 0
117
- hash: -2849270102009314110
117
+ hash: -532776958543363223
118
118
  required_rubygems_version: !ruby/object:Gem::Requirement
119
119
  none: false
120
120
  requirements:
@@ -123,7 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
123
  version: '0'
124
124
  segments:
125
125
  - 0
126
- hash: -2849270102009314110
126
+ hash: -532776958543363223
127
127
  requirements: []
128
128
  rubyforge_project:
129
129
  rubygems_version: 1.8.24