Class: InertiaRails::PropEvaluator

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

Overview

Evaluates a single prop value by dispatching on its type.

Instance Method Summary collapse

Constructor Details

#initialize(controller, **context) ⇒ PropEvaluator

Returns a new instance of PropEvaluator.



6
7
8
9
# File 'lib/inertia_rails/prop_evaluator.rb', line 6

def initialize(controller, **context)
  @controller = controller
  @context = context
end

Instance Method Details

#call(prop) ⇒ Object



11
12
13
14
15
16
17
18
19
20
# File 'lib/inertia_rails/prop_evaluator.rb', line 11

def call(prop)
  case prop
  when BaseProp
    prop.call(@controller, **@context)
  when Proc
    @controller.instance_exec(&prop)
  else
    prop
  end
end