spectus 1.0.0.pre → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 96fa46cd60fb62f1704a8dbf1dbe3b5519b1981f
4
- data.tar.gz: 5ade56a1a4865de27fe71781c3fd21853d94dd8a
3
+ metadata.gz: 9c7d6a54210e4660c8e760d20e5f85d594df0e83
4
+ data.tar.gz: e8292c282c979c5aa30ef8c12dd98e254765a192
5
5
  SHA512:
6
- metadata.gz: 2ba1d3381e9c4f408e6f188c204582b11752119c8ee5fbca13e306ecfe93142cb4d7531bf2711ce768d9c38801b75228506de0a4e18edd8e4462531ecee2699f
7
- data.tar.gz: db138bad384985792d3c480403a7881596a7334feca59618dd9146a265f1d4725fcd43bf20c331bb9a49be59b5276f82c149534147b10339d26f667d129146fa
6
+ metadata.gz: 08b9482f29b8451ad63da9342ebdc1079a929073d2dd0f9235642b92d40b220710af57489e4ba30758a94ffd4c8f9f96dae177ea5cc3314540aa92246182bf6d
7
+ data.tar.gz: 177c223f8ed17fb2face0c67b1ca106780e6a947d1f35a3069bc698b1e7f11d8f682690d9d45b8b008702cd5e3a372814cf7abf127da20f80218c84083c00ef9
checksums.yaml.gz.sig ADDED
@@ -0,0 +1 @@
1
+ �j�T�z=p���_S�l����{����(��y�!�=�G�1%�!z����S��Y|�0��}�S�zlѮu���G`x��)L|,!��@JQ��5X@��ЋNz��B9�0�K�U�����?J�7!G�i������dct�� V��&��D�Xv g��F� ����3�Pw�捐����I����#�3
data/README.md CHANGED
@@ -2,10 +2,9 @@
2
2
 
3
3
  [![Build Status](https://travis-ci.org/cyril/spectus.rb.svg?branch=master)](https://travis-ci.org/cyril/spectus.rb)
4
4
  [![Coverage Status](http://img.shields.io/coveralls/cyril/spectus.rb.svg?branch=master)](https://coveralls.io/r/cyril/spectus.rb)
5
- [![Code Climate](http://img.shields.io/codeclimate/github/cyril/spectus.rb.svg)](https://codeclimate.com/github/cyril/spectus.rb)
6
5
  [![Dependency Status](https://gemnasium.com/cyril/spectus.rb.svg)](https://gemnasium.com/cyril/spectus.rb)
7
6
  [![Gem Version](http://img.shields.io/gem/v/spectus.svg)](https://rubygems.org/gems/spectus)
8
- [![Inline docs](http://inch-ci.org/github/cyril/spectus.rb.svg)](http://inch-ci.org/github/cyril/spectus.rb)
7
+ [![Inline docs](http://inch-ci.org/github/cyril/spectus.rb.svg?branch=master)](http://inch-ci.org/github/cyril/spectus.rb)
9
8
  [![Documentation](http://img.shields.io/:yard-docs-38c800.svg)](http://rubydoc.info/gems/spectus/frames)
10
9
  [![License](http://img.shields.io/:license-MIT-38c800.svg)](http://cyril.mit-license.org/)
11
10
 
@@ -45,7 +44,17 @@ $ gem install spectus
45
44
 
46
45
  * It's ~200 lines of fast and KISS code.
47
46
  * Atomic state transitions, immutable objects, thread-safe.
48
- * A generic, consistent DSL for assertions.
47
+ * Generic and consistent DSL for assertions.
48
+
49
+ ## API
50
+
51
+ The [Spectus DSL](lib/spectus/dsl.rb) provides the `expect` method.
52
+ It takes a block parameter and responds to:
53
+
54
+ * `to(definition)`
55
+ * `not_to(definition)`
56
+
57
+ Then it returns `true`, `false`, or a cached exception.
49
58
 
50
59
  ## Usage
51
60
 
@@ -67,7 +76,7 @@ end
67
76
  @bird = Duck.new
68
77
  ```
69
78
 
70
- > When I see a #<Duck:0x007f96b285d6d0> that ...
79
+ > When I see a `#<Duck:0x007f96b285d6d0>` that ...
71
80
 
72
81
  ```ruby
73
82
  require 'spectus'
@@ -78,53 +87,53 @@ expectation_2 = expect { @bird.swims }.to eql: "Swoosh..."
78
87
  expectation_3 = expect { @bird.quacks }.to capture_stdout: "Quaaaaaack!\n"
79
88
  expectation_4 = expect { @bird.speaks }.to raise_exception: NoMethodError
80
89
 
81
- case (expectation_1.pass? &&
82
- expectation_2.pass? &&
83
- expectation_3.pass? &&
84
- expectation_4.pass?)
90
+ case (expectation_1 == true &&
91
+ expectation_2 == true &&
92
+ expectation_3 == true &&
93
+ expectation_4 == true)
85
94
  when true then puts "I call that #{@bird} a duck."
86
95
  else warn 'WAT?'
87
96
  end
88
97
  ```
89
98
 
90
- > I call that #<Duck:0x007f96b285d6d0> a duck.
99
+ > I call that `#<Duck:0x007f96b285d6d0>` a duck.
91
100
 
92
101
  ## Built-in matchers
93
102
 
94
103
  ### Standard error
95
104
 
96
105
  ```ruby
97
- expect { warn 'foo' }.to capture_stderr: "foo\n"
106
+ expect { warn 'foo' }.to capture_stderr: "foo\n" # => true
98
107
  ```
99
108
 
100
109
  ### Standard output
101
110
 
102
111
  ```ruby
103
- expect { puts 'foo' }.to capture_stdout: "foo\n"
112
+ expect { puts 'foo' }.to capture_stdout: "foo\n" # => true
104
113
  ```
105
114
 
106
115
  ### Equivalence
107
116
 
108
117
  ```ruby
109
- expect { 'foo' }.to eql: 'foo'
118
+ expect { 'foo' }.to eql: 'foo' # => true
110
119
  ```
111
120
 
112
121
  ### Identity
113
122
 
114
123
  ```ruby
115
- expect { :foo }.to equal: :foo
124
+ expect { :foo }.to equal: :foo # => true
116
125
  ```
117
126
 
118
127
  ### Regular expressions
119
128
 
120
129
  ```ruby
121
- expect { 'foo' }.to({match: /^foo$/})
130
+ expect { 'foo' }.to({match: /^foo$/}) # => true
122
131
  ```
123
132
 
124
133
  ### Expecting errors
125
134
 
126
135
  ```ruby
127
- expect { Foo }.to raise_exception: NameError
136
+ expect { Foo }.to raise_exception: NameError # => true
128
137
  ```
129
138
 
130
139
  ## Custom matchers
@@ -137,13 +146,13 @@ The following expression...
137
146
 
138
147
  ```ruby
139
148
  require 'prime'
140
- expect { Prime.prime? 42 }.to equal: false
149
+ expect { Prime.prime? 42 }.to equal: false # => true
141
150
  ```
142
151
 
143
152
  ...could be refactored into:
144
153
 
145
154
  ```ruby
146
- expect { 42 }.not_to :be_prime
155
+ expect { 42 }.not_to :be_prime # => true
147
156
  ```
148
157
 
149
158
  It can be done with this custom matcher:
@@ -167,13 +176,13 @@ end
167
176
  The following expression...
168
177
 
169
178
  ```ruby
170
- expect { 42 }.to equal: 42
179
+ expect { 42 }.to equal: 42 # => true
171
180
  ```
172
181
 
173
182
  ...could be refactored into:
174
183
 
175
184
  ```ruby
176
- expect { 42 }.to :be_the_answer
185
+ expect { 42 }.to :be_the_answer # => true
177
186
  ```
178
187
 
179
188
  It can be done with this custom matcher:
@@ -195,13 +204,13 @@ end
195
204
  The following expression...
196
205
 
197
206
  ```ruby
198
- expect { 'foobar' }.to match: /^foo/
207
+ expect { 'foobar' }.to match: /^foo/ # => true
199
208
  ```
200
209
 
201
210
  ...could be refactored into:
202
211
 
203
212
  ```ruby
204
- expect { 'foobar' }.to start_with: 'foo'
213
+ expect { 'foobar' }.to start_with: 'foo' # => true
205
214
  ```
206
215
 
207
216
  It can be done with this custom matcher:
@@ -236,4 +245,4 @@ __Spectus__ follows [Semantic Versioning 2.0](http://semver.org/)
236
245
 
237
246
  ## Copyright
238
247
 
239
- &copy; [Cyril Wack](https://plus.google.com/+CyrilWack?rel=author)
248
+ &copy; 2014 [Cyril Wack](https://plus.google.com/+CyrilWack?rel=author)
data/VERSION.semver CHANGED
@@ -1 +1 @@
1
- 1.0.0.pre
1
+ 1.0.0
@@ -0,0 +1,6 @@
1
+ # Duck example
2
+
3
+ ```bash
4
+ $ ./test.rb
5
+ I call that #<Duck:0x007f84cc8174c0> a duck.
6
+ ```
@@ -0,0 +1,3 @@
1
+ require_relative 'lib'
2
+
3
+ @app = Duck.new
@@ -0,0 +1,14 @@
1
+ class Duck
2
+ def walks
3
+ "Quaaa... Klop klop!"
4
+ end
5
+
6
+ def swims
7
+ warn " ..."
8
+ "Quaaa.."
9
+ end
10
+
11
+ def quacks
12
+ puts "Quaaaaaack!"
13
+ end
14
+ end
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env ruby -w
2
+
3
+ require_relative 'app'
4
+
5
+ # require 'spectus'
6
+ require_relative '../../lib/spectus'
7
+
8
+ extend Spectus::DSL
9
+
10
+ expectation_1 = expect { @app.swims }.to capture_stderr: " ...\n"
11
+ expectation_2 = expect { @app.quacks }.to capture_stdout: "Quaaaaaack!\n"
12
+ expectation_3 = expect { @app.speaks }.to raise_exception: NoMethodError
13
+ expectation_4 = expect { @app.walks }.to eql: "Quaaa... Klop klop!"
14
+
15
+ case (expectation_1 == true &&
16
+ expectation_2 == true &&
17
+ expectation_3 == true &&
18
+ expectation_4 == true)
19
+ when true then puts "I call that #{@app} a duck."
20
+ else warn 'WAT?'
21
+ end
data/lib/spectus/dsl.rb CHANGED
@@ -5,8 +5,14 @@ module Spectus
5
5
  # Expectation's domain-specific language.
6
6
  module DSL
7
7
 
8
- # Expectations are built with this method which takes a value, called the
9
- # actual.
8
+ # Expectations are built with this method.
9
+ #
10
+ # @api public
11
+ #
12
+ # @example Duck example
13
+ # YARD.parse('example/duck/*.rb')
14
+ #
15
+ # @return [ExpectationTarget] the expectation target.
10
16
  def expect &input
11
17
  ExpectationTarget.new(&input)
12
18
  end
@@ -7,19 +7,26 @@ module Spectus
7
7
  # @example
8
8
  # expect { do_something } # => ExpectationTarget wrapping the block
9
9
  class ExpectationTarget
10
- # @api private
11
10
  def initialize &actual
12
11
  @actual = actual
13
12
 
14
13
  freeze
15
14
  end
16
15
 
17
- # To evaluate to a positive assertion.
16
+ # Evaluate to a positive assertion.
17
+ #
18
+ # @api public
19
+ #
20
+ # @see Matcher#eval
18
21
  def to definition
19
22
  Matcher.eval false, definition, &@actual
20
23
  end
21
24
 
22
- # To evaluate to a negative assertion.
25
+ # Evaluate to a negative assertion.
26
+ #
27
+ # @api public
28
+ #
29
+ # @see Matcher#eval
23
30
  def not_to definition
24
31
  Matcher.eval true, definition, &@actual
25
32
  end
@@ -3,11 +3,8 @@ require 'stringio'
3
3
  module Spectus
4
4
  module Matcher
5
5
 
6
- # @api private
7
6
  # Provides the implementation for `capture_stderr`.
8
7
  class CaptureStderr
9
-
10
- # @api private
11
8
  def initialize expected
12
9
  @expected = expected
13
10
 
@@ -3,11 +3,8 @@ require 'stringio'
3
3
  module Spectus
4
4
  module Matcher
5
5
 
6
- # @api private
7
6
  # Provides the implementation for `capture_stdout`.
8
7
  class CaptureStdout
9
-
10
- # @api private
11
8
  def initialize expected
12
9
  @expected = expected
13
10
 
@@ -1,11 +1,8 @@
1
1
  module Spectus
2
2
  module Matcher
3
3
 
4
- # @api private
5
4
  # Provides the implementation for `eql`.
6
5
  class Eql
7
-
8
- # @api private
9
6
  def initialize expected
10
7
  @expected = expected
11
8
 
@@ -1,11 +1,8 @@
1
1
  module Spectus
2
2
  module Matcher
3
3
 
4
- # @api private
5
4
  # Provides the implementation for `equal`.
6
5
  class Equal
7
-
8
- # @api private
9
6
  def initialize expected
10
7
  @expected = expected
11
8
 
@@ -1,11 +1,8 @@
1
1
  module Spectus
2
2
  module Matcher
3
3
 
4
- # @api private
5
4
  # Provides the implementation for `match`.
6
5
  class Match
7
-
8
- # @api private
9
6
  def initialize expected
10
7
  @expected = expected
11
8
 
@@ -1,11 +1,8 @@
1
1
  module Spectus
2
2
  module Matcher
3
3
 
4
- # @api private
5
4
  # Provides the implementation for `raise_exception`.
6
5
  class RaiseException
7
-
8
- # @api private
9
6
  def initialize expected
10
7
  @expected = expected
11
8
 
@@ -1,18 +1,21 @@
1
- require_relative 'reporter'
2
-
3
1
  module Spectus
4
2
 
5
3
  # This module provides matchers to define expectations.
6
4
  module Matcher
7
5
 
8
- # Evaluate the expectation, and report the result.
6
+ # Evaluate the expectation with the passed block.
7
+ #
8
+ # @param [Boolean] negated
9
+ # @param [Hash] definition
10
+ #
11
+ # @return [ExceptionClass, false, true] true, false, or a cached exception.
9
12
  def self.eval negated, definition, &actual
10
13
  params = Array(definition).flatten(1)
11
14
  name = params.first
12
15
  expected_args = params[1..-1]
13
16
  matcher = Matcher.get(name).new(*expected_args)
14
17
 
15
- Reporter.new negated, name, *expected_args, begin
18
+ begin
16
19
  negated ^ matcher.matches?(&actual)
17
20
  rescue => e
18
21
  e
data/lib/spectus.rb CHANGED
@@ -2,5 +2,7 @@ require_relative File.join 'spectus', 'dsl'
2
2
  require_relative File.join 'spectus', 'version'
3
3
 
4
4
  # Namespace for the Spectus library.
5
+ #
6
+ # @api private
5
7
  module Spectus
6
8
  end
data/spectus.gemspec CHANGED
@@ -17,4 +17,10 @@ Gem::Specification.new do |spec|
17
17
  spec.add_development_dependency 'rake', '~> 10.0'
18
18
  spec.add_development_dependency 'yard', '~> 0.8'
19
19
  spec.add_development_dependency 'coveralls', '~> 0.7'
20
+
21
+ private_key = File.expand_path '~/.gemcert/spectus-gem-private_key.pem'
22
+ if File.exist? private_key
23
+ spec.signing_key = private_key
24
+ spec.cert_chain = ['spectus.pem']
25
+ end
20
26
  end
data/spectus.pem ADDED
@@ -0,0 +1,21 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDbDCCAlSgAwIBAgIBATANBgkqhkiG9w0BAQUFADA+MQ4wDAYDVQQDDAVjeXJp
3
+ bDEXMBUGCgmSJomT8ixkARkWB3Nhc2hpdGUxEzARBgoJkiaJk/IsZAEZFgNjb20w
4
+ HhcNMTQwOTI0MTUyOTE0WhcNMTUwOTI0MTUyOTE0WjA+MQ4wDAYDVQQDDAVjeXJp
5
+ bDEXMBUGCgmSJomT8ixkARkWB3Nhc2hpdGUxEzARBgoJkiaJk/IsZAEZFgNjb20w
6
+ ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDpolrc0SLpDakbnGS/hPqX
7
+ DBsM9WKIrIiDmpmdM0PBR5tW1Jad0/17xGCTGwxKjul3zqjfh9wQK+NnS4NUtxQj
8
+ brxQroYotsVwaUXOKuruDsL8lfx8+dqYvWBE6mt4Ggx3lnausO5IWQ1bSpdcYpyr
9
+ mxuR6ch1E5yS3+AdTFNp19iwFv6EOL/O0iE7Jb4RCcfp4Ua/9RAo3GHz+/iVkLjx
10
+ HxVZf/4F8lvpCBadg8TsHZTqQgr8EW6THeHi5YXVFth3LH7eAY7Q+vCKhQoIOPmj
11
+ C4AylJ7zT5tD9BJMwSenrtF0oZntmlKLgygyntxbZUExMjesdPXXzpZZ6v8Vco6N
12
+ AgMBAAGjdTBzMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBRq64f9
13
+ CZGW/N6a/4Q/glHHiA05VDAcBgNVHREEFTATgRFjeXJpbEBzYXNoaXRlLmNvbTAc
14
+ BgNVHRIEFTATgRFjeXJpbEBzYXNoaXRlLmNvbTANBgkqhkiG9w0BAQUFAAOCAQEA
15
+ OMD+bOYidquEGI87612sDP2QJXmIhDbbUFmvm8dGTABtyYdrdl77dEsaL8gEDSOC
16
+ nABh6/LOnLYlvAQE8bGMKdy/V4qwndS5i2j4ZfZTKEUUQ+FCcOfbHE1LrzYvuCyD
17
+ etFGUmqF5UtCBzDlwCiupv1m5f4yp/3IVARf3jwMVzlCLcTw7WVCrXL4ZgnStiBI
18
+ wRdxjXHZe3W/Ux7Irtd+JPd8pwuObE8i7h1tepcMWNQWFFmYOmYwmkB46WUTqa3Y
19
+ zeYBFLJQAl0AQPaGujsG5tssIabiNy1ryydKAjWkNDxqLgvtwST3L0Qr9UQFQgoA
20
+ O2Rl8PjSD+2P9XE7T2x1xQ==
21
+ -----END CERTIFICATE-----
@@ -4,10 +4,16 @@ subject "matcher module" do
4
4
  Spectus::Matcher
5
5
  end
6
6
 
7
- it 'must evaluate the expectation' do
8
- expect do
9
- subject.eval(false, eql: 'foobar') { 'foobar' }.class
10
- end.to equal: Spectus::Reporter
7
+ it 'must return true after the evaluation' do
8
+ expect { subject.eval(false, eql: 'foo') { 'foo' } }.to equal: true
9
+ end
10
+
11
+ it 'must return false after the evaluation' do
12
+ expect { subject.eval(false, eql: 'foo') { 'bar' } }.to equal: false
13
+ end
14
+
15
+ it 'must return an exception after the evaluation' do
16
+ expect { subject.eval(false, eql: 'foo') { BOOM }.class }.to equal: NameError
11
17
  end
12
18
 
13
19
  it 'must return the class of a matcher from its symbol' do
@@ -12,12 +12,12 @@ def it describe, &expectation
12
12
 
13
13
  result = expectation.call
14
14
 
15
- case result.state
16
- when :success
17
- puts "\e[32m#{result}\e[0m"
18
- when :failure
19
- warn "\e[31m#{result}\e[0m"
15
+ case result
16
+ when true
17
+ puts "\e[32m.\e[0m"
18
+ when false
19
+ warn "\e[31mF\e[0m"
20
20
  else
21
- fail result.exception
21
+ fail result
22
22
  end
23
23
  end
data.tar.gz.sig ADDED
@@ -0,0 +1,2 @@
1
+ MX�4�����18l��:"5��Χ#B�I�����Ί0�JJ^�iJ�]�=��:|ξY,ʀY/h�9��w��2�(z��"���t
2
+ ����4���
metadata CHANGED
@@ -1,14 +1,36 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spectus
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.pre
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cyril Wack
8
8
  autorequire:
9
9
  bindir: bin
10
- cert_chain: []
11
- date: 2014-09-22 00:00:00.000000000 Z
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDbDCCAlSgAwIBAgIBATANBgkqhkiG9w0BAQUFADA+MQ4wDAYDVQQDDAVjeXJp
14
+ bDEXMBUGCgmSJomT8ixkARkWB3Nhc2hpdGUxEzARBgoJkiaJk/IsZAEZFgNjb20w
15
+ HhcNMTQwOTI0MTUyOTE0WhcNMTUwOTI0MTUyOTE0WjA+MQ4wDAYDVQQDDAVjeXJp
16
+ bDEXMBUGCgmSJomT8ixkARkWB3Nhc2hpdGUxEzARBgoJkiaJk/IsZAEZFgNjb20w
17
+ ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDpolrc0SLpDakbnGS/hPqX
18
+ DBsM9WKIrIiDmpmdM0PBR5tW1Jad0/17xGCTGwxKjul3zqjfh9wQK+NnS4NUtxQj
19
+ brxQroYotsVwaUXOKuruDsL8lfx8+dqYvWBE6mt4Ggx3lnausO5IWQ1bSpdcYpyr
20
+ mxuR6ch1E5yS3+AdTFNp19iwFv6EOL/O0iE7Jb4RCcfp4Ua/9RAo3GHz+/iVkLjx
21
+ HxVZf/4F8lvpCBadg8TsHZTqQgr8EW6THeHi5YXVFth3LH7eAY7Q+vCKhQoIOPmj
22
+ C4AylJ7zT5tD9BJMwSenrtF0oZntmlKLgygyntxbZUExMjesdPXXzpZZ6v8Vco6N
23
+ AgMBAAGjdTBzMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBRq64f9
24
+ CZGW/N6a/4Q/glHHiA05VDAcBgNVHREEFTATgRFjeXJpbEBzYXNoaXRlLmNvbTAc
25
+ BgNVHRIEFTATgRFjeXJpbEBzYXNoaXRlLmNvbTANBgkqhkiG9w0BAQUFAAOCAQEA
26
+ OMD+bOYidquEGI87612sDP2QJXmIhDbbUFmvm8dGTABtyYdrdl77dEsaL8gEDSOC
27
+ nABh6/LOnLYlvAQE8bGMKdy/V4qwndS5i2j4ZfZTKEUUQ+FCcOfbHE1LrzYvuCyD
28
+ etFGUmqF5UtCBzDlwCiupv1m5f4yp/3IVARf3jwMVzlCLcTw7WVCrXL4ZgnStiBI
29
+ wRdxjXHZe3W/Ux7Irtd+JPd8pwuObE8i7h1tepcMWNQWFFmYOmYwmkB46WUTqa3Y
30
+ zeYBFLJQAl0AQPaGujsG5tssIabiNy1ryydKAjWkNDxqLgvtwST3L0Qr9UQFQgoA
31
+ O2Rl8PjSD+2P9XE7T2x1xQ==
32
+ -----END CERTIFICATE-----
33
+ date: 2014-09-25 00:00:00.000000000 Z
12
34
  dependencies:
13
35
  - !ruby/object:Gem::Dependency
14
36
  name: bundler
@@ -82,6 +104,10 @@ files:
82
104
  - README.md
83
105
  - Rakefile
84
106
  - VERSION.semver
107
+ - example/duck/README.md
108
+ - example/duck/app.rb
109
+ - example/duck/lib.rb
110
+ - example/duck/test.rb
85
111
  - lib/spectus.rb
86
112
  - lib/spectus/dsl.rb
87
113
  - lib/spectus/expectation_target.rb
@@ -92,9 +118,9 @@ files:
92
118
  - lib/spectus/matcher/equal.rb
93
119
  - lib/spectus/matcher/match.rb
94
120
  - lib/spectus/matcher/raise_exception.rb
95
- - lib/spectus/reporter.rb
96
121
  - lib/spectus/version.rb
97
122
  - spectus.gemspec
123
+ - spectus.pem
98
124
  - test/helper_test.rb
99
125
  - test/spectus/helper_test.rb
100
126
  - test/spectus/matcher/built_in/helper_test.rb
@@ -115,7 +141,6 @@ files:
115
141
  - test/spectus/test_dsl.rb
116
142
  - test/spectus/test_expectation_target.rb
117
143
  - test/spectus/test_matcher.rb
118
- - test/spectus/test_reporter.rb
119
144
  - test/spectus/test_version.rb
120
145
  - test/support.rb
121
146
  - test/support/coverage.rb
@@ -136,9 +161,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
136
161
  version: 2.0.0
137
162
  required_rubygems_version: !ruby/object:Gem::Requirement
138
163
  requirements:
139
- - - ">"
164
+ - - ">="
140
165
  - !ruby/object:Gem::Version
141
- version: 1.3.1
166
+ version: '0'
142
167
  requirements: []
143
168
  rubyforge_project:
144
169
  rubygems_version: 2.2.2
@@ -166,7 +191,6 @@ test_files:
166
191
  - test/spectus/test_dsl.rb
167
192
  - test/spectus/test_expectation_target.rb
168
193
  - test/spectus/test_matcher.rb
169
- - test/spectus/test_reporter.rb
170
194
  - test/spectus/test_version.rb
171
195
  - test/support.rb
172
196
  - test/support/coverage.rb
metadata.gz.sig ADDED
Binary file
@@ -1,45 +0,0 @@
1
- module Spectus
2
-
3
- # This class is responsible for reporting the result of the expectation.
4
- class Reporter
5
- attr_reader :negated, :matcher, :expected, :exception
6
-
7
- # @api private
8
- def initialize negated, matcher, expected, result
9
- @negated = negated
10
- @matcher = matcher
11
- @expected = expected
12
- @pass = result.equal? true
13
- @exception = ([ true, false ].include?(result) ? nil : result)
14
-
15
- freeze
16
- end
17
-
18
- # Returns true if the expectation is true. False otherwise.
19
- def pass?
20
- @pass
21
- end
22
-
23
- # Returns the state of the expectation.
24
- def state
25
- if pass?
26
- :success
27
- elsif @exception.nil?
28
- :failure
29
- else
30
- :error
31
- end
32
- end
33
-
34
- # Returns a char as the result of the expectation.
35
- def to_s
36
- if pass?
37
- '.'
38
- elsif @exception.nil?
39
- 'F'
40
- else
41
- 'E'
42
- end
43
- end
44
- end
45
- end
@@ -1,97 +0,0 @@
1
- require_relative 'helper_test'
2
-
3
- subject "reported success" do
4
- Spectus::Reporter.new true, :foo, 42, true
5
- end
6
-
7
- it 'must return nil as the is no exceptions' do
8
- expect { subject.exception }.to equal: nil
9
- end
10
-
11
- it 'must pass' do
12
- expect { subject.pass? }.to equal: true
13
- end
14
-
15
- it 'must be a negative assertion' do
16
- expect { subject.negated }.to equal: true
17
- end
18
-
19
- it 'must be foo matcher' do
20
- expect { subject.matcher }.to equal: :foo
21
- end
22
-
23
- it 'must expect 42' do
24
- expect { subject.expected }.to equal: 42
25
- end
26
-
27
- it 'must return a state' do
28
- expect { subject.state }.to equal: :success
29
- end
30
-
31
- it 'must return a char' do
32
- expect { subject.to_s }.to eql: '.'
33
- end
34
-
35
- subject "reported error" do
36
- Spectus::Reporter.new false, :foo, 4, :BOOM
37
- end
38
-
39
- it 'must return the cached exception' do
40
- expect { subject.exception }.to equal: :BOOM
41
- end
42
-
43
- it 'wont pass' do
44
- expect { subject.pass? }.to equal: false
45
- end
46
-
47
- it 'must be a positive assertion' do
48
- expect { subject.negated }.to equal: false
49
- end
50
-
51
- it 'must be foo matcher' do
52
- expect { subject.matcher }.to equal: :foo
53
- end
54
-
55
- it 'must expect 4' do
56
- expect { subject.expected }.to equal: 4
57
- end
58
-
59
- it 'must return a state' do
60
- expect { subject.state }.to equal: :error
61
- end
62
-
63
- it 'must return a char' do
64
- expect { subject.to_s }.to eql: 'E'
65
- end
66
-
67
- subject "reported failure" do
68
- Spectus::Reporter.new false, :foo, 9, false
69
- end
70
-
71
- it 'must return nil as the is no exceptions' do
72
- expect { subject.exception }.to equal: nil
73
- end
74
-
75
- it 'wont pass' do
76
- expect { subject.pass? }.to equal: false
77
- end
78
-
79
- it 'must be a positive assertion' do
80
- expect { subject.negated }.to equal: false
81
- end
82
-
83
- it 'must be foo matcher' do
84
- expect { subject.matcher }.to equal: :foo
85
- end
86
-
87
- it 'must expect 9' do
88
- expect { subject.expected }.to equal: 9
89
- end
90
-
91
- it 'must return a state' do
92
- expect { subject.state }.to equal: :failure
93
- end
94
-
95
- it 'must return a char' do
96
- expect { subject.to_s }.to eql: 'F'
97
- end