Class: ReactEmailRails::Configuration
- Inherits:
-
Object
- Object
- ReactEmailRails::Configuration
- Defined in:
- lib/react_email_rails/configuration.rb
Constant Summary collapse
- BUNDLE_PATH =
"tmp/react-email-rails/emails.js"- BUILD_BIN =
"node_modules/.bin/react-email-rails-build"- DEV_RENDER_BIN =
"node_modules/.bin/react-email-rails-dev"- DEFAULT_RENDER_TIMEOUT =
10- DEFAULT_RENDER_PROCESS_MAX_REQUESTS =
1_000- RENDER_MODES =
{ subprocess: ReactEmailRails::RenderModes::Subprocess, persistent: ReactEmailRails::RenderModes::Persistent, }.freeze
- KEY_TRANSFORMS =
{ camel: ->(key) { key.to_s.camelize }, lower_camel: ->(key) { key.to_s.camelize(:lower) }, dash: ->(key) { key.to_s.underscore.dasherize }, snake: ->(key) { key.to_s.underscore }, none: ->(key) { key }, }.freeze
- DEFAULT_RENDER_COMMAND =
lambda do if Rails.env.development? [Rails.root.join(DEV_RENDER_BIN).to_s] else ["node", Rails.root.join(BUNDLE_PATH).to_s] end end
Instance Attribute Summary collapse
-
#component_path_resolver ⇒ Object
Returns the value of attribute component_path_resolver.
-
#render_mode ⇒ Object
Returns the value of attribute render_mode.
-
#render_options ⇒ Object
Returns the value of attribute render_options.
-
#render_timeout ⇒ Object
Returns the value of attribute render_timeout.
-
#transform_props ⇒ Object
Returns the value of attribute transform_props.
Class Method Summary collapse
Instance Method Summary collapse
- #render_process_max_requests=(value) ⇒ Object
- #resolve_render_options(context = nil) ⇒ Object
- #resolved_render_mode ⇒ Object
Instance Attribute Details
#component_path_resolver ⇒ Object
Returns the value of attribute component_path_resolver.
30 31 32 |
# File 'lib/react_email_rails/configuration.rb', line 30 def component_path_resolver @component_path_resolver end |
#render_mode ⇒ Object
Returns the value of attribute render_mode.
36 37 38 |
# File 'lib/react_email_rails/configuration.rb', line 36 def render_mode @render_mode end |
#render_options ⇒ Object
Returns the value of attribute render_options.
30 31 32 |
# File 'lib/react_email_rails/configuration.rb', line 30 def @render_options end |
#render_timeout ⇒ Object
Returns the value of attribute render_timeout.
36 37 38 |
# File 'lib/react_email_rails/configuration.rb', line 36 def render_timeout @render_timeout end |
#transform_props ⇒ Object
Returns the value of attribute transform_props.
30 31 32 |
# File 'lib/react_email_rails/configuration.rb', line 30 def transform_props @transform_props end |
Class Method Details
.default ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/react_email_rails/configuration.rb', line 43 def default new.tap do |config| config.component_path_resolver = ->(mailer:, action:) { "#{mailer}/#{action}" } config.render_mode = :subprocess config. = {} config.render_timeout = DEFAULT_RENDER_TIMEOUT config.render_process_max_requests = DEFAULT_RENDER_PROCESS_MAX_REQUESTS config.transform_props = :lower_camel config.on_render_error = nil end end |
Instance Method Details
#render_process_max_requests=(value) ⇒ Object
70 71 72 73 74 75 76 |
# File 'lib/react_email_rails/configuration.rb', line 70 def render_process_max_requests=(value) unless value.nil? || (value.is_a?(Integer) && value.positive?) raise(ArgumentError, "react-email-rails render_process_max_requests must be a positive integer or nil") end @render_process_max_requests = value end |
#resolve_render_options(context = nil) ⇒ Object
86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/react_email_rails/configuration.rb', line 86 def (context = nil) value = if .respond_to?(:call) && context context.instance_exec(&) elsif .respond_to?(:call) .call else end deep_camelize_keys(value.as_json) end |
#resolved_render_mode ⇒ Object
78 79 80 81 82 83 84 |
# File 'lib/react_email_rails/configuration.rb', line 78 def resolved_render_mode return render_mode unless render_mode.is_a?(Symbol) || render_mode.is_a?(String) RENDER_MODES.fetch(render_mode.to_sym) do raise(ArgumentError, "Unknown react-email-rails render mode: #{render_mode.inspect}") end end |