flows 0.3.0 → 0.4.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 (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