module Tumugi::Mixin::Parameterizable::ClassMethods
Public Instance Methods
dump()
click to toggle source
# File lib/tumugi/mixin/parameterizable.rb, line 95 def dump parameter_proxy(proxy_id).dump end
merged_parameter_proxy()
click to toggle source
# File lib/tumugi/mixin/parameterizable.rb, line 90 def merged_parameter_proxy parameterizables = ancestors.reverse.select{ |a| a.respond_to?(:parameter_proxy) } parameterizables.map { |a| a.parameter_proxy(a.proxy_id) }.reduce(:merge) end
param(name, opts={})
click to toggle source
# File lib/tumugi/mixin/parameterizable.rb, line 59 def param(name, opts={}) if instance_methods.include?(name) raise Tumugi::ParameterError.new("Parameter '#{name}' cannot use, because it is already defined or override instance method.") end parameter_proxy(proxy_id).param(name, opts) attr_writer name define_method(name) do val = self.instance_variable_get("@#{name}") if val.instance_of?(Proc) v = self.instance_exec(&val) self.instance_variable_set("@#{name}", v) v else val end end end
param_auto_bind_enabled(v)
click to toggle source
# File lib/tumugi/mixin/parameterizable.rb, line 86 def param_auto_bind_enabled(v) parameter_proxy(proxy_id).param_auto_bind_enabled = v end
param_set(name, value)
click to toggle source
# File lib/tumugi/mixin/parameterizable.rb, line 81 def param_set(name, value) Tumugi::Logger.instance.warn("'param_set' is deprecated and will be removed in a future release. Use 'set' instead.") set(name, value) end
parameter_proxy(mod_name)
click to toggle source
# File lib/tumugi/mixin/parameterizable.rb, line 50 def parameter_proxy(mod_name) map = parameter_proxy_map unless map[mod_name] proxy = Tumugi::Parameter::ParameterProxy.new(mod_name) map[mod_name] = proxy end map[mod_name] end
parameter_proxy_map()
click to toggle source
# File lib/tumugi/mixin/parameterizable.rb, line 44 def parameter_proxy_map map = {} self.define_singleton_method(:parameter_proxy_map) { map } map end
proxy_id()
click to toggle source
# File lib/tumugi/mixin/parameterizable.rb, line 99 def proxy_id self.name || self.object_id.to_s end
set(name, value)
click to toggle source
# File lib/tumugi/mixin/parameterizable.rb, line 77 def set(name, value) parameter_proxy(proxy_id).set(name, value) end