yeti 0.3.11 → 0.3.12
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/yeti/editor.rb +9 -1
- data/lib/yeti/version.rb +1 -1
- data/spec/yeti/editor_spec.rb +12 -0
- metadata +3 -3
data/lib/yeti/editor.rb
CHANGED
@@ -2,6 +2,7 @@ module Yeti
|
|
2
2
|
class Editor
|
3
3
|
include ActiveModel::Validations
|
4
4
|
include ActiveModel::Dirty
|
5
|
+
class InvalidDate < ::StandardError; end
|
5
6
|
|
6
7
|
attr_reader :context
|
7
8
|
delegate :id, :to_param, to: :edited, allow_nil: true
|
@@ -173,13 +174,20 @@ module Yeti
|
|
173
174
|
when Date
|
174
175
|
value
|
175
176
|
else
|
176
|
-
|
177
|
+
format_date value
|
177
178
|
end
|
178
179
|
else
|
179
180
|
value
|
180
181
|
end
|
181
182
|
end
|
182
183
|
|
184
|
+
def format_date(value)
|
185
|
+
return unless value
|
186
|
+
Date.parse value
|
187
|
+
rescue ArgumentError
|
188
|
+
raise InvalidDate, value
|
189
|
+
end
|
190
|
+
|
183
191
|
def format_output(value, attribute_opts)
|
184
192
|
value
|
185
193
|
end
|
data/lib/yeti/version.rb
CHANGED
data/spec/yeti/editor_spec.rb
CHANGED
@@ -353,6 +353,18 @@ describe ::Yeti::Editor do
|
|
353
353
|
valid_from: Date.parse("2002-09-01")
|
354
354
|
}
|
355
355
|
end
|
356
|
+
it "when nil is assigned" do
|
357
|
+
subject.valid_from = nil
|
358
|
+
subject.attributes.should == {valid_from: nil}
|
359
|
+
subject.attributes_for_persist.should == {valid_from: nil}
|
360
|
+
end
|
361
|
+
it "when incorrect value is assigned" do
|
362
|
+
subject.valid_from = "2002-13-31"
|
363
|
+
subject.attributes.should == {valid_from: "2002-13-31"}
|
364
|
+
expect do
|
365
|
+
subject.attributes_for_persist
|
366
|
+
end.to raise_error ::Yeti::Editor::InvalidDate, "2002-13-31"
|
367
|
+
end
|
356
368
|
end
|
357
369
|
context "formatting can be changed with #format_input_for_persist" do
|
358
370
|
let :described_class 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.3.
|
4
|
+
version: 0.3.12
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -116,7 +116,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
116
116
|
version: '0'
|
117
117
|
segments:
|
118
118
|
- 0
|
119
|
-
hash:
|
119
|
+
hash: 3702887707960526782
|
120
120
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
121
121
|
none: false
|
122
122
|
requirements:
|
@@ -125,7 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
125
125
|
version: '0'
|
126
126
|
segments:
|
127
127
|
- 0
|
128
|
-
hash:
|
128
|
+
hash: 3702887707960526782
|
129
129
|
requirements: []
|
130
130
|
rubyforge_project:
|
131
131
|
rubygems_version: 1.8.23
|