use I18n default value when missing value for error value format

This commit is contained in:
Adam Meehan 2010-09-27 15:07:57 +10:00
parent cd62163152
commit ea082b5258
2 changed files with 22 additions and 1 deletions

View File

@ -14,6 +14,12 @@ module ValidatesTimeliness
:on_or_after => :>=, :on_or_after => :>=,
}.freeze }.freeze
DEFAULT_ERROR_VALUE_FORMATS = {
:date => '%Y-%m-%d',
:time => '%H:%M:%S',
:datetime => '%Y-%m-%d %H:%M:%S'
}.freeze
def self.kind def self.kind
:timeliness :timeliness
end end
@ -56,7 +62,7 @@ module ValidatesTimeliness
end end
def format_error_value(value) 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) value.strftime(format)
end end

View File

@ -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' validator.format_error_value(Time.mktime(2010,1,1,12,34,56)).should == '2010-01-01 12:34:56'
end end
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 end
context "custom error message" do context "custom error message" do