mcmire-matchy 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
data/lib/matchy.rb CHANGED
@@ -74,6 +74,7 @@ module Matchy
74
74
  end
75
75
 
76
76
  def init
77
+ require 'matchy/assertions'
77
78
  require 'matchy/expectation_builder'
78
79
  require 'matchy/modals'
79
80
  require 'matchy/matcher_builder'
@@ -86,9 +87,12 @@ module Matchy
86
87
  require 'matchy/built_in/operator_expectations'
87
88
  require 'matchy/built_in/change_expectations'
88
89
 
89
- # Track the current testcase and
90
- # provide it to the operator matchers.
91
90
  Matchy.test_case_class.class_eval do
91
+ include Matchy::Expectations::TestCaseExtensions
92
+ include Matchy::Assertions
93
+
94
+ # Track the current testcase and
95
+ # provide it to the operator matchers.
92
96
  alias_method :old_run_method_aliased_by_matchy, :run
93
97
  def run(whatever, *args, &block)
94
98
  $current_test_case = self
@@ -96,8 +100,7 @@ module Matchy
96
100
  end
97
101
  end
98
102
 
99
- Matchy.test_case_class.send(:include, Matchy::Expectations::TestCaseExtensions)
100
- Object.send(:include, Matchy::CustomMatcher)
103
+ Object.class_eval { include Matchy::CustomMatcher }
101
104
  end
102
105
  end
103
106
  end
@@ -0,0 +1,16 @@
1
+ module Matchy
2
+ module Assertions
3
+ # Asserts that the given matcher returns true when +target+ is passed to #matches?
4
+ def assert_accepts(matcher, target)
5
+ success = matcher.matches?(target)
6
+ assert_block(matcher.failure_message) { success }
7
+ end
8
+
9
+ # Asserts that the given matcher returns false when +target+ is passed to #matches?
10
+ def assert_rejects(matcher, target)
11
+ success = !matcher.matches?(target)
12
+ assert_block(matcher.negative_failure_message) { success }
13
+ end
14
+ end
15
+
16
+ end
@@ -1,9 +1,13 @@
1
1
  module Matchy
2
2
  module ExpectationBuilder
3
- def self.build_expectation(match, exp, obj)
4
- return Matchy::Expectations::OperatorExpectation.new(obj, match) unless exp
3
+ def self.build_expectation(should_succeed, matcher, object)
4
+ return Matchy::Expectations::OperatorExpectation.new(object, should_succeed) unless matcher
5
5
 
6
- (exp.matches?(obj) != match) ? exp.fail!(match) : exp.pass!(match)
6
+ if should_succeed
7
+ $current_test_case.assert_accepts(matcher, object)
8
+ else
9
+ $current_test_case.assert_rejects(matcher, object)
10
+ end
7
11
  end
8
12
  end
9
- end
13
+ end
@@ -34,18 +34,10 @@ module Matchy
34
34
  @match_block.call(given, self)
35
35
  end
36
36
 
37
- def fail!(which)
38
- @test_case.flunk(which ? failure_message : negative_failure_message)
39
- end
40
-
41
- def pass!(which)
42
- @test_case.assert true
43
- end
44
-
45
37
  alias_method :failure_message, :positive_failure_message
46
38
  end
47
39
 
48
40
  Class.new(&body).new(match_block, self)
49
41
  end
50
42
  end
51
- end
43
+ end
@@ -2,7 +2,7 @@ module Matchy
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 5
5
- TINY = 0
5
+ TINY = 1
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mcmire-matchy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy McAnally
@@ -28,6 +28,7 @@ files:
28
28
  - Rakefile
29
29
  - countloc.rb
30
30
  - lib/matchy.rb
31
+ - lib/matchy/assertions.rb
31
32
  - lib/matchy/built_in/change_expectations.rb
32
33
  - lib/matchy/built_in/enumerable_expectations.rb
33
34
  - lib/matchy/built_in/error_expectations.rb