Class: Preact::NativeConstantWrapper
- Includes:
- Native::Wrapper
- Defined in:
- lib/preact/native_constant_wrapper.rb
Instance Method Summary collapse
-
#initialize(native, const_name) ⇒ NativeConstantWrapper
constructor
A new instance of NativeConstantWrapper.
- #method_missing(name, *args, &block) ⇒ Object
Constructor Details
#initialize(native, const_name) ⇒ NativeConstantWrapper
Returns a new instance of NativeConstantWrapper.
5 6 7 8 |
# File 'lib/preact/native_constant_wrapper.rb', line 5 def initialize(native, const_name) @native = native @const_name = const_name end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args, &block) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/preact/native_constant_wrapper.rb', line 10 def method_missing(name, *args, &block) %x{ if (name[0] === 'u' && name[1] === 's' && name[2] === 'e') { if (name.indexOf('_') > 0) { name = Opal.Preact.lower_camelize(name); } return #@native[name].call(this, args); } var component = null; var component_type = typeof #@native[name]; if (component_type === "function" || component_type === "object") { component = #@native[name]; } if (component) { return Opal.Preact.internal_prepare_args_and_render(component, args, block); } else { #{Isomorfeus.raise_error(error_class: NameError, message: "No such native Component #@const_name.#{name}")}; } } end |