Module: Sevgi::SVG

Defined in:
lib/sevgi/svg.rb

Overview

Public SVG facade installed by require "sevgi".

Capitalized methods are SVG DSL operations: SVG.Canvas creates a canvas, SVG.Document defines a document profile, and SVG.Paper registers a paper size. Double-colon names are Ruby constants and types, such as Canvas and Document. The global SVG(...) method builds a drawing; there is intentionally no stuttering SVG.SVG(...) form.

Lowercase constructors remain on Graphics for focused component use. Script execution belongs to execute and is not part of this SVG-domain facade.

Examples:

Compose a drawing through the facade

SVG.Paper 85, 55, :card
canvas = SVG.Canvas :card, margins: 4
profile = SVG.Document attributes: {viewBox: "0 0 85 55"}

drawing = SVG profile, canvas do
  rect width: 85, height: 55, rx: 3
end

drawing.Render

Distinguish an operation from its result type

canvas = SVG.Canvas width: 24, height: 24, unit: :px
canvas.is_a?(SVG::Canvas) #=> true

See Also:

Constant Summary collapse

Attributes =

SVG attribute collection and normalization API.

Graphics::Attributes
Canvas =

Canvas value type returned by Canvas.

Graphics::Canvas
Content =

Explicit SVG content serialization types.

Graphics::Content
Document =

Document profiles and document classes.

Graphics::Document
Element =

Base SVG/XML element type.

Graphics::Element
LintError =

Duplicate-id and structural lint failure.

Graphics::LintError
Margin =

CSS-like canvas margin value.

Graphics::Margin
Mixtures =

Graphics mixtures available for document composition.

Graphics::Mixtures
Module =

Contract for one callable drawing module.

Graphics::Module
Modules =

Recursive contract for namespaces of callable drawing modules.

Graphics::Modules
Paper =

Immutable paper-size value and profile registry.

Graphics::Paper
VERSION =

Current Sevgi toolkit version.

Sevgi::VERSION

Class Method Summary collapse

Class Method Details

.CanvasSevgi::Graphics::Canvas

Builds a canvas from a paper profile or explicit dimensions.

Returns:

  • (Sevgi::Graphics::Canvas)

    canvas value

See Also:



60
# File 'lib/sevgi/svg.rb', line 60

def self.Canvas(...) = Sevgi.Canvas(...)

.DecompileSevgi::Derender::Node

Converts inline SVG/XML into an immutable Derender node.

Returns:

  • (Sevgi::Derender::Node)

    selected node

See Also:



65
# File 'lib/sevgi/svg.rb', line 65

def self.Decompile(...) = Sevgi.Decompile(...)

.DecompileFileSevgi::Derender::Node

Converts an SVG/XML file into an immutable Derender node.

Returns:

  • (Sevgi::Derender::Node)

    selected node

See Also:



70
# File 'lib/sevgi/svg.rb', line 70

def self.DecompileFile(...) = Sevgi.DecompileFile(...)

.DerenderString

Converts inline SVG/XML into formatted Sevgi DSL source.

Returns:

  • (String)

    formatted Sevgi DSL source

See Also:



75
# File 'lib/sevgi/svg.rb', line 75

def self.Derender(...) = Sevgi.Derender(...)

.DerenderFileString

Converts an SVG/XML file into formatted Sevgi DSL source.

Returns:

  • (String)

    formatted Sevgi DSL source

See Also:



80
# File 'lib/sevgi/svg.rb', line 80

def self.DerenderFile(...) = Sevgi.DerenderFile(...)

.DocumentClass

Defines, validates, or looks up a document profile.

Returns:

  • (Class)

    document class

See Also:



85
# File 'lib/sevgi/svg.rb', line 85

def self.Document(...) = Sevgi.Document(...)

.Document!Class

Defines or replaces a document profile.

Returns:

  • (Class)

    document class

See Also:



90
# File 'lib/sevgi/svg.rb', line 90

def self.Document!(...) = Sevgi.Document!(...)

.EvaluateSevgi::Graphics::Element?

Includes an inline SVG/XML node under a graphics element.

Returns:

  • (Sevgi::Graphics::Element, nil)

    included element, or nil when no output is produced

See Also:



95
# File 'lib/sevgi/svg.rb', line 95

def self.Evaluate(...) = Sevgi.Evaluate(...)

.EvaluateChildrenArray<Sevgi::Graphics::Element>

Includes only an inline SVG/XML node's children under a graphics element.

Returns:

  • (Array<Sevgi::Graphics::Element>)

    immutable included-child snapshot

See Also:



100
# File 'lib/sevgi/svg.rb', line 100

def self.EvaluateChildren(...) = Sevgi.EvaluateChildren(...)

.EvaluateChildrenFileArray<Sevgi::Graphics::Element>

Includes only an SVG/XML file node's children under a graphics element.

Returns:

  • (Array<Sevgi::Graphics::Element>)

    immutable included-child snapshot

See Also:



105
# File 'lib/sevgi/svg.rb', line 105

def self.EvaluateChildrenFile(...) = Sevgi.EvaluateChildrenFile(...)

.EvaluateFileSevgi::Graphics::Element?

Includes an SVG/XML file node under a graphics element.

Returns:

  • (Sevgi::Graphics::Element, nil)

    included element, or nil when no output is produced

See Also:



110
# File 'lib/sevgi/svg.rb', line 110

def self.EvaluateFile(...) = Sevgi.EvaluateFile(...)

.GridSevgi::Sundries::Grid

Fits a drawable grid to a graphics canvas.

Returns:

  • (Sevgi::Sundries::Grid)

    fitted grid

See Also:



115
# File 'lib/sevgi/svg.rb', line 115

def self.Grid(...) = Sevgi.Grid(...)

.LoadArray<String>

Loads nested .sevgi files through the active executor scope.

Returns:

  • (Array<String>)

    requested file names

See Also:



120
# File 'lib/sevgi/svg.rb', line 120

def self.Load(...) = Sevgi.Load(...)

.MixinModule?

Extends a document profile with a named or anonymous graphics mixture.

Returns:

  • (Module, nil)

    anonymous mixture when supplied, otherwise nil

See Also:



125
# File 'lib/sevgi/svg.rb', line 125

def self.Mixin(...) = Sevgi.Mixin(...)

.PaperSymbol, String

Defines or validates a named paper profile.

Returns:

  • (Symbol, String)

    original paper profile name

See Also:



130
# File 'lib/sevgi/svg.rb', line 130

def self.Paper(...) = Sevgi.Paper(...)

.Paper!Symbol, String

Defines or overwrites a named paper profile.

Returns:

  • (Symbol, String)

    original paper profile name

See Also:



135
# File 'lib/sevgi/svg.rb', line 135

def self.Paper!(...) = Sevgi.Paper!(...)