fear-rspec 0.1.0 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e127f0f76045f679472da9204c9d48290f1dadfb
4
- data.tar.gz: 6bb25ff219b1501efe54a88fbb977cc2bedc6a11
3
+ metadata.gz: 8f759cb1fba803e80557dcee13188953ddab2039
4
+ data.tar.gz: fa7f26349dc37c36b0b2a85d89cf60a9c591d218
5
5
  SHA512:
6
- metadata.gz: aa8b47f6e12227a3a0e36a7518a0c77c01e2f01b07572babdac3ef36d50198c1baf2f03dd1ea9a2f7d1a00cdaec267028e894538ccfa03d55cd8f5a9266a60e0
7
- data.tar.gz: f48275d23dfb4472ec0164ca4d4c902c2ebafedb81731265e76b834960e43744214f3368c0b9ed805845ba3db3d9ee263c6e46e75ec74bf1f3372cc090a815d1
6
+ metadata.gz: 48dd6a7a70c6ec250a43876032aaed46bb5f526eac343c2f89383aae53d2438080acd8638b0a6286fb53095137805d337c7eddf33a247e4992e8ca6d10b45c54
7
+ data.tar.gz: 8415757e11f14dbe81a4d768c996d38c7a8c28982596c8a53186617cddc7d16113fe61fef97c6c7a00e966556c9bd8b4d7aabcda5245adcbd012071a39aafc5f
data/.rubocop.yml CHANGED
@@ -6,3 +6,9 @@ Style/MethodName:
6
6
 
7
7
  Style/Documentation:
8
8
  Enabled: false
9
+
10
+ RSpec/ExpectActual:
11
+ Enabled: false
12
+
13
+ RSpec/DescribeClass:
14
+ Enabled: false
data/README.md CHANGED
@@ -26,24 +26,54 @@ Load matchers:
26
26
  require 'fear/rspec'
27
27
  ```
28
28
 
29
+ ### Try matchers
30
+
31
+ To match against a `Failure`, use `be_failure_of` matcher.
32
+
33
+ ```ruby
34
+ expect(Failure(ArgumentError)).to be_failure_of(ArgumentError) # passes
35
+ expect(Failure(ArgumentError)).to be_failure_of(RuntimeError) # fails
36
+ expect(Success(5)).to be_failure_of(5) # fails
37
+ ```
38
+
39
+ To match against a `Success`, use `be_success_of` matcher.
40
+
41
+ ```ruby
42
+ expect(5).not_to be_success_of(5) # passes
43
+ expect(Success(5)).to be_success_of(5) # passes
44
+ expect(Success(1)).to be_success_of(5) # fails
45
+ expect(Failure(ArgumentError)).to be_success_of(5) # fails
46
+ ```
47
+
29
48
  ### Either matchers
30
49
 
31
50
  To match against a `Left`, use `be_left_of` matcher.
32
51
 
33
52
  ```ruby
34
- expect(5).not_to be_left_of(5) # passes
35
- expect(Left(5)).to be_left_of(5) # passes
36
- expect(Left(1)).to be_left_of(5) # fails
53
+ expect(5).not_to be_left_of(5) # passes
54
+ expect(Left(5)).to be_left_of(5) # passes
55
+ expect(Left(1)).to be_left_of(5) # fails
37
56
  expect(Right(5)).to be_left_of(5) # fails
38
57
  ```
39
58
 
40
59
  To match against a `Right`, use `be_right_of` matcher.
41
60
 
42
61
  ```ruby
43
- expect(5).not_to be_right_of(5) # passes
62
+ expect(5).not_to be_right_of(5) # passes
44
63
  expect(Right(5)).to be_right_of(5) # passes
45
64
  expect(Right(1)).to be_right_of(5) # fails
46
- expect(Left(5)).to be_right_of(5) # fails
65
+ expect(Left(5)).to be_right_of(5) # fails
66
+ ```
67
+
68
+ ### Option matchers
69
+
70
+ To match against a `Some`, use `be_some_of` matcher.
71
+
72
+ ```ruby
73
+ expect(5).not_to be_some_of(5) # passes
74
+ expect(Some(5)).to be_some_of(5) # passes
75
+ expect(Some(1)).to be_some_of(5) # fails
76
+ expect(None()).to be_some_of(5) # fails
47
77
  ```
48
78
 
49
79
  ## Development
@@ -0,0 +1,40 @@
1
+ module Fear
2
+ module RSpec
3
+ # Passes if `actual` is Left and matches `expected`.
4
+ #
5
+ # @example
6
+ # expect(5).not_to be_failure_of (5)
7
+ # expect(Failure(5)).to be_failure_of (5)
8
+ #
9
+ ::RSpec::Matchers.define :be_failure_of do |expected|
10
+ match do |actual|
11
+ actual.is_a?(Fear::Failure) && begin
12
+ expected = with_matchers_cloned(expected)
13
+ ::RSpec::Support::FuzzyMatcher.values_match?(expected, actual.exception)
14
+ end
15
+ end
16
+
17
+ failure_message_when_negated do |actual|
18
+ format(
19
+ "\nexpected: not Failure of %<expected>s\n got: %<actual>s\n",
20
+ expected: ::RSpec::Support::ObjectFormatter.format(expected),
21
+ actual: ::RSpec::Support::ObjectFormatter.format(actual),
22
+ )
23
+ end
24
+
25
+ failure_message do |actual|
26
+ format(
27
+ "\nexpected: Failure of %<expected>s\n got: %<actual>s\n",
28
+ expected: ::RSpec::Support::ObjectFormatter.format(expected),
29
+ actual: ::RSpec::Support::ObjectFormatter.format(actual),
30
+ )
31
+ end
32
+
33
+ description do
34
+ "be Failure of #{expected}"
35
+ end
36
+
37
+ diffable
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,42 @@
1
+ module Fear
2
+ module RSpec
3
+ # Passes if `actual` is Some and matches `expected`.
4
+ #
5
+ # @example
6
+ # expect(5).not_to be_some_of(5)
7
+ # expect(Some(5)).to be_some_of(5)
8
+ # expect(None()).to be_some_of(5)
9
+ #
10
+ ::RSpec::Matchers.define :be_some_of do |expected|
11
+ match do |actual|
12
+ actual.is_a?(Fear::Option) &&
13
+ actual.any? do |value|
14
+ expected = with_matchers_cloned(expected)
15
+ ::RSpec::Support::FuzzyMatcher.values_match?(expected, value)
16
+ end
17
+ end
18
+
19
+ failure_message_when_negated do |actual|
20
+ format(
21
+ "\nexpected: not Some of %<expected>s\n got: %<actual>s\n",
22
+ expected: ::RSpec::Support::ObjectFormatter.format(expected),
23
+ actual: ::RSpec::Support::ObjectFormatter.format(actual),
24
+ )
25
+ end
26
+
27
+ failure_message do |actual|
28
+ format(
29
+ "\nexpected: Some of %<expected>s\n got: %<actual>s\n",
30
+ expected: ::RSpec::Support::ObjectFormatter.format(expected),
31
+ actual: ::RSpec::Support::ObjectFormatter.format(actual),
32
+ )
33
+ end
34
+
35
+ description do
36
+ "be Some of #{expected}"
37
+ end
38
+
39
+ diffable
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,41 @@
1
+ module Fear
2
+ module RSpec
3
+ # Passes if `actual` is Success and matches `expected`.
4
+ #
5
+ # @example
6
+ # expect(5).not_to be_success_of(5)
7
+ # expect(Success(5)).to be_success_of(5)
8
+ #
9
+ ::RSpec::Matchers.define :be_success_of do |expected|
10
+ match do |actual|
11
+ actual.is_a?(Fear::Try) &&
12
+ actual.any? do |value|
13
+ expected = with_matchers_cloned(expected)
14
+ ::RSpec::Support::FuzzyMatcher.values_match?(expected, value)
15
+ end
16
+ end
17
+
18
+ failure_message_when_negated do |actual|
19
+ format(
20
+ "\nexpected: not Success of %<expected>s\n got: %<actual>s\n",
21
+ expected: ::RSpec::Support::ObjectFormatter.format(expected),
22
+ actual: ::RSpec::Support::ObjectFormatter.format(actual),
23
+ )
24
+ end
25
+
26
+ failure_message do |actual|
27
+ format(
28
+ "\nexpected: Success of %<expected>s\n got: %<actual>s\n",
29
+ expected: ::RSpec::Support::ObjectFormatter.format(expected),
30
+ actual: ::RSpec::Support::ObjectFormatter.format(actual),
31
+ )
32
+ end
33
+
34
+ description do
35
+ "be Success of #{expected}"
36
+ end
37
+
38
+ diffable
39
+ end
40
+ end
41
+ end
@@ -1,5 +1,5 @@
1
1
  module Fear
2
2
  module Rspec
3
- VERSION = '0.1.0'.freeze
3
+ VERSION = '0.2.0'.freeze
4
4
  end
5
5
  end
data/lib/fear/rspec.rb CHANGED
@@ -4,7 +4,10 @@ require 'rspec/matchers'
4
4
 
5
5
  module Fear
6
6
  module RSpec
7
+ require 'fear/rspec/be_failure_of'
7
8
  require 'fear/rspec/be_left_of'
8
9
  require 'fear/rspec/be_right_of'
10
+ require 'fear/rspec/be_some_of'
11
+ require 'fear/rspec/be_success_of'
9
12
  end
10
13
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fear-rspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tema Bolshakov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-12-12 00:00:00.000000000 Z
11
+ date: 2016-12-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -113,8 +113,11 @@ files:
113
113
  - bin/setup
114
114
  - fear-rspec.gemspec
115
115
  - lib/fear/rspec.rb
116
+ - lib/fear/rspec/be_failure_of.rb
116
117
  - lib/fear/rspec/be_left_of.rb
117
118
  - lib/fear/rspec/be_right_of.rb
119
+ - lib/fear/rspec/be_some_of.rb
120
+ - lib/fear/rspec/be_success_of.rb
118
121
  - lib/fear/rspec/version.rb
119
122
  homepage: https://github.com/bolshakov/fear-rspec
120
123
  licenses: