From ea082b52588671fedf23e3508d248163a4b7aa6f Mon Sep 17 00:00:00 2001 From: Adam Meehan Date: Mon, 27 Sep 2010 15:07:57 +1000 Subject: [PATCH] use I18n default value when missing value for error value format --- lib/validates_timeliness/validator.rb | 8 +++++++- spec/validates_timeliness/validator_spec.rb | 15 +++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/lib/validates_timeliness/validator.rb b/lib/validates_timeliness/validator.rb index 6a16590..59afdd0 100644 --- a/lib/validates_timeliness/validator.rb +++ b/lib/validates_timeliness/validator.rb @@ -14,6 +14,12 @@ module ValidatesTimeliness :on_or_after => :>=, }.freeze + DEFAULT_ERROR_VALUE_FORMATS = { + :date => '%Y-%m-%d', + :time => '%H:%M:%S', + :datetime => '%Y-%m-%d %H:%M:%S' + }.freeze + def self.kind :timeliness end @@ -56,7 +62,7 @@ module ValidatesTimeliness end def format_error_value(value) - format = I18n.t(@type, :scope => 'validates_timeliness.error_value_formats') + format = I18n.t(@type, :default => DEFAULT_ERROR_VALUE_FORMATS[@type], :scope => 'validates_timeliness.error_value_formats') value.strftime(format) end diff --git a/spec/validates_timeliness/validator_spec.rb b/spec/validates_timeliness/validator_spec.rb index 4d8522d..8968120 100644 --- a/spec/validates_timeliness/validator_spec.rb +++ b/spec/validates_timeliness/validator_spec.rb @@ -171,6 +171,21 @@ describe ValidatesTimeliness::Validator do validator.format_error_value(Time.mktime(2010,1,1,12,34,56)).should == '2010-01-01 12:34:56' end end + + describe "with missing translation" do + before :all do + I18n.locale = :es + end + + it 'should use the default format for the type' do + validator = ValidatesTimeliness::Validator.new(:attributes => [:birth_date], :type => :date) + validator.format_error_value(Date.new(2010,1,1)).should == '2010-01-01' + end + + after :all do + I18n.locale = :en + end + end end context "custom error message" do