Module: SknUtils::Wrappable

Defined in:
lib/skn_utils/wrappable.rb

Instance Method Summary collapse

Instance Method Details

#inherited_wrappersObject



18
19
20
21
22
23
# File 'lib/skn_utils/wrappable.rb', line 18

def inherited_wrappers
  ancestors
      .grep(Wrappable)
      .reverse
      .flat_map(&:wrappers)
end

#new(*arguments, &block) ⇒ Object



25
26
27
28
29
30
# File 'lib/skn_utils/wrappable.rb', line 25

def new(*arguments, &block)
  instance = allocate
  inherited_wrappers.each { |mod|instance.singleton_class.include(mod) }
  instance.send(:initialize, *arguments, &block)
  instance
end

#wrap(mod) ⇒ Object



10
11
12
# File 'lib/skn_utils/wrappable.rb', line 10

def wrap(mod)
  wrappers << mod
end

#wrappersObject



14
15
16
# File 'lib/skn_utils/wrappable.rb', line 14

def wrappers
  @wrappers ||= []
end