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