Class: Modularity::ParametrizedTrait

Inherits:
Module
  • Object
show all
Defined in:
lib/modularity/as_trait.rb

Instance Method Summary collapse

Constructor Details

#initialize(blank_trait, args, kwargs) ⇒ ParametrizedTrait

Returns a new instance of ParametrizedTrait.



5
6
7
8
9
10
# File 'lib/modularity/as_trait.rb', line 5

def initialize(blank_trait, args, kwargs)
  @args = args
  @kwargs = kwargs
  @macro = blank_trait.instance_variable_get(:@modularity_macro)
  include(blank_trait)
end

Instance Method Details

#included(base) ⇒ Object



12
13
14
15
16
17
18
# File 'lib/modularity/as_trait.rb', line 12

def included(base)
  if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.7')
    base.class_exec(*@args, &@macro)
  else
    base.class_exec(*@args, **@kwargs, &@macro)
  end
end