File tree 3 files changed +60
-0
lines changed
3 files changed +60
-0
lines changed Original file line number Diff line number Diff line change
1
+ require 'native'
2
+
3
+ describe 'Native exposure' do
4
+ describe Class do
5
+ describe '#native_alias' do
6
+ it 'exposes a method to javascript' do
7
+ c = Class . new do
8
+ def ruby_method
9
+ :ruby
10
+ end
11
+
12
+ native_alias :rubyMethod , :ruby_method
13
+ end
14
+
15
+ `#{ c . new } .rubyMethod()` . should == :ruby
16
+ end
17
+ end
18
+
19
+ describe '#native_class' do
20
+ it 'exposes a Class on the JS global object' do
21
+ c = Class . new do
22
+ def self . name
23
+ 'Pippo'
24
+ end
25
+
26
+ native_class
27
+ end
28
+
29
+ `Pippo` . should == c
30
+ end
31
+ end
32
+ end
33
+ end
Original file line number Diff line number Diff line change @@ -479,5 +479,19 @@ def to_n
479
479
end
480
480
end
481
481
482
+ class Module
483
+ def native_module
484
+ `Opal.global[#{ self . name } ] = #{ self } `
485
+ end
486
+ end
487
+
488
+ class Class
489
+ def native_alias ( jsid , mid )
490
+ `#{ self } ._proto[#{ jsid } ] = #{ self } ._proto['$' + #{ mid } ]`
491
+ end
492
+
493
+ alias native_class native_module
494
+ end
495
+
482
496
# native global
483
497
$$ = $global = Native ( `Opal.global` )
Original file line number Diff line number Diff line change
1
+ class Module
2
+ def native_module
3
+ `Opal.global[#{ self . name } ] = #{ self } `
4
+ end
5
+ end
6
+
7
+ class Class
8
+ def native_alias ( jsid , mid )
9
+ `#{ self } ._proto[#{ jsid } ] = #{ self } ._proto['$' + #{ mid } ]`
10
+ end
11
+
12
+ alias native_class native_module
13
+ end
You can’t perform that action at this time.
2 commit comments
meh commentedon Nov 14, 2013
You forgot to delete the old file.
elia commentedon Nov 18, 2013
ugh, sorry, thanks for the fix :)