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 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