module Inspector::Constraints::Have
Public Class Methods
new(expected)
click to toggle source
# File lib/inspector/constraints/have.rb, line 42 def initialize(expected) @expected = expected.to_i end
Public Instance Methods
inspect()
click to toggle source
# File lib/inspector/constraints/have.rb, line 53 def inspect "#<%{constraint} %{expected}%{collection}>" % { :constraint => to_s.split('_').join(' '), :expected => @expected.inspect, :collection => " #{@collection_name}".rstrip } end
method_missing(method, *args, &block)
click to toggle source
# File lib/inspector/constraints/have.rb, line 61 def method_missing(method, *args, &block) @collection_name = method @args = args @block = block self end
valid?(collection_or_owner)
click to toggle source
# File lib/inspector/constraints/have.rb, line 46 def valid?(collection_or_owner) collection = determine_collection(collection_or_owner) return false if collection.nil? query_method = determine_query_method(collection) compare(collection.__send__(query_method)) end
Private Instance Methods
determine_collection(collection_or_owner)
click to toggle source
# File lib/inspector/constraints/have.rb, line 70 def determine_collection(collection_or_owner) collection_or_owner.__send__(@collection_name, *@args, &@block) if collection_or_owner.respond_to?(@collection_name) collection_or_owner if determine_query_method(collection_or_owner) # elsif (@plural_collection_name && collection_or_owner.respond_to?(@plural_collection_name)) # collection_or_owner.__send__(@plural_collection_name, *@args, &@block) # else # collection_or_owner.__send__(@collection_name, *@args, &@block) # end end
determine_query_method(collection)
click to toggle source
# File lib/inspector/constraints/have.rb, line 80 def determine_query_method(collection) [:size, :length, :count].detect {|m| collection.respond_to?(m)} end