Skip to content

Instantly share code, notes, and snippets.

@joellusky
Last active August 29, 2015 14:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save joellusky/c9ee8c04ceb5df39780b to your computer and use it in GitHub Desktop.
Save joellusky/c9ee8c04ceb5df39780b to your computer and use it in GitHub Desktop.
module EqualL
def side
@side1
end
end
class Quadrilateral
def initialize(side1, side2, side3, side4)
@side1 = side1
@side2 = side2
@side3 = side3
@side4 = side4
end
def perimeter
(@side1.to_i + @side2.to_i + @side3.to_i + @side4.to_i)
end
end
class Trapeziod < Quadrilateral
end
class Rhombus < Quadrilateral
def initialize(side1)
super(side1, side1, side1, side1)
end
include EqualL
end
class Rectangle < Quadrilateral
def initialize(a,b)
super(a,b,a,b)
end
def area
@side1 * @side2
end
end
class Square < Rectangle
def initialize(side1)
super(side1, side1)
end
include EqualL
end
def test
rhom = Rhombus.new(2)
rect = Rectangle.new(1,2)
squa = Square.new(1)
trap = Trapeziod.new(2,3,4,4)
puts squa.is_a? Rectangle
puts squa.is_a? Quadrilateral
puts squa.is_a? Rectangle
puts rect.perimeter == 6
puts squa.perimeter == 4
puts rhom.perimeter == 8
puts trap.perimeter == 13
puts squa.area == 1
puts squa.side == 1
puts rect.area == 2
puts squa.side == 1
puts rhom.side == 2
end
test
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment