Clone
class Sketch < Valuable
has_value :id
has_value :klass
has_value :height
has_value :width
has_value :baseProfile, :alias => :base_profile
has_value :doctype
has_value :data, :default => {}
def draw(canvas)
raise NotImplementedError
end
def to_svg( )
svg_builder do |canvas|
self.draw( canvas )
end.to_xml
end
def to_html
svg_builder do |canvas|
self.draw( canvas )
end.doc.root.to_s
end
def svg_attributes
out = {}
out[:height] = self.height if self.height
out[:width] = self.width if self.width
out[:doctype] = self.doctype if self.doctype
out
end
def svg_builder
Canvas.new( svg_attributes ).builder {|canvas| yield canvas}
end
end
require 'sketch/base'
require 'sketch/element'
require 'sketch/canvas'
require 'sketch/circle'
require 'sketch/ellipse'
require 'sketch/line'
require 'sketch/path'
require 'sketch/polygon'
require 'sketch/rect'
require 'sketch/rectangle'
require 'sketch/star'
require 'sketch/text'
require 'sketch/triangle'