mangrove 0.38.0 → 0.40.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: a016056fd5e25ebc5443f4004a82bfa0b16e4b5d5c907f6f53707d3a5c90f50c
4
- data.tar.gz: ba923a6b05a2a4d047fded462a262ea92f5b8e569224ab34bde51910cbe850d6
3
+ metadata.gz: d436b744f85b8c028993d49ab3f04ab4f04ff237712bd013c32f1cf393b6db69
4
+ data.tar.gz: b0ad63eab0e0199180ed4cd05ce99ffbadbdcf4a862cb2ae48355a5747758132
5
5
  SHA512:
6
- metadata.gz: d711e2208247f19f15713436eb59e4023c6cf6e2c48b552861be785db0e259f6ff4952c4219a76eacad37761fda046c4cd12cb61ad567464abb018e7286e8c7d
7
- data.tar.gz: 979fae38a733cf2f63c6d16a0ae0545d7a354220ca554fdbc96b16c481e311ec1402cfc9372c9017fde41d113a241d732961b675fa70ba07fb83c9cc01729080
6
+ metadata.gz: 23a97fa8740634f0316a44e1a1f6ab9c8e0fffa61639067b586f5918ece969d4dbc2f1c9793464dd2907d40d8c35beef4561541382b8ca041a1c8396af6c9cda
7
+ data.tar.gz: ab9613dcb6d9baa73af7a9b12ab152fe4ef1fc448f2f121a0cf2e969977075adb423bfbc451cf3003548b2fa2cac9e3b53758348cf864d895585a9bcb8c7d93e
@@ -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
@@ -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`).
@@ -385,6 +386,16 @@ module Mangrove
385
386
  self
386
387
  end
387
388
 
389
+ sig { returns(T::Array[OkType]) }
390
+ def deconstruct
391
+ [@inner]
392
+ end
393
+
394
+ sig { params(_keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, OkType]) }
395
+ def deconstruct_keys(_keys)
396
+ { inner: @inner }
397
+ end
398
+
388
399
  sig { returns(String) }
389
400
  def to_s
390
401
  "#{super}: inner=`#{@inner}`"
@@ -573,6 +584,16 @@ module Mangrove
573
584
  end
574
585
  end
575
586
 
587
+ sig { returns(T::Array[ErrType]) }
588
+ def deconstruct
589
+ [@inner]
590
+ end
591
+
592
+ sig { params(_keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, ErrType]) }
593
+ def deconstruct_keys(_keys)
594
+ { inner: @inner }
595
+ end
596
+
576
597
  sig { returns(String) }
577
598
  def to_s
578
599
  "#{super}: inner=`#{@inner}`"
@@ -2,5 +2,5 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Mangrove
5
- VERSION = "0.38.0"
5
+ VERSION = "0.40.0"
6
6
  end
data/sorbet/config CHANGED
@@ -1,5 +1,4 @@
1
- --dir
2
- .
1
+ --dir=.
3
2
  --ignore=tmp/
4
3
  --ignore=vendor/
5
4
  --enable-experimental-requires-ancestor
@@ -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.38.0
4
+ version: 0.40.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kazuma Murata
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-12-07 00:00:00.000000000 Z
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.2
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: []