module Tumugi::Mixin::Parameterizable
Public Class Methods
included(mod)
click to toggle source
# File lib/tumugi/mixin/parameterizable.rb, line 8 def self.included(mod) mod.extend(ClassMethods) end
new()
click to toggle source
Calls superclass method
# File lib/tumugi/mixin/parameterizable.rb, line 12 def initialize super() proxy = self.class.merged_parameter_proxy params = proxy.params.dup proxy.param_defaults.each do |name, value| if params[name] params[name] = params[name].merge_default_value(value) end end params.each do |name, param| unless proxy.param_auto_bind_enabled.nil? param.task_param_auto_bind_enabled = proxy.param_auto_bind_enabled end instance_variable_set("@#{name}", param.get) end validate_params(proxy.params) configure end
Public Instance Methods
configure()
click to toggle source
# File lib/tumugi/mixin/parameterizable.rb, line 39 def configure # You can override in a subclass end
validate_params(params)
click to toggle source
# File lib/tumugi/mixin/parameterizable.rb, line 31 def validate_params(params) params.each do |name, param| if param.required? && instance_variable_get("@#{name}").nil? raise Tumugi::ParameterError.new("Parameter #{name} is required") end end end