class TrianglePattern::SvgImage

Attributes

height[R]
svg_string[R]
width[R]

Public Class Methods

as_comment(str) click to toggle source
# File lib/triangle_pattern/svg_image.rb, line 77
def self.as_comment(str)
  "<!-- #{str} -->"
end
new() click to toggle source
# File lib/triangle_pattern/svg_image.rb, line 13
def initialize
  @width      = 100
  @height     = 100
  @svg_string = ''
end

Public Instance Methods

<<(svg) click to toggle source
# File lib/triangle_pattern/svg_image.rb, line 47
def <<(svg)
  svg_string << svg.body
end
<=>(other) click to toggle source
# File lib/triangle_pattern/svg_image.rb, line 81
def <=>(other)
  to_s <=> other.to_s
end
body() click to toggle source
# File lib/triangle_pattern/svg_image.rb, line 43
def body
  svg_string
end
group(elements, args = {}) click to toggle source
# File lib/triangle_pattern/svg_image.rb, line 55
def group(elements, args = {})
  svg_string << %(<g #{write_args(args)}>)
  elements.each { |e| eval e }
  svg_string << %(</g>)
end
height=(height) click to toggle source
# File lib/triangle_pattern/svg_image.rb, line 23
def height=(height)
  @height = height.floor
end
include?(string) click to toggle source
# File lib/triangle_pattern/svg_image.rb, line 27
def include?(string)
  body.include? string
end
path(str, args = {}) click to toggle source
# File lib/triangle_pattern/svg_image.rb, line 51
def path(str, args = {})
  svg_string << %(<path d="#{str}" #{write_args(args)} />)
end
svg_closer() click to toggle source
# File lib/triangle_pattern/svg_image.rb, line 35
def svg_closer
  '</svg>'
end
svg_header() click to toggle source
# File lib/triangle_pattern/svg_image.rb, line 31
def svg_header
  %(<svg xmlns="http://www.w3.org/2000/svg" width="#{@width}" height="#{@height}">)
end
to_s() click to toggle source
# File lib/triangle_pattern/svg_image.rb, line 39
def to_s
  svg_header + svg_string + svg_closer
end
width=(width) click to toggle source
# File lib/triangle_pattern/svg_image.rb, line 19
def width=(width)
  @width = width.floor
end
write_args(args) click to toggle source
# File lib/triangle_pattern/svg_image.rb, line 61
def write_args(args)
  str = ''
  args.each do |key, value|
    if value.is_a?(Hash)
      str << %(#{key}=")
      value.each do |k, v|
        str << %(#{k}:#{v};)
      end
      str << %(" )
    else
      str << %(#{key}="#{value}" )
    end
  end
  str
end