Class: Rails::Engine::Configuration

Inherits:
Railtie::Configuration show all
Defined in:
lib/rails/engine/configuration.rb

Direct Known Subclasses

Application::Configuration

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Railtie::Configuration

#after_initialize, #app_generators, #app_middleware, #before_configuration, #before_eager_load, #before_initialize, #eager_load_namespaces, eager_load_namespaces, #respond_to?, #to_prepare, #to_prepare_blocks, #watchable_dirs, #watchable_files

Constructor Details

#initialize(root = nil) ⇒ Configuration

Returns a new instance of Configuration.



12
13
14
15
16
17
# File 'lib/rails/engine/configuration.rb', line 12

def initialize(root = nil)
  super()
  @root = root
  @generators = app_generators.dup
  @middleware = Rails::Configuration::MiddlewareStackProxy.new
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Rails::Railtie::Configuration

Instance Attribute Details

#autoload_once_pathsObject



79
80
81
# File 'lib/rails/engine/configuration.rb', line 79

def autoload_once_paths
  @autoload_once_paths ||= paths.autoload_once
end

#autoload_pathsObject



83
84
85
# File 'lib/rails/engine/configuration.rb', line 83

def autoload_paths
  @autoload_paths ||= paths.autoload_paths
end

#eager_load_pathsObject



75
76
77
# File 'lib/rails/engine/configuration.rb', line 75

def eager_load_paths
  @eager_load_paths ||= paths.eager_load
end

#middlewareObject

Returns the value of attribute middleware.



9
10
11
# File 'lib/rails/engine/configuration.rb', line 9

def middleware
  @middleware
end

#rootObject

Returns the value of attribute root.



8
9
10
# File 'lib/rails/engine/configuration.rb', line 8

def root
  @root
end

Instance Method Details

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

Holds generators configuration:

config.generators do |g|
  g.orm             :data_mapper, migration: true
  g.template_engine :haml
  g.test_framework  :rspec
end

If you want to disable color in console, do:

config.generators.colorize_logging = false

Yields:



31
32
33
34
35
# File 'lib/rails/engine/configuration.rb', line 31

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

#pathsObject



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/rails/engine/configuration.rb', line 37

def paths
  @paths ||= begin
    paths = Rails::Paths::Root.new(@root)

    paths.add "app",                 eager_load: true, glob: "{*,*/concerns}"
    paths.add "app/assets",          glob: "*"
    paths.add "app/controllers",     eager_load: true
    paths.add "app/channels",        eager_load: true, glob: "**/*_channel.rb"
    paths.add "app/helpers",         eager_load: true
    paths.add "app/models",          eager_load: true
    paths.add "app/mailers",         eager_load: true
    paths.add "app/views"

    paths.add "lib",                 load_path: true
    paths.add "lib/assets",          glob: "*"
    paths.add "lib/tasks",           glob: "**/*.rake"

    paths.add "config"
    paths.add "config/environments", glob: "#{Rails.env}.rb"
    paths.add "config/initializers", glob: "**/*.rb"
    paths.add "config/locales",      glob: "*.{rb,yml}"
    paths.add "config/routes.rb"

    paths.add "db"
    paths.add "db/migrate"
    paths.add "db/seeds.rb"

    paths.add "vendor",              load_path: true
    paths.add "vendor/assets",       glob: "*"

    paths
  end
end