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