Remove koans directory from source control.
Patches were submitted against the koans directory rather than the src directory. This lead to potential problems when we regenerate the koans directory from scratch, leading to the very real possibility that changes could be lost. Please make all changes to the src directory and use "rake gen" (or "rake regen") to generate the koans directory as needed.
This commit is contained in:
@@ -1,151 +0,0 @@
|
||||
require File.expand_path(File.dirname(__FILE__) + '/edgecase')
|
||||
|
||||
def my_global_method(a,b)
|
||||
a + b
|
||||
end
|
||||
|
||||
class AboutMethods < EdgeCase::Koan
|
||||
|
||||
def test_calling_global_methods
|
||||
assert_equal __, my_global_method(2,3)
|
||||
end
|
||||
|
||||
def test_calling_global_methods_without_parentheses
|
||||
result = my_global_method 2, 3
|
||||
assert_equal __, result
|
||||
end
|
||||
|
||||
# (NOTE: We are Using eval below because the example code is
|
||||
# considered to be syntactically invalid).
|
||||
def test_sometimes_missing_parentheses_are_ambiguous
|
||||
eval "assert_equal 5, my_global_method 2, 3" # ENABLE CHECK
|
||||
#
|
||||
# Ruby doesn't know if you mean:
|
||||
#
|
||||
# assert_equal(5, my_global_method(2), 3)
|
||||
# or
|
||||
# assert_equal(5, my_global_method(2, 3))
|
||||
#
|
||||
# Rewrite the eval string to continue.
|
||||
#
|
||||
end
|
||||
|
||||
# NOTE: wrong number of argument is not a SYNTAX error, but a
|
||||
# runtime error.
|
||||
def test_calling_global_methods_with_wrong_number_of_arguments
|
||||
exception = assert_raise(___) do
|
||||
my_global_method
|
||||
end
|
||||
assert_match(/__/, exception.message)
|
||||
|
||||
exception = assert_raise(___) do
|
||||
my_global_method(1,2,3)
|
||||
end
|
||||
assert_match(/__/, exception.message)
|
||||
end
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
|
||||
def method_with_defaults(a, b=:default_value)
|
||||
[a, b]
|
||||
end
|
||||
|
||||
def test_calling_with_default_values
|
||||
assert_equal [1, __], method_with_defaults(1)
|
||||
assert_equal [1, __], method_with_defaults(1, 2)
|
||||
end
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
|
||||
def method_with_var_args(*args)
|
||||
args
|
||||
end
|
||||
|
||||
def test_calling_with_variable_arguments
|
||||
assert_equal __, method_with_var_args.class
|
||||
assert_equal __, method_with_var_args
|
||||
assert_equal __, method_with_var_args(:one)
|
||||
assert_equal __, method_with_var_args(:one, :two)
|
||||
end
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
|
||||
def method_with_explicit_return
|
||||
:a_non_return_value
|
||||
return :return_value
|
||||
:another_non_return_value
|
||||
end
|
||||
|
||||
def test_method_with_explicit_return
|
||||
assert_equal __, method_with_explicit_return
|
||||
end
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
|
||||
def method_without_explicit_return
|
||||
:a_non_return_value
|
||||
:return_value
|
||||
end
|
||||
|
||||
def test_method_without_explicit_return
|
||||
assert_equal __, method_without_explicit_return
|
||||
end
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
|
||||
def my_method_in_the_same_class(a, b)
|
||||
a * b
|
||||
end
|
||||
|
||||
def test_calling_methods_in_same_class
|
||||
assert_equal __, my_method_in_the_same_class(3,4)
|
||||
end
|
||||
|
||||
def test_calling_methods_in_same_class_with_explicit_receiver
|
||||
assert_equal __, self.my_method_in_the_same_class(3,4)
|
||||
end
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
|
||||
def my_private_method
|
||||
"a secret"
|
||||
end
|
||||
private :my_private_method
|
||||
|
||||
def test_calling_private_methods_without_receiver
|
||||
assert_equal __, my_private_method
|
||||
end
|
||||
|
||||
def test_calling_private_methods_with_an_explicit_receiver
|
||||
exception = assert_raise(___) do
|
||||
self.my_private_method
|
||||
end
|
||||
assert_match /__/, exception.message
|
||||
end
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
|
||||
class Dog
|
||||
def name
|
||||
"Fido"
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def tail
|
||||
"tail"
|
||||
end
|
||||
end
|
||||
|
||||
def test_calling_methods_in_other_objects_require_explicit_receiver
|
||||
rover = Dog.new
|
||||
assert_equal __, rover.name
|
||||
end
|
||||
|
||||
def test_calling_private_methods_in_other_objects
|
||||
rover = Dog.new
|
||||
assert_raise(___) do
|
||||
rover.tail
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user