Class: ViewComponent::Config
- Inherits:
-
Object
- Object
- ViewComponent::Config
- Defined in:
- lib/view_component/config.rb
Class Attribute Summary collapse
-
.component_parent_class ⇒ String
The parent class from which generated components will inherit.
-
.default_preview_layout ⇒ String
A custom default layout used for the previews index page and individual previews.
-
.generate ⇒ ActiveSupport::OrderedOptions
The subset of configuration options relating to generators.
-
.instrumentation_enabled ⇒ Boolean
Whether ActiveSupport notifications are enabled.
-
.preview_controller ⇒ String
The controller used for previewing components.
-
.preview_path ⇒ Object
deprecated
Deprecated.
Use #preview_paths instead. Will be removed in v3.0.0.
-
.preview_paths ⇒ Array<String>
The locations in which component previews will be looked up.
-
.preview_route ⇒ String
The entry route for component previews.
-
.render_monkey_patch_enabled ⇒ Boolean
If this is disabled, use
#render_componentor#render_component_to_stringinstead. -
.show_previews ⇒ Boolean
Whether component previews are enabled.
-
.show_previews_source ⇒ Boolean
Whether to display source code previews in component previews.
-
.test_controller ⇒ String
The controller used for testing components.
-
.view_component_path ⇒ String
The path in which components, their templates, and their sidecars should be stored.
Class Method Summary collapse
-
.default_preview_paths ⇒ String
A custom default layout used for the previews index page and individual previews.
- .defaults ⇒ Object
Instance Method Summary collapse
-
#initialize ⇒ Config
constructor
A new instance of Config.
- #preview_path ⇒ Object
- #preview_path=(new_value) ⇒ Object
Constructor Details
#initialize ⇒ Config
Returns a new instance of Config.
140 141 142 |
# File 'lib/view_component/config.rb', line 140 def initialize @config = self.class.defaults end |
Class Attribute Details
.component_parent_class ⇒ String
The parent class from which generated components will inherit.
Defaults to nil. If this is falsy, generators will use
"ApplicationComponent" if defined, "ViewComponent::Base" otherwise.
|
|
# File 'lib/view_component/config.rb', line 102
|
.default_preview_layout ⇒ String
A custom default layout used for the previews index page and individual
previews.
Defaults to nil. If this is falsy, "component_preview" is used.
133 134 135 136 137 |
# File 'lib/view_component/config.rb', line 133 def default_preview_paths return [] unless defined?(Rails.root) && Dir.exist?("#{Rails.root}/test/components/previews") ["#{Rails.root}/test/components/previews"] end |
.generate ⇒ ActiveSupport::OrderedOptions
The subset of configuration options relating to generators.
All options under this namespace default to false unless otherwise
stated.
#sidecar
Always generate a component with a sidecar directory:
config.view_component.generate.sidecar = true
#stimulus_controller
Always generate a Stimulus controller alongside the component:
config.view_component.generate.stimulus_controller = true
#locale
Always generate translations file alongside the component:
config.view_component.generate.locale = true
#distinct_locale_files
Always generate as many translations files as available locales:
config.view_component.generate.distinct_locale_files = true
One file will be generated for each configured I18n.available_locales,
falling back to [:en] when no available_locales is defined.
#preview
Always generate a preview alongside the component:
config.view_component.generate.preview = true
|
|
# File 'lib/view_component/config.rb', line 30
|
.instrumentation_enabled ⇒ Boolean
Whether ActiveSupport notifications are enabled.
Defaults to false.
|
|
# File 'lib/view_component/config.rb', line 85
|
.preview_controller ⇒ String
The controller used for previewing components.
Defaults to ViewComponentsController.
|
|
# File 'lib/view_component/config.rb', line 70
|
.preview_path ⇒ Object
Use #preview_paths instead. Will be removed in v3.0.0.
|
|
# File 'lib/view_component/config.rb', line 118
|
.preview_paths ⇒ Array<String>
The locations in which component previews will be looked up.
Defaults to ['test/component/previews'] relative to your Rails root.
|
|
# File 'lib/view_component/config.rb', line 113
|
.preview_route ⇒ String
The entry route for component previews.
Defaults to "/rails/view_components".
|
|
# File 'lib/view_component/config.rb', line 75
|
.render_monkey_patch_enabled ⇒ Boolean
If this is disabled, use #render_component or
#render_component_to_string instead.
Defaults to true.
|
|
# File 'lib/view_component/config.rb', line 90
|
.show_previews ⇒ Boolean
Whether component previews are enabled.
Defaults to true in development and test environments.
|
|
# File 'lib/view_component/config.rb', line 108
|
.show_previews_source ⇒ Boolean
Whether to display source code previews in component previews.
Defaults to false.
|
|
# File 'lib/view_component/config.rb', line 80
|
.test_controller ⇒ String
The controller used for testing components.
Can also be configured on a per-test basis using #with_controller_class.
Defaults to ApplicationController.
|
|
# File 'lib/view_component/config.rb', line 121
|
.view_component_path ⇒ String
The path in which components, their templates, and their sidecars should
be stored.
Defaults to "app/components".
|
|
# File 'lib/view_component/config.rb', line 96
|
Class Method Details
.default_preview_paths ⇒ String
A custom default layout used for the previews index page and individual
previews.
Defaults to nil. If this is falsy, "component_preview" is used.
133 134 135 136 137 |
# File 'lib/view_component/config.rb', line 133 def default_preview_paths return [] unless defined?(Rails.root) && Dir.exist?("#{Rails.root}/test/components/previews") ["#{Rails.root}/test/components/previews"] end |
.defaults ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/view_component/config.rb', line 13 def defaults ActiveSupport::OrderedOptions.new.merge!({ generate: ActiveSupport::OrderedOptions.new(false), preview_controller: "ViewComponentsController", preview_route: "/rails/view_components", show_previews_source: false, instrumentation_enabled: false, render_monkey_patch_enabled: true, view_component_path: "app/components", component_parent_class: nil, show_previews: Rails.env.development? || Rails.env.test?, preview_paths: default_preview_paths, test_controller: "ApplicationController", default_preview_layout: nil }) end |
Instance Method Details
#preview_path ⇒ Object
144 145 146 |
# File 'lib/view_component/config.rb', line 144 def preview_path preview_paths end |
#preview_path=(new_value) ⇒ Object
148 149 150 151 |
# File 'lib/view_component/config.rb', line 148 def preview_path=(new_value) ViewComponent::Deprecation.warn("`preview_path` will be removed in v3.0.0. Use `preview_paths` instead.") self.preview_paths = Array.wrap(new_value) end |