Sha256: f9df401071c3ece80c986acfe8fae22ccc148a445cdbb5ce245c90b0ffef327e

Contents?: true

Size: 714 Bytes

Versions: 22

Compression:

Stored size: 714 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.merge(on: field)
        ::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

22 entries across 22 versions & 1 rubygems

Version Path
business_flow-0.17.3 lib/business_flow/validations.rb
business_flow-0.17.2 lib/business_flow/validations.rb
business_flow-0.17.1 lib/business_flow/validations.rb
business_flow-0.17.0 lib/business_flow/validations.rb
business_flow-0.16.0 lib/business_flow/validations.rb
business_flow-0.15.1 lib/business_flow/validations.rb
business_flow-0.15.0 lib/business_flow/validations.rb
business_flow-0.14.3 lib/business_flow/validations.rb
business_flow-0.14.2 lib/business_flow/validations.rb
business_flow-0.14.1 lib/business_flow/validations.rb
business_flow-0.14.0 lib/business_flow/validations.rb
business_flow-0.13.0 lib/business_flow/validations.rb
business_flow-0.12.1 lib/business_flow/validations.rb
business_flow-0.12.0 lib/business_flow/validations.rb
business_flow-0.11.1 lib/business_flow/validations.rb
business_flow-0.11.0 lib/business_flow/validations.rb
business_flow-0.10.0 lib/business_flow/validations.rb
business_flow-0.9.1 lib/business_flow/validations.rb
business_flow-0.9.0 lib/business_flow/validations.rb
business_flow-0.8.2 lib/business_flow/validations.rb