Class: Weft::Resolver

Inherits:
Object
  • Object
show all
Defined in:
lib/weft/resolver.rb

Overview

Maps request params (string keys/values) to component attribute hashes. Coerces types based on attribute defaults. Future home of the reification step (wire primitives → rich objects).

Instance Method Summary collapse

Instance Method Details

#resolve(component_class, params) ⇒ Object



8
9
10
11
12
13
# File 'lib/weft/resolver.rb', line 8

def resolve(component_class, params)
  component_class.attributes.each_with_object({}) do |(name, meta), result|
    raw = params[name.to_s] || params[name]
    result[name] = raw.nil? ? meta[:default] : coerce(raw, meta[:default])
  end
end