Module: Rails3::Plugin::Extender::Macro

Extended by:
Util
Included in:
RSpec::Core::ExampleGroup
Defined in:
lib/r3_plugin_toolbox/macro.rb

Constant Summary collapse

MACRO =
Rails3::Plugin::Extender::Macro

Constants included from Util

Util::ACTIVE_MODULES, Util::INIT

Instance Method Summary collapse

Methods included from Util

act_type?, get_base_class, get_constant, get_load_type, get_module, make_constant, rails_const_base

Instance Method Details

#after_init(component, &block) ⇒ Object



35
36
37
38
39
40
41
42
43
44
# File 'lib/r3_plugin_toolbox/macro.rb', line 35

def after_init component, &block
  type = MACRO.get_load_type component
  Rails3::Plugin::Extender.new do
    extend_rails type do          
      after :initialize do
        yield self
      end
    end
  end        
end

#init_app_railties(app_name, *railties) ⇒ Object

def



46
47
48
49
50
51
52
# File 'lib/r3_plugin_toolbox/macro.rb', line 46

def init_app_railties app_name, *railties
  app = "#{app_name.to_s.camelize}::Application".constantize 
  app.initialize!                        
  railties.each do |railtie|
    MACRO.get_base_class(railtie).constantize
  end
end

#with_configuration(&block) ⇒ Object



23
24
25
26
27
# File 'lib/r3_plugin_toolbox/macro.rb', line 23

def with_configuration &block
  if block
    block.arity < 1 ? Rails.configuration.instance_eval(&block) : block.call(Rails.configuration)  
  end      
end

#with_engine(name, &block) ⇒ Object



17
18
19
20
21
# File 'lib/r3_plugin_toolbox/macro.rb', line 17

def with_engine name, &block
  Rails3::Engine.new name do |e|
    yield e
  end
end

#with_extension(&block) ⇒ Object



29
30
31
32
33
# File 'lib/r3_plugin_toolbox/macro.rb', line 29

def with_extension &block
  Rails3::Plugin::Extender.new do |e|
    e.instance_eval(&block)
  end
end