diff --git a/lib/validates_timeliness.rb b/lib/validates_timeliness.rb index 48ccb44..149d54b 100644 --- a/lib/validates_timeliness.rb +++ b/lib/validates_timeliness.rb @@ -31,7 +31,7 @@ module ValidatesTimeliness def load_error_messages if defined?(I18n) - I18n.load_path += [ LOCALE_PATH ] + I18n.load_path.unshift(LOCALE_PATH) I18n.reload! else defaults = YAML::load(IO.read(LOCALE_PATH))['en'] diff --git a/lib/validates_timeliness/validator.rb b/lib/validates_timeliness/validator.rb index fd96ed5..d387f5a 100644 --- a/lib/validates_timeliness/validator.rb +++ b/lib/validates_timeliness/validator.rb @@ -94,7 +94,7 @@ module ValidatesTimeliness restriction = [restriction] unless restriction.is_a?(Array) if defined?(I18n) - message = custom_error_messages[option] || I18n.t('activerecord.errors.messages')[option] + message = I18n.t('activerecord.errors.messages')[option] subs = message.scan(/\{\{([^\}]*)\}\}/) interpolations = {} subs.each_with_index {|s, i| interpolations[s[0].to_sym] = restriction[i].strftime(format) } @@ -118,7 +118,7 @@ module ValidatesTimeliness def add_error(record, attr_name, message, interpolate=nil) if defined?(I18n) custom = custom_error_messages[message] - record.errors.add(attr_name, custom || message, interpolate || {}) + record.errors.add(attr_name, message, { :default => custom }.merge(interpolate || {})) else message = error_messages[message] if message.is_a?(Symbol) message = message % interpolate diff --git a/spec/validator_spec.rb b/spec/validator_spec.rb index 4eee8be..a62bda8 100644 --- a/spec/validator_spec.rb +++ b/spec/validator_spec.rb @@ -506,12 +506,6 @@ describe ValidatesTimeliness::Validator do configure_validator(:type => :date, :before => before) validator.send(:interpolation_values, :before, before.to_date).should == {:restriction => before} end - - it "should return empty hash if no interpolation keys are in message" do - before = '1900-01-01' - configure_validator(:type => :date, :before => before, :before_message => 'too late') - validator.send(:interpolation_values, :before, before.to_date).should be_empty - end else it "should return array of interpolation values" do before = '1900-01-01'