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"- 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
- DEFAULT_VERIFY_RENDER_ON_BOOT =
false
Instance Attribute Summary collapse
-
#component_path_resolver ⇒ Object
Returns the value of attribute component_path_resolver.
-
#on_render_error ⇒ Object
Returns the value of attribute on_render_error.
-
#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
- #verify_render_on_boot? ⇒ Boolean
Instance Attribute Details
#component_path_resolver ⇒ Object
Returns the value of attribute component_path_resolver.
31 32 33 |
# File 'lib/react_email_rails/configuration.rb', line 31 def component_path_resolver @component_path_resolver end |
#on_render_error ⇒ Object
Returns the value of attribute on_render_error.
31 32 33 |
# File 'lib/react_email_rails/configuration.rb', line 31 def on_render_error @on_render_error end |
#render_mode ⇒ Object
Returns the value of attribute render_mode.
38 39 40 |
# File 'lib/react_email_rails/configuration.rb', line 38 def render_mode @render_mode end |
#render_options ⇒ Object
Returns the value of attribute render_options.
31 32 33 |
# File 'lib/react_email_rails/configuration.rb', line 31 def @render_options end |
#render_timeout ⇒ Object
Returns the value of attribute render_timeout.
38 39 40 |
# File 'lib/react_email_rails/configuration.rb', line 38 def render_timeout @render_timeout end |
#transform_props ⇒ Object
Returns the value of attribute transform_props.
31 32 33 |
# File 'lib/react_email_rails/configuration.rb', line 31 def transform_props @transform_props end |
Class Method Details
.default ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/react_email_rails/configuration.rb', line 45 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 config.verify_render_on_boot = DEFAULT_VERIFY_RENDER_ON_BOOT end end |
Instance Method Details
#render_process_max_requests=(value) ⇒ Object
77 78 79 80 81 82 83 |
# File 'lib/react_email_rails/configuration.rb', line 77 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
93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/react_email_rails/configuration.rb', line 93 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
85 86 87 88 89 90 91 |
# File 'lib/react_email_rails/configuration.rb', line 85 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 |
#verify_render_on_boot? ⇒ Boolean
59 60 61 |
# File 'lib/react_email_rails/configuration.rb', line 59 def verify_render_on_boot? verify_render_on_boot.respond_to?(:call) ? !!verify_render_on_boot.call : !!verify_render_on_boot end |