fear 1.0.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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