Sha256: 244306520ade46de1d4c81c8bcb82cb8acfb9bfa902bb0067ec315982e100e4a

Contents?: true

Size: 1.2 KB

Versions: 19

Compression:

Stored size: 1.2 KB

Contents

require 'forwardable'

module Locomotive
  module Steam
    module Models
      module Concerns

        module Validation

          def errors
            @errors ||= Errors.new(self)
          end

          def valid?
            true
          end

          class Errors

            include Enumerable
            extend Forwardable

            attr_accessor :messages

            def_delegators :@messages, :[], :clear, :empty?, :each, :size, :to_hash

            alias_method :blank?, :empty?

            def initialize(base)
              @base     = base
              @messages = HashWithIndifferentAccess.new({})
            end

            def add_on_blank(attribute)
              value = @base.send(attribute)
              add(attribute, :blank) if value.blank?
            end

            def add(attribute, message, options = {})
              (@messages[attribute] ||= []) << generate_message(message, options)
            end

            def generate_message(message, options = {})
              I18n.t(message, {
                scope:    'errors.messages',
                default:  message
              }.merge(options))
            end

          end

        end

      end
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
locomotivecms_steam-1.6.1 lib/locomotive/steam/models/concerns/validation.rb
locomotivecms_steam-1.6.0 lib/locomotive/steam/models/concerns/validation.rb
locomotivecms_steam-1.6.0.rc1 lib/locomotive/steam/models/concerns/validation.rb
locomotivecms_steam-1.6.0.beta1 lib/locomotive/steam/models/concerns/validation.rb
locomotivecms_steam-1.5.3 lib/locomotive/steam/models/concerns/validation.rb
locomotivecms_steam-1.5.2 lib/locomotive/steam/models/concerns/validation.rb
locomotivecms_steam-1.5.1 lib/locomotive/steam/models/concerns/validation.rb
locomotivecms_steam-1.5.0 lib/locomotive/steam/models/concerns/validation.rb
locomotivecms_steam-1.5.0.rc1 lib/locomotive/steam/models/concerns/validation.rb
locomotivecms_steam-1.5.0.rc0 lib/locomotive/steam/models/concerns/validation.rb
locomotivecms_steam-1.5.0.beta3 lib/locomotive/steam/models/concerns/validation.rb
locomotivecms_steam-1.5.0.beta2 lib/locomotive/steam/models/concerns/validation.rb
locomotivecms_steam-1.5.0.beta1 lib/locomotive/steam/models/concerns/validation.rb
locomotivecms_steam-1.4.1 lib/locomotive/steam/models/concerns/validation.rb
locomotivecms_steam-1.4.0 lib/locomotive/steam/models/concerns/validation.rb
locomotivecms_steam-1.4.0.rc2 lib/locomotive/steam/models/concerns/validation.rb
locomotivecms_steam-1.4.0.rc1 lib/locomotive/steam/models/concerns/validation.rb
locomotivecms_steam-1.4.0.pre.rc.1 lib/locomotive/steam/models/concerns/validation.rb
locomotivecms_steam-1.3.0 lib/locomotive/steam/models/concerns/validation.rb