class DYI::Drawing::Clipping
@since 0.0.0
Constants
- RULES
Attributes
canvas[R]
@since 1.0.0
rule[R]
shapes[R]
Public Class Methods
new(*shapes)
click to toggle source
# File lib/dyi/drawing/clipping.rb, line 33 def initialize(*shapes) @shapes = shapes @rules = Array.new(shapes.size) end
Public Instance Methods
add_shape(shape, rule=nil)
click to toggle source
# File lib/dyi/drawing/clipping.rb, line 52 def add_shape(shape, rule=nil) raise ArgumentError, "\"#{rule}\" is invalid rule" if rule && !RULES.include?(rule) unless @shapes.include?(shape) @shapes.push(shape) @rules.push(rule) end end
child_elements()
click to toggle source
@since 1.0.0
# File lib/dyi/drawing/clipping.rb, line 39 def child_elements @shapes end
each_shapes() { |shape, rule| ... }
click to toggle source
# File lib/dyi/drawing/clipping.rb, line 68 def each_shapes #:yields: shape, rule @shapes.size.times do |i| yield @shapes[i], @rules[i] end end
remove_shape(shape)
click to toggle source
# File lib/dyi/drawing/clipping.rb, line 60 def remove_shape(shape) index = @shapes.each_with_index {|s, i| break i if s == shape} if index @shapes.delete_at(index) @rules.delete_at(index) end end
set_canvas(canvas)
click to toggle source
@since 1.0.0
# File lib/dyi/drawing/clipping.rb, line 44 def set_canvas(canvas) if @canvas.nil? @canvas = canvas elsif @canvas != canvas raise Arguments, "the clipping is registered to another canvas" end end
write_as(formatter, io=$>)
click to toggle source
# File lib/dyi/drawing/clipping.rb, line 74 def write_as(formatter, io=$>) formatter.write_clipping(self, io) end