mangrove 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b5d153e07f630102b67bf06ae910d39fd063ec6d29237ad555f33b5068837a54
4
- data.tar.gz: 002d2fbd0168c3b0fcac8effea4455918a6a8845d124d8303e480accb2f5d634
3
+ metadata.gz: 5d9363cc1b8f639fb866ae374f0e64ffe380d3b35b169f3d62311e2a59580736
4
+ data.tar.gz: d467281c91693bbb7ba35996ce578e5af4e0698268603973e84340317fa6e677
5
5
  SHA512:
6
- metadata.gz: 26c16d1c8e83204252284f47381e6e9d9a517ba8a4b0b84ccbf65f645b0cc42f7fb3331e90a216b2490549bb409e0dc08e7942b15897bb9e9f1020f75a4ec130
7
- data.tar.gz: 2f52b60822834d12e1c669b34088223f57bcc575b5bf2a9adf9bc25286a91e8e2e456d71415e1ee0e947455cebc1beacd8f079e296148cf13fbfa09b7aa20f25
6
+ metadata.gz: ebe32cf0d3682642244a3a44ee132dab4a3cf09c79a67f4e4638a5e262b918a8510da53f9600cc1b86c152949923b6c4503ed62175f9bce2579646401e631f50
7
+ data.tar.gz: ebcef49659e1251716a7da1d111eb691b4468d57ac8ab073775a7f6719794ac20f09b37e6619b30200432cca068f99818869d891eb3fb52620fd2556875011ab
data/.rubocop.yml CHANGED
@@ -12,6 +12,9 @@ Layout/LineLength:
12
12
  Metrics/AbcSize:
13
13
  Enabled: false
14
14
 
15
+ Metrics/BlockLength:
16
+ Enabled: false
17
+
15
18
  Metrics/ClassLength:
16
19
  Enabled: false
17
20
 
data/README.md CHANGED
@@ -41,6 +41,8 @@ bundle exec rubocop -DESP
41
41
  bundle exec srb typecheck
42
42
  bundle exec ordinare --check
43
43
  bundle exec ruboclean
44
+ rake build
45
+ rake release
44
46
  ```
45
47
 
46
48
  ## Development
@@ -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
 
@@ -2,5 +2,5 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Mangrove
5
- VERSION = "0.1.0"
5
+ VERSION = "0.2.0"
6
6
  end
data/lib/mangrove.rb CHANGED
@@ -2,7 +2,11 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "sorbet-runtime"
5
+
5
6
  require_relative "mangrove/version"
7
+ require_relative "mangrove/option"
8
+ require_relative "mangrove/result"
9
+ require_relative "mangrove/control_flow"
6
10
 
7
11
  # Mangrove
8
12
  module Mangrove; end
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.1.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
@@ -1,8 +0,0 @@
1
- # typed: strict
2
- # frozen_string_literal: true
3
-
4
- module Mangrove
5
- module Interfaces
6
- require_relative "interfaces/control_signal"
7
- end
8
- end
@@ -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