mangrove 0.1.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +3 -0
- data/README.md +2 -0
- data/lib/mangrove/option.rb +36 -0
- data/lib/mangrove/result.rb +6 -1
- data/lib/mangrove/version.rb +1 -1
- data/lib/mangrove.rb +4 -0
- metadata +1 -3
- data/lib/mangrove/interfaces.rb +0 -8
- data/lib/mangrove/mangrove.rb +0 -35
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9289ae193acf40ac02f9fd2c1abfaa21e9a2eaa99367ba37f12508fe86b37b7a
|
4
|
+
data.tar.gz: 21c2c5271f29b8b93bb7f9658c03c6edfb213d12eb02a8b06b0e520e75ab825a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7bfa222f9fa0e262315f6cd30fd0e1798222450abc14fbb5aa442d2027c58e19e906a37a88f4f2018359c979272d61f05741327beb7f36b216047176ade02ba3
|
7
|
+
data.tar.gz: 7be4b82b310e40005f171ee72f2513fa70e4e19038513814c7d0195c0c50aa51e720b5a82ec1dd15b8066197461c5f93b0e8fe16d87c572cb37b9c9b007ee545
|
data/.rubocop.yml
CHANGED
data/README.md
CHANGED
data/lib/mangrove/option.rb
CHANGED
@@ -46,6 +46,16 @@ module Mangrove
|
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
49
|
+
sig { returns(InnerType) }
|
50
|
+
def unwrap
|
51
|
+
@inner
|
52
|
+
end
|
53
|
+
|
54
|
+
sig { override.params(_default: InnerType).returns(InnerType) }
|
55
|
+
def unwrap_or(_default)
|
56
|
+
@inner
|
57
|
+
end
|
58
|
+
|
49
59
|
sig { override.returns(InnerType) }
|
50
60
|
def unwrap!
|
51
61
|
@inner
|
@@ -56,6 +66,12 @@ module Mangrove
|
|
56
66
|
@inner
|
57
67
|
end
|
58
68
|
|
69
|
+
sig { override.returns(T::Boolean) }
|
70
|
+
def some? = true
|
71
|
+
|
72
|
+
sig { override.returns(T::Boolean) }
|
73
|
+
def none? = false
|
74
|
+
|
59
75
|
sig { override.params(block: T.proc.params(inner: InnerType).returns(Option[InnerType])).returns(Option[InnerType]) }
|
60
76
|
def map_some(&block)
|
61
77
|
block.call(@inner)
|
@@ -95,6 +111,11 @@ module Mangrove
|
|
95
111
|
end
|
96
112
|
end
|
97
113
|
|
114
|
+
sig { override.params(default: InnerType).returns(InnerType) }
|
115
|
+
def unwrap_or(default)
|
116
|
+
default
|
117
|
+
end
|
118
|
+
|
98
119
|
sig { override.returns(InnerType) }
|
99
120
|
def unwrap!
|
100
121
|
raise Option::ControlSignal, Result::Err.new("called `Option#unwrap!` on an `None` value: #{self}")
|
@@ -105,6 +126,12 @@ module Mangrove
|
|
105
126
|
raise Option::ControlSignal, Result::Err.new(message)
|
106
127
|
end
|
107
128
|
|
129
|
+
sig { override.returns(T::Boolean) }
|
130
|
+
def some? = false
|
131
|
+
|
132
|
+
sig { override.returns(T::Boolean) }
|
133
|
+
def none? = true
|
134
|
+
|
108
135
|
sig { override.params(_block: T.proc.params(inner: InnerType).returns(Option[InnerType])).returns(Option::None[InnerType]) }
|
109
136
|
def map_some(&_block)
|
110
137
|
self
|
@@ -119,12 +146,21 @@ module Mangrove
|
|
119
146
|
sig { abstract.params(other: BasicObject).returns(T::Boolean) }
|
120
147
|
def ==(other); end
|
121
148
|
|
149
|
+
sig { abstract.params(default: InnerType).returns(InnerType) }
|
150
|
+
def unwrap_or(default); end
|
151
|
+
|
122
152
|
sig { abstract.returns(InnerType) }
|
123
153
|
def unwrap!; end
|
124
154
|
|
125
155
|
sig { abstract.params(message: String).returns(InnerType) }
|
126
156
|
def expect!(message); end
|
127
157
|
|
158
|
+
sig { abstract.returns(T::Boolean) }
|
159
|
+
def some?; end
|
160
|
+
|
161
|
+
sig { abstract.returns(T::Boolean) }
|
162
|
+
def none?; end
|
163
|
+
|
128
164
|
sig { abstract.params(block: T.proc.params(inner: InnerType).returns(Option[InnerType])).returns(Option[InnerType]) }
|
129
165
|
def map_some(&block); end
|
130
166
|
|
data/lib/mangrove/result.rb
CHANGED
@@ -47,7 +47,7 @@ module Mangrove
|
|
47
47
|
end
|
48
48
|
|
49
49
|
sig { returns(OkType) }
|
50
|
-
def
|
50
|
+
def ok_inner
|
51
51
|
@inner
|
52
52
|
end
|
53
53
|
|
@@ -106,6 +106,11 @@ module Mangrove
|
|
106
106
|
end
|
107
107
|
end
|
108
108
|
|
109
|
+
sig { returns(ErrType) }
|
110
|
+
def err_inner
|
111
|
+
@inner
|
112
|
+
end
|
113
|
+
|
109
114
|
sig { override.returns(OkType) }
|
110
115
|
def unwrap!
|
111
116
|
raise Result::ControlSignal, Result::Err.new("called `Result#unwrap!` on an `Err` value: #{self}")
|
data/lib/mangrove/version.rb
CHANGED
data/lib/mangrove.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mangrove
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kazuma Murata
|
@@ -81,8 +81,6 @@ files:
|
|
81
81
|
- lib/mangrove/control_flow.rb
|
82
82
|
- lib/mangrove/control_flow/control_signal.rb
|
83
83
|
- lib/mangrove/control_flow/rewriter.rb
|
84
|
-
- lib/mangrove/interfaces.rb
|
85
|
-
- lib/mangrove/mangrove.rb
|
86
84
|
- lib/mangrove/option.rb
|
87
85
|
- lib/mangrove/option/control_signal.rb
|
88
86
|
- lib/mangrove/result.rb
|
data/lib/mangrove/interfaces.rb
DELETED
data/lib/mangrove/mangrove.rb
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
# typed: strict
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
# ==============================================================================
|
5
|
-
# sorbet - tapioca - compilers - enumerize
|
6
|
-
# ==============================================================================
|
7
|
-
require "tapioca/dsl"
|
8
|
-
require "sorbet-runtime"
|
9
|
-
require "mangrove/control_flow"
|
10
|
-
|
11
|
-
::Method.prepend(T::CompatibilityPatches::MethodExtensions)
|
12
|
-
|
13
|
-
module Tapioca
|
14
|
-
module Compilers
|
15
|
-
class Enumerize < Tapioca::Dsl::Compiler
|
16
|
-
extend T::Sig
|
17
|
-
|
18
|
-
ConstantType = type_member { { fixed: T.class_of(::Mangrove::ControlFlow::Handler) } }
|
19
|
-
|
20
|
-
sig { override.returns(T::Enumerable[Module]) }
|
21
|
-
def self.gather_constants
|
22
|
-
all_classes.find_all { |c| c < ::Mangrove::ControlFlow::Handler }
|
23
|
-
end
|
24
|
-
|
25
|
-
sig { override.void }
|
26
|
-
def decorate
|
27
|
-
root.create_path(constant) do |klass|
|
28
|
-
# constant.instance_variable_get(:@__mangrove_flow_controlled_method_names).each do |method_name|
|
29
|
-
# klass.create_method(method_name, parameters: [create_rest_param("args", type: "T.untyped")], return_type: "T.untyped")
|
30
|
-
# end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|