class Dieses::Application::Pen::Draw
Constants
- Offsite
Attributes
buffer[R]
pen[R]
pos[R]
ruler[R]
Public Class Methods
call(pen, ruler, &block)
click to toggle source
# File lib/dieses/application/pen.rb, line 23 def self.call(pen, ruler, &block) Draw.new(pen, ruler).(&block) end
new(pen, ruler, pos: Undefined)
click to toggle source
# File lib/dieses/application/pen.rb, line 27 def initialize(pen, ruler, pos: Undefined) @pen = pen @pos = Undefined.default(pos, Geometry::Point::Mutable.cast(canvas.position)) @ruler = ruler @buffer = Set.new end
Public Instance Methods
call(&block)
click to toggle source
# File lib/dieses/application/pen.rb, line 48 def call(&block) instance_exec(&block) put end
repeat(count = nil, &block)
click to toggle source
# File lib/dieses/application/pen.rb, line 34 def repeat(count = nil, &block) self.class.new(pen, ruler, pos: pos.dup).instance_exec do 1.step(count) do prev = pos.dup instance_exec(&block) put break if pos == prev || perfect.outside?(pos) rescue Offsite break end end end
Private Instance Methods
perfect()
click to toggle source
# File lib/dieses/application/pen.rb, line 57 def perfect @perfect ||= Geometry::Rect.new(ruler.even(canvas.width), ruler.even(canvas.height)) end