Module: Sevgi::Graphics::Mixtures

Defined in:
lib/sevgi/graphics/mixtures.rb,
lib/sevgi/graphics/mixtures/rdf.rb,
lib/sevgi/graphics/mixtures/call.rb,
lib/sevgi/graphics/mixtures/core.rb,
lib/sevgi/graphics/mixtures/lint.rb,
lib/sevgi/graphics/mixtures/save.rb,
lib/sevgi/graphics/mixtures/tile.rb,
lib/sevgi/graphics/mixtures/hatch.rb,
lib/sevgi/graphics/mixtures/export.rb,
lib/sevgi/graphics/mixtures/render.rb,
lib/sevgi/graphics/mixtures/include.rb,
lib/sevgi/graphics/mixtures/symbols.rb,
lib/sevgi/graphics/mixtures/identify.rb,
lib/sevgi/graphics/mixtures/inkscape.rb,
lib/sevgi/graphics/mixtures/validate.rb,
lib/sevgi/graphics/mixtures/wrappers.rb,
lib/sevgi/graphics/mixtures/duplicate.rb,
lib/sevgi/graphics/mixtures/polyfills.rb,
lib/sevgi/graphics/mixtures/transform.rb,
lib/sevgi/graphics/mixtures/underscore.rb

Overview

Mixins that extend document classes with DSL helper methods.

Defined Under Namespace

Modules: Call, Core, Duplicate, Export, Hatch, Identify, Include, Inkscape, Lint, Polyfills, RDF, Render, Save, Symbols, Tile, Transform, Underscore, Validate, Wrappers

Class Method Summary collapse

Class Method Details

.mixin(mod, document = Graphics::Document::Base, &block) ⇒ Module? .mixin(document = Graphics::Document::Base, &block) ⇒ Module

Overloads:

  • .mixin(mod, document = Graphics::Document::Base, &block) ⇒ Module?

    Includes a named mixture and optional anonymous extension into a document class.

    Parameters:

    • mod (Symbol, String)

      mixture constant name

    • document (Class) (defaults to: Graphics::Document::Base)

      document class receiving the mixture

    Returns:

    • (Module, nil)

      optional anonymous mixture when a block is given

    Raises:

    • (NameError)

      when the mixture does not exist

  • .mixin(document = Graphics::Document::Base, &block) ⇒ Module

    Includes only an anonymous extension into a document class.

    Parameters:

    • document (Class) (defaults to: Graphics::Document::Base)

      document class receiving the mixture

    Returns:

    • (Module)

      anonymous mixture

    Raises:

    • (Sevgi::ArgumentError)

      when no named mixture or block is given



18
19
20
21
22
23
24
# File 'lib/sevgi/graphics/mixtures.rb', line 18

def self.mixin(mod = Undefined, document = Graphics::Document::Base, &block)
  mod, document = normalize(mod, document, block)
  ArgumentError.("Mixture name or block required") if mod == Undefined && !block

  document.mixture(mod) unless mod == Undefined
  include_anonymous(document, &block) if block
end