Module: Phlex::Sorbet::ClassMethods
- Extended by:
- T::Sig
- Defined in:
- lib/phlex/sorbet/class_methods.rb
Overview
Class methods added to components that include Phlex::Sorbet
Instance Method Summary collapse
Instance Method Details
#build_props(**kwargs) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/phlex/sorbet/class_methods.rb', line 40 def build_props(**kwargs) klass = props_class unless klass return nil if kwargs.empty? raise PropsNotDefinedError, "#{name} received props (#{kwargs.keys.inspect}) but does not define a Props class" end deserialize_props(klass, kwargs) rescue InvalidPropsError, PropsNotDefinedError raise rescue StandardError => e raise InvalidPropsError, "Invalid props for #{name}: #{e.}" end |
#props_class ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/phlex/sorbet/class_methods.rb', line 16 def props_class return @props_class if defined?(@props_class) @props_class = T.let( begin klass = const_defined?(:Props) ? const_get(:Props) : nil validate_props_class!(klass) if klass klass end, T.nilable(T.class_of(T::Struct)), ) end |