class Dieses::Application::Sheet
Attributes
canvas[R]
paper[R]
param[R]
variant[R]
Public Class Methods
new(paper, variant: Undefined)
click to toggle source
# File lib/dieses/application/sheet.rb, line 73 def initialize(paper, variant: Undefined) @paper = paper @variant = Undefined.equal?(variant) ? self.class.default_variant : self.class.variant!(variant) @param = parametrize @canvas = Canvas.new(paper) @pen = Pen.new(@canvas) setup if respond_to? :setup end
Private Class Methods
default_variant()
click to toggle source
# File lib/dieses/application/sheet.rb, line 97 def default_variant return variant!(default) unless Undefined.equal?(proto.default) variants.values.first end
variant!(name)
click to toggle source
# File lib/dieses/application/sheet.rb, line 103 def variant!(name) raise Error, "No variant defined: #{self.class}" if variants.empty? raise Error, "No such variant for #{self.class}: #{name}" unless variants.key?(name = name.to_sym) variants[name] end
Public Instance Methods
produce(**kwargs)
click to toggle source
# File lib/dieses/application/sheet.rb, line 83 def produce(**kwargs) call canvas.render(variables: self.class.style.to_h, **kwargs) end
Private Instance Methods
parametrize(**param)
click to toggle source
# File lib/dieses/application/sheet.rb, line 92 def parametrize(**param) Param.new(**self.class.param.to_h, **variant.param.to_h, **param.to_h) end