Module: D3::Native::Helpers
- Defined in:
- lib/opal/d3/native.rb
Instance Method Summary collapse
- #alias_native_chainable(ruby_name, js_name = ruby_name) ⇒ Object
- #alias_native_new(ruby_name, js_name = ruby_name) ⇒ Object
-
#attribute_d3(ruby_name, js_name = ruby_name) ⇒ Object
This provides ruby style and jquery style interfaces: obj.foo obj.foo = 1; obj.bar = 2 obj.foo(1).bar(2).
-
#attribute_d3_block(ruby_name, js_name = ruby_name) ⇒ Object
This provides ruby style and jquery style interfaces, and also block interface: obj.foo obj.foo = 1; obj.bar = 2 obj.foo(1).bar(2).buzz….
Instance Method Details
#alias_native_chainable(ruby_name, js_name = ruby_name) ⇒ Object
66 67 68 69 70 71 72 73 |
# File 'lib/opal/d3/native.rb', line 66 def alias_native_chainable(ruby_name, js_name=ruby_name) eval " def \#{ruby_name}(*args)\n @native.JS.\#{js_name}(*args)\n self\n end\n EOF\nend\n" |
#alias_native_new(ruby_name, js_name = ruby_name) ⇒ Object
75 76 77 78 79 80 81 |
# File 'lib/opal/d3/native.rb', line 75 def alias_native_new(ruby_name, js_name=ruby_name) eval " def \#{ruby_name}(*args)\n self.class.new @native.JS.\#{js_name}(*args)\n end\n EOF\nend\n" |
#attribute_d3(ruby_name, js_name = ruby_name) ⇒ Object
This provides ruby style and jquery style interfaces: obj.foo obj.foo = 1; obj.bar = 2 obj.foo(1).bar(2)
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/opal/d3/native.rb', line 20 def attribute_d3(ruby_name, js_name=ruby_name) eval " def \#{ruby_name}(new_value=`undefined`)\n if `new_value !== undefined`\n new_value = `null` if new_value == nil\n @native.JS.\#{js_name}(new_value)\n self\n else\n value = @native.JS.\#{js_name}\n `value === null ? nil : value`\n end\n end\n def \#{ruby_name}=(new_value)\n new_value = `null` if new_value == nil\n @native.JS.\#{js_name}(new_value)\n end\n EOF\nend\n" |
#attribute_d3_block(ruby_name, js_name = ruby_name) ⇒ Object
This provides ruby style and jquery style interfaces, and also block interface: obj.foo obj.foo = 1; obj.bar = 2 obj.foo(1).bar(2).buzz…
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/opal/d3/native.rb', line 44 def attribute_d3_block(ruby_name, js_name=ruby_name) eval " def \#{ruby_name}(new_value=`undefined`, &block)\n if block_given?\n @native.JS.\#{js_name}(block)\n self\n elsif `new_value !== undefined`\n new_value = `null` if new_value == nil\n @native.JS.\#{js_name}(new_value)\n self\n else\n value = @native.JS.\#{js_name}\n `value === null ? nil : value`\n end\n end\n def \#{ruby_name}=(new_value)\n new_value = `null` if new_value == nil\n @native.JS.\#{js_name}(new_value)\n end\n EOF\nend\n" |