Class: Rails::Railtie::Configuration

Inherits:
Object
  • Object
show all
Defined in:
railties/lib/rails/railtie/configuration.rb

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration



6
7
8
# File 'railties/lib/rails/railtie/configuration.rb', line 6

def initialize
  @@options ||= {}
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, *args, &blk) ⇒ Object (private)



72
73
74
75
76
77
78
79
80
# File 'railties/lib/rails/railtie/configuration.rb', line 72

def method_missing(name, *args, &blk)
  if name.to_s =~ /=$/
    @@options[$`.to_sym] = args.first
  elsif @@options.key?(name)
    @@options[name]
  else
    super
  end
end

Instance Method Details

#after_initialize(&block) ⇒ Object

Last configurable block to run. Called after frameworks initialize.



51
52
53
# File 'railties/lib/rails/railtie/configuration.rb', line 51

def after_initialize(&block)
  ActiveSupport.on_load(:after_initialize, :yield => true, &block)
end

#app_generators {|@@app_generators| ... } ⇒ Object

This allows you to modify application's generators from Railties.

Values set on app_generators will become defaults for application, unless application overwrites them.

Yields:

  • (@@app_generators)


23
24
25
26
27
# File 'railties/lib/rails/railtie/configuration.rb', line 23

def app_generators
  @@app_generators ||= Rails::Configuration::Generators.new
  yield(@@app_generators) if block_given?
  @@app_generators
end

#app_middlewareObject

This allows you to modify the application's middlewares from Engines.

All operations you run on the app_middleware will be replayed on the application once it is defined and the default_middlewares are created



15
16
17
# File 'railties/lib/rails/railtie/configuration.rb', line 15

def app_middleware
  @@app_middleware ||= Rails::Configuration::MiddlewareStackProxy.new
end

#before_configuration(&block) ⇒ Object

First configurable block to run. Called before any initializers are run.



35
36
37
# File 'railties/lib/rails/railtie/configuration.rb', line 35

def before_configuration(&block)
  ActiveSupport.on_load(:before_configuration, :yield => true, &block)
end

#before_eager_load(&block) ⇒ Object

Third configurable block to run. Does not run if config.cache_classes set to false.



41
42
43
# File 'railties/lib/rails/railtie/configuration.rb', line 41

def before_eager_load(&block)
  ActiveSupport.on_load(:before_eager_load, :yield => true, &block)
end

#before_initialize(&block) ⇒ Object

Second configurable block to run. Called before frameworks initialize.



46
47
48
# File 'railties/lib/rails/railtie/configuration.rb', line 46

def before_initialize(&block)
  ActiveSupport.on_load(:before_initialize, :yield => true, &block)
end

#generators(&block) ⇒ Object

:nodoc



29
30
31
32
# File 'railties/lib/rails/railtie/configuration.rb', line 29

def generators(&block) #:nodoc
  ActiveSupport::Deprecation.warn "config.generators in Rails::Railtie is deprecated. Please use config.app_generators instead."
  app_generators(&block)
end

#respond_to?(name) ⇒ Boolean

Returns:

  • (Boolean)


66
67
68
# File 'railties/lib/rails/railtie/configuration.rb', line 66

def respond_to?(name)
  super || @@options.key?(name.to_sym)
end

#to_prepare(&blk) ⇒ Object

Defines generic callbacks to run before #after_initialize. Useful for Rails::Railtie subclasses.



62
63
64
# File 'railties/lib/rails/railtie/configuration.rb', line 62

def to_prepare(&blk)
  to_prepare_blocks << blk if blk
end

#to_prepare_blocksObject

Array of callbacks defined by #to_prepare.



56
57
58
# File 'railties/lib/rails/railtie/configuration.rb', line 56

def to_prepare_blocks
  @@to_prepare_blocks ||= []
end