Sha256: 4958fc423228e360463b9d2ede24a4b6fefa236b4c7c54f627ce6a79496b7df3

Contents?: true

Size: 1.22 KB

Versions: 36

Compression:

Stored size: 1.22 KB

Contents

module ConfigHelper
  extend ActiveSupport::Concern

  # Justin French tip
  def with_config(preference_name, temporary_value)
    old_value = ValidatesTimeliness.send(preference_name)
    ValidatesTimeliness.send(:"#{preference_name}=", temporary_value)
    yield
  ensure
    ValidatesTimeliness.send(:"#{preference_name}=", old_value)
  end

  def reset_validation_setup_for(model_class)
    model_class.reset_callbacks(:validate)
    model_class._validators.clear
    model_class.timeliness_validated_attributes = [] if model_class.respond_to?(:timeliness_validated_attributes)
    model_class.undefine_attribute_methods
    # This is a hack to avoid a disabled super method error message after an undef
    model_class.instance_variable_set(:@generated_attribute_methods, nil)
    model_class.instance_variable_set(:@generated_timeliness_methods, nil)
  end

  module ClassMethods
    def with_config(preference_name, temporary_value)
      original_config_value = ValidatesTimeliness.send(preference_name)

      before(:all) do
        ValidatesTimeliness.send(:"#{preference_name}=", temporary_value)
      end

      after(:all) do
        ValidatesTimeliness.send(:"#{preference_name}=", original_config_value)
      end
    end
  end
end

Version data entries

36 entries across 36 versions & 5 rubygems

Version Path
validates_timeliness-8.0.0.beta1 spec/support/config_helper.rb
validates_timeliness-7.0.0 spec/support/config_helper.rb
validates_timeliness-7.0.0.beta2 spec/support/config_helper.rb
validates_timeliness-5.0.1 spec/support/config_helper.rb
validates_timeliness-6.0.1 spec/support/config_helper.rb
validates_timeliness-7.0.0.beta1 spec/support/config_helper.rb
validates_timeliness-6.0.0 spec/support/config_helper.rb
validates_timeliness-6.0.0.beta2 spec/support/config_helper.rb
validates_timeliness-6.0.0.beta1 spec/support/config_helper.rb
validates_timeliness-6.0.0.alpha1 spec/support/config_helper.rb
validates_timeliness-5.0.0 spec/support/config_helper.rb
validates_timeliness-5.0.0.beta2 spec/support/config_helper.rb
validates_timeliness-5.0.0.beta1 spec/support/config_helper.rb
validates_timeliness-5.0.0.alpha5 spec/support/config_helper.rb
validates_timeliness-4.1.1 spec/support/config_helper.rb
validates_timeliness-4.1.0 spec/support/config_helper.rb
validates_timeliness-5.0.0.alpha4 spec/support/config_helper.rb
validates_timeliness-5.0.0.alpha3 spec/support/config_helper.rb
validates_timeliness-5.0.0.alpha2 spec/support/config_helper.rb
validates_timeliness-5.0.0.alpha1 spec/support/config_helper.rb