mangrove 0.14.0 → 0.15.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.
@@ -100,9 +100,9 @@
100
100
  </div>
101
101
 
102
102
  <div id="footer">
103
- Generated on Thu Oct 26 12:34:21 2023 by
103
+ Generated on Tue Oct 31 12:03:29 2023 by
104
104
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
105
- 0.9.34 (ruby-3.1.2).
105
+ 0.9.34 (ruby-3.2.2).
106
106
  </div>
107
107
 
108
108
  </div>
@@ -15,8 +15,8 @@ module Mangrove
15
15
  sealed!
16
16
  interface!
17
17
 
18
- OkType = type_member
19
- ErrType = type_member
18
+ OkType = type_member(:out)
19
+ ErrType = type_member(:out)
20
20
 
21
21
  sig { abstract.params(other: BasicObject).returns(T::Boolean) }
22
22
  def ==(other); end
@@ -54,52 +54,52 @@ module Mangrove
54
54
  sig { abstract.type_parameters(:NewErrType).params(_t_new_err: T::Class[T.type_parameter(:NewErrType)], block: T.proc.params(this: ErrType).returns(T.type_parameter(:NewErrType))).returns(Result[OkType, T.type_parameter(:NewErrType)]) }
55
55
  def map_err_wt(_t_new_err, &block); end
56
56
 
57
- sig { abstract.type_parameters(:NewOkType).params(other: Result[T.type_parameter(:NewOkType), ErrType]).returns(Result[T.type_parameter(:NewOkType), ErrType]) }
57
+ sig { abstract.type_parameters(:NewOkType).params(other: Result[T.type_parameter(:NewOkType), T.untyped]).returns(Result[T.type_parameter(:NewOkType), ErrType]) }
58
58
  def and(other); end
59
59
 
60
- sig { abstract.type_parameters(:NewOkType).params(block: T.proc.params(this: OkType).returns(Result[T.type_parameter(:NewOkType), ErrType])).returns(Result[T.type_parameter(:NewOkType), ErrType]) }
60
+ sig { abstract.type_parameters(:NewOkType).params(block: T.proc.params(this: OkType).returns(Result[T.type_parameter(:NewOkType), T.untyped])).returns(Result[T.type_parameter(:NewOkType), ErrType]) }
61
61
  def and_then(&block); end
62
62
 
63
- sig { abstract.type_parameters(:NewOkType).params(_t_new_ok: T::Class[T.type_parameter(:NewOkType)], block: T.proc.params(this: OkType).returns(Result[T.type_parameter(:NewOkType), ErrType])).returns(Result[T.type_parameter(:NewOkType), ErrType]) }
63
+ sig { abstract.type_parameters(:NewOkType).params(_t_new_ok: T::Class[T.type_parameter(:NewOkType)], block: T.proc.params(this: OkType).returns(Result[T.type_parameter(:NewOkType), T.untyped])).returns(Result[T.type_parameter(:NewOkType), ErrType]) }
64
64
  def and_then_wt(_t_new_ok, &block); end
65
65
 
66
- sig { abstract.params(other: Result[OkType, ErrType]).returns(Result[OkType, ErrType]) }
66
+ sig { abstract.params(other: Result[T.untyped, T.untyped]).returns(Result[OkType, ErrType]) }
67
67
  def or(other); end
68
68
 
69
- sig { abstract.type_parameters(:NewErrType).params(block: T.proc.params(this: ErrType).returns(Result[OkType, T.type_parameter(:NewErrType)])).returns(Result[OkType, T.type_parameter(:NewErrType)]) }
69
+ sig { abstract.type_parameters(:NewErrType).params(block: T.proc.params(this: ErrType).returns(Result[T.untyped, T.type_parameter(:NewErrType)])).returns(Result[OkType, T.type_parameter(:NewErrType)]) }
70
70
  def or_else(&block); end
71
71
 
72
- sig { abstract.type_parameters(:NewErrType).params(_t_new_err: T::Class[T.type_parameter(:NewErrType)], block: T.proc.params(this: ErrType).returns(Result[OkType, T.type_parameter(:NewErrType)])).returns(Result[OkType, T.type_parameter(:NewErrType)]) }
72
+ sig { abstract.type_parameters(:NewErrType).params(_t_new_err: T::Class[T.type_parameter(:NewErrType)], block: T.proc.params(this: ErrType).returns(Result[T.untyped, T.type_parameter(:NewErrType)])).returns(Result[OkType, T.type_parameter(:NewErrType)]) }
73
73
  def or_else_wt(_t_new_err, &block); end
74
74
 
75
75
  class << self
76
76
  extend T::Sig
77
77
  extend T::Generic
78
78
 
79
- OkType = type_member
80
- ErrType = type_member
79
+ OkType = type_member(:out)
80
+ ErrType = type_member(:out)
81
81
 
82
- sig { params(results: T::Enumerable[Mangrove::Result[OkType, ErrType]]).returns(Result[OkType, ErrType]) }
82
+ sig { type_parameters(:T, :E).params(results: T::Enumerable[Result[T.type_parameter(:T), T.type_parameter(:E)]]).returns(Result[T::Enumerable[T.type_parameter(:T)], T::Enumerable[T.type_parameter(:E)]]) }
83
83
  def from_results(results)
84
84
  errs = results.filter(&:err?)
85
85
 
86
86
  if errs.empty?
87
87
  # This is safe as errs is empty.
88
- Result::Ok.new(results.map { |r| T.cast(r, Result::Ok[OkType, ErrType]).ok_inner })
88
+ Result::Ok[T::Enumerable[T.type_parameter(:T)], T::Enumerable[T.type_parameter(:E)]].new(results.map { |r| T.cast(r, Result::Ok[T.type_parameter(:T), T.type_parameter(:E)]).ok_inner })
89
89
  else
90
90
  # This is safe as errs is results where err? is true
91
- Result::Err.new(errs.map { |r| T.cast(r, Result::Err[OkType, ErrType]).err_inner })
91
+ Result::Err[T::Enumerable[T.type_parameter(:T)], T::Enumerable[T.type_parameter(:E)]].new(errs.map { |r| T.cast(r, Result::Err[T.type_parameter(:T), T.type_parameter(:E)]).err_inner })
92
92
  end
93
93
  end
94
94
 
95
- sig { params(inner: OkType).returns(Result::Ok[OkType, ErrType]) }
96
- def ok(inner)
97
- Result::Ok[OkType, ErrType].new(inner)
95
+ sig { type_parameters(:OkType, :ErrType).params(inner: T.type_parameter(:OkType), _t_err: T::Class[T.type_parameter(:ErrType)]).returns(Result::Ok[T.type_parameter(:OkType), T.type_parameter(:ErrType)]) }
96
+ def ok(inner, _t_err)
97
+ Result::Ok[T.type_parameter(:OkType), T.type_parameter(:ErrType)].new(inner)
98
98
  end
99
99
 
100
- sig { params(inner: ErrType).returns(Result::Err[OkType, ErrType]) }
101
- def err(inner)
102
- Result::Err[OkType, ErrType].new(inner)
100
+ sig { type_parameters(:OkType, :ErrType).params(_t_ok: T::Class[T.type_parameter(:OkType)], inner: T.type_parameter(:ErrType)).returns(Result::Err[T.type_parameter(:OkType), T.type_parameter(:ErrType)]) }
101
+ def err(_t_ok, inner)
102
+ Result::Err[T.type_parameter(:OkType), T.type_parameter(:ErrType)].new(inner)
103
103
  end
104
104
  end
105
105
 
@@ -2,5 +2,5 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Mangrove
5
- VERSION = "0.14.0"
5
+ VERSION = "0.15.0"
6
6
  end
data/sorbet/config CHANGED
@@ -2,3 +2,4 @@
2
2
  .
3
3
  --ignore=tmp/
4
4
  --ignore=vendor/
5
+ --enable-experimental-requires-ancestor
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mangrove
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.0
4
+ version: 0.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kazuma Murata
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-10-26 00:00:00.000000000 Z
11
+ date: 2023-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sorbet-runtime
@@ -187,7 +187,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
187
187
  - !ruby/object:Gem::Version
188
188
  version: '0'
189
189
  requirements: []
190
- rubygems_version: 3.3.7
190
+ rubygems_version: 3.4.18
191
191
  signing_key:
192
192
  specification_version: 4
193
193
  summary: Type Utility for Ruby.