Sha256: 7aa323b8ce3bc42cb8cb9bb7ce60b502dec7db1f36a084e2ed540e2e6b761adb

Contents?: true

Size: 616 Bytes

Versions: 1

Compression:

Stored size: 616 Bytes

Contents

module AxleAttributes
  module Validations
    extend ActiveSupport::Concern

    included do
      validate :validate_formats
    end

    private

      def validate_formats
        each_provided_definition do |definition|
          value = send(definition.name)
          if value.present? && error = definition.validate(value)
            errors.add(definition.name, error)
          end
        end
      end

      def each_provided_definition
        provided_set.each do |attr|
          if definition = self.class.attributes[attr]
            yield definition
          end
        end
      end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
axle_attributes-1.13.2 lib/axle_attributes/validations.rb