teckel 0.9.0 → 0.10.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
  SHA256:
3
- metadata.gz: c8dc1958f2645a6c57178a595b7d4364c9b2613e3c5adc532e0c8fd0cc8c2c22
4
- data.tar.gz: cc0ef87983b17af9c16df5f4cc77a826a445fb7dc1f38db4de6cef7eef3b27c1
3
+ metadata.gz: 7d5501f2c908d365f035892a55463a35ca8af67f667f00c86d995570c604c2b9
4
+ data.tar.gz: 9100810bce08bffe1ea102d5613d8a2cca72d9a4b775247804c473bb0434bbba
5
5
  SHA512:
6
- metadata.gz: 9b9e5dde43b07ec1ae8fb6a1964990cdbdac430bd2c3ba4e73fd137fbeac3f1e4a3faf10e05098da00414a8ed17b6b8ce4316593ea1160bf976aeb2bc550ab6d
7
- data.tar.gz: 5fd5bd9a76fcf3ad4794de79e94eaba128dc6cbcac1a12e92eafa0aef36d5b18496d8d509738706f23fe555e6d482c21e20cd0384c756e4b02952d4ce52bf770
6
+ metadata.gz: a7cdec32036460d09fcba3793eb94a33028e833a267dce8f4dedb2859b4104371f3d84d54e41e895f81c4c62a2ea5137776e7e378f6d98f6101e72cad19618c3
7
+ data.tar.gz: b5e1f99450292952b164bede8a3fd8d74073be39c9b6d39bd8cda33ab2c354cc5411ad1e10238b518240bf3d31d2cf61f5679c457b147ececbfdaf1fa9148798
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changes
2
2
 
3
+ ## 0.10.0
4
+
5
+ - `Teckel::Operation::Result` railway methods no longer capture block into variable
6
+ - Internal housekeeping
7
+ - Add ruby 4.0 to CI
8
+ - Allow bundler 4 in development
9
+
3
10
  ## 0.9.0
4
11
 
5
12
  - Internal housekeeping
data/README.md CHANGED
@@ -4,8 +4,7 @@ Ruby service classes with enforced<sup name="footnote-1-source">[1](#footnote-1)
4
4
 
5
5
  [![Gem Version](https://img.shields.io/gem/v/teckel.svg)][gem]
6
6
  [![Build Status](https://github.com/fnordfish/teckel/actions/workflows/specs.yml/badge.svg)][ci]
7
- [![Maintainability](https://api.codeclimate.com/v1/badges/b3939aaec6271a567a57/maintainability)](https://codeclimate.com/github/fnordfish/teckel/maintainability)
8
- [![Test Coverage](https://api.codeclimate.com/v1/badges/b3939aaec6271a567a57/test_coverage)](https://codeclimate.com/github/fnordfish/teckel/test_coverage)
7
+ [![codecov](https://codecov.io/github/fnordfish/teckel/graph/badge.svg?token=8ZP6YNFRKX)](https://codecov.io/github/fnordfish/teckel)
9
8
  [![API Documentation Coverage](https://inch-ci.org/github/fnordfish/teckel.svg?branch=main)][inch]
10
9
 
11
10
  ## Installation
data/lib/teckel/chain.rb CHANGED
@@ -32,10 +32,7 @@ module Teckel
32
32
  # List of all possible errors
33
33
  # @return [<Class>] List of all steps {Teckel::Operation.error}s
34
34
  def errors
35
- steps.each_with_object([]) do |step, m|
36
- err = step.operation.error
37
- m << err if err
38
- end
35
+ steps.map { |step| step.operation.error }
39
36
  end
40
37
 
41
38
  # The primary interface to call the chain with the given input.
@@ -58,9 +58,9 @@ module Teckel
58
58
  # @yield [Object] If a block is given and this is not a failure result, the value is yielded to the block
59
59
  # @param default [Object] return this default value if it's not a failure result
60
60
  # @return [Object] the value/payload
61
- def failure(default = nil, &block)
61
+ def failure(default = nil)
62
62
  return value unless @successful
63
- return yield(value) if block
63
+ return yield(value) if block_given?
64
64
 
65
65
  default
66
66
  end
@@ -69,9 +69,9 @@ module Teckel
69
69
  # @yield [Object] If a block is given and this is not a success result, the value is yielded to the block
70
70
  # @param default [Object] return this default value if it's not a success result
71
71
  # @return [Object] the value/payload
72
- def success(default = nil, &block)
72
+ def success(default = nil)
73
73
  return value if @successful
74
- return yield(value) if block
74
+ return yield(value) if block_given?
75
75
 
76
76
  default
77
77
  end
data/lib/teckel/result.rb CHANGED
@@ -48,8 +48,8 @@ module Teckel
48
48
 
49
49
  def deconstruct_keys(keys)
50
50
  e = {}
51
- e[:success] = successful? if keys.include?(:success)
52
- e[:value] = value if keys.include?(:value)
51
+ e[:success] = successful? if keys&.include?(:success)
52
+ e[:value] = value if keys&.include?(:value)
53
53
  e
54
54
  end
55
55
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Teckel
4
4
  # @return [String]
5
- VERSION = "0.9.0"
5
+ VERSION = "0.10.0"
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: teckel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Schulze
@@ -13,14 +13,14 @@ dependencies:
13
13
  name: bundler
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
- - - "~>"
16
+ - - ">="
17
17
  - !ruby/object:Gem::Version
18
18
  version: '2.0'
19
19
  type: :development
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
- - - "~>"
23
+ - - ">="
24
24
  - !ruby/object:Gem::Version
25
25
  version: '2.0'
26
26
  - !ruby/object:Gem::Dependency
@@ -141,7 +141,7 @@ metadata:
141
141
  changelog_uri: https://github.com/fnordfish/teckel/blob/main/CHANGELOG.md
142
142
  source_code_uri: https://github.com/fnordfish/teckel
143
143
  bug_tracker_uri: https://github.com/fnordfish/teckel/issues
144
- documentation_uri: https://www.rubydoc.info/gems/teckel/0.9.0
144
+ documentation_uri: https://www.rubydoc.info/gems/teckel/0.10.0
145
145
  user_docs_uri: https://fnordfish.github.io/teckel/
146
146
  rdoc_options: []
147
147
  require_paths:
@@ -157,7 +157,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
157
157
  - !ruby/object:Gem::Version
158
158
  version: '0'
159
159
  requirements: []
160
- rubygems_version: 3.6.9
160
+ rubygems_version: 4.0.9
161
161
  specification_version: 4
162
162
  summary: Operations with enforced in/out/err data structures
163
163
  test_files: []