Class: InertiaRails::PropsResolver

Inherits:
Object
  • Object
show all
Defined in:
lib/inertia_rails/props_resolver.rb

Overview

Resolves props and collects metadata (deferred, merge, once, scroll) for the Inertia page response.

Instance Method Summary collapse

Constructor Details

#initialize(props, evaluator:, visit: {}) ⇒ PropsResolver

Returns a new instance of PropsResolver.



7
8
9
10
11
12
13
14
15
# File 'lib/inertia_rails/props_resolver.rb', line 7

def initialize(props, evaluator:, visit: {})
  @props = props
  @evaluator = evaluator
  @partial_component = visit[:component] || false
  @partial_keys = visit[:only] || []
  @partial_except_keys = visit[:except] || []
  @reset_keys = visit[:reset] || []
  @except_once_keys = visit[:except_once] || []
end

Instance Method Details

#resolveObject

Returns [resolved_props, metadata] where metadata is a hash with keys like :deferredProps, :mergeProps, etc.



19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/inertia_rails/props_resolver.rb', line 19

def resolve
  @_deferred = {}
  @_merge = []
  @_prepend = []
  @_deep_merge = []
  @_match_on = []
  @_once = {}
  @_scroll = {}

  props = expand_dot_notation(@props)
  resolved = deep_transform_props(props)
  [resolved, ]
end