Methods
Attributes
[R] | base_block | |
[R] | module_delegate | |
[R] | parameters |
Public Class methods
[ show source ]
# File lib/more/facets/paramix.rb, line 132 def initialize(module_delegate, parameters={}, &base_block) @module_delegate = module_delegate @parameters = parameters @base_block = base_block end
Public Instance methods
[ show source ]
# File lib/more/facets/paramix.rb, line 174 def [](name) @parameters[name] end
[ show source ]
# File lib/more/facets/paramix.rb, line 140 def append_features(base) base.mixin_parameters[module_delegate] = parameters base.module_eval do define_method(:mixin_parameters) do base.mixin_parameters end alias_method :mixin_params, :mixin_parameters end base.module_eval(&@base_block) if base_block base.__send__(:include, module_delegate) end
[ show source ]
# File lib/more/facets/paramix.rb, line 157 def extend_object(base) baseclass = (class << base; self; end) baseclass.mixin_parameters[module_delegate] = parameters baseclass.module_eval do define_method(:mixin_parameters) do baseclass.mixin_parameters end alias_method :mixin_params, :mixin_parameters end baseclass.module_eval(&@base_block) if base_block base.__send__(:extend, module_delegate) end