およびメソッドを実装するモデルに距離関連のメソッドを提供するModuleという名前があります。Coordinatedlatitudelongitude
module Coordinated
...
def crow_flies_to(place)
raise ArgumentError, "place does not implement latitude and longitude" unless is_coordinated?(place)
Math.sqrt((latitude - place.latitude).abs**2 + (longitude - place.longitude).abs**2)
end
def is_coordinated?(place)
place.respond_to?(:latitude) && place.respond_to?(:longitude)
end
...
end
Coordinatedクラスがロードされたときに必要なメソッドを実装するクラスが含まれていることをテストしたいと思います。それ、どうやったら出来るの?