Class: Sevgi::Graphics::Content

Inherits:
Object
  • Object
show all
Defined in:
lib/sevgi/graphics/auxiliary/content.rb

Overview

Renderable text-like content inside an SVG element.

Defined Under Namespace

Classes: CData, CSS, Encoded, Verbatim

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(content) ⇒ void

Creates content.

Parameters:

  • content (Object)

    wrapped content



14
# File 'lib/sevgi/graphics/auxiliary/content.rb', line 14

def initialize(content) = @content = content

Instance Attribute Details

#contentObject (readonly)

Returns the value of attribute content.



9
10
11
# File 'lib/sevgi/graphics/auxiliary/content.rb', line 9

def content
  @content
end

Class Method Details

.cdata(content) ⇒ Sevgi::Graphics::Content::CData

Builds CDATA content.

Parameters:

  • content (Object)

    wrapped content

Returns:



32
# File 'lib/sevgi/graphics/auxiliary/content.rb', line 32

def self.cdata(...) = CData.new(...)

.contents(*args) ⇒ Array<Sevgi::Graphics::Content>

Wraps content arguments, encoding non-content values.

Parameters:

  • args (Array<Object>)

    content arguments

Returns:



37
# File 'lib/sevgi/graphics/auxiliary/content.rb', line 37

def self.contents(*args) = args.map { it.is_a?(Content) ? it : encoded(it) }

.css(content) ⇒ Sevgi::Graphics::Content::CSS

Builds CSS content.

Parameters:

  • content (Hash)

    CSS rules

Returns:

Raises:

  • (Sevgi::ArgumentError)

    when content is not a hash



44
# File 'lib/sevgi/graphics/auxiliary/content.rb', line 44

def self.css(...) = CSS.new(...)

.encoded(content) ⇒ Sevgi::Graphics::Content::Encoded

Builds XML text-encoded content.

Parameters:

  • content (Object)

    wrapped content

Returns:



50
# File 'lib/sevgi/graphics/auxiliary/content.rb', line 50

def self.encoded(...) = Encoded.new(...)

.text(contents) ⇒ String

Joins content lines with newlines.

Parameters:

  • contents (Object, Array<Object>)

    content lines

Returns:

  • (String)


55
# File 'lib/sevgi/graphics/auxiliary/content.rb', line 55

def self.text(contents) = Array(contents).join("\n")

.verbatim(content) ⇒ Sevgi::Graphics::Content::Verbatim

Builds verbatim content.

Parameters:

  • content (Object)

    wrapped content

Returns:



61
# File 'lib/sevgi/graphics/auxiliary/content.rb', line 61

def self.verbatim(...) = Verbatim.new(...)

Instance Method Details

#render(_renderer, _depth) ⇒ void

This method is abstract.

Subclasses implement content rendering.

This method returns an undefined value.

Renders content with a renderer.

Parameters:

  • _renderer (Object)

    renderer receiving output

  • _depth (Integer)

    current render depth

Raises:

  • (Sevgi::PanicError)

    when a subclass does not implement render



22
# File 'lib/sevgi/graphics/auxiliary/content.rb', line 22

def render(_renderer, _depth) = PanicError.("#{self.class}#render must be implemented")

#to_sString

Returns content as a string.

Returns:

  • (String)


26
# File 'lib/sevgi/graphics/auxiliary/content.rb', line 26

def to_s = content.to_s