Class: Rails::Engine::Configuration

Inherits:
Railtie::Configuration show all
Defined in:
railties/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, #after_routes_loaded, #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
18
# File 'railties/lib/rails/engine/configuration.rb', line 12

def initialize(root = nil)
  super()
  @root = root
  @generators = app_generators.dup
  @middleware = Rails::Configuration::MiddlewareStackProxy.new
  @javascript_path = "javascript"
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



85
86
87
# File 'railties/lib/rails/engine/configuration.rb', line 85

def autoload_once_paths
  @autoload_once_paths ||= paths.autoload_once
end

#autoload_pathsObject



89
90
91
# File 'railties/lib/rails/engine/configuration.rb', line 89

def autoload_paths
  @autoload_paths ||= paths.autoload_paths
end

#eager_load_pathsObject



81
82
83
# File 'railties/lib/rails/engine/configuration.rb', line 81

def eager_load_paths
  @eager_load_paths ||= paths.eager_load
end

#javascript_pathObject

Returns the value of attribute javascript_path



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

def javascript_path
  @javascript_path
end

#middlewareObject

Returns the value of attribute middleware



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

def middleware
  @middleware
end

#rootObject

Returns the value of attribute root



8
9
10
# File 'railties/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:



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

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

#pathsObject



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
70
71
72
73
74
75
# File 'railties/lib/rails/engine/configuration.rb', line 38

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

    paths.add "app",                 eager_load: true,
                                     glob: "{*,*/concerns}",
                                     exclude: ["assets", javascript_path]
    paths.add "app/assets",          glob: "*"
    paths.add "app/controllers",     eager_load: true
    paths.add "app/channels",        eager_load: true
    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 "config/routes",       glob: "**/*.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.add "test/mailers/previews", autoload: true

    paths
  end
end