lib/remarkable/base.rb in remarkable-3.1.8 vs lib/remarkable/base.rb in remarkable-3.1.9
- old
+ new
@@ -1,74 +1,73 @@
-module Remarkable
- # This class holds the basic structure for Remarkable matchers. All matchers
- # must inherit from it.
- class Base
- include Remarkable::Messages
- extend Remarkable::DSL
-
- # Optional to provide spec binding to matchers.
- def spec(binding)
- @spec = binding
- self
- end
+module Remarkable
+ # This class holds the basic structure for Remarkable matchers. All matchers
+ # must inherit from it.
+ class Base
+ include Remarkable::Messages
+ extend Remarkable::DSL
+ # Optional to provide spec binding to matchers.
+ def spec(binding)
+ @spec = binding
+ self
+ end
+
def positive?
!negative?
end
def negative?
false
end
-
- protected
-
- # Returns the subject class unless it's a class object.
- def subject_class
- nil unless @subject
- @subject.is_a?(Class) ? @subject : @subject.class
- end
-
- # Returns the subject name based on its class. If the class respond to
- # human_name (which is usually localized) returns it.
- def subject_name
- nil unless @subject
- subject_class.respond_to?(:human_name) ? subject_class.human_name : subject_class.name
- end
-
- # Iterates over the collection given yielding the block and return false
- # if any of them also returns false.
- def assert_collection(key, collection, inspect=true) #:nodoc:
+
+ protected
+
+ # Returns the subject class unless it's a class object.
+ def subject_class
+ nil unless @subject
+ @subject.is_a?(Class) ? @subject : @subject.class
+ end
+
+ # Returns the subject name based on its class.
+ def subject_name
+ nil unless @subject
+ subject_class.name
+ end
+
+ # Iterates over the collection given yielding the block and return false
+ # if any of them also returns false.
+ def assert_collection(key, collection, inspect=true) #:nodoc:
collection.each do |item|
value = yield(item)
if positive? == !value
if key
output = inspect ? item.inspect : item
return negative?, key => output
else
return negative?
end
- end
- end
- positive?
- end
-
- # Asserts that the given collection contains item x. If x is a regular
- # expression, ensure that at least one element from the collection matches x.
- #
- # assert_contains(['a', '1'], /\d/) => passes
- # assert_contains(['a', '1'], 'a') => passes
- # assert_contains(['a', '1'], /not there/) => fails
- #
- def assert_contains(collection, x)
- collection = [collection] unless collection.is_a?(Array)
-
- case x
- when Regexp
- collection.detect { |e| e =~ x }
- else
- collection.include?(x)
- end
- end
-
- end
-end
+ end
+ end
+ positive?
+ end
+
+ # Asserts that the given collection contains item x. If x is a regular
+ # expression, ensure that at least one element from the collection matches x.
+ #
+ # assert_contains(['a', '1'], /\d/) => passes
+ # assert_contains(['a', '1'], 'a') => passes
+ # assert_contains(['a', '1'], /not there/) => fails
+ #
+ def assert_contains(collection, x)
+ collection = [collection] unless collection.is_a?(Array)
+
+ case x
+ when Regexp
+ collection.detect { |e| e =~ x }
+ else
+ collection.include?(x)
+ end
+ end
+
+ end
+end