The exercise looks like this :
[/code]
**# You need to write the triangle method in the file ‘triangle.rb’
require ‘triangle.rb’
class AboutTriangleProject2 < EdgeCase::Koan
The first assignment did not talk about how to handle errors.
Let’s handle that part now.
def test_illegal_triangles_throw_exceptions
assert_raise(TriangleError) do triangle(0, 0, 0) end
assert_raise(TriangleError) do triangle(3, 4, -5) end
assert_raise(TriangleError) do triangle(1, 1, 3) end
assert_raise(TriangleError) do triangle(2, 4, 2) end
# HINT: for tips, see
end
end
[/code]
So I looked at that page and come with this solution :
def triangle(a, b, c)
raise TriangleError, "length cannnot be 0 or lesser" if (a <= 0) or (b
<=
0) or (c <= 0);
raise TriangleError, "length does not mach Pyschotorogas" if (a * a +
b *
b != c * c);
return :equilateral if ((a == b) and (b == c))
return :isosceles if (((a == b) and (b != c)) or
((a != b) and (b == c)) or
((a == c) and (a != b)))
return :scalene if ((a !=b) and (b != c))
end
But now I get a uninitialized constant TriangleError
raise (TriangleError), “length cannnot be 0 or lesser” if (a <= 0) or
(b
<= 0) or (c <= 0);
raise (TriangleError), “length does not match Pyschotorogas” if (a * a
+
b * b != c * c);
return :equilateral if ((a == b) and (b == c))
return :isosceles if (((a == b) and (b != c)) or
((a != b) and (b == c)) or
((a == c) and (a != b)))
return :scalene if ((a !=b) and (b != c))
end
Error class used in part 2. No need to change this code.
class TriangleError < StandardError
end
But now when a error is found the script is stopped. Can anyone give me
a
hint how I can continue this script.
Roelof
Op zaterdag 22 september 2012 16:43:03 UTC+2 schreef roelof het
volgende:
and read that before trying to do the koans. All you seem to be doing
is copying other people’s code, so what good does that do you?
In fact, you know so little about ruby that you think Ruby on Rails
is ruby.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.