Class: Circle

Inherits:
Object
  • Object
show all
Defined in:
lib/hexa/shapes/circle.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Circle

Constructor for the Circle object

Parameters:

  • options (Hash) (defaults to: {})

    you can specify :radius or :diameter



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/hexa/shapes/circle.rb', line 8

def initialize(options = {})
	if options[:radius]
		@radius = options[:radius] 
		@diameter = options[:radius] * 2
	elsif options[:diameter]
		@radius = options[:diameter] / 2
		@diameter = options[:diameter]
	else
		@radius = 1
		@diameter = 2
	end
end

Instance Attribute Details

#diameterObject

Returns the value of attribute diameter.



3
4
5
# File 'lib/hexa/shapes/circle.rb', line 3

def diameter
  @diameter
end

#radiusObject

Returns the value of attribute radius.



3
4
5
# File 'lib/hexa/shapes/circle.rb', line 3

def radius
  @radius
end

Class Method Details

.area(radius = 1) ⇒ Float

Same behavior as area but can be called just passing the radius

Parameters:

  • radius (Fixnum) (defaults to: 1)

    of the circle

Returns:

  • (Float)

    area of the circle



29
30
31
# File 'lib/hexa/shapes/circle.rb', line 29

def self.area(radius = 1)
	Math::PI * (radius ** 2)
end

Instance Method Details

#areaFloat

Returns the area of the circle.

Returns:

  • (Float)

    the area of the circle



22
23
24
# File 'lib/hexa/shapes/circle.rb', line 22

def area
	Math::PI * (@radius ** 2)
end