Skip to content

Commit 2aacfed

Browse files
committed
perf: reduce Configuration instances to the bare minimum
1 parent ce859b2 commit 2aacfed

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

lib/inertia_rails/configuration.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,12 @@ def merge(config)
5353
Configuration.new(**@options.merge(config.options))
5454
end
5555

56+
# Internal: Finalizes the configuration for a specific controller.
57+
def with_defaults(config)
58+
@options = config.options.merge(@options)
59+
freeze
60+
end
61+
5662
OPTION_NAMES.each do |option|
5763
define_method(option) {
5864
evaluate_option @options[option]

lib/inertia_rails/controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ def use_inertia_instance_props
4040
def _inertia_configuration
4141
@_inertia_configuration ||= begin
4242
config = superclass.try(:_inertia_configuration) || ::InertiaRails.configuration
43-
@inertia_config ? config.merge(@inertia_config.freeze).freeze : config
43+
@inertia_config&.with_defaults(config) || config
4444
end
4545
end
4646

0 commit comments

Comments
 (0)