fear 1.0.0 → 2.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.
Files changed (143) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +27 -0
  3. data/.github/workflows/rubocop.yml +39 -0
  4. data/.github/workflows/spec.yml +42 -0
  5. data/.rubocop.yml +4 -60
  6. data/.simplecov +17 -0
  7. data/CHANGELOG.md +29 -1
  8. data/Gemfile +5 -5
  9. data/Gemfile.lock +86 -50
  10. data/README.md +240 -209
  11. data/Rakefile +72 -65
  12. data/examples/pattern_extracting.rb +10 -8
  13. data/examples/pattern_matching_binary_tree_set.rb +7 -2
  14. data/examples/pattern_matching_number_in_words.rb +48 -42
  15. data/fear.gemspec +33 -34
  16. data/lib/dry/types/fear/option.rb +125 -0
  17. data/lib/dry/types/fear.rb +8 -0
  18. data/lib/fear/await.rb +33 -0
  19. data/lib/fear/awaitable.rb +28 -0
  20. data/lib/fear/either.rb +15 -4
  21. data/lib/fear/either_api.rb +4 -0
  22. data/lib/fear/either_pattern_match.rb +9 -5
  23. data/lib/fear/empty_partial_function.rb +3 -1
  24. data/lib/fear/failure.rb +7 -7
  25. data/lib/fear/failure_pattern_match.rb +4 -0
  26. data/lib/fear/for.rb +4 -2
  27. data/lib/fear/for_api.rb +5 -1
  28. data/lib/fear/future.rb +157 -82
  29. data/lib/fear/future_api.rb +17 -4
  30. data/lib/fear/left.rb +3 -9
  31. data/lib/fear/left_pattern_match.rb +2 -0
  32. data/lib/fear/none.rb +28 -10
  33. data/lib/fear/none_pattern_match.rb +2 -0
  34. data/lib/fear/option.rb +30 -2
  35. data/lib/fear/option_api.rb +4 -0
  36. data/lib/fear/option_pattern_match.rb +8 -3
  37. data/lib/fear/partial_function/and_then.rb +4 -2
  38. data/lib/fear/partial_function/any.rb +2 -0
  39. data/lib/fear/partial_function/combined.rb +3 -1
  40. data/lib/fear/partial_function/empty.rb +6 -0
  41. data/lib/fear/partial_function/guard/and.rb +2 -0
  42. data/lib/fear/partial_function/guard/and3.rb +2 -0
  43. data/lib/fear/partial_function/guard/or.rb +2 -0
  44. data/lib/fear/partial_function/guard.rb +8 -6
  45. data/lib/fear/partial_function/lifted.rb +2 -0
  46. data/lib/fear/partial_function/or_else.rb +5 -1
  47. data/lib/fear/partial_function.rb +18 -9
  48. data/lib/fear/partial_function_class.rb +3 -1
  49. data/lib/fear/pattern_match.rb +3 -11
  50. data/lib/fear/pattern_matching_api.rb +6 -28
  51. data/lib/fear/promise.rb +7 -5
  52. data/lib/fear/right.rb +3 -9
  53. data/lib/fear/right_biased.rb +5 -3
  54. data/lib/fear/right_pattern_match.rb +4 -0
  55. data/lib/fear/some.rb +35 -8
  56. data/lib/fear/some_pattern_match.rb +2 -0
  57. data/lib/fear/struct.rb +237 -0
  58. data/lib/fear/success.rb +7 -8
  59. data/lib/fear/success_pattern_match.rb +4 -0
  60. data/lib/fear/try.rb +8 -2
  61. data/lib/fear/try_api.rb +4 -0
  62. data/lib/fear/try_pattern_match.rb +9 -5
  63. data/lib/fear/unit.rb +6 -2
  64. data/lib/fear/utils.rb +14 -2
  65. data/lib/fear/version.rb +4 -1
  66. data/lib/fear.rb +26 -44
  67. data/spec/dry/types/fear/option/constrained_spec.rb +22 -0
  68. data/spec/dry/types/fear/option/core_spec.rb +77 -0
  69. data/spec/dry/types/fear/option/default_spec.rb +21 -0
  70. data/spec/dry/types/fear/option/hash_spec.rb +58 -0
  71. data/spec/dry/types/fear/option/option_spec.rb +97 -0
  72. data/spec/fear/awaitable_spec.rb +19 -0
  73. data/spec/fear/done_spec.rb +7 -5
  74. data/spec/fear/either/mixin_spec.rb +4 -2
  75. data/spec/fear/either_pattern_match_spec.rb +10 -8
  76. data/spec/fear/either_pattern_matching_spec.rb +28 -0
  77. data/spec/fear/either_spec.rb +26 -0
  78. data/spec/fear/failure_spec.rb +57 -70
  79. data/spec/fear/for/mixin_spec.rb +15 -0
  80. data/spec/fear/for_spec.rb +19 -17
  81. data/spec/fear/future_spec.rb +477 -237
  82. data/spec/fear/guard_spec.rb +136 -24
  83. data/spec/fear/left_spec.rb +57 -70
  84. data/spec/fear/none_spec.rb +39 -43
  85. data/spec/fear/option/mixin_spec.rb +9 -7
  86. data/spec/fear/option_pattern_match_spec.rb +10 -8
  87. data/spec/fear/option_pattern_matching_spec.rb +34 -0
  88. data/spec/fear/option_spec.rb +142 -0
  89. data/spec/fear/partial_function/any_spec.rb +25 -0
  90. data/spec/fear/partial_function/empty_spec.rb +12 -10
  91. data/spec/fear/partial_function_and_then_spec.rb +39 -37
  92. data/spec/fear/partial_function_composition_spec.rb +46 -44
  93. data/spec/fear/partial_function_or_else_spec.rb +92 -90
  94. data/spec/fear/partial_function_spec.rb +91 -61
  95. data/spec/fear/pattern_match_spec.rb +19 -51
  96. data/spec/fear/pattern_matching_api_spec.rb +31 -0
  97. data/spec/fear/promise_spec.rb +23 -23
  98. data/spec/fear/right_biased/left.rb +28 -26
  99. data/spec/fear/right_biased/right.rb +51 -49
  100. data/spec/fear/right_spec.rb +48 -68
  101. data/spec/fear/some_spec.rb +30 -40
  102. data/spec/fear/success_spec.rb +40 -60
  103. data/spec/fear/try/mixin_spec.rb +19 -3
  104. data/spec/fear/try_api_spec.rb +23 -0
  105. data/spec/fear/try_pattern_match_spec.rb +10 -8
  106. data/spec/fear/try_pattern_matching_spec.rb +34 -0
  107. data/spec/fear/utils_spec.rb +16 -14
  108. data/spec/spec_helper.rb +13 -7
  109. data/spec/struct_pattern_matching_spec.rb +36 -0
  110. data/spec/struct_spec.rb +194 -0
  111. data/spec/support/dry_types.rb +6 -0
  112. metadata +128 -87
  113. data/.travis.yml +0 -13
  114. data/lib/fear/extractor/anonymous_array_splat_matcher.rb +0 -8
  115. data/lib/fear/extractor/any_matcher.rb +0 -15
  116. data/lib/fear/extractor/array_head_matcher.rb +0 -34
  117. data/lib/fear/extractor/array_matcher.rb +0 -38
  118. data/lib/fear/extractor/array_splat_matcher.rb +0 -14
  119. data/lib/fear/extractor/empty_list_matcher.rb +0 -18
  120. data/lib/fear/extractor/extractor_matcher.rb +0 -42
  121. data/lib/fear/extractor/grammar.rb +0 -201
  122. data/lib/fear/extractor/grammar.treetop +0 -129
  123. data/lib/fear/extractor/identifier_matcher.rb +0 -16
  124. data/lib/fear/extractor/matcher/and.rb +0 -36
  125. data/lib/fear/extractor/matcher.rb +0 -54
  126. data/lib/fear/extractor/named_array_splat_matcher.rb +0 -15
  127. data/lib/fear/extractor/pattern.rb +0 -55
  128. data/lib/fear/extractor/typed_identifier_matcher.rb +0 -24
  129. data/lib/fear/extractor/value_matcher.rb +0 -17
  130. data/lib/fear/extractor.rb +0 -108
  131. data/lib/fear/extractor_api.rb +0 -33
  132. data/spec/fear/extractor/array_matcher_spec.rb +0 -228
  133. data/spec/fear/extractor/extractor_matcher_spec.rb +0 -151
  134. data/spec/fear/extractor/grammar_array_spec.rb +0 -23
  135. data/spec/fear/extractor/identified_matcher_spec.rb +0 -47
  136. data/spec/fear/extractor/identifier_matcher_spec.rb +0 -66
  137. data/spec/fear/extractor/pattern_spec.rb +0 -32
  138. data/spec/fear/extractor/typed_identifier_matcher_spec.rb +0 -62
  139. data/spec/fear/extractor/value_matcher_number_spec.rb +0 -77
  140. data/spec/fear/extractor/value_matcher_string_spec.rb +0 -86
  141. data/spec/fear/extractor/value_matcher_symbol_spec.rb +0 -69
  142. data/spec/fear/extractor_api_spec.rb +0 -113
  143. data/spec/fear/extractor_spec.rb +0 -59
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b04f2a97dbf830e68f70c42b703e2e70f7baf389da09871b2024effe95f51c68
4
- data.tar.gz: 7852518363fe60c10e9c60da873462e84e9b1ad567c760992bbf595b5eb388fb
3
+ metadata.gz: df922b21ff9dcd7919c83d864ed99d7cc6cdd1618fac27f98f768c8cc921e569
4
+ data.tar.gz: 600968bd95a016565e58b782a877ea76b73eec925f1d637539b866acea6313fd
5
5
  SHA512:
6
- metadata.gz: 3b166826f4b02237d1614e334b98991271b8825d98cdb879d863abacdfc72587c0dfa47fe8762cab3b29cd7fa8472a5069092e1f8766e68807f8311bfe1c1614
7
- data.tar.gz: 8393f1845627f280e8e65caf2f4f36b329106beef35445ef58d3a8d053b8f2fb6644060a0139256bb7e120d4005efcb1427debbec495c97205719614361c73ab
6
+ metadata.gz: 99b517ac8c12f8071cba9324a68b0161ff4d3cc23e9230cf686b766c084500a9e0541f66b174b8bdebf063b1307adae9ac56806895aa5c8fabbad3c6c2b2a666
7
+ data.tar.gz: 0d91fec31fd44c59dbdb373bc230cd0d227a41b091ce3188fab59424d9ee86e7b7f3256f5b471a477dc96e5028d2bfa263bdc57b45cb6e4de3147dd71ef12d87
@@ -0,0 +1,27 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: bundler
4
+ directory: "/"
5
+ schedule:
6
+ interval: daily
7
+ time: "02:00"
8
+ open-pull-requests-limit: 10
9
+ ignore:
10
+ - dependency-name: dry-matcher
11
+ versions:
12
+ - "> 0.8.0"
13
+ - dependency-name: dry-monads
14
+ versions:
15
+ - "> 1.2.0"
16
+ - dependency-name: irb
17
+ versions:
18
+ - "> 1.1.0"
19
+ - dependency-name: rubocop-rspec
20
+ versions:
21
+ - "> 1.34.0"
22
+ - dependency-name: dry-types
23
+ versions:
24
+ - 1.5.0
25
+ - dependency-name: concurrent-ruby
26
+ versions:
27
+ - 1.1.8
@@ -0,0 +1,39 @@
1
+ # pulled from repo
2
+ name: "Rubocop"
3
+
4
+ on: pull_request
5
+
6
+ jobs:
7
+ rubocop:
8
+ runs-on: ubuntu-latest
9
+ strategy:
10
+ fail-fast: false
11
+
12
+ steps:
13
+ - name: Checkout repository
14
+ uses: actions/checkout@v2
15
+
16
+ # If running on a self-hosted runner, check it meets the requirements
17
+ # listed at https://github.com/ruby/setup-ruby#using-self-hosted-runners
18
+ - name: Set up Ruby
19
+ uses: ruby/setup-ruby@v1
20
+ with:
21
+ ruby-version: 3.1
22
+
23
+ # This step is not necessary if you add the gem to your Gemfile
24
+ - name: Install Code Scanning integration
25
+ run: bundle add code-scanning-rubocop --version 0.4.0 --skip-install
26
+
27
+ - name: Install dependencies
28
+ run: bundle install
29
+
30
+ - name: Rubocop run
31
+ run: |
32
+ bash -c "
33
+ bundle exec rubocop --require code_scanning --format CodeScanning::SarifFormatter -o rubocop.sarif
34
+ [[ $? -ne 2 ]]
35
+ "
36
+ - name: Upload Sarif output
37
+ uses: github/codeql-action/upload-sarif@v1
38
+ with:
39
+ sarif_file: rubocop.sarif
@@ -0,0 +1,42 @@
1
+ name: Spec
2
+
3
+ on: [push]
4
+
5
+ jobs:
6
+ test:
7
+ runs-on: ubuntu-latest
8
+ strategy:
9
+ matrix:
10
+ ruby: ['2.7.x' , '3.0.x', '3.1.x']
11
+ name: ${{ matrix.ruby }}
12
+
13
+ steps:
14
+ - uses: actions/checkout@v1
15
+ - name: Set up ruby
16
+ uses: actions/setup-ruby@v1
17
+ with:
18
+ ruby-version: ${{ matrix.ruby }}
19
+ - name: Install dependencies
20
+ run: |
21
+ gem install bundler --force --version=2.0.1
22
+ bundler --version
23
+ bundle install --jobs 4 --retry 3
24
+ - name: Test
25
+ run: bundle exec rspec
26
+ - name: Coveralls
27
+ uses: coverallsapp/github-action@v1.1.2
28
+ with:
29
+ github-token: ${{ secrets.GITHUB_TOKEN }}
30
+ flag-name: ruby-${{ matrix.ruby }}
31
+ parallel: true
32
+
33
+
34
+ finish:
35
+ needs: test
36
+ runs-on: ubuntu-latest
37
+ steps:
38
+ - name: Coveralls Finished
39
+ uses: coverallsapp/github-action@master
40
+ with:
41
+ github-token: ${{ secrets.GITHUB_TOKEN }}
42
+ parallel-finished: true
data/.rubocop.yml CHANGED
@@ -1,63 +1,7 @@
1
- inherit_mode:
2
- merge:
3
- - Exclude
1
+ inherit_gem:
2
+ ruby_coding_standard: .rubocop.yml
4
3
 
5
4
  AllCops:
5
+ TargetRubyVersion: 2.7
6
6
  Exclude:
7
- - 'gemfiles/**/*'
8
- - 'vendor/bundle/'
9
-
10
- Layout/MultilineMethodCallIndentation:
11
- EnforcedStyle: indented
12
-
13
- Metrics/ClassLength:
14
- Enabled: false
15
-
16
- Naming/MethodName:
17
- Enabled: false
18
-
19
- Naming/UncommunicativeMethodParamName:
20
- Enabled: false
21
-
22
- Style/Documentation:
23
- Enabled: false
24
-
25
- Style/CaseEquality:
26
- Enabled: false
27
-
28
- Style/AccessModifierDeclarations:
29
- EnforcedStyle: inline
30
-
31
- Style/GuardClause:
32
- Enabled: false
33
-
34
- Style/IfUnlessModifier:
35
- Enabled: false
36
-
37
- Style/TrailingCommaInArguments:
38
- EnforcedStyleForMultiline: comma
39
-
40
- Style/TrailingCommaInArrayLiteral:
41
- EnforcedStyleForMultiline: comma
42
-
43
- Style/TrailingCommaInHashLiteral:
44
- EnforcedStyleForMultiline: comma
45
-
46
- Style/NumericPredicate:
47
- Enabled: false
48
-
49
- Style/CommentedKeyword:
50
- Enabled: false
51
-
52
- Layout/IndentHeredoc:
53
- Enabled: false
54
-
55
- Metrics/BlockLength:
56
- Exclude:
57
- - spec/**/*
58
- - Rakefile
59
- - fear.gemspec
60
- - examples/**/*
61
-
62
- Metrics/LineLength:
63
- Max: 120
7
+ - vendor/**/*
data/.simplecov ADDED
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "simplecov-lcov"
4
+
5
+ SimpleCov::Formatter::LcovFormatter.config do |c|
6
+ c.report_with_single_file = true
7
+ c.single_report_path = "coverage/lcov.info"
8
+ end
9
+ SimpleCov.formatters = SimpleCov::Formatter::MultiFormatter.new(
10
+ [
11
+ SimpleCov::Formatter::HTMLFormatter,
12
+ SimpleCov::Formatter::LcovFormatter,
13
+ ],
14
+ )
15
+ SimpleCov.start do
16
+ add_filter "spec/"
17
+ end
data/CHANGELOG.md CHANGED
@@ -1,4 +1,31 @@
1
- ## 0.x
1
+ ## 2.0.0
2
+
3
+ * Added `Fear::Option#present?` and `Fear::Option#empty?` methods ([@Lokideos][])
4
+ * Start testing against Ruby 3.1.0 ([@bolshakov][])
5
+ * Minimal supported Ruby version is 2.7.0 ([@bolshakov][])
6
+ * Make future and promises compatible with Ruby 3.0 method syntax. ([@bolshakov][])
7
+ * Get rid off autoload in favor of require. Autoload appeared to be not thread-safe. ([@bolshakov][])
8
+ * All monads are shareable with Ractors ([@bolshakov][])
9
+ * Drop pattern extraction support (`Fear.xcase`). ([@bolshakov][])
10
+ * Add top-level factory methods: `Fear::Some`, `Fear::Option`, `Fear::Right`, `Fear::Left` ([@bolshakov][])
11
+ `Fear::Try`, `Fear::Success`, and `Fear::Failure`. ([@bolshakov][])
12
+
13
+ ## 1.2.0
14
+
15
+ * Implement `Fear::Option#zip` and `Fear::Future#zip` with block argument ([@bolshakov][])
16
+ * Drop ruby 2.4.x support, test against ruby 2.7.x ([@bolshakov][])
17
+ * Implement `Fear::Option#filter_map` ([@bolshakov][])
18
+ * Add dry-types extentions to wrap nullable values. ([@bolshakov][])
19
+ * Implement pattern matching for ruby >= 2.7
20
+ * Deprecate `Fear.xcase`
21
+
22
+ ## 1.1.0
23
+
24
+ * Add `Fear::Await.ready` and `Fear::Await.result`. ([@bolshakov][])
25
+ * Add callback versions with pattern matching `Fear::Future#on_success_match`, `#on_failure_match` and `#on_complete_match`. ([@bolshakov][])
26
+ * Implement immutable `Fear::Struct`. ([@bolshakov][])
27
+
28
+ ## 1.0.0
2
29
 
3
30
  * Rename `Fear::Done` to `Fear::Unit` ([@bolshakov][])
4
31
  * Don't treat symbols as procs while pattern matching. See [#46](https://github.com/bolshakov/fear/pull/46) for motivation ([@bolshakov][])
@@ -41,3 +68,4 @@
41
68
  * Added `Either#or_else` and `Option#or_else`. `Try#or_else` may accept only block ([@bolshakov][])
42
69
 
43
70
  [@bolshakov]: https://github.com/bolshakov
71
+ [@Lokideos]: https://github.com/Lokideos
data/Gemfile CHANGED
@@ -1,9 +1,9 @@
1
- source 'https://rubygems.org'
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
2
4
 
3
5
  # Specify your gem's dependencies in functional.gemspec
4
6
  gemspec
5
7
 
6
- # gem 'codeclimate-test-reporter', group: :test, require: nil
7
-
8
- gem 'irb'
9
- gem 'qo', github: 'baweaver/qo'
8
+ gem "irb"
9
+ gem "qo", github: "baweaver/qo"
data/Gemfile.lock CHANGED
@@ -1,5 +1,5 @@
1
1
  GIT
2
- remote: git://github.com/baweaver/qo.git
2
+ remote: https://github.com/baweaver/qo.git
3
3
  revision: 8951ce899559118eb60321014b43cf4211730bd0
4
4
  specs:
5
5
  qo (0.99.0)
@@ -8,66 +8,97 @@ GIT
8
8
  PATH
9
9
  remote: .
10
10
  specs:
11
- fear (1.0.0)
12
- lru_redux
13
- treetop
11
+ fear (2.0.0)
14
12
 
15
13
  GEM
16
14
  remote: https://rubygems.org/
17
15
  specs:
18
16
  any (0.1.0)
19
- ast (2.4.0)
20
- benchmark-ips (2.7.2)
21
- concurrent-ruby (1.1.5)
22
- diff-lcs (1.3)
23
- dry-core (0.4.7)
17
+ ast (2.4.2)
18
+ benchmark-ips (2.10.0)
19
+ concurrent-ruby (1.1.10)
20
+ diff-lcs (1.5.0)
21
+ docile (1.3.4)
22
+ dry-configurable (0.12.1)
24
23
  concurrent-ruby (~> 1.0)
25
- dry-equalizer (0.2.2)
26
- dry-matcher (0.7.0)
27
- dry-monads (1.2.0)
24
+ dry-core (~> 0.5, >= 0.5.0)
25
+ dry-container (0.7.2)
26
+ concurrent-ruby (~> 1.0)
27
+ dry-configurable (~> 0.1, >= 0.1.3)
28
+ dry-core (0.5.0)
29
+ concurrent-ruby (~> 1.0)
30
+ dry-equalizer (0.3.0)
31
+ dry-inflector (0.2.0)
32
+ dry-logic (1.1.0)
33
+ concurrent-ruby (~> 1.0)
34
+ dry-core (~> 0.5, >= 0.5)
35
+ dry-matcher (0.8.0)
36
+ dry-core (>= 0.4.7)
37
+ dry-monads (1.3.5)
28
38
  concurrent-ruby (~> 1.0)
29
39
  dry-core (~> 0.4, >= 0.4.4)
30
40
  dry-equalizer
31
- irb (1.0.0)
32
- jaro_winkler (1.5.2)
33
- lru_redux (1.1.0)
34
- parallel (1.14.0)
35
- parser (2.6.0.0)
36
- ast (~> 2.4.0)
37
- polyglot (0.3.5)
38
- powerpack (0.1.2)
39
- psych (3.1.0)
40
- rainbow (3.0.0)
41
- rake (10.5.0)
42
- rspec (3.8.0)
43
- rspec-core (~> 3.8.0)
44
- rspec-expectations (~> 3.8.0)
45
- rspec-mocks (~> 3.8.0)
46
- rspec-core (3.8.0)
47
- rspec-support (~> 3.8.0)
48
- rspec-expectations (3.8.2)
41
+ dry-types (1.5.1)
42
+ concurrent-ruby (~> 1.0)
43
+ dry-container (~> 0.3)
44
+ dry-core (~> 0.5, >= 0.5)
45
+ dry-inflector (~> 0.1, >= 0.1.2)
46
+ dry-logic (~> 1.0, >= 1.0.2)
47
+ fear-rspec (0.3.0)
48
+ fear (>= 1.0.0)
49
+ rspec (~> 3.0)
50
+ irb (1.1.0)
51
+ reline (>= 0.0.1)
52
+ json (2.6.2)
53
+ parallel (1.22.1)
54
+ parser (3.1.2.0)
55
+ ast (~> 2.4.1)
56
+ rainbow (3.1.1)
57
+ rake (13.0.6)
58
+ regexp_parser (2.5.0)
59
+ reline (0.0.7)
60
+ rexml (3.2.5)
61
+ rspec (3.11.0)
62
+ rspec-core (~> 3.11.0)
63
+ rspec-expectations (~> 3.11.0)
64
+ rspec-mocks (~> 3.11.0)
65
+ rspec-core (3.11.0)
66
+ rspec-support (~> 3.11.0)
67
+ rspec-expectations (3.11.0)
49
68
  diff-lcs (>= 1.2.0, < 2.0)
50
- rspec-support (~> 3.8.0)
51
- rspec-mocks (3.8.0)
69
+ rspec-support (~> 3.11.0)
70
+ rspec-mocks (3.11.0)
52
71
  diff-lcs (>= 1.2.0, < 2.0)
53
- rspec-support (~> 3.8.0)
54
- rspec-support (3.8.0)
55
- rubocop (0.65.0)
56
- jaro_winkler (~> 1.5.1)
72
+ rspec-support (~> 3.11.0)
73
+ rspec-support (3.11.0)
74
+ rubocop (1.32.0)
75
+ json (~> 2.3)
57
76
  parallel (~> 1.10)
58
- parser (>= 2.5, != 2.5.1.1)
59
- powerpack (~> 0.1)
60
- psych (>= 3.1.0)
77
+ parser (>= 3.1.0.0)
61
78
  rainbow (>= 2.2.2, < 4.0)
79
+ regexp_parser (>= 1.8, < 3.0)
80
+ rexml (>= 3.2.5, < 4.0)
81
+ rubocop-ast (>= 1.19.1, < 2.0)
62
82
  ruby-progressbar (~> 1.7)
63
- unicode-display_width (~> 1.4.0)
64
- rubocop-rspec (1.32.0)
83
+ unicode-display_width (>= 1.4.0, < 3.0)
84
+ rubocop-ast (1.19.1)
85
+ parser (>= 3.1.1.0)
86
+ rubocop-rspec (1.34.0)
65
87
  rubocop (>= 0.60.0)
66
- ruby-progressbar (1.10.0)
67
- treetop (1.6.10)
68
- polyglot (~> 0.3)
69
- unicode-display_width (1.4.1)
70
- yard (0.9.18)
88
+ ruby-progressbar (1.11.0)
89
+ ruby_coding_standard (0.4.0)
90
+ rubocop (~> 1.32.0)
91
+ simplecov (0.21.2)
92
+ docile (~> 1.1)
93
+ simplecov-html (~> 0.11)
94
+ simplecov_json_formatter (~> 0.1)
95
+ simplecov-html (0.12.3)
96
+ simplecov-lcov (0.8.0)
97
+ simplecov_json_formatter (0.1.2)
98
+ unicode-display_width (2.2.0)
99
+ webrick (1.7.0)
100
+ yard (0.9.28)
101
+ webrick (~> 1.7.0)
71
102
 
72
103
  PLATFORMS
73
104
  ruby
@@ -78,14 +109,19 @@ DEPENDENCIES
78
109
  concurrent-ruby
79
110
  dry-matcher
80
111
  dry-monads
112
+ dry-types
81
113
  fear!
114
+ fear-rspec
82
115
  irb
83
116
  qo!
84
- rake (~> 10.0)
117
+ rake (~> 13.0)
85
118
  rspec (~> 3.1)
86
- rubocop (= 0.65.0)
87
- rubocop-rspec (= 1.32.0)
119
+ rubocop (= 1.32.0)
120
+ rubocop-rspec (= 1.34.0)
121
+ ruby_coding_standard
122
+ simplecov
123
+ simplecov-lcov
88
124
  yard
89
125
 
90
126
  BUNDLED WITH
91
- 1.17.2
127
+ 2.1.4