Class: Rails::Railtie::Configuration

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

Direct Known Subclasses

Engine::Configuration

Instance Method Summary collapse

Constructor Details

#initializeConfiguration


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)


79
80
81
82
83
84
85
86
87
# File 'railties/lib/rails/railtie/configuration.rb', line 79

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.


58
59
60
# File 'railties/lib/rails/railtie/configuration.rb', line 58

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:


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

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


27
28
29
# File 'railties/lib/rails/railtie/configuration.rb', line 27

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.


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

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.


48
49
50
# File 'railties/lib/rails/railtie/configuration.rb', line 48

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.


53
54
55
# File 'railties/lib/rails/railtie/configuration.rb', line 53

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

#respond_to?(name) ⇒ Boolean


73
74
75
# File 'railties/lib/rails/railtie/configuration.rb', line 73

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.


69
70
71
# File 'railties/lib/rails/railtie/configuration.rb', line 69

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

#to_prepare_blocksObject

Array of callbacks defined by #to_prepare.


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

def to_prepare_blocks
  @@to_prepare_blocks ||= []
end

#watchable_dirsObject

Add directories that should be watched for change. The key of the hashes should be directories and the values should be an array of extensions to match in each directory.


18
19
20
# File 'railties/lib/rails/railtie/configuration.rb', line 18

def watchable_dirs
  @@watchable_dirs ||= {}
end

#watchable_filesObject

Add files that should be watched for change.


11
12
13
# File 'railties/lib/rails/railtie/configuration.rb', line 11

def watchable_files
  @@watchable_files ||= []
end