From 4523138c3cb64a4372183d72f83735f85e541642 Mon Sep 17 00:00:00 2001 From: Adam Meehan Date: Sat, 3 Aug 2019 12:38:39 +1000 Subject: [PATCH] Add Rails initializer to set Timeliness.ambiguous_date_format for Timeliness v0.4+ --- lib/validates_timeliness/railtie.rb | 8 ++++++++ spec/spec_helper.rb | 2 ++ spec/validates_timeliness/railtie_spec.rb | 22 ++++++++++++++++++++++ 3 files changed, 32 insertions(+) create mode 100644 spec/validates_timeliness/railtie_spec.rb diff --git a/lib/validates_timeliness/railtie.rb b/lib/validates_timeliness/railtie.rb index 6b88d61..3c4cd5e 100644 --- a/lib/validates_timeliness/railtie.rb +++ b/lib/validates_timeliness/railtie.rb @@ -11,5 +11,13 @@ module ValidatesTimeliness initializer "validates_timeliness.initialize_restriction_errors" do ValidatesTimeliness.ignore_restriction_errors = !Rails.env.test? end + + initializer "validates_timeliness.initialize_timeliness_ambiguous_date_format" do + if Timeliness.respond_to?(:ambiguous_date_format) # i.e. v0.4+ + # Set default for each new thread if you have changed the default using + # the format switching methods. + Timeliness.configuration.ambiguous_date_format = Timeliness::Definitions.current_date_format + end + end end end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index ed4808d..80e68bc 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -10,6 +10,8 @@ require 'timecop' require 'validates_timeliness' require 'validates_timeliness/orm/active_model' +require 'rails/railtie' + require 'support/test_model' require 'support/model_helpers' require 'support/config_helper' diff --git a/spec/validates_timeliness/railtie_spec.rb b/spec/validates_timeliness/railtie_spec.rb new file mode 100644 index 0000000..b7dfacf --- /dev/null +++ b/spec/validates_timeliness/railtie_spec.rb @@ -0,0 +1,22 @@ +require 'validates_timeliness/railtie' + +RSpec.describe ValidatesTimeliness::Railtie do + context "intializers" do + context "validates_timeliness.initialize_timeliness_ambiguous_date_format" do + it 'should set the timeliness default ambiguous date format from the current format' do + expect(Timeliness.configuration.ambiguous_date_format).to eq :us + ValidatesTimeliness.parser.use_euro_formats + + initializer("validates_timeliness.initialize_timeliness_ambiguous_date_format").run + + expect(Timeliness.configuration.ambiguous_date_format).to eq :euro + end + end if Timeliness.respond_to?(:ambiguous_date_format) + + def initializer(name) + ValidatesTimeliness::Railtie.initializers.find { |i| + i.name == name + } || raise("Initializer #{name} not found") + end + end +end