Sha256: b1433da59c35e7fd291ae51bc01d9780a6faf08a5af2cfb6a7b611fa340ea867

Contents?: true

Size: 697 Bytes

Versions: 2

Compression:

Stored size: 697 Bytes

Contents

module BusinessFlow
  # Responsible for adding validations to flow objects
  module Validations
    # Additions to the DSL
    module ClassMethods
      # Declares that you expect to set this field during the course of
      # processing, and that it should meet the given ActiveModel
      # validations.
      def expects(field, options = {})
        validates field, options
        ::BusinessFlow::DSL::Field.new(field).add_to(self)
      end
    end

    def self.included(klass)
      klass.include(ActiveModel::Validations)
      klass.class_eval do
        class << self
          alias_method :invariant, :validates
        end
      end
      klass.extend ClassMethods
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
business_flow-0.17.5 lib/business_flow/validations.rb
business_flow-0.17.4 lib/business_flow/validations.rb