Sha256: 7daf5759bcc4b03dc4c2cfbb8e15d2245cbf9c291a11cfac666c3135cff1bfe8

Contents?: true

Size: 774 Bytes

Versions: 2

Compression:

Stored size: 774 Bytes

Contents

# frozen_string_literal: true

module Micro::Attributes
  module Features
    module ActiveModelValidations
      def self.included(base)
        begin
          require 'active_model'

          base.send(:include, ::ActiveModel::Validations)
          base.extend(ClassMethods)
        rescue LoadError
        end
      end

      module ClassMethods
        def __call_after_attribute_assign__(attr_name, options)
          validate, validates = options.values_at(:validate, :validates)

          self.validate(validate) if validate
          self.validates(attr_name, validates) if validates
        end
      end

      private

        def __call_after_micro_attribute
          run_validations! if respond_to?(:run_validations!, true)
        end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
u-attributes-2.1.1 lib/micro/attributes/features/activemodel_validations.rb
u-attributes-2.1.0 lib/micro/attributes/features/activemodel_validations.rb