Method: Geometry::Annulus#initialize

Defined in:
lib/geometry/annulus.rb

#initialize(center, : inner_radius, : outer_radius) ⇒ Annulus #initialize(center, : inner_diameter, : outer_diameter) ⇒ Annulus

Note:

The ‘center’ argument can also be passed as a named argument of the same name

Returns a new instance of Annulus.

Overloads:

  • #initialize(center, : inner_radius, : outer_radius) ⇒ Annulus

    Parameters:

    • center (Point)

      The center Point, defaults to the origin

    • :inner_radius (Number)

      The radius of the hole that’s in the center

    • :outer_radius (Number)

      The overall radius of the whole thing

  • #initialize(center, : inner_diameter, : outer_diameter) ⇒ Annulus

    Parameters:

    • center (Point)

      The center Point, defaults to the origin

    • :inner_diameter (Number)

      The radius of the hole that’s in the center

    • :outer_diameter (Number)

      The overall radius of the whole thing

Raises:

  • (ArgumentError)


58
59
60
61
62
63
64
65
66
67
68
# File 'lib/geometry/annulus.rb', line 58

def initialize(center = Point.zero, **options)
    @center = Point[options.fetch(:center, center)]

    options.delete :center
    raise ArgumentError, 'Annulus requires more than a center' if options.empty?

    @inner_diameter = options[:inner_diameter]
    @inner_radius = options[:inner_radius]
    @outer_diameter = options[:outer_diameter] || options[:diameter]
    @outer_radius = options[:outer_radius] || options[:radius]
end