class BusinessFlow::DSL::UsesField

Responsible for declaring fields which will be memoized and validated when first set

Attributes

name[R]

Public Class Methods

new(field, retriever) click to toggle source
# File lib/business_flow/dsl.rb, line 446
def initialize(field, retriever)
  @name = field
  @retriever = retriever
  @field = MemoizedField.new(field, retriever_method_name,
                             Field.method(:setter_factory))
end

Public Instance Methods

add_to(klass) click to toggle source
# File lib/business_flow/dsl.rb, line 453
def add_to(klass)
  klass.send(:define_method, retriever_method_name, &@retriever)
  klass.send(:private, retriever_method_name)
  @field.add_to(klass)
  klass.send(:public, @name)
end

Private Instance Methods

retriever_method_name() click to toggle source
# File lib/business_flow/dsl.rb, line 462
def retriever_method_name
  @retriever_method_name ||=
    "_business_flow_dsl_execute_step_for_#{@name}".to_sym
end