lib/whirled_peas/graphics/renderer.rb in whirled_peas-0.5.0 vs lib/whirled_peas/graphics/renderer.rb in whirled_peas-0.6.0

- old
+ new

@@ -1,49 +1,21 @@ -require 'whirled_peas/template/box_element' -require 'whirled_peas/template/container' -require 'whirled_peas/template/grid_element' -require 'whirled_peas/template/text_element' - -require_relative 'box_painter' require_relative 'canvas' -require_relative 'grid_painter' -require_relative 'text_painter' module WhirledPeas module Graphics class Renderer - PAINTERS = { - Template::BoxElement => BoxPainter, - Template::GridElement => GridPainter, - Template::TextElement => TextPainter - } def initialize(template, width, height) @template = template @width = width @height = height end def paint(&block) - painter.paint(Canvas.new(0, 0, width, height, 0, 0), &block) + template.paint(Canvas.new(0, 0, width, height, 0, 0), &block) end - def painter - build(template) - end - private attr_reader :template, :width, :height - - def build(element) - unless PAINTERS.key?(element.class) - raise ArgumentError, "Unable to render #{element.class}" - end - painter = PAINTERS[element.class].new(element, element.settings, element.name) - if element.is_a?(Template::Container) - element.each_child { |child| painter.add_child(build(child)) } - end - painter - end end end end