Class: Sevgi::Graphics::Content
- Inherits:
-
Object
- Object
- Sevgi::Graphics::Content
- 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
-
#content ⇒ Object
readonly
Returns the value of attribute content.
Class Method Summary collapse
-
.cdata(content) ⇒ Sevgi::Graphics::Content::CData
Builds CDATA content.
-
.contents(*args) ⇒ Array<Sevgi::Graphics::Content>
Wraps content arguments, encoding non-content values.
-
.css(content) ⇒ Sevgi::Graphics::Content::CSS
Builds CSS content.
-
.encoded(content) ⇒ Sevgi::Graphics::Content::Encoded
Builds XML text-encoded content.
-
.text(contents) ⇒ String
Joins content lines with newlines.
-
.verbatim(content) ⇒ Sevgi::Graphics::Content::Verbatim
Builds verbatim content.
Instance Method Summary collapse
-
#initialize(content) ⇒ void
constructor
Creates content.
-
#render(_renderer, _depth) ⇒ void
abstract
Renders content with a renderer.
-
#to_s ⇒ String
Returns content as a string.
Constructor Details
#initialize(content) ⇒ void
Creates content.
14 |
# File 'lib/sevgi/graphics/auxiliary/content.rb', line 14 def initialize(content) = @content = content |
Instance Attribute Details
#content ⇒ Object (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
33 |
# File 'lib/sevgi/graphics/auxiliary/content.rb', line 33 def self.cdata(...) = CData.new(...) |
.contents(*args) ⇒ Array<Sevgi::Graphics::Content>
Wraps content arguments, encoding non-content values. Non-content values are stringified by encoded content before XML text escaping.
39 |
# File 'lib/sevgi/graphics/auxiliary/content.rb', line 39 def self.contents(*args) = args.map { it.is_a?(Content) ? it : encoded(it) } |
.css(content) ⇒ Sevgi::Graphics::Content::CSS
46 |
# File 'lib/sevgi/graphics/auxiliary/content.rb', line 46 def self.css(...) = CSS.new(...) |
.encoded(content) ⇒ Sevgi::Graphics::Content::Encoded
53 |
# File 'lib/sevgi/graphics/auxiliary/content.rb', line 53 def self.encoded(...) = Encoded.new(...) |
.text(contents) ⇒ String
Joins content lines with newlines.
58 |
# File 'lib/sevgi/graphics/auxiliary/content.rb', line 58 def self.text(contents) = Array(contents).join("\n") |
.verbatim(content) ⇒ Sevgi::Graphics::Content::Verbatim
64 |
# File 'lib/sevgi/graphics/auxiliary/content.rb', line 64 def self.verbatim(...) = Verbatim.new(...) |
Instance Method Details
#render(_renderer, _depth) ⇒ void
Subclasses implement content rendering.
This method returns an undefined value.
Renders content with a renderer.
22 |
# File 'lib/sevgi/graphics/auxiliary/content.rb', line 22 def render(_renderer, _depth) = PanicError.("#{self.class}#render must be implemented") |
#to_s ⇒ String
Returns content as a string.
26 |
# File 'lib/sevgi/graphics/auxiliary/content.rb', line 26 def to_s = content.to_s |