+++ /dev/null
-require File.expand_path(File.dirname(__FILE__) + '/edgecase')
-
-class AboutOpenClasses < EdgeCase::Koan
- class Dog
- def bark
- "WOOF"
- end
- end
-
- def test_as_defined_dogs_do_bark
- fido = Dog.new
- assert_equal __, fido.bark
- end
-
- # ------------------------------------------------------------------
-
- # Open the existing Dog class and add a new method.
- class Dog
- def wag
- "HAPPY"
- end
- end
-
- def test_after_reopening_dogs_can_both_wag_and_bark
- fido = Dog.new
- assert_equal __, fido.wag
- assert_equal __, fido.bark
- end
-
- # ------------------------------------------------------------------
-
- class ::Integer
- def even?
- (self % 2) == 0
- end
- end
-
- def test_even_existing_built_in_classes_can_be_reopened
- assert_equal __, 1.even?
- assert_equal __, 2.even?
- end
-
- # NOTE: To understand why we need the :: before Integer, you need to
- # become enlightened about scope.
-end