Module: Sevgi

Extended by:
Toplevel
Defined in:
lib/sevgi.rb,
lib/sevgi/version.rb,
lib/sevgi/executor.rb,
lib/sevgi/toplevel.rb,
lib/sevgi/binaries/sevgi.rb,
lib/sevgi/executor/error.rb,
lib/sevgi/executor/scope.rb,
lib/sevgi/executor/source.rb,
lib/sevgi/toplevel/derender.rb,
lib/sevgi/toplevel/executor.rb,
lib/sevgi/toplevel/function.rb,
lib/sevgi/toplevel/geometry.rb,
lib/sevgi/toplevel/graphics.rb,
lib/sevgi/toplevel/sundries.rb

Overview

Full top-level API for Sevgi library and script consumers.

Including this module in a class or module installs DSL methods such as Paper, Load, and Grid, plus convenience constants such as F, Geometry, Origin, and Export. Extending a module does the same. Extending an ordinary object installs the methods only and does not write promoted constants to Object.

Examples:

Include the DSL in an object

class Drawing
  include Sevgi
end

Defined Under Namespace

Modules: Binaries, Toplevel Classes: Executor

Constant Summary collapse

VERSION =

Current version of the Sevgi top-level gem.

"0.94.0"

Class Method Summary collapse

Methods included from Toplevel

Decompile, Derender, Grid, Load, Mixin, Paper, Paper!

Class Method Details

.execute(*args, **kwargs) ⇒ Sevgi::Executor::Scope?

Note:

Required-library load failures are captured as Sevgi::Executor::Error on the returned scope.

Note:

Reentrant and concurrent calls keep independent executor scope stacks per fiber.

Executes Sevgi script source with the full top-level DSL installed.

Parameters:

Returns:

See Also:



17
# File 'lib/sevgi/toplevel/executor.rb', line 17

def self.execute(*args, **kwargs) = Executor.execute(*args, **kwargs, &BootBlock)

.execute_file(*args, **kwargs) ⇒ Sevgi::Executor::Scope?

Note:

File-read and required-library load failures are captured as Sevgi::Executor::Error on the returned scope.

Note:

Reentrant and concurrent calls keep independent executor scope stacks per fiber.

Executes a Sevgi script file with the full top-level DSL installed.

Parameters:

Returns:

See Also:



26
# File 'lib/sevgi/toplevel/executor.rb', line 26

def self.execute_file(*args, **kwargs) = Executor.execute_file(*args, **kwargs, &BootBlock)

.extended(base) ⇒ void

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Note:

Promoted constants are written only when base is a module or class.

This method returns an undefined value.

Installs the full toplevel DSL into an extending object or module.

Parameters:

  • base (Object)

    the receiver extended with the DSL methods



57
58
59
60
# File 'lib/sevgi.rb', line 57

def self.extended(base)
  super
  base.extend(Toplevel)
end

.included(base) ⇒ void

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

This method returns an undefined value.

Installs the full toplevel DSL into an including class or module.

Parameters:

  • base (Module)

    the class or module receiving the DSL methods



47
48
49
50
# File 'lib/sevgi.rb', line 47

def self.included(base)
  super
  base.include(Toplevel)
end