Module: SimpleColor::Mixin
- Included in:
- SimpleColor
- Defined in:
- lib/simplecolor.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.define_color_methods(klass, *methods, opts_from: nil, color_module: ColorWrapper) ⇒ Object
184 185 186 187 188 189 190 191 192 193 194 195 196 |
# File 'lib/simplecolor.rb', line 184 def self.define_color_methods(klass, *methods, opts_from: nil, color_module: ColorWrapper) methods=color_module.instance_methods if methods.empty? methods.each do |m| # klass.define_method m do |*args, **l_opts, &b| klass.class_eval do define_method m do |*args, **l_opts, &b| opts= opts_from ? opts_from.opts : self.opts opts=opts.merge(l_opts) color_module.instance_method(m).bind(self).call(*args, **opts, &b) end end end end |
Instance Method Details
#mix_in(klass) ⇒ Object
205 206 207 |
# File 'lib/simplecolor.rb', line 205 def mix_in(klass) klass.send :include, mixin end |
#mix_in_string ⇒ Object
208 209 210 |
# File 'lib/simplecolor.rb', line 208 def mix_in_string mix_in(String) end |
#mixin(*methods) ⇒ Object
198 199 200 201 202 203 |
# File 'lib/simplecolor.rb', line 198 def mixin(*methods) klass=self Module.new do Mixin.define_color_methods(self, *methods, opts_from: klass) end end |