Class: BusinessFlow::DSL::MemoizedField

Inherits:
Object
  • Object
show all
Defined in:
lib/business_flow/dsl.rb

Overview

Helper class around memoized fields

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(field, retriever, setter_factory) ⇒ MemoizedField

Returns a new instance of MemoizedField.



414
415
416
417
418
# File 'lib/business_flow/dsl.rb', line 414

def initialize(field, retriever, setter_factory)
  @field = field
  @retriever = retriever
  @setter_factory = setter_factory
end

Instance Attribute Details

#fieldObject (readonly)

Returns the value of attribute field.



412
413
414
# File 'lib/business_flow/dsl.rb', line 412

def field
  @field
end

Instance Method Details

#add_to(klass) ⇒ Object



420
421
422
423
424
425
# File 'lib/business_flow/dsl.rb', line 420

def add_to(klass)
  setter = setter_factory.call(field, safe_ivar_name)
  Field.unsafe_eval_method(
    klass, field, memoized(safe_ivar_name, setter, retriever)
  )
end

#nameObject



427
428
429
# File 'lib/business_flow/dsl.rb', line 427

def name
  field
end