Class: Herb::Embedded::EngineAdapter

Inherits:
Object
  • Object
show all
Defined in:
lib/herb/embedded/engine_adapter.rb

Overview

Port between Ruby and whichever JavaScript engine executes Herb's rule code. Concrete engines (MiniRacer, and later QuickJS/Wasmtime) implement this interface; callers depend only on it.

Direct Known Subclasses

Adapters::MiniRacer

Defined Under Namespace

Classes: Binary

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.binary(bytes) ⇒ Object



14
15
16
# File 'lib/herb/embedded/engine_adapter.rb', line 14

def self.binary(bytes)
  Binary.new(bytes)
end

Instance Method Details

#attach(name) ⇒ Object

Raises:

  • (NotImplementedError)


22
23
24
# File 'lib/herb/embedded/engine_adapter.rb', line 22

def attach(name, &)
  raise NotImplementedError, "#{self.class} must implement #attach"
end

#call(function, *args) ⇒ Object

Raises:

  • (NotImplementedError)


26
27
28
# File 'lib/herb/embedded/engine_adapter.rb', line 26

def call(function, *args)
  raise NotImplementedError, "#{self.class} must implement #call"
end

#disposeObject

Raises:

  • (NotImplementedError)


30
31
32
# File 'lib/herb/embedded/engine_adapter.rb', line 30

def dispose
  raise NotImplementedError, "#{self.class} must implement #dispose"
end

#load(source) ⇒ Object

Raises:

  • (NotImplementedError)


18
19
20
# File 'lib/herb/embedded/engine_adapter.rb', line 18

def load(source)
  raise NotImplementedError, "#{self.class} must implement #load"
end