lib/turf/lookup.rb in turf-1.1.0 vs lib/turf/lookup.rb in turf-1.2.0

- old
+ new

@@ -1,15 +1,23 @@ module Turf; class Lookup def find(message) + if local_class && default_class + message = "The following methods are defined in the #{local_class} class but not the #{default_class} class: #{methods_in_local_and_not_default.join(', ')}. All methods defined in #{local_class} must also be defined in #{default_class}." + raise message unless methods_in_local_and_not_default.empty? + end + raise "No Turf classes found... these must be defined and required" if classes.empty? lookup_path.each do |obj| return obj.send(message) if obj.respond_to?(message) end - raise "No Turf classes found... these must be defined and required" if classes.empty? raise NoMethodError, "The #{message} method could not be found in any of these Turf configuration classes: #{classes.join(", ")}" end private + + def methods_in_local_and_not_default + local_class.instance_methods(false) - default_class.instance_methods(false) + end def lookup_path classes.map(&:new) end