matchi 0.1.2 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/README.md +68 -50
- data/VERSION.semver +1 -1
- data/checksum/matchi-0.1.2.gem.sha512 +1 -0
- data/lib/matchi/matchers/be_false.rb +28 -0
- data/lib/matchi/matchers/be_nil.rb +28 -0
- data/lib/matchi/matchers/be_true.rb +28 -0
- data/lib/matchi/matchers/eql.rb +38 -0
- data/lib/matchi/matchers/equal.rb +38 -0
- data/lib/matchi/matchers/match.rb +38 -0
- data/lib/matchi/matchers/raise_exception.rb +42 -0
- data/lib/matchi/matchers.rb +9 -0
- data/lib/matchi/matchers_base.rb +49 -0
- data/lib/matchi.rb +1 -3
- data/matchi.gemspec +2 -1
- data.tar.gz.sig +0 -0
- metadata +29 -12
- metadata.gz.sig +1 -1
- data/lib/matchi/be_false.rb +0 -40
- data/lib/matchi/be_nil.rb +0 -40
- data/lib/matchi/be_true.rb +0 -40
- data/lib/matchi/eql.rb +0 -50
- data/lib/matchi/equal.rb +0 -50
- data/lib/matchi/match.rb +0 -50
- data/lib/matchi/raise_exception.rb +0 -54
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4a9dac2b12567695a9191ab629a8ccdaab8a646f
|
4
|
+
data.tar.gz: ba2560c4a1f9cdff593d09e32a60a23cdb7da9b1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7fc866f6d5896aa2994e95ce5871c10550af70244bda79d7a31351b5c518609d55944260d513f72e5a426d10c55c927b8b9e6b36cb78c6a6b513f3e78ddc664e
|
7
|
+
data.tar.gz: 355636b846a23088be8b3af819fd4e5994bb2d72feba117133f35a3135904bd6010693454d10ef20c58e766bf9a8056407060d9c3c7c2b7df023b45d89543045
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/README.md
CHANGED
@@ -49,49 +49,49 @@ And then execute:
|
|
49
49
|
**Equivalence** matcher:
|
50
50
|
|
51
51
|
```ruby
|
52
|
-
eql = Matchi::Eql.new('foo')
|
52
|
+
eql = Matchi::Matchers::Eql::Matcher.new('foo')
|
53
53
|
eql.matches? { 'foo' } # => true
|
54
54
|
```
|
55
55
|
|
56
56
|
**Identity** matcher:
|
57
57
|
|
58
58
|
```ruby
|
59
|
-
equal = Matchi::Equal.new(:foo)
|
59
|
+
equal = Matchi::Matchers::Equal::Matcher.new(:foo)
|
60
60
|
equal.matches? { :foo } # => true
|
61
61
|
```
|
62
62
|
|
63
63
|
**Regular expressions** matcher:
|
64
64
|
|
65
65
|
```ruby
|
66
|
-
match = Matchi::Match.new(/^foo$/)
|
66
|
+
match = Matchi::Matchers::Match::Matcher.new(/^foo$/)
|
67
67
|
match.matches? { 'foo' } # => true
|
68
68
|
```
|
69
69
|
|
70
70
|
**Expecting errors** matcher:
|
71
71
|
|
72
72
|
```ruby
|
73
|
-
raise_exception = Matchi::RaiseException.new(NameError)
|
73
|
+
raise_exception = Matchi::Matchers::RaiseException::Matcher.new(NameError)
|
74
74
|
raise_exception.matches? { Boom } # => true
|
75
75
|
```
|
76
76
|
|
77
77
|
**Truth** matcher:
|
78
78
|
|
79
79
|
```ruby
|
80
|
-
be_true = Matchi::BeTrue.new
|
80
|
+
be_true = Matchi::Matchers::BeTrue::Matcher.new
|
81
81
|
be_true.matches? { true } # => true
|
82
82
|
```
|
83
83
|
|
84
84
|
**Untruth** matcher:
|
85
85
|
|
86
86
|
```ruby
|
87
|
-
be_false = Matchi::BeFalse.new
|
87
|
+
be_false = Matchi::Matchers::BeFalse::Matcher.new
|
88
88
|
be_false.matches? { false } # => true
|
89
89
|
```
|
90
90
|
|
91
91
|
**Nil** matcher:
|
92
92
|
|
93
93
|
```ruby
|
94
|
-
be_nil = Matchi::BeNil.new
|
94
|
+
be_nil = Matchi::Matchers::BeNil::Matcher.new
|
95
95
|
be_nil.matches? { nil } # => true
|
96
96
|
```
|
97
97
|
|
@@ -99,78 +99,90 @@ be_nil.matches? { nil } # => true
|
|
99
99
|
|
100
100
|
Custom matchers can easily be defined for expressing expectations. They can be any Ruby class that responds to `matches?`, `to_s` and `to_h` instance methods.
|
101
101
|
|
102
|
-
**Be the answer** matcher:
|
102
|
+
A **Be the answer** matcher:
|
103
103
|
|
104
104
|
```ruby
|
105
105
|
module Matchi
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
106
|
+
module Matchers
|
107
|
+
module BeTheAnswer
|
108
|
+
class Matcher
|
109
|
+
def matches?
|
110
|
+
42.equal? yield
|
111
|
+
end
|
112
|
+
|
113
|
+
def to_s
|
114
|
+
'be_the_answer'
|
115
|
+
end
|
116
|
+
|
117
|
+
def to_h
|
118
|
+
{ BeTheAnswer: [] }
|
119
|
+
end
|
120
|
+
end
|
117
121
|
end
|
118
122
|
end
|
119
123
|
end
|
120
124
|
|
121
|
-
be_the_answer = Matchi::BeTheAnswer.new
|
125
|
+
be_the_answer = Matchi::Matchers::BeTheAnswer::Matcher.new
|
122
126
|
be_the_answer.matches? { 42 } # => true
|
123
127
|
```
|
124
128
|
|
125
|
-
**Be prime** matcher:
|
129
|
+
A **Be prime** matcher:
|
126
130
|
|
127
131
|
```ruby
|
128
132
|
require 'prime'
|
129
133
|
|
130
134
|
module Matchi
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
135
|
+
module Matchers
|
136
|
+
module BePrime
|
137
|
+
class Matcher
|
138
|
+
def matches?
|
139
|
+
Prime.prime? yield
|
140
|
+
end
|
141
|
+
|
142
|
+
def to_s
|
143
|
+
'be_prime'
|
144
|
+
end
|
145
|
+
|
146
|
+
def to_h
|
147
|
+
{ BePrime: [] }
|
148
|
+
end
|
149
|
+
end
|
142
150
|
end
|
143
151
|
end
|
144
152
|
end
|
145
153
|
|
146
|
-
be_prime = Matchi::BePrime.new
|
154
|
+
be_prime = Matchi::Matchers::BePrime::Matcher.new
|
147
155
|
be_prime.matches? { 42 } # => false
|
148
156
|
```
|
149
157
|
|
150
|
-
**Start with** matcher:
|
158
|
+
A **Start with** matcher:
|
151
159
|
|
152
160
|
```ruby
|
153
161
|
module Matchi
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
162
|
+
module Matchers
|
163
|
+
module StartWith
|
164
|
+
class Matcher
|
165
|
+
def initialize(expected)
|
166
|
+
@expected = expected
|
167
|
+
end
|
168
|
+
|
169
|
+
def matches?
|
170
|
+
!Regexp.new("^#{@expected}").match(yield).nil?
|
171
|
+
end
|
172
|
+
|
173
|
+
def to_s
|
174
|
+
'start_with'
|
175
|
+
end
|
176
|
+
|
177
|
+
def to_h
|
178
|
+
{ StartWith: [@expected] }
|
179
|
+
end
|
180
|
+
end
|
169
181
|
end
|
170
182
|
end
|
171
183
|
end
|
172
184
|
|
173
|
-
start_with = Matchi::StartWith.new('foo')
|
185
|
+
start_with = Matchi::Matchers::StartWith::Matcher.new('foo')
|
174
186
|
start_with.matches? { 'foobar' } # => true
|
175
187
|
```
|
176
188
|
|
@@ -207,3 +219,9 @@ See `LICENSE.md` file.
|
|
207
219
|
[travis]: https://travis-ci.org/fixrb/matchi
|
208
220
|
[inchpages]: http://inch-ci.org/github/fixrb/matchi/
|
209
221
|
[rubydoc]: http://rubydoc.info/gems/matchi/frames
|
222
|
+
|
223
|
+
***
|
224
|
+
|
225
|
+
This project is sponsored by:
|
226
|
+
|
227
|
+
[](http://www.sashite.com/)
|
data/VERSION.semver
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
1.0.0
|
@@ -0,0 +1 @@
|
|
1
|
+
ddc127123b3b59b5edaa5532d60521c7bec45d1889d84ac282d461928066ef0646ae3cfe312adba700d21da17f33be17efca258533e512f2f63a9eae7085831c
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require_relative File.join('..', 'matchers_base') unless
|
2
|
+
defined?(::Matchi::MatchersBase)
|
3
|
+
|
4
|
+
module Matchi
|
5
|
+
module Matchers
|
6
|
+
# **Untruth** matcher.
|
7
|
+
module BeFalse
|
8
|
+
# The matcher.
|
9
|
+
class Matcher
|
10
|
+
include MatchersBase
|
11
|
+
|
12
|
+
# Boolean comparison between the actual value and the expected value.
|
13
|
+
#
|
14
|
+
# @example Is it false?
|
15
|
+
# be_false = Matchi::Matchers::BeFalse::Matcher.new
|
16
|
+
# be_false.matches? { false } # => true
|
17
|
+
#
|
18
|
+
# @yieldreturn [#object_id] the actual value to compare to the expected
|
19
|
+
# one.
|
20
|
+
#
|
21
|
+
# @return [Boolean] Comparison between actual and expected values.
|
22
|
+
def matches?
|
23
|
+
false.equal?(yield)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require_relative File.join('..', 'matchers_base') unless
|
2
|
+
defined?(::Matchi::MatchersBase)
|
3
|
+
|
4
|
+
module Matchi
|
5
|
+
module Matchers
|
6
|
+
# **Nil** matcher.
|
7
|
+
module BeNil
|
8
|
+
# The matcher.
|
9
|
+
class Matcher
|
10
|
+
include MatchersBase
|
11
|
+
|
12
|
+
# Boolean comparison between the actual value and the expected value.
|
13
|
+
#
|
14
|
+
# @example Is it nil?
|
15
|
+
# be_nil = Matchi::Matchers::BeNil::Matcher.new
|
16
|
+
# be_nil.matches? { nil } # => true
|
17
|
+
#
|
18
|
+
# @yieldreturn [#object_id] the actual value to compare to the expected
|
19
|
+
# one.
|
20
|
+
#
|
21
|
+
# @return [Boolean] Comparison between actual and expected values.
|
22
|
+
def matches?
|
23
|
+
nil.equal?(yield)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require_relative File.join('..', 'matchers_base') unless
|
2
|
+
defined?(::Matchi::MatchersBase)
|
3
|
+
|
4
|
+
module Matchi
|
5
|
+
module Matchers
|
6
|
+
# **Truth** matcher.
|
7
|
+
module BeTrue
|
8
|
+
# The matcher.
|
9
|
+
class Matcher
|
10
|
+
include MatchersBase
|
11
|
+
|
12
|
+
# Boolean comparison between the actual value and the expected value.
|
13
|
+
#
|
14
|
+
# @example Is it true?
|
15
|
+
# be_true = Matchi::Matchers::BeTrue::Matcher.new
|
16
|
+
# be_true.matches? { true } # => true
|
17
|
+
#
|
18
|
+
# @yieldreturn [#object_id] the actual value to compare to the expected
|
19
|
+
# one.
|
20
|
+
#
|
21
|
+
# @return [Boolean] Comparison between actual and expected values.
|
22
|
+
def matches?
|
23
|
+
true.equal?(yield)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require_relative File.join('..', 'matchers_base') unless
|
2
|
+
defined?(::Matchi::MatchersBase)
|
3
|
+
|
4
|
+
module Matchi
|
5
|
+
module Matchers
|
6
|
+
# **Equivalence** matcher.
|
7
|
+
module Eql
|
8
|
+
# The matcher.
|
9
|
+
class Matcher
|
10
|
+
include MatchersBase
|
11
|
+
|
12
|
+
# Initialize the matcher with an object.
|
13
|
+
#
|
14
|
+
# @example The string 'foo' matcher.
|
15
|
+
# Matchi::Matchers::Eql::Matcher.new('foo')
|
16
|
+
#
|
17
|
+
# @param expected [#eql?] An expected equivalent object.
|
18
|
+
def initialize(expected)
|
19
|
+
@expected = expected
|
20
|
+
end
|
21
|
+
|
22
|
+
# Boolean comparison between the actual value and the expected value.
|
23
|
+
#
|
24
|
+
# @example Is it equivalent to 'foo'?
|
25
|
+
# eql = Matchi::Matchers::Eql::Matcher.new('foo')
|
26
|
+
# eql.matches? { 'foo' } # => true
|
27
|
+
#
|
28
|
+
# @yieldreturn [#object_id] the actual value to compare to the expected
|
29
|
+
# one.
|
30
|
+
#
|
31
|
+
# @return [Boolean] Comparison between actual and expected values.
|
32
|
+
def matches?
|
33
|
+
@expected.eql?(yield)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require_relative File.join('..', 'matchers_base') unless
|
2
|
+
defined?(::Matchi::MatchersBase)
|
3
|
+
|
4
|
+
module Matchi
|
5
|
+
module Matchers
|
6
|
+
# **Identity** matcher.
|
7
|
+
module Equal
|
8
|
+
# The matcher.
|
9
|
+
class Matcher
|
10
|
+
include MatchersBase
|
11
|
+
|
12
|
+
# Initialize the matcher with an object.
|
13
|
+
#
|
14
|
+
# @example The number 42 matcher.
|
15
|
+
# Matchi::Matchers::Equal::Matcher.new(42)
|
16
|
+
#
|
17
|
+
# @param expected [#equal?] An expected object.
|
18
|
+
def initialize(expected)
|
19
|
+
@expected = expected
|
20
|
+
end
|
21
|
+
|
22
|
+
# Boolean comparison between the actual value and the expected value.
|
23
|
+
#
|
24
|
+
# @example Is it equal to :foo?
|
25
|
+
# equal = Matchi::Matchers::Equal::Matcher.new(:foo)
|
26
|
+
# equal.matches? { :foo } # => true
|
27
|
+
#
|
28
|
+
# @yieldreturn [#object_id] the actual value to compare to the expected
|
29
|
+
# one.
|
30
|
+
#
|
31
|
+
# @return [Boolean] Comparison between actual and expected values.
|
32
|
+
def matches?
|
33
|
+
@expected.equal?(yield)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require_relative File.join('..', 'matchers_base') unless
|
2
|
+
defined?(::Matchi::MatchersBase)
|
3
|
+
|
4
|
+
module Matchi
|
5
|
+
module Matchers
|
6
|
+
# **Regular expressions** matcher.
|
7
|
+
module Match
|
8
|
+
# The matcher.
|
9
|
+
class Matcher
|
10
|
+
include MatchersBase
|
11
|
+
|
12
|
+
# Initialize the matcher with an instance of Regexp.
|
13
|
+
#
|
14
|
+
# @example Username matcher.
|
15
|
+
# Matchi::Matchers::Match::Matcher.new(/^[a-z0-9_-]{3,16}$/)
|
16
|
+
#
|
17
|
+
# @param expected [#match] A regular expression.
|
18
|
+
def initialize(expected)
|
19
|
+
@expected = expected
|
20
|
+
end
|
21
|
+
|
22
|
+
# Boolean comparison between the actual value and the expected value.
|
23
|
+
#
|
24
|
+
# @example Is it matching /^foo$/ regex?
|
25
|
+
# match = Matchi::Matchers::Match::Matcher.new(/^foo$/)
|
26
|
+
# match.matches? { 'foo' } # => true
|
27
|
+
#
|
28
|
+
# @yieldreturn [#object_id] the actual value to compare to the expected
|
29
|
+
# one.
|
30
|
+
#
|
31
|
+
# @return [Boolean] Comparison between actual and expected values.
|
32
|
+
def matches?
|
33
|
+
@expected.match(yield).nil?.equal?(false)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require_relative File.join('..', 'matchers_base') unless
|
2
|
+
defined?(::Matchi::MatchersBase)
|
3
|
+
|
4
|
+
module Matchi
|
5
|
+
module Matchers
|
6
|
+
# **Expecting errors** matcher.
|
7
|
+
module RaiseException
|
8
|
+
# The matcher.
|
9
|
+
class Matcher
|
10
|
+
include MatchersBase
|
11
|
+
|
12
|
+
# Initialize the matcher with a descendant of class Exception.
|
13
|
+
#
|
14
|
+
# @example Divided by 0 matcher.
|
15
|
+
# Matchi::Matchers::RaiseException::Matcher.new(ZeroDivisionError)
|
16
|
+
#
|
17
|
+
# @param expected [.exception] The class of the expected exception.
|
18
|
+
def initialize(expected)
|
19
|
+
@expected = expected
|
20
|
+
end
|
21
|
+
|
22
|
+
# Boolean comparison between the actual value and the expected value.
|
23
|
+
#
|
24
|
+
# @example Is it raising NameError?
|
25
|
+
# matcher = Matchi::Matchers::RaiseException::Matcher.new(NameError)
|
26
|
+
# matcher.matches? { Boom } # => true
|
27
|
+
#
|
28
|
+
# @yieldreturn [#object_id] the actual value to compare to the expected
|
29
|
+
# one.
|
30
|
+
#
|
31
|
+
# @return [Boolean] Comparison between actual and expected values.
|
32
|
+
def matches?
|
33
|
+
yield
|
34
|
+
rescue @expected
|
35
|
+
true
|
36
|
+
else
|
37
|
+
false
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module Matchi
|
2
|
+
# Common matcher methods.
|
3
|
+
module MatchersBase
|
4
|
+
# Abstract matcher class.
|
5
|
+
#
|
6
|
+
# @raise [NotImplementedError] Override me inside a Matcher subclass please.
|
7
|
+
def matches?
|
8
|
+
fail NotImplementedError, 'The matcher MUST respond to matches? method.'
|
9
|
+
end
|
10
|
+
|
11
|
+
# Returns a string representing the matcher.
|
12
|
+
#
|
13
|
+
# @example The readable definition of a FooBar matcher.
|
14
|
+
# matcher = Matchi::Matchers::FooBar::Matcher.new(42)
|
15
|
+
# matcher.to_s # => "foo_bar 42"
|
16
|
+
#
|
17
|
+
# @return [String] A string representing the matcher.
|
18
|
+
def to_s
|
19
|
+
s = matcher_name
|
20
|
+
.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
|
21
|
+
.gsub(/([a-z\d])([A-Z])/, '\1_\2')
|
22
|
+
.downcase
|
23
|
+
|
24
|
+
defined?(@expected) ? [s, @expected.inspect].join(' ') : s
|
25
|
+
end
|
26
|
+
|
27
|
+
# Returns a hash of one key-value pair with a key corresponding to the
|
28
|
+
# matcher and a value corresponding to its initialize parameters.
|
29
|
+
#
|
30
|
+
# @example A FooBar matcher serialized into a hash.
|
31
|
+
# matcher = Matchi::Matchers::FooBar::Matcher.new(42)
|
32
|
+
# matcher.to_h # => { FooBar: 42 }
|
33
|
+
#
|
34
|
+
# @return [Hash] A hash of one key-value pair.
|
35
|
+
def to_h
|
36
|
+
{ matcher_name.to_sym => (defined?(@expected) ? Array(@expected) : []) }
|
37
|
+
end
|
38
|
+
|
39
|
+
private
|
40
|
+
|
41
|
+
def matcher_name
|
42
|
+
self
|
43
|
+
.class
|
44
|
+
.name
|
45
|
+
.gsub(/^Matchi::Matchers::/, '')
|
46
|
+
.gsub(/::Matcher$/, '')
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
data/lib/matchi.rb
CHANGED
data/matchi.gemspec
CHANGED
@@ -18,7 +18,8 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.add_development_dependency 'rake', '~> 10.4'
|
19
19
|
spec.add_development_dependency 'yard', '~> 0.8'
|
20
20
|
spec.add_development_dependency 'simplecov', '~> 0.10'
|
21
|
-
spec.add_development_dependency 'rubocop', '~> 0.
|
21
|
+
spec.add_development_dependency 'rubocop', '~> 0.35'
|
22
|
+
spec.add_development_dependency 'byebug'
|
22
23
|
|
23
24
|
spec.cert_chain = ['certs/gem-fixrb-public_cert.pem']
|
24
25
|
private_key = File.expand_path('~/.ssh/gem-fixrb-private_key.pem')
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: matchi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cyril Wack
|
@@ -30,7 +30,7 @@ cert_chain:
|
|
30
30
|
dzJvWzQ1+dJU6WQv75E9ddSkaQrK3nhdgQVu+/wgvGSrsMvOGNz+LXaSDxQqZuwX
|
31
31
|
0KNQFuIukfrdk8URwRnHoAnvx4U93iUw
|
32
32
|
-----END CERTIFICATE-----
|
33
|
-
date: 2015-
|
33
|
+
date: 2015-11-26 00:00:00.000000000 Z
|
34
34
|
dependencies:
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
36
|
name: bundler
|
@@ -94,14 +94,28 @@ dependencies:
|
|
94
94
|
requirements:
|
95
95
|
- - "~>"
|
96
96
|
- !ruby/object:Gem::Version
|
97
|
-
version: '0.
|
97
|
+
version: '0.35'
|
98
98
|
type: :development
|
99
99
|
prerelease: false
|
100
100
|
version_requirements: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
102
|
- - "~>"
|
103
103
|
- !ruby/object:Gem::Version
|
104
|
-
version: '0.
|
104
|
+
version: '0.35'
|
105
|
+
- !ruby/object:Gem::Dependency
|
106
|
+
name: byebug
|
107
|
+
requirement: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
112
|
+
type: :development
|
113
|
+
prerelease: false
|
114
|
+
version_requirements: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - ">="
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0'
|
105
119
|
description: Collection of expectation matchers for Ruby.
|
106
120
|
email:
|
107
121
|
- contact@cyril.email
|
@@ -132,14 +146,17 @@ files:
|
|
132
146
|
- checksum/matchi-0.0.9.gem.sha512
|
133
147
|
- checksum/matchi-0.1.0.gem.sha512
|
134
148
|
- checksum/matchi-0.1.1.gem.sha512
|
149
|
+
- checksum/matchi-0.1.2.gem.sha512
|
135
150
|
- lib/matchi.rb
|
136
|
-
- lib/matchi/
|
137
|
-
- lib/matchi/
|
138
|
-
- lib/matchi/
|
139
|
-
- lib/matchi/
|
140
|
-
- lib/matchi/
|
141
|
-
- lib/matchi/
|
142
|
-
- lib/matchi/
|
151
|
+
- lib/matchi/matchers.rb
|
152
|
+
- lib/matchi/matchers/be_false.rb
|
153
|
+
- lib/matchi/matchers/be_nil.rb
|
154
|
+
- lib/matchi/matchers/be_true.rb
|
155
|
+
- lib/matchi/matchers/eql.rb
|
156
|
+
- lib/matchi/matchers/equal.rb
|
157
|
+
- lib/matchi/matchers/match.rb
|
158
|
+
- lib/matchi/matchers/raise_exception.rb
|
159
|
+
- lib/matchi/matchers_base.rb
|
143
160
|
- matchi.gemspec
|
144
161
|
- pkg_checksum
|
145
162
|
homepage: https://github.com/fixrb/matchi
|
@@ -162,7 +179,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
162
179
|
version: '0'
|
163
180
|
requirements: []
|
164
181
|
rubyforge_project:
|
165
|
-
rubygems_version: 2.4.5
|
182
|
+
rubygems_version: 2.4.5.1
|
166
183
|
signing_key:
|
167
184
|
specification_version: 4
|
168
185
|
summary: Collection of matchers.
|
metadata.gz.sig
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
����ע4&��@[�B�!*4������=f�\A��9eU�-+��c��[EhZ}���<[ۜ�4"sO�XO3�9S��D�LɈUۢm��N=�s�Ro3�/��.����zV�Y������p⣉=�s�6i����#�y&`M�n�K��r�5�������{�n\^L�Jv����M:4:h�0��<�,g_ou�gs'SnKxgvCv�aVԠ�>�+y�ʅ�V�>���=ɏ�ϛ=�y��SMI� ��t
|
data/lib/matchi/be_false.rb
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
module Matchi
|
2
|
-
# **Untruth** matcher.
|
3
|
-
class BeFalse
|
4
|
-
# Boolean comparison between the actual value and the expected value.
|
5
|
-
#
|
6
|
-
# @example Is it false?
|
7
|
-
# be_false = Matchi::BeFalse.new
|
8
|
-
# be_false.matches? { false } # => true
|
9
|
-
#
|
10
|
-
# @yieldreturn [#object_id] the actual value to compare to the expected one.
|
11
|
-
#
|
12
|
-
# @return [Boolean] Comparison between actual and expected values.
|
13
|
-
def matches?
|
14
|
-
false.equal?(yield)
|
15
|
-
end
|
16
|
-
|
17
|
-
# Returns a string representing the matcher.
|
18
|
-
#
|
19
|
-
# @example The readable definition of a FooBar matcher.
|
20
|
-
# matcher = Matchi::FooBar.new(42)
|
21
|
-
# matcher.to_s # => "foo_bar 42"
|
22
|
-
#
|
23
|
-
# @return [String] A string representing the matcher.
|
24
|
-
def to_s
|
25
|
-
'be_false'
|
26
|
-
end
|
27
|
-
|
28
|
-
# Returns a hash of one key-value pair with a key corresponding to the
|
29
|
-
# matcher and a value corresponding to its initialize parameters.
|
30
|
-
#
|
31
|
-
# @example A FooBar matcher serialized into a hash.
|
32
|
-
# matcher = Matchi::FooBar.new(42)
|
33
|
-
# matcher.to_h # => { FooBar: 42 }
|
34
|
-
#
|
35
|
-
# @return [Hash] A hash of one key-value pair.
|
36
|
-
def to_h
|
37
|
-
{ BeFalse: [] }
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
data/lib/matchi/be_nil.rb
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
module Matchi
|
2
|
-
# **Nil** matcher.
|
3
|
-
class BeNil
|
4
|
-
# Boolean comparison between the actual value and the expected value.
|
5
|
-
#
|
6
|
-
# @example Is it nil?
|
7
|
-
# be_nil = Matchi::BeNil.new
|
8
|
-
# be_nil.matches? { nil } # => true
|
9
|
-
#
|
10
|
-
# @yieldreturn [#object_id] the actual value to compare to the expected one.
|
11
|
-
#
|
12
|
-
# @return [Boolean] Comparison between actual and expected values.
|
13
|
-
def matches?
|
14
|
-
nil.equal?(yield)
|
15
|
-
end
|
16
|
-
|
17
|
-
# Returns a string representing the matcher.
|
18
|
-
#
|
19
|
-
# @example The readable definition of a FooBar matcher.
|
20
|
-
# matcher = Matchi::FooBar.new(42)
|
21
|
-
# matcher.to_s # => "foo_bar 42"
|
22
|
-
#
|
23
|
-
# @return [String] A string representing the matcher.
|
24
|
-
def to_s
|
25
|
-
'be_nil'
|
26
|
-
end
|
27
|
-
|
28
|
-
# Returns a hash of one key-value pair with a key corresponding to the
|
29
|
-
# matcher and a value corresponding to its initialize parameters.
|
30
|
-
#
|
31
|
-
# @example A FooBar matcher serialized into a hash.
|
32
|
-
# matcher = Matchi::FooBar.new(42)
|
33
|
-
# matcher.to_h # => { FooBar: 42 }
|
34
|
-
#
|
35
|
-
# @return [Hash] A hash of one key-value pair.
|
36
|
-
def to_h
|
37
|
-
{ BeNil: [] }
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
data/lib/matchi/be_true.rb
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
module Matchi
|
2
|
-
# **Truth** matcher.
|
3
|
-
class BeTrue
|
4
|
-
# Boolean comparison between the actual value and the expected value.
|
5
|
-
#
|
6
|
-
# @example Is it true?
|
7
|
-
# be_true = Matchi::BeTrue.new
|
8
|
-
# be_true.matches? { true } # => true
|
9
|
-
#
|
10
|
-
# @yieldreturn [#object_id] the actual value to compare to the expected one.
|
11
|
-
#
|
12
|
-
# @return [Boolean] Comparison between actual and expected values.
|
13
|
-
def matches?
|
14
|
-
true.equal?(yield)
|
15
|
-
end
|
16
|
-
|
17
|
-
# Returns a string representing the matcher.
|
18
|
-
#
|
19
|
-
# @example The readable definition of a FooBar matcher.
|
20
|
-
# matcher = Matchi::FooBar.new(42)
|
21
|
-
# matcher.to_s # => "foo_bar 42"
|
22
|
-
#
|
23
|
-
# @return [String] A string representing the matcher.
|
24
|
-
def to_s
|
25
|
-
'be_true'
|
26
|
-
end
|
27
|
-
|
28
|
-
# Returns a hash of one key-value pair with a key corresponding to the
|
29
|
-
# matcher and a value corresponding to its initialize parameters.
|
30
|
-
#
|
31
|
-
# @example A FooBar matcher serialized into a hash.
|
32
|
-
# matcher = Matchi::FooBar.new(42)
|
33
|
-
# matcher.to_h # => { FooBar: 42 }
|
34
|
-
#
|
35
|
-
# @return [Hash] A hash of one key-value pair.
|
36
|
-
def to_h
|
37
|
-
{ BeTrue: [] }
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
data/lib/matchi/eql.rb
DELETED
@@ -1,50 +0,0 @@
|
|
1
|
-
module Matchi
|
2
|
-
# **Equivalence** matcher.
|
3
|
-
class Eql
|
4
|
-
# Initialize the matcher with an object.
|
5
|
-
#
|
6
|
-
# @example The string 'foo' matcher.
|
7
|
-
# Matchi::Eql.new('foo')
|
8
|
-
#
|
9
|
-
# @param expected [#eql?] An expected equivalent object.
|
10
|
-
def initialize(expected)
|
11
|
-
@expected = expected
|
12
|
-
end
|
13
|
-
|
14
|
-
# Boolean comparison between the actual value and the expected value.
|
15
|
-
#
|
16
|
-
# @example Is it equivalent to 'foo'?
|
17
|
-
# eql = Matchi::Eql.new('foo')
|
18
|
-
# eql.matches? { 'foo' } # => true
|
19
|
-
#
|
20
|
-
# @yieldreturn [#object_id] the actual value to compare to the expected one.
|
21
|
-
#
|
22
|
-
# @return [Boolean] Comparison between actual and expected values.
|
23
|
-
def matches?
|
24
|
-
@expected.eql?(yield)
|
25
|
-
end
|
26
|
-
|
27
|
-
# Returns a string representing the matcher.
|
28
|
-
#
|
29
|
-
# @example The readable definition of a FooBar matcher.
|
30
|
-
# matcher = Matchi::FooBar.new(42)
|
31
|
-
# matcher.to_s # => "foo_bar 42"
|
32
|
-
#
|
33
|
-
# @return [String] A string representing the matcher.
|
34
|
-
def to_s
|
35
|
-
"eql #{@expected.inspect}"
|
36
|
-
end
|
37
|
-
|
38
|
-
# Returns a hash of one key-value pair with a key corresponding to the
|
39
|
-
# matcher and a value corresponding to its initialize parameters.
|
40
|
-
#
|
41
|
-
# @example A FooBar matcher serialized into a hash.
|
42
|
-
# matcher = Matchi::FooBar.new(42)
|
43
|
-
# matcher.to_h # => { FooBar: 42 }
|
44
|
-
#
|
45
|
-
# @return [Hash] A hash of one key-value pair.
|
46
|
-
def to_h
|
47
|
-
{ Eql: [@expected] }
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
data/lib/matchi/equal.rb
DELETED
@@ -1,50 +0,0 @@
|
|
1
|
-
module Matchi
|
2
|
-
# **Identity** matcher.
|
3
|
-
class Equal
|
4
|
-
# Initialize the matcher with an object.
|
5
|
-
#
|
6
|
-
# @example The number 42 matcher.
|
7
|
-
# Matchi::Equal.new(42)
|
8
|
-
#
|
9
|
-
# @param expected [#equal?] An expected object.
|
10
|
-
def initialize(expected)
|
11
|
-
@expected = expected
|
12
|
-
end
|
13
|
-
|
14
|
-
# Boolean comparison between the actual value and the expected value.
|
15
|
-
#
|
16
|
-
# @example Is it equal to :foo?
|
17
|
-
# equal = Matchi::Equal.new(:foo)
|
18
|
-
# equal.matches? { :foo } # => true
|
19
|
-
#
|
20
|
-
# @yieldreturn [#object_id] the actual value to compare to the expected one.
|
21
|
-
#
|
22
|
-
# @return [Boolean] Comparison between actual and expected values.
|
23
|
-
def matches?
|
24
|
-
@expected.equal?(yield)
|
25
|
-
end
|
26
|
-
|
27
|
-
# Returns a string representing the matcher.
|
28
|
-
#
|
29
|
-
# @example The readable definition of a FooBar matcher.
|
30
|
-
# matcher = Matchi::FooBar.new(42)
|
31
|
-
# matcher.to_s # => "foo_bar 42"
|
32
|
-
#
|
33
|
-
# @return [String] A string representing the matcher.
|
34
|
-
def to_s
|
35
|
-
"equal #{@expected.inspect}"
|
36
|
-
end
|
37
|
-
|
38
|
-
# Returns a hash of one key-value pair with a key corresponding to the
|
39
|
-
# matcher and a value corresponding to its initialize parameters.
|
40
|
-
#
|
41
|
-
# @example A FooBar matcher serialized into a hash.
|
42
|
-
# matcher = Matchi::FooBar.new(42)
|
43
|
-
# matcher.to_h # => { FooBar: 42 }
|
44
|
-
#
|
45
|
-
# @return [Hash] A hash of one key-value pair.
|
46
|
-
def to_h
|
47
|
-
{ Equal: [@expected] }
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
data/lib/matchi/match.rb
DELETED
@@ -1,50 +0,0 @@
|
|
1
|
-
module Matchi
|
2
|
-
# **Regular expressions** matcher.
|
3
|
-
class Match
|
4
|
-
# Initialize the matcher with an instance of Regexp.
|
5
|
-
#
|
6
|
-
# @example Username matcher.
|
7
|
-
# Matchi::Match.new(/^[a-z0-9_-]{3,16}$/)
|
8
|
-
#
|
9
|
-
# @param expected [#match] A regular expression.
|
10
|
-
def initialize(expected)
|
11
|
-
@expected = expected
|
12
|
-
end
|
13
|
-
|
14
|
-
# Boolean comparison between the actual value and the expected value.
|
15
|
-
#
|
16
|
-
# @example Is it matching /^foo$/ regex?
|
17
|
-
# match = Matchi::Match.new(/^foo$/)
|
18
|
-
# match.matches? { 'foo' } # => true
|
19
|
-
#
|
20
|
-
# @yieldreturn [#object_id] the actual value to compare to the expected one.
|
21
|
-
#
|
22
|
-
# @return [Boolean] Comparison between actual and expected values.
|
23
|
-
def matches?
|
24
|
-
@expected.match(yield).nil?.equal?(false)
|
25
|
-
end
|
26
|
-
|
27
|
-
# Returns a string representing the matcher.
|
28
|
-
#
|
29
|
-
# @example The readable definition of a FooBar matcher.
|
30
|
-
# matcher = Matchi::FooBar.new(42)
|
31
|
-
# matcher.to_s # => "foo_bar 42"
|
32
|
-
#
|
33
|
-
# @return [String] A string representing the matcher.
|
34
|
-
def to_s
|
35
|
-
"match #{@expected.inspect}"
|
36
|
-
end
|
37
|
-
|
38
|
-
# Returns a hash of one key-value pair with a key corresponding to the
|
39
|
-
# matcher and a value corresponding to its initialize parameters.
|
40
|
-
#
|
41
|
-
# @example A FooBar matcher serialized into a hash.
|
42
|
-
# matcher = Matchi::FooBar.new(42)
|
43
|
-
# matcher.to_h # => { FooBar: 42 }
|
44
|
-
#
|
45
|
-
# @return [Hash] A hash of one key-value pair.
|
46
|
-
def to_h
|
47
|
-
{ Match: [@expected] }
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
@@ -1,54 +0,0 @@
|
|
1
|
-
module Matchi
|
2
|
-
# **Expecting errors** matcher.
|
3
|
-
class RaiseException
|
4
|
-
# Initialize the matcher with a descendant of class Exception.
|
5
|
-
#
|
6
|
-
# @example Divided by 0 matcher.
|
7
|
-
# Matchi::RaiseException.new(ZeroDivisionError)
|
8
|
-
#
|
9
|
-
# @param expected [.exception] The class of the expected exception.
|
10
|
-
def initialize(expected)
|
11
|
-
@expected = expected
|
12
|
-
end
|
13
|
-
|
14
|
-
# Boolean comparison between the actual value and the expected value.
|
15
|
-
#
|
16
|
-
# @example Is it raising NameError?
|
17
|
-
# raise_exception = Matchi::RaiseException.new(NameError)
|
18
|
-
# raise_exception.matches? { Boom } # => true
|
19
|
-
#
|
20
|
-
# @yieldreturn [#object_id] the actual value to compare to the expected one.
|
21
|
-
#
|
22
|
-
# @return [Boolean] Comparison between actual and expected values.
|
23
|
-
def matches?
|
24
|
-
yield
|
25
|
-
rescue @expected
|
26
|
-
true
|
27
|
-
else
|
28
|
-
false
|
29
|
-
end
|
30
|
-
|
31
|
-
# Returns a string representing the matcher.
|
32
|
-
#
|
33
|
-
# @example The readable definition of a FooBar matcher.
|
34
|
-
# matcher = Matchi::FooBar.new(42)
|
35
|
-
# matcher.to_s # => "foo_bar 42"
|
36
|
-
#
|
37
|
-
# @return [String] A string representing the matcher.
|
38
|
-
def to_s
|
39
|
-
"raise_exception #{@expected.inspect}"
|
40
|
-
end
|
41
|
-
|
42
|
-
# Returns a hash of one key-value pair with a key corresponding to the
|
43
|
-
# matcher and a value corresponding to its initialize parameters.
|
44
|
-
#
|
45
|
-
# @example A FooBar matcher serialized into a hash.
|
46
|
-
# matcher = Matchi::FooBar.new(42)
|
47
|
-
# matcher.to_h # => { FooBar: 42 }
|
48
|
-
#
|
49
|
-
# @return [Hash] A hash of one key-value pair.
|
50
|
-
def to_h
|
51
|
-
{ RaiseException: [@expected] }
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|