Module: BusinessFlow::DSL

Defined in:
lib/business_flow/dsl.rb

Overview

Core DSL for BusinessFlow. The relevant methods are all in ClassMethods.

Defined Under Namespace

Modules: ClassMethods Classes: Field, FieldList, MemoizedField, ParameterField, ParameterObject, PublicField, UsesField

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(klass) ⇒ Object



86
87
88
# File 'lib/business_flow/dsl.rb', line 86

def self.included(klass)
  klass.extend(ClassMethods)
end

Instance Method Details

#callObject



93
94
95
96
97
# File 'lib/business_flow/dsl.rb', line 93

def call
  return if invalid?
  klass = self.class
  klass.step_executor.new(klass.step_queue, self).call
end

#errorsObject



114
115
116
# File 'lib/business_flow/dsl.rb', line 114

def errors
  @errors ||= ActiveModel::Errors.new(self)
end

#errors?Boolean

Returns:

  • (Boolean)


118
119
120
# File 'lib/business_flow/dsl.rb', line 118

def errors?
  @errors.present?
end

#invalid?(context = nil) ⇒ Boolean

Returns:

  • (Boolean)


126
127
128
# File 'lib/business_flow/dsl.rb', line 126

def invalid?(context = nil)
  !valid?(context)
end

#valid?(_context = nil) ⇒ Boolean

Returns:

  • (Boolean)


122
123
124
# File 'lib/business_flow/dsl.rb', line 122

def valid?(_context = nil)
  @errors.blank?
end