yeti 0.3.11 → 0.3.12

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/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
- Date.parse value
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
@@ -1,3 +1,3 @@
1
1
  module Yeti
2
- VERSION = "0.3.11"
2
+ VERSION = "0.3.12"
3
3
  end
@@ -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.11
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: -2480111560270293046
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: -2480111560270293046
128
+ hash: 3702887707960526782
129
129
  requirements: []
130
130
  rubyforge_project:
131
131
  rubygems_version: 1.8.23