[フレーム]

Module: Kernel

Defined in:
opal/stdlib/pp.rb,
opal/stdlib/native.rb,
opal/stdlib/pathname.rb,
opal/stdlib/opal-parser.rb,
opal/stdlib/nodejs/kernel.rb,
opal/stdlib/nodejs/require.rb

Constant Summary

NODE_REQUIRE =
`require`

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.pp(*objs) ⇒ Object

6
7
8
9
10
11
# File 'opal/stdlib/pp.rb', line 6
def pp(*objs)
 objs.each {|obj|
 PP .pp (obj)
 }
 objs.size <= 1 ? objs.first : objs
end

Instance Method Details

#__prepare_require__(path) ⇒ Object

4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'opal/stdlib/nodejs/require.rb', line 4
def __prepare_require__(path)
 name = `Opal.normalize_loadable_path(#{path})`
 full_path = name.end_with?('.rb') ? name : name+'.rb'
 if `!Opal.modules[#{name}]`
 ruby = File .read (full_path)
 compiler = Opal::Compiler.new(ruby, requirable: true, file: name)
 js = compiler.compile
 compiler.requires.each do |sub_path|
 __prepare_require__(sub_path)
 end
 `eval(#{js})`
 end
 name
rescue => e
 raise [path, name, full_path].inspect+e.message
end

#_ArrayObject

144
# File 'opal/stdlib/native.rb', line 144
alias_method :_Array, :Array

#Array(object, *args, &block) ⇒ Object

146
147
148
149
150
151
# File 'opal/stdlib/native.rb', line 146
def Array(object, *args, &block)
 if native?(object)
 return Native ::Array.new(object, *args, &block).to_a
 end
 return _Array(object)
end

#callerObject

6
7
8
9
10
11
12
13
14
15
16
17
# File 'opal/stdlib/nodejs/kernel.rb', line 6
def caller
 %x{
 var stack;
 try {
 var err = Error("my error");
 throw err;
 } catch(e) {
 stack = e.stack;
 }
 return stack.$split("\n").slice(3);
 }
end

#eval(str) ⇒ Object

7
8
9
10
# File 'opal/stdlib/opal-parser.rb', line 7
def eval(str)
 code = Opal.compile str, file: '(eval)'
 `eval(#{code})`
end

#load(path) ⇒ Object

27
28
29
# File 'opal/stdlib/nodejs/require.rb', line 27
def load path
 `Opal.load(#{__prepare_require__(path)})`
end

#Native(obj) ⇒ Object

134
135
136
137
138
139
140
141
142
# File 'opal/stdlib/native.rb', line 134
def Native(obj)
 if `#{obj} == null`
 nil
 elsif native?(obj)
 Native::Object.new(obj)
 else
 obj
 end
end

#native?(value) ⇒ Boolean

Returns:

130
131
132
# File 'opal/stdlib/native.rb', line 130
def native?(value)
 `value == null || !value.$$class`
end

#node_require(path) ⇒ Object

19
20
21
# File 'opal/stdlib/nodejs/kernel.rb', line 19
def node_require(path)
 `#{NODE_REQUIRE }(#{path.to_str})`
end

#Pathname(path) ⇒ Object

52
53
54
# File 'opal/stdlib/pathname.rb', line 52
def Pathname(path)
 Pathname.new(path)
end

#pretty_inspectObject

2
3
4
# File 'opal/stdlib/pp.rb', line 2
def pretty_inspect
 inspect
end

#require(path) ⇒ Object

23
24
25
# File 'opal/stdlib/nodejs/require.rb', line 23
def require(path)
 `Opal.require(#{__prepare_require__(path)})`
end

#require_remote(url) ⇒ Object

12
13
14
15
16
17
18
19
# File 'opal/stdlib/opal-parser.rb', line 12
def require_remote url
 %x{
 var r = new XMLHttpRequest();
 r.open("GET", url, false);
 r.send('');
 }
 eval `r.responseText`
end

AltStyle によって変換されたページ (->オリジナル) /