Sha256: b2e048eb56dec12e7bf0197d988fa89161fea6edda70deacc71d4b80fc566ec7

Contents?: true

Size: 728 Bytes

Versions: 8

Compression:

Stored size: 728 Bytes

Contents

# frozen_string_literal: true

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

8 entries across 8 versions & 1 rubygems

Version Path
business_flow-0.19.6 lib/business_flow/validations.rb
business_flow-0.19.4 lib/business_flow/validations.rb
business_flow-0.19.3 lib/business_flow/validations.rb
business_flow-0.19.2 lib/business_flow/validations.rb
business_flow-0.19.1 lib/business_flow/validations.rb
business_flow-0.19.0 lib/business_flow/validations.rb
business_flow-0.18.1 lib/business_flow/validations.rb
business_flow-0.18.0 lib/business_flow/validations.rb