class RKit::Dsl::Base::Params
Attributes
params[R]
params_lambda[R]
Public Class Methods
new(params_lambda)
click to toggle source
# File lib/r_kit/dsl/base/params.rb, line 4 def initialize params_lambda raise NoLambdaError unless params_lambda.lambda? @params_lambda = params_lambda @params = Hash.new{ |hash, key| hash[key] = params_struct.new } end
Public Instance Methods
extract_local_variables(base)
click to toggle source
TODO: extract local variables may be an independant service of rkit
# File lib/r_kit/dsl/base/params.rb, line 22 def extract_local_variables base base.singleton_class.send :prepend, RKit::Dsl::Base::LocalParams base.persisting_binding.eval( @params[base].to_hash.map{ |name, value| "#{ name }=#{ value.inspect }" }.join(";") ) end
extract_parameters(base, *args, &block)
click to toggle source
# File lib/r_kit/dsl/base/params.rb, line 16 def extract_parameters base, *args, &block @params[base] = params_struct.new @params_lambda.extract_parameters(*args, &block) end
try_parameters(*args, &block)
click to toggle source
# File lib/r_kit/dsl/base/params.rb, line 12 def try_parameters *args, &block @params_lambda.call *args, &block end
Private Instance Methods
params_names()
click to toggle source
# File lib/r_kit/dsl/base/params.rb, line 30 def params_names @params_names ||= @params_lambda.parameters.map{ |(_, name)| name } end
params_struct()
click to toggle source
# File lib/r_kit/dsl/base/params.rb, line 34 def params_struct @params_struct ||= StrongStruct.new allowed: params_names end