class Origami::Rectangle

Class representing a location on a page or a bounding box.

Public Class Methods

[](coords) click to toggle source
# File lib/origami/array.rb, line 270
def self.[](coords)
    corners =
        if [ :llx, :lly, :urx, :ury ].all? {|p| coords.include?(p)}
            coords.values_at(:llx, :lly, :urx, :ury)
        elsif [ :width, :height ].all? {|p| coords.include?(p)}
            width, height = coords.values_at(:width, :height)
            x = coords.fetch(:x, 0)
            y = coords.fetch(:y, 0)
            [ x, y, x+width, y+height ]
        else
            raise ArgumentError, "Bad arguments for #{self.class}: #{coords.inspect}"
        end

    unless corners.all? { |corner| corner.is_a?(Numeric) }
        raise TypeError, "All coords must be numbers"
    end

    Rectangle.new(corners)
end