Class: Herb::Embedded::Adapters::MiniRacer
- Inherits:
-
EngineAdapter
- Object
- EngineAdapter
- Herb::Embedded::Adapters::MiniRacer
- Defined in:
- lib/herb/embedded/adapters/mini_racer.rb
Overview
Reference EngineAdapter backed by mini_racer (bundled V8).
Instance Method Summary collapse
- #attach(name, &block) ⇒ Object
- #call(function, *args) ⇒ Object
- #dispose ⇒ Object
-
#initialize ⇒ MiniRacer
constructor
A new instance of MiniRacer.
- #load(source) ⇒ Object
Methods inherited from EngineAdapter
Constructor Details
#initialize ⇒ MiniRacer
Returns a new instance of MiniRacer.
11 12 13 14 |
# File 'lib/herb/embedded/adapters/mini_racer.rb', line 11 def initialize super @context = ::MiniRacer::Context.new end |
Instance Method Details
#attach(name, &block) ⇒ Object
21 22 23 24 25 26 27 28 |
# File 'lib/herb/embedded/adapters/mini_racer.rb', line 21 def attach(name, &block) wrapped = proc do |*args| result = block.call(*args) result.is_a?(Binary) ? ::MiniRacer::Binary.new(result.raw) : result end @context.attach(name, wrapped) self end |
#call(function, *args) ⇒ Object
30 31 32 33 |
# File 'lib/herb/embedded/adapters/mini_racer.rb', line 30 def call(function, *args) converted = args.map { |arg| arg.is_a?(Binary) ? arg.raw.bytes : arg } @context.call(function, *converted) end |
#dispose ⇒ Object
35 36 37 |
# File 'lib/herb/embedded/adapters/mini_racer.rb', line 35 def dispose @context.dispose end |
#load(source) ⇒ Object
16 17 18 19 |
# File 'lib/herb/embedded/adapters/mini_racer.rb', line 16 def load(source) @context.eval(source) self end |