Module: Ghaki::App::Mixer::ClassMethods

Defined in:
lib/ghaki/app/mixer.rb

Overview

Allows customizable engine mixin name.

Example

require 'ghaki/app/mixer'

class MyWidget

  include Ghaki::App::Mixer
  app_engine_mixin :sys_app

  def do_something
    sys_app.logger.info 'doing something'
  end

end

Instance Method Summary collapse

Instance Method Details

#app_engine_class_mixin(name) ⇒ Object

Generate engine mixin reader in class.



39
40
41
42
43
44
45
# File 'lib/ghaki/app/mixer.rb', line 39

def app_engine_class_mixin name
  class_eval <<-"END"
    def #{name}
      Ghaki::App::Engine.instance
    end
  END
end

#app_engine_eigen_mixin(name) ⇒ Object

Generate engine mixin reader in eigen class.



29
30
31
32
33
34
35
# File 'lib/ghaki/app/mixer.rb', line 29

def app_engine_eigen_mixin name
  class_eval <<-"END"
    def self.#{name}
      Ghaki::App::Engine.instance
    end
  END
end

#app_engine_mixin(name) ⇒ Object

Generate engine mixins in both the class and eigen class.



49
50
51
52
# File 'lib/ghaki/app/mixer.rb', line 49

def app_engine_mixin name
  app_engine_eigen_mixin name
  app_engine_class_mixin name
end