mangrove 0.1.0 → 0.2.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/.rubocop.yml +3 -0
- data/README.md +2 -0
- data/lib/mangrove/option.rb +36 -0
- 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: 5d9363cc1b8f639fb866ae374f0e64ffe380d3b35b169f3d62311e2a59580736
|
4
|
+
data.tar.gz: d467281c91693bbb7ba35996ce578e5af4e0698268603973e84340317fa6e677
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ebe32cf0d3682642244a3a44ee132dab4a3cf09c79a67f4e4638a5e262b918a8510da53f9600cc1b86c152949923b6c4503ed62175f9bce2579646401e631f50
|
7
|
+
data.tar.gz: ebcef49659e1251716a7da1d111eb691b4468d57ac8ab073775a7f6719794ac20f09b37e6619b30200432cca068f99818869d891eb3fb52620fd2556875011ab
|
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/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.2.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
|