flows 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (147) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/{build.yml → test.yml} +5 -10
  3. data/.gitignore +1 -0
  4. data/.reek.yml +42 -0
  5. data/.rubocop.yml +20 -7
  6. data/.ruby-version +1 -1
  7. data/.yardopts +1 -0
  8. data/CHANGELOG.md +42 -0
  9. data/Gemfile +0 -6
  10. data/Gemfile.lock +139 -74
  11. data/README.md +158 -364
  12. data/Rakefile +35 -1
  13. data/bin/.rubocop.yml +5 -0
  14. data/bin/all_the_errors +47 -0
  15. data/bin/benchmark +73 -105
  16. data/bin/benchmark_cli/compare.rb +118 -0
  17. data/bin/benchmark_cli/compare/a_plus_b.rb +22 -0
  18. data/bin/benchmark_cli/compare/base.rb +45 -0
  19. data/bin/benchmark_cli/compare/command.rb +47 -0
  20. data/bin/benchmark_cli/compare/ten_steps.rb +22 -0
  21. data/bin/benchmark_cli/examples.rb +23 -0
  22. data/bin/benchmark_cli/examples/.rubocop.yml +19 -0
  23. data/bin/benchmark_cli/examples/a_plus_b/dry_do.rb +23 -0
  24. data/bin/benchmark_cli/examples/a_plus_b/dry_transaction.rb +17 -0
  25. data/bin/benchmark_cli/examples/a_plus_b/flows_do.rb +22 -0
  26. data/bin/benchmark_cli/examples/a_plus_b/flows_railway.rb +13 -0
  27. data/bin/benchmark_cli/examples/a_plus_b/flows_scp.rb +13 -0
  28. data/bin/benchmark_cli/examples/a_plus_b/flows_scp_mut.rb +13 -0
  29. data/bin/benchmark_cli/examples/a_plus_b/flows_scp_oc.rb +21 -0
  30. data/bin/benchmark_cli/examples/a_plus_b/trailblazer.rb +15 -0
  31. data/bin/benchmark_cli/examples/ten_steps/dry_do.rb +70 -0
  32. data/bin/benchmark_cli/examples/ten_steps/dry_transaction.rb +64 -0
  33. data/bin/benchmark_cli/examples/ten_steps/flows_do.rb +69 -0
  34. data/bin/benchmark_cli/examples/ten_steps/flows_railway.rb +58 -0
  35. data/bin/benchmark_cli/examples/ten_steps/flows_scp.rb +58 -0
  36. data/bin/benchmark_cli/examples/ten_steps/flows_scp_mut.rb +58 -0
  37. data/bin/benchmark_cli/examples/ten_steps/flows_scp_oc.rb +66 -0
  38. data/bin/benchmark_cli/examples/ten_steps/trailblazer.rb +60 -0
  39. data/bin/benchmark_cli/helpers.rb +12 -0
  40. data/bin/benchmark_cli/ruby.rb +15 -0
  41. data/bin/benchmark_cli/ruby/command.rb +38 -0
  42. data/bin/benchmark_cli/ruby/method_exec.rb +71 -0
  43. data/bin/benchmark_cli/ruby/self_class.rb +69 -0
  44. data/bin/benchmark_cli/ruby/structs.rb +90 -0
  45. data/bin/console +1 -0
  46. data/bin/docserver +7 -0
  47. data/bin/errors +118 -0
  48. data/bin/errors_cli/contract_error_demo.rb +49 -0
  49. data/bin/errors_cli/di_error_demo.rb +38 -0
  50. data/bin/errors_cli/flows_router_error_demo.rb +15 -0
  51. data/bin/errors_cli/oc_error_demo.rb +40 -0
  52. data/bin/errors_cli/railway_error_demo.rb +10 -0
  53. data/bin/errors_cli/result_error_demo.rb +13 -0
  54. data/bin/errors_cli/scp_error_demo.rb +17 -0
  55. data/docs/README.md +2 -186
  56. data/docs/_sidebar.md +0 -24
  57. data/docs/index.html +1 -1
  58. data/flows.gemspec +25 -2
  59. data/forspell.dict +9 -0
  60. data/lefthook.yml +9 -0
  61. data/lib/flows.rb +11 -5
  62. data/lib/flows/contract.rb +402 -0
  63. data/lib/flows/contract/array.rb +55 -0
  64. data/lib/flows/contract/case_eq.rb +41 -0
  65. data/lib/flows/contract/compose.rb +77 -0
  66. data/lib/flows/contract/either.rb +53 -0
  67. data/lib/flows/contract/error.rb +25 -0
  68. data/lib/flows/contract/hash.rb +75 -0
  69. data/lib/flows/contract/hash_of.rb +70 -0
  70. data/lib/flows/contract/helpers.rb +22 -0
  71. data/lib/flows/contract/predicate.rb +34 -0
  72. data/lib/flows/contract/transformer.rb +50 -0
  73. data/lib/flows/contract/tuple.rb +70 -0
  74. data/lib/flows/flow.rb +75 -7
  75. data/lib/flows/flow/node.rb +131 -0
  76. data/lib/flows/flow/router.rb +25 -0
  77. data/lib/flows/flow/router/custom.rb +54 -0
  78. data/lib/flows/flow/router/errors.rb +11 -0
  79. data/lib/flows/flow/router/simple.rb +20 -0
  80. data/lib/flows/plugin.rb +13 -0
  81. data/lib/flows/plugin/dependency_injector.rb +159 -0
  82. data/lib/flows/plugin/dependency_injector/dependency.rb +24 -0
  83. data/lib/flows/plugin/dependency_injector/dependency_definition.rb +16 -0
  84. data/lib/flows/plugin/dependency_injector/dependency_list.rb +57 -0
  85. data/lib/flows/plugin/dependency_injector/errors.rb +58 -0
  86. data/lib/flows/plugin/implicit_init.rb +45 -0
  87. data/lib/flows/plugin/output_contract.rb +84 -0
  88. data/lib/flows/plugin/output_contract/dsl.rb +36 -0
  89. data/lib/flows/plugin/output_contract/errors.rb +74 -0
  90. data/lib/flows/plugin/output_contract/wrapper.rb +53 -0
  91. data/lib/flows/railway.rb +140 -37
  92. data/lib/flows/railway/dsl.rb +8 -19
  93. data/lib/flows/railway/errors.rb +8 -12
  94. data/lib/flows/railway/step.rb +24 -0
  95. data/lib/flows/railway/step_list.rb +38 -0
  96. data/lib/flows/result.rb +188 -2
  97. data/lib/flows/result/do.rb +160 -16
  98. data/lib/flows/result/err.rb +12 -6
  99. data/lib/flows/result/errors.rb +29 -17
  100. data/lib/flows/result/helpers.rb +25 -3
  101. data/lib/flows/result/ok.rb +12 -6
  102. data/lib/flows/shared_context_pipeline.rb +216 -0
  103. data/lib/flows/shared_context_pipeline/dsl.rb +63 -0
  104. data/lib/flows/shared_context_pipeline/errors.rb +17 -0
  105. data/lib/flows/shared_context_pipeline/mutation_step.rb +31 -0
  106. data/lib/flows/shared_context_pipeline/router_definition.rb +21 -0
  107. data/lib/flows/shared_context_pipeline/step.rb +46 -0
  108. data/lib/flows/shared_context_pipeline/track.rb +67 -0
  109. data/lib/flows/shared_context_pipeline/track_list.rb +46 -0
  110. data/lib/flows/util.rb +17 -0
  111. data/lib/flows/util/inheritable_singleton_vars.rb +79 -0
  112. data/lib/flows/util/inheritable_singleton_vars/dup_strategy.rb +109 -0
  113. data/lib/flows/util/inheritable_singleton_vars/isolation_strategy.rb +104 -0
  114. data/lib/flows/util/prepend_to_class.rb +145 -0
  115. data/lib/flows/version.rb +1 -1
  116. metadata +233 -37
  117. data/bin/demo +0 -66
  118. data/bin/examples.rb +0 -195
  119. data/bin/profile_10steps +0 -106
  120. data/bin/ruby_benchmarks +0 -26
  121. data/docs/CNAME +0 -1
  122. data/docs/contributing/benchmarks_profiling.md +0 -3
  123. data/docs/contributing/local_development.md +0 -3
  124. data/docs/flow/direct_usage.md +0 -3
  125. data/docs/flow/general_idea.md +0 -3
  126. data/docs/operation/basic_usage.md +0 -1
  127. data/docs/operation/inject_steps.md +0 -3
  128. data/docs/operation/lambda_steps.md +0 -3
  129. data/docs/operation/result_shapes.md +0 -3
  130. data/docs/operation/routing_tracks.md +0 -3
  131. data/docs/operation/wrapping_steps.md +0 -3
  132. data/docs/overview/performance.md +0 -336
  133. data/docs/railway/basic_usage.md +0 -232
  134. data/docs/result_objects/basic_usage.md +0 -196
  135. data/docs/result_objects/do_notation.md +0 -139
  136. data/lib/flows/implicit_build.rb +0 -16
  137. data/lib/flows/node.rb +0 -27
  138. data/lib/flows/operation.rb +0 -55
  139. data/lib/flows/operation/builder.rb +0 -130
  140. data/lib/flows/operation/builder/build_router.rb +0 -37
  141. data/lib/flows/operation/dsl.rb +0 -93
  142. data/lib/flows/operation/errors.rb +0 -75
  143. data/lib/flows/operation/executor.rb +0 -78
  144. data/lib/flows/railway/builder.rb +0 -68
  145. data/lib/flows/railway/executor.rb +0 -23
  146. data/lib/flows/result_router.rb +0 -14
  147. data/lib/flows/router.rb +0 -22
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: be39f457170b0b70b8c54073f5ae4c75c19ee90fdfa0a5d4e8e8bd6762d910ae
4
- data.tar.gz: e3bb541f406ae2c935273a9a915cd19ef6f680b165c01ed9acd59d3cc5665100
3
+ metadata.gz: 3408a7cfa09415262d76e3cdc1d2d28529103928bbbc379dc0c02a14b1f25eee
4
+ data.tar.gz: 55b10a5f99d6c0b33185a9e0ba193ab39abd3f43ae88b39b5cb7b48c30fbe23d
5
5
  SHA512:
6
- metadata.gz: 4c4a2444bb62c7f4e1f40d9a7c45e060154fdfb434a1fa80557b322bead0a6b1e890f2cca6643b0d07b6ecb337a888839dee05838d096b9024073a39fb3871b1
7
- data.tar.gz: fc9c68ec2cf6b7c507db598fdd6615b07f12b618cedcba5a86012966d26d5f7829908c98fbc4c7dfbfe3265d83f13d7b9f3c2cce4b4e0141cf969955a3931fec
6
+ metadata.gz: 23ef64c88317d77233cf9eb837d3318a73523fd8ac270ec7166eb42c57b0310a015af887bab0018423290eba49f7fb9d735b4c079940bbb1c2cb394857155779
7
+ data.tar.gz: fa7baaa93dc8836ab470e873624feaa15a3a6a29a25e483d2efe2b34e228bb2ad88c1c31ed0905c5635aa51b8cb9760fcd76bc2fdc62806ff61ff72eba737e6d
@@ -1,4 +1,4 @@
1
- name: Build
1
+ name: Test
2
2
 
3
3
  on:
4
4
  push:
@@ -11,7 +11,7 @@ on:
11
11
  - cron: 0 2 * * 1-5
12
12
 
13
13
  jobs:
14
- build:
14
+ test:
15
15
  runs-on: ubuntu-latest
16
16
  strategy:
17
17
  fail-fast: false
@@ -19,6 +19,7 @@ jobs:
19
19
  ruby:
20
20
  - 2.5.x
21
21
  - 2.6.x
22
+ # - 2.7.x
22
23
  steps:
23
24
  - uses: actions/checkout@v1
24
25
  - name: Set up Ruby
@@ -31,13 +32,7 @@ jobs:
31
32
  run: sudo apt-get install hunspell
32
33
  - name: Install Deps
33
34
  run: bundle install --jobs 4 --retry 3
34
- - name: Rubocop
35
- run: bundle exec rubocop
36
- - name: RSpec
35
+ - name: Test
37
36
  env:
38
37
  CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
39
- run: bundle exec rspec
40
- - name: Markdown Linter (docs)
41
- run: bundle exec mdl docs/**/*.md README.md
42
- - name: Spelling Check (docs & code)
43
- run: bundle exec forspell
38
+ run: bundle exec rake
data/.gitignore CHANGED
@@ -1,4 +1,5 @@
1
1
  /.bundle/
2
+ /.vendor/
2
3
  /.yardoc
3
4
  /_yardoc/
4
5
  /coverage/
@@ -0,0 +1,42 @@
1
+ # default config: https://github.com/troessner/reek/blob/master/docs/defaults.reek.yml
2
+ # detectors' docs: https://github.com/troessner/reek/tree/master/docs
3
+ ---
4
+ exclude_paths:
5
+ - 'bin/'
6
+ - 'spec/'
7
+
8
+ detectors:
9
+ LongParameterList:
10
+ enabled: true
11
+ exclude: []
12
+ max_params: 4 # +1 to default value
13
+ overrides:
14
+ initialize:
15
+ max_params: 6 # +1 to default value
16
+ ModuleInitialize:
17
+ enabled: false
18
+ TooManyInstanceVariables:
19
+ enabled: true
20
+ exclude: []
21
+ max_instance_variables: 5 # +1 to default value
22
+ DataClump:
23
+ exclude:
24
+ - Flows::Result::Helpers
25
+ IrresponsibleModule:
26
+ exclude:
27
+ - Flows::SharedContextPipeline
28
+ FeatureEnvy:
29
+ exclude:
30
+ - Flows::SharedContextPipeline#call
31
+ - Flows::Contract # too many false positives here
32
+ TooManyStatements:
33
+ exclude:
34
+ - Flows::SharedContextPipeline#call
35
+ - initialize
36
+ DuplicateMethodCall:
37
+ exclude:
38
+ - Flows::SharedContextPipeline#call
39
+ - 'length'
40
+ MissingSafeMethod:
41
+ exclude:
42
+ - Flows::Contract
@@ -4,9 +4,18 @@ require:
4
4
  - rubocop-md
5
5
 
6
6
  AllCops:
7
- TargetRubyVersion: 2.6
7
+ TargetRubyVersion: 2.7
8
8
 
9
- LineLength:
9
+ Style/HashEachMethods:
10
+ Enabled: true
11
+
12
+ Style/HashTransformKeys:
13
+ Enabled: true
14
+
15
+ Style/HashTransformValues:
16
+ Enabled: true
17
+
18
+ Layout/LineLength:
10
19
  Max: 120
11
20
 
12
21
  Metrics/BlockLength:
@@ -22,9 +31,10 @@ Metrics/ParameterLists:
22
31
  Style/WhileUntilModifier:
23
32
  Enabled: false
24
33
 
25
- Naming/UncommunicativeMethodParamName:
34
+ Naming/MethodParameterName:
26
35
  Exclude:
27
36
  - '**/*.md'
37
+ - 'spec/**/*'
28
38
 
29
39
  Style/MixinUsage:
30
40
  Exclude:
@@ -38,10 +48,13 @@ Lint/UnusedBlockArgument:
38
48
  Exclude:
39
49
  - '**/*.md'
40
50
 
41
- Lint/UnreachableCode:
51
+ Style/CaseEquality:
42
52
  Exclude:
43
- - 'docs/result_objects/do_notation.md'
53
+ - 'lib/flows/contract/**/*'
54
+
55
+ Naming/RescuedExceptionsVariableName:
56
+ PreferredName: err
44
57
 
45
- Lint/Void:
58
+ Style/Documentation:
46
59
  Exclude:
47
- - 'docs/result_objects/do_notation.md'
60
+ - 'lib/flows/shared_context_pipeline/step.rb' # false positive here
@@ -1 +1 @@
1
- 2.6.2
1
+ 2.6.5
@@ -0,0 +1 @@
1
+ --markup markdown
@@ -0,0 +1,42 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ Types of changes:
9
+
10
+ * _Added_ - for new features.
11
+ * _Changed_ - for changes in existing functionality.
12
+ * _Deprecated_ - for soon-to-be removed features.
13
+ * _Removed_ - for now removed features.
14
+ * _Fixed_ -- for any bug fixes.
15
+ * _Security_ - in case of vulnerabilities.
16
+
17
+ ## [Unreleased]
18
+
19
+ ## [0.4.0] - 2020-04-21
20
+
21
+ ### Added
22
+
23
+ * `Flows::Contract` - type contracts with specific transformation feature.
24
+ * `Flows::Flow` - fast and lightweight logic execution engine, designed for
25
+ internal usage and library writers.
26
+ * `Flows::Plugin::DependencyInjector` - simple dependency injection plugin for your classes
27
+ * `Flows::Plugin::ImplicitInit` - allows to use `MyClass.call` instead of
28
+ `MyClass.new.call`, an class instance will be created once.
29
+ * `Flows::Plugin::OutputContract` - plugin for output type checks and
30
+ transformations for service objects which return `Flows::Result`.
31
+ * `Flows::Railway` - stupid simple implementation of the railway pattern.
32
+ * `Flows::Result` - general purpose Result Object designed after Rust Result type.
33
+ * `Flows::Result::Do` - do-notation for Result Objects.
34
+ * `Flows::SharedContextPipeline` - much more flexible adoption of the railway
35
+ pattern for Ruby.
36
+ * `Flows::Util::InheritableSingletonVars` - allows to define behavior for
37
+ singleton variables in the context of inheritance.
38
+ * `Flows::Util::PrependToClass` - allows to prepend some module to class even if
39
+ target module did not included directly into class.
40
+
41
+ [unreleased]: https://github.com/ffloyd/flows/compare/v0.4.0...HEAD
42
+ [0.4.0]: https://github.com/ffloyd/flows/compare/v0.3.0...v0.4.0
data/Gemfile CHANGED
@@ -2,9 +2,3 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in flows.gemspec
4
4
  gemspec
5
-
6
- # temporary dev dependencies,
7
- # move it to gemspec after PRs will be merged into realesed version of a gem
8
- group :development do
9
- gem 'mdl', github: 'ffloyd/markdownlint', branch: 'update-kramdown-dep'
10
- end
@@ -1,50 +1,53 @@
1
- GIT
2
- remote: git://github.com/ffloyd/markdownlint.git
3
- revision: 801cb12f645d894e0d262bb4908d8086b6dd23bc
4
- branch: update-kramdown-dep
5
- specs:
6
- mdl (0.5.0)
7
- kramdown (~> 2.0)
8
- kramdown-parser-gfm (~> 1.0)
9
- mixlib-cli (~> 1.7, >= 1.7.0)
10
- mixlib-config (~> 2.2, >= 2.2.1)
11
-
12
1
  PATH
13
2
  remote: .
14
3
  specs:
15
- flows (0.3.0)
4
+ flows (0.4.0)
16
5
 
17
6
  GEM
18
7
  remote: https://rubygems.org/
19
8
  specs:
20
9
  ast (2.4.0)
21
- backports (3.15.0)
10
+ awesome_print (1.8.0)
11
+ axiom-types (0.1.1)
12
+ descendants_tracker (~> 0.0.4)
13
+ ice_nine (~> 0.11.0)
14
+ thread_safe (~> 0.3, >= 0.3.1)
15
+ backports (3.17.0)
22
16
  benchmark-ips (2.7.2)
23
- codecov (0.1.14)
17
+ codeclimate-engine-rb (0.4.1)
18
+ virtus (~> 1.0)
19
+ codecov (0.1.16)
24
20
  json
25
21
  simplecov
26
22
  url
27
23
  coderay (1.1.2)
28
- concurrent-ruby (1.1.5)
29
- crass (1.0.4)
24
+ coercible (1.0.0)
25
+ descendants_tracker (~> 0.0.1)
26
+ concurrent-ruby (1.1.6)
27
+ crass (1.0.6)
28
+ declarative (0.0.10)
29
+ declarative-option (0.1.0)
30
+ descendants_tracker (0.0.4)
31
+ thread_safe (~> 0.3, >= 0.3.1)
30
32
  diff-lcs (1.3)
31
33
  docile (1.3.2)
32
- dry-configurable (0.8.3)
34
+ dry-configurable (0.11.5)
33
35
  concurrent-ruby (~> 1.0)
34
36
  dry-core (~> 0.4, >= 0.4.7)
37
+ dry-equalizer (~> 0.2)
35
38
  dry-container (0.7.2)
36
39
  concurrent-ruby (~> 1.0)
37
40
  dry-configurable (~> 0.1, >= 0.1.3)
38
41
  dry-core (0.4.9)
39
42
  concurrent-ruby (~> 1.0)
40
- dry-equalizer (0.2.2)
43
+ dry-equalizer (0.3.0)
41
44
  dry-events (0.2.0)
42
45
  concurrent-ruby (~> 1.0)
43
46
  dry-core (~> 0.4)
44
47
  dry-equalizer (~> 0.2)
45
- dry-matcher (0.8.2)
48
+ dry-matcher (0.8.3)
46
49
  dry-core (>= 0.4.8)
47
- dry-monads (1.3.1)
50
+ dry-monads (1.3.5)
48
51
  concurrent-ruby (~> 1.0)
49
52
  dry-core (~> 0.4, >= 0.4.4)
50
53
  dry-equalizer
@@ -53,9 +56,10 @@ GEM
53
56
  dry-events (>= 0.1.0)
54
57
  dry-matcher (>= 0.7.0)
55
58
  dry-monads (>= 0.4.0)
59
+ equalizer (0.0.11)
56
60
  equatable (0.6.1)
57
- ffi (1.11.1)
58
- ffi-hunspell (0.4.0)
61
+ ffi (1.12.2)
62
+ ffi-hunspell (0.5.0)
59
63
  ffi (~> 1.0)
60
64
  forspell (0.0.8)
61
65
  backports (~> 3.0)
@@ -69,97 +73,156 @@ GEM
69
73
  sanitize (~> 5.0)
70
74
  slop (~> 4.6)
71
75
  yard
72
- highline (2.0.2)
73
- jaro_winkler (1.5.3)
74
- json (2.2.0)
76
+ gli (2.19.0)
77
+ highline (2.0.3)
78
+ hirb (0.7.3)
79
+ ice_nine (0.11.2)
80
+ inch (0.8.0)
81
+ pry
82
+ sparkr (>= 0.2.0)
83
+ term-ansicolor
84
+ yard (~> 0.9.12)
85
+ jaro_winkler (1.5.4)
86
+ json (2.3.0)
87
+ kalibera (0.1)
88
+ memoist (~> 0.11.0)
89
+ rbzip2 (~> 0.2.0)
75
90
  kramdown (2.1.0)
76
91
  kramdown-parser-gfm (1.1.0)
77
92
  kramdown (~> 2.0)
78
- method_source (0.9.2)
93
+ kwalify (0.7.2)
94
+ mdl (0.9.0)
95
+ kramdown (~> 2.0)
96
+ kramdown-parser-gfm (~> 1.0)
97
+ mixlib-cli (~> 2.1, >= 2.1.1)
98
+ mixlib-config (>= 2.2.1, < 4)
99
+ memoist (0.11.0)
100
+ method_source (1.0.0)
79
101
  mini_portile2 (2.4.0)
80
- mixlib-cli (1.7.0)
81
- mixlib-config (2.2.18)
102
+ mixlib-cli (2.1.5)
103
+ mixlib-config (3.0.6)
82
104
  tomlrb
83
- nokogiri (1.10.4)
105
+ nokogiri (1.10.9)
84
106
  mini_portile2 (~> 2.4.0)
85
- nokogumbo (2.0.1)
107
+ nokogumbo (2.0.2)
86
108
  nokogiri (~> 1.8, >= 1.8.4)
87
- parallel (1.17.0)
88
- parser (2.6.4.1)
109
+ parallel (1.19.1)
110
+ parser (2.7.0.5)
89
111
  ast (~> 2.4.0)
90
112
  pastel (0.7.3)
91
113
  equatable (~> 0.6)
92
114
  tty-color (~> 0.5)
93
- pry (0.12.2)
94
- coderay (~> 1.1.0)
95
- method_source (~> 0.9.0)
115
+ pry (0.13.0)
116
+ coderay (~> 1.1)
117
+ method_source (~> 1.0)
118
+ psych (3.1.0)
96
119
  rainbow (3.0.0)
97
- rake (10.5.0)
98
- rspec (3.8.0)
99
- rspec-core (~> 3.8.0)
100
- rspec-expectations (~> 3.8.0)
101
- rspec-mocks (~> 3.8.0)
102
- rspec-core (3.8.2)
103
- rspec-support (~> 3.8.0)
104
- rspec-expectations (3.8.4)
120
+ rake (13.0.1)
121
+ rbzip2 (0.2.0)
122
+ reek (5.6.0)
123
+ codeclimate-engine-rb (~> 0.4.0)
124
+ kwalify (~> 0.7.0)
125
+ parser (>= 2.5.0.0, < 2.8, != 2.5.1.1)
126
+ psych (~> 3.1.0)
127
+ rainbow (>= 2.0, < 4.0)
128
+ representable (3.0.4)
129
+ declarative (< 0.1.0)
130
+ declarative-option (< 0.2.0)
131
+ uber (< 0.2.0)
132
+ rexml (3.2.4)
133
+ rspec (3.9.0)
134
+ rspec-core (~> 3.9.0)
135
+ rspec-expectations (~> 3.9.0)
136
+ rspec-mocks (~> 3.9.0)
137
+ rspec-core (3.9.1)
138
+ rspec-support (~> 3.9.1)
139
+ rspec-expectations (3.9.1)
105
140
  diff-lcs (>= 1.2.0, < 2.0)
106
- rspec-support (~> 3.8.0)
107
- rspec-mocks (3.8.1)
141
+ rspec-support (~> 3.9.0)
142
+ rspec-mocks (3.9.1)
108
143
  diff-lcs (>= 1.2.0, < 2.0)
109
- rspec-support (~> 3.8.0)
110
- rspec-support (3.8.2)
111
- rubocop (0.74.0)
144
+ rspec-support (~> 3.9.0)
145
+ rspec-support (3.9.2)
146
+ rubocop (0.80.1)
112
147
  jaro_winkler (~> 1.5.1)
113
148
  parallel (~> 1.10)
114
- parser (>= 2.6)
149
+ parser (>= 2.7.0.1)
115
150
  rainbow (>= 2.2.2, < 4.0)
151
+ rexml
116
152
  ruby-progressbar (~> 1.7)
117
153
  unicode-display_width (>= 1.4.0, < 1.7)
118
- rubocop-md (0.3.0)
154
+ rubocop-md (0.3.2)
119
155
  rubocop (~> 0.60)
120
- rubocop-performance (1.4.1)
156
+ rubocop-performance (1.5.2)
121
157
  rubocop (>= 0.71.0)
122
- rubocop-rspec (1.35.0)
123
- rubocop (>= 0.60.0)
124
- ruby-prof (1.0.0)
158
+ rubocop-rspec (1.38.1)
159
+ rubocop (>= 0.68.1)
160
+ ruby-prof (1.3.1)
125
161
  ruby-progressbar (1.10.1)
126
162
  sanitize (5.1.0)
127
163
  crass (~> 1.0.2)
128
164
  nokogiri (>= 1.8.0)
129
165
  nokogumbo (~> 2.0)
130
- simplecov (0.17.1)
166
+ simplecov (0.18.5)
131
167
  docile (~> 1.1)
132
- json (>= 1.8, < 3)
133
- simplecov-html (~> 0.10.0)
134
- simplecov-html (0.10.2)
135
- slop (4.7.0)
136
- stackprof (0.2.12)
137
- tomlrb (1.2.8)
138
- trailblazer-activity (0.9.0)
139
- trailblazer-context (>= 0.1.4)
140
- trailblazer-activity-dsl-linear (0.2.0)
141
- trailblazer-activity (>= 0.9.0, < 1.0.0)
142
- trailblazer-context (0.1.4)
143
- trailblazer-operation (0.5.2)
144
- trailblazer-activity-dsl-linear (>= 0.1.6, < 1.0.0)
145
- tty-color (0.5.0)
146
- unicode-display_width (1.6.0)
168
+ simplecov-html (~> 0.11)
169
+ simplecov-html (0.12.2)
170
+ slop (4.8.0)
171
+ sparkr (0.4.1)
172
+ stackprof (0.2.15)
173
+ sync (0.5.0)
174
+ term-ansicolor (1.7.1)
175
+ tins (~> 1.0)
176
+ thread_safe (0.3.6)
177
+ tins (1.24.1)
178
+ sync
179
+ tomlrb (1.3.0)
180
+ trailblazer-activity (0.10.0)
181
+ trailblazer-context (>= 0.2.0, < 0.3.0)
182
+ trailblazer-activity-dsl-linear (0.2.6)
183
+ trailblazer-activity (>= 0.9.1, < 1.0.0)
184
+ trailblazer-context (0.2.0)
185
+ trailblazer-developer (0.0.12)
186
+ hirb
187
+ representable
188
+ trailblazer-activity (>= 0.10.0, < 1.0.0)
189
+ trailblazer-activity-dsl-linear
190
+ trailblazer-operation (0.6.0)
191
+ trailblazer-activity (>= 0.10.0, < 1.0.0)
192
+ trailblazer-activity-dsl-linear (>= 0.2.1, < 1.0.0)
193
+ trailblazer-developer (>= 0.0.8)
194
+ tty-color (0.5.1)
195
+ uber (0.1.0)
196
+ unicode-display_width (1.6.1)
147
197
  url (0.3.2)
148
- yard (0.9.20)
198
+ virtus (1.0.5)
199
+ axiom-types (~> 0.1)
200
+ coercible (~> 1.0)
201
+ descendants_tracker (~> 0.0, >= 0.0.3)
202
+ equalizer (~> 0.0, >= 0.0.9)
203
+ warning (1.0.0)
204
+ yard (0.9.24)
149
205
 
150
206
  PLATFORMS
151
207
  ruby
152
208
 
153
209
  DEPENDENCIES
210
+ awesome_print
154
211
  benchmark-ips
155
212
  bundler (~> 2.0)
156
213
  codecov
214
+ dry-monads (~> 1.3)
157
215
  dry-transaction
158
216
  flows!
159
217
  forspell (~> 0.0.8)
160
- mdl!
218
+ gli
219
+ inch
220
+ kalibera
221
+ mdl
161
222
  pry
162
- rake (~> 10.0)
223
+ rainbow
224
+ rake (~> 13.0)
225
+ reek
163
226
  rspec (~> 3.0)
164
227
  rubocop
165
228
  rubocop-md
@@ -169,6 +232,8 @@ DEPENDENCIES
169
232
  simplecov
170
233
  stackprof
171
234
  trailblazer-operation
235
+ warning
236
+ yard
172
237
 
173
238
  BUNDLED WITH
174
- 2.0.1
239
+ 2.1.4