Module: Native::Helpers
- Defined in:
- opal/stdlib/native.rb
Instance Method Summary collapse
- 
  
    
      #alias_native(new, old = new, as: nil)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Public: Exposes a native JavaScript method to Ruby. 
- #native_accessor(*names) ⇒ Object
- #native_reader(*names) ⇒ Object
- #native_writer(*names) ⇒ Object
Instance Method Details
#alias_native(new, old = new, as: nil) ⇒ Object
Public: Exposes a native JavaScript method to Ruby
new - The name of the newly created method.
old - The name of the native JavaScript method to be exposed.
      If the name ends with "=" (e.g. foo=) it will be interpreted as
      a property setter. (default: the value of "new")
as  - If provided the values returned by the original method will be
      returned as instances of the passed class. The class passed to "as"
      is expected to accept a native JavaScript value.
Examples
class Element include Native::Helpers
alias_native :add_class, :addClass
alias_native :show
alias_native :hide
def initialize(selector)
  @native = `$(#{selector})`
end
end
titles = Element.new('h1') titles.add_class :foo titles.hide titles.show
| 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 | # File 'opal/stdlib/native.rb', line 138 def alias_native(new, old = new, as: nil) if old.end_with? ?= define_method new do |value| `#@native[#{old[0 .. -2]}] = #{Native.convert(value)}` value end else if as define_method new do |*args, &block| if value = Native.call(@native, old, *args, &block) as.new(value.to_n) end end else define_method new do |*args, &block| Native.call(@native, old, *args, &block) end end end end | 
#native_accessor(*names) ⇒ Object
| 176 177 178 179 | # File 'opal/stdlib/native.rb', line 176 def native_accessor(*names) native_reader(*names) native_writer(*names) end |