mangrove 0.37.3 → 0.39.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 +4 -4
- data/lib/mangrove/result/collector.rb +22 -0
- data/lib/mangrove/result.rb +5 -4
- data/lib/mangrove/version.rb +1 -1
- data/sorbet/config +1 -2
- data/sorbet/rbi/dsl/active_support/callbacks.rbi +21 -0
- metadata +5 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 32160c54f407fc70b9945fcd503835e9082718ea03b2b2d2265e852000751614
|
|
4
|
+
data.tar.gz: a56347a1e2284e707f9bc32c15350c71014680aa1d8244ca61677fb4a8a0f14f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 478cf3eb662ce82b067b1ff152f2783b70dfa581e8b1c266c7a5c0779e74e92ed1af003573ba52560617cb143f427c1deaf9a64f387f8ab46f1317d7ecc9a517
|
|
7
|
+
data.tar.gz: c10620686e56df0f918679f727876680b435275897758179ca43a368fd41834699cebd34812fbf2b82d73b783f6c32c588035bff68ebd0486cb9d6294b8cae81
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Mangrove
|
|
5
|
+
module Result
|
|
6
|
+
class Collector
|
|
7
|
+
extend T::Sig
|
|
8
|
+
extend T::Generic
|
|
9
|
+
extend T::Helpers
|
|
10
|
+
|
|
11
|
+
OkType = type_member
|
|
12
|
+
ErrType = type_member
|
|
13
|
+
|
|
14
|
+
sig { params(block: T.proc.params(ctx: CollectingContext[OkType, ErrType]).returns(Result[OkType, ErrType])).returns(Result[OkType, ErrType]) }
|
|
15
|
+
def collecting(&block)
|
|
16
|
+
catch(:__mangrove_result_collecting_context_return) {
|
|
17
|
+
block.call(CollectingContext[OkType, ErrType].new)
|
|
18
|
+
}
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
data/lib/mangrove/result.rb
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
require_relative "result/control_signal"
|
|
5
5
|
require_relative "result/ext"
|
|
6
|
+
require_relative "result/collector"
|
|
6
7
|
|
|
7
8
|
module Mangrove
|
|
8
9
|
# Result is a type that represents either success (`Ok`) or failure (`Err`).
|
|
@@ -43,7 +44,7 @@ module Mangrove
|
|
|
43
44
|
sig { abstract.returns(OkType) }
|
|
44
45
|
def unwrap_or_raise_inner!; end
|
|
45
46
|
|
|
46
|
-
sig { abstract.params(ctx: Result::CollectingContext[
|
|
47
|
+
sig { abstract.params(ctx: Result::CollectingContext[T.untyped, ErrType]).returns(OkType) }
|
|
47
48
|
def unwrap_in(ctx); end
|
|
48
49
|
|
|
49
50
|
sig { abstract.params(message: String).returns(OkType) }
|
|
@@ -187,7 +188,7 @@ module Mangrove
|
|
|
187
188
|
O = type_member
|
|
188
189
|
E = type_member
|
|
189
190
|
|
|
190
|
-
sig { params(result: Mangrove::Result[
|
|
191
|
+
sig { type_parameters(:T).params(result: Mangrove::Result[T.type_parameter(:T), E]).returns(T.type_parameter(:T)) }
|
|
191
192
|
def try!(result)
|
|
192
193
|
case result
|
|
193
194
|
when Mangrove::Result::Ok
|
|
@@ -253,7 +254,7 @@ module Mangrove
|
|
|
253
254
|
@inner
|
|
254
255
|
end
|
|
255
256
|
|
|
256
|
-
sig { override.params(_ctx: Result::CollectingContext[
|
|
257
|
+
sig { override.params(_ctx: Result::CollectingContext[T.untyped, ErrType]).returns(OkType) }
|
|
257
258
|
def unwrap_in(_ctx)
|
|
258
259
|
@inner
|
|
259
260
|
end
|
|
@@ -444,7 +445,7 @@ module Mangrove
|
|
|
444
445
|
raise T.unsafe(@inner)
|
|
445
446
|
end
|
|
446
447
|
|
|
447
|
-
sig { override.params(_ctx: Result::CollectingContext[
|
|
448
|
+
sig { override.params(_ctx: Result::CollectingContext[T.untyped, ErrType]).returns(T.noreturn) }
|
|
448
449
|
def unwrap_in(_ctx)
|
|
449
450
|
throw :__mangrove_result_collecting_context_return, self
|
|
450
451
|
end
|
data/lib/mangrove/version.rb
CHANGED
data/sorbet/config
CHANGED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
|
|
3
|
+
# DO NOT EDIT MANUALLY
|
|
4
|
+
# This is an autogenerated file for dynamic methods in `ActiveSupport::Callbacks`.
|
|
5
|
+
# Please instead update this file by running `bin/tapioca dsl ActiveSupport::Callbacks`.
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
module ActiveSupport::Callbacks
|
|
9
|
+
include GeneratedInstanceMethods
|
|
10
|
+
|
|
11
|
+
mixes_in_class_methods GeneratedClassMethods
|
|
12
|
+
|
|
13
|
+
module GeneratedClassMethods
|
|
14
|
+
def __callbacks; end
|
|
15
|
+
def __callbacks=(value); end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
module GeneratedInstanceMethods
|
|
19
|
+
def __callbacks; end
|
|
20
|
+
end
|
|
21
|
+
end
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mangrove
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.39.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Kazuma Murata
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: sorbet-runtime
|
|
@@ -45,6 +45,7 @@ files:
|
|
|
45
45
|
- lib/mangrove/option.rb
|
|
46
46
|
- lib/mangrove/option/control_signal.rb
|
|
47
47
|
- lib/mangrove/result.rb
|
|
48
|
+
- lib/mangrove/result/collector.rb
|
|
48
49
|
- lib/mangrove/result/control_signal.rb
|
|
49
50
|
- lib/mangrove/result/ext.rb
|
|
50
51
|
- lib/mangrove/try_from_ext.rb
|
|
@@ -58,6 +59,7 @@ files:
|
|
|
58
59
|
- sorbet/rbi/annotations/.gitattributes
|
|
59
60
|
- sorbet/rbi/annotations/rainbow.rbi
|
|
60
61
|
- sorbet/rbi/dsl/.gitattributes
|
|
62
|
+
- sorbet/rbi/dsl/active_support/callbacks.rbi
|
|
61
63
|
- sorbet/rbi/gems/.gitattributes
|
|
62
64
|
- sorbet/rbi/gems/ast@2.4.2.rbi
|
|
63
65
|
- sorbet/rbi/gems/benchmark@0.4.0.rbi
|
|
@@ -135,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
135
137
|
- !ruby/object:Gem::Version
|
|
136
138
|
version: '0'
|
|
137
139
|
requirements: []
|
|
138
|
-
rubygems_version: 3.6.
|
|
140
|
+
rubygems_version: 3.6.9
|
|
139
141
|
specification_version: 4
|
|
140
142
|
summary: Toolkit for leveraging Sorbet's type system.
|
|
141
143
|
test_files: []
|