Class: V8::Context
Class Method Summary collapse
Instance Method Summary collapse
- #[](key) ⇒ Object
- #[]=(key, value) ⇒ Object
- #eval(javascript, sourcename = '<eval>', line = 1) ⇒ Object
- #evaluate(*args) ⇒ Object
-
#initialize(opts = {}) ⇒ Context
constructor
A new instance of Context.
- #load(filename) ⇒ Object
- #open(&block) ⇒ Object
Constructor Details
#initialize(opts = {}) ⇒ Context
Returns a new instance of Context.
5 6 7 |
# File 'lib/v8/context.rb', line 5 def initialize(opts = {}) @native = C::Context.new(opts[:with]) end |
Class Method Details
.eval(source) ⇒ Object
63 64 65 |
# File 'lib/v8/context.rb', line 63 def self.eval(source) new.eval(source) end |
.open(opts = {}, &block) ⇒ Object
59 60 61 |
# File 'lib/v8/context.rb', line 59 def self.open(opts = {}, &block) new(opts).open(&block) end |
Instance Method Details
#[](key) ⇒ Object
43 44 45 46 47 |
# File 'lib/v8/context.rb', line 43 def [](key) open do To.ruby(@native.Global().Get(key.to_s)) end end |
#[]=(key, value) ⇒ Object
49 50 51 52 53 54 55 56 57 |
# File 'lib/v8/context.rb', line 49 def []=(key, value) value.tap do open do @native.Global().tap do |scope| scope.Set(key.to_s, value) end end end end |
#eval(javascript, sourcename = '<eval>', line = 1) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/v8/context.rb', line 21 def eval(javascript, sourcename = '<eval>', line = 1) if IO === javascript || StringIO === javascript javascript = javascript.read() end @native.open do @native.eval(javascript).tap do |result| raise JavascriptError.new(result) if result.kind_of?(C::Message) return To.ruby(result) end end end |
#evaluate(*args) ⇒ Object
33 34 35 |
# File 'lib/v8/context.rb', line 33 def evaluate(*args) self.eval(*args) end |
#load(filename) ⇒ Object
37 38 39 40 41 |
# File 'lib/v8/context.rb', line 37 def load(filename) File.open(filename) do |file| evaluate file, filename, 1 end end |
#open(&block) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/v8/context.rb', line 9 def open(&block) if block_given? unless @native == C::Context::GetCurrent() @native.open do block.call(self) end else block.call(self) end end end |