Sha256: 0aedf07f33faccab5b92ca0a08bb98400622e5a78308dbdcfafc98db77174947

Contents?: true

Size: 1.6 KB

Versions: 3

Compression:

Stored size: 1.6 KB

Contents

require 'validates_timeliness/formats'
require 'validates_timeliness/parser'
require 'validates_timeliness/validator'
require 'validates_timeliness/validation_methods'

require 'validates_timeliness/active_record/attribute_methods'
require 'validates_timeliness/active_record/multiparameter_attributes'
require 'validates_timeliness/action_view/instance_tag'

module ValidatesTimeliness

  mattr_accessor :default_timezone
  self.default_timezone = :utc

  mattr_accessor :use_time_zones
  self.use_time_zones = false

  LOCALE_PATH = File.expand_path(File.dirname(__FILE__) + '/validates_timeliness/locale/en.yml')

  class << self

    def enable_datetime_select_extension!
      enable_datetime_select_invalid_value_extension!
      enable_multiparameter_attributes_extension!
    end

    def load_error_messages
      defaults = YAML::load(IO.read(LOCALE_PATH))['en']
      ValidatesTimeliness::Validator.error_value_formats = defaults['validates_timeliness']['error_value_formats'].symbolize_keys

      if defined?(I18n)
        I18n.load_path.unshift(LOCALE_PATH)
        I18n.reload!
      else
        errors = defaults['activerecord']['errors']['messages'].inject({}) {|h,(k,v)| h[k.to_sym] = v.gsub(/\{\{\w*\}\}/, '%s');h }
        ::ActiveRecord::Errors.default_error_messages.update(errors)
      end
    end

    def setup_for_rails
      self.default_timezone = ::ActiveRecord::Base.default_timezone
      self.use_time_zones = ::ActiveRecord::Base.time_zone_aware_attributes rescue false
      self.enable_active_record_datetime_parser!
      load_error_messages
    end
  end
end

ValidatesTimeliness.setup_for_rails

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
szilm-validates_timeliness-2.3.1 lib/validates_timeliness.rb
validates_timeliness-2.3.1 lib/validates_timeliness.rb
validates_timeliness-2.3.0 lib/validates_timeliness.rb