module Confinement::BuilderGetterInitialization
Public Instance Methods
builder_getter(method_name, klass, ivar, new: [])
click to toggle source
# File lib/confinement.rb, line 80 def builder_getter(method_name, klass, ivar, new: []) init_parameters = [*new, "&block"].join(", ") class_eval(<<~RUBY, __FILE__, __LINE__) def #{method_name}(&block) if #{ivar} if block_given? raise "#{method_name} is already set up" end return #{ivar} end if !block_given? raise "Can't initialize #{method_name} without block" end #{ivar} = #{klass}.new(#{init_parameters}) #{ivar} end RUBY end