module Tangle::Mixin::Initialize

Mixin to initialize the dynamic mixin system

Attributes

mixins[R]

Private Instance Methods

extend_with_mixins() click to toggle source
# File lib/tangle/mixin.rb, line 19
def extend_with_mixins
  klass = self.class.name[/[^:]+$/].to_sym
  @mixins.each do |mixin|
    extend(mixin.const_get(klass)) if mixin.const_defined?(klass)
  end
end
initialize_kwargs(**kwargs) click to toggle source
# File lib/tangle/mixin.rb, line 26
def initialize_kwargs(**kwargs)
  kwargs.each do |keyword, argument|
    send("initialize_kwarg_#{keyword}", argument)
  end
end
initialize_mixins(mixins: nil, **kwargs) click to toggle source
# File lib/tangle/mixin.rb, line 13
def initialize_mixins(mixins: nil, **kwargs)
  @mixins = mixins
  extend_with_mixins unless @mixins.nil?
  initialize_kwargs(**kwargs) unless kwargs.empty?
end