mangrove 0.1.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.
Files changed (63) hide show
  1. checksums.yaml +7 -0
  2. data/.rubocop.yml +42 -0
  3. data/LICENSE +21 -0
  4. data/README.md +54 -0
  5. data/Rakefile +14 -0
  6. data/lib/mangrove/control_flow/control_signal.rb +16 -0
  7. data/lib/mangrove/control_flow/rewriter.rb +152 -0
  8. data/lib/mangrove/control_flow.rb +84 -0
  9. data/lib/mangrove/interfaces.rb +8 -0
  10. data/lib/mangrove/mangrove.rb +35 -0
  11. data/lib/mangrove/option/control_signal.rb +33 -0
  12. data/lib/mangrove/option.rb +134 -0
  13. data/lib/mangrove/result/control_signal.rb +33 -0
  14. data/lib/mangrove/result.rb +167 -0
  15. data/lib/mangrove/version.rb +6 -0
  16. data/lib/mangrove.rb +8 -0
  17. data/sig/mangrove.rbs +4 -0
  18. data/sorbet/config +4 -0
  19. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  20. data/sorbet/rbi/gems/ast@2.4.2.rbi +584 -0
  21. data/sorbet/rbi/gems/base64@0.1.1.rbi +172 -0
  22. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +1083 -0
  23. data/sorbet/rbi/gems/erubi@1.12.0.rbi +145 -0
  24. data/sorbet/rbi/gems/json@2.6.3.rbi +1533 -0
  25. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14237 -0
  26. data/sorbet/rbi/gems/method_source@1.0.0.rbi +272 -0
  27. data/sorbet/rbi/gems/netrc@0.11.0.rbi +158 -0
  28. data/sorbet/rbi/gems/ordinare@0.4.0.rbi +77 -0
  29. data/sorbet/rbi/gems/parallel@1.23.0.rbi +273 -0
  30. data/sorbet/rbi/gems/parser@3.2.2.3.rbi +7253 -0
  31. data/sorbet/rbi/gems/prettier_print@1.2.1.rbi +951 -0
  32. data/sorbet/rbi/gems/racc@1.7.1.rbi +161 -0
  33. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +402 -0
  34. data/sorbet/rbi/gems/rake@13.0.6.rbi +3024 -0
  35. data/sorbet/rbi/gems/rbi@0.0.17.rbi +2972 -0
  36. data/sorbet/rbi/gems/regexp_parser@2.8.1.rbi +3749 -0
  37. data/sorbet/rbi/gems/rexml@3.2.6.rbi +4781 -0
  38. data/sorbet/rbi/gems/rspec-core@3.12.2.rbi +10805 -0
  39. data/sorbet/rbi/gems/rspec-expectations@3.12.3.rbi +8100 -0
  40. data/sorbet/rbi/gems/rspec-mocks@3.12.6.rbi +5310 -0
  41. data/sorbet/rbi/gems/rspec-sorbet@1.9.2.rbi +163 -0
  42. data/sorbet/rbi/gems/rspec-support@3.12.1.rbi +1609 -0
  43. data/sorbet/rbi/gems/rspec@3.12.0.rbi +82 -0
  44. data/sorbet/rbi/gems/ruboclean@0.4.0.rbi +189 -0
  45. data/sorbet/rbi/gems/rubocop-ast@1.29.0.rbi +6985 -0
  46. data/sorbet/rbi/gems/rubocop@1.56.0.rbi +56491 -0
  47. data/sorbet/rbi/gems/ruby-lsp@0.8.0.rbi +11 -0
  48. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1317 -0
  49. data/sorbet/rbi/gems/spoom@1.2.3.rbi +3203 -0
  50. data/sorbet/rbi/gems/syntax_tree@6.1.1.rbi +22855 -0
  51. data/sorbet/rbi/gems/tapioca@0.11.8.rbi +3349 -0
  52. data/sorbet/rbi/gems/thor@1.2.2.rbi +3965 -0
  53. data/sorbet/rbi/gems/unicode-display_width@2.4.2.rbi +65 -0
  54. data/sorbet/rbi/gems/unparser@0.6.8.rbi +4525 -0
  55. data/sorbet/rbi/gems/yard-sorbet@0.8.1.rbi +428 -0
  56. data/sorbet/rbi/gems/yard@0.9.34.rbi +18219 -0
  57. data/sorbet/rbi/shims/gems/rspec-core.rbi +12 -0
  58. data/sorbet/rbi/shims/gems/rspec-expectations.rbi +8 -0
  59. data/sorbet/rbi/shims/mangrove/option.rbi +15 -0
  60. data/sorbet/rbi/shims/mangrove/result.rbi +15 -0
  61. data/sorbet/tapioca/config.yml +13 -0
  62. data/sorbet/tapioca/require.rb +4 -0
  63. metadata +161 -0
@@ -0,0 +1,272 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `method_source` gem.
5
+ # Please instead update this file by running `bin/tapioca gem method_source`.
6
+
7
+ # source://method_source//lib/method_source.rb#127
8
+ class Method
9
+ include ::MethodSource::SourceLocation::MethodExtensions
10
+ include ::MethodSource::MethodExtensions
11
+ end
12
+
13
+ # source://method_source//lib/method_source/version.rb#1
14
+ module MethodSource
15
+ extend ::MethodSource::CodeHelpers
16
+
17
+ class << self
18
+ # Helper method responsible for opening source file and buffering up
19
+ # the comments for a specified method. Defined here to avoid polluting
20
+ # `Method` class.
21
+ #
22
+ # @param source_location [Array] The array returned by Method#source_location
23
+ # @param method_name [String]
24
+ # @raise [SourceNotFoundError]
25
+ # @return [String] The comments up to the point of the method.
26
+ #
27
+ # source://method_source//lib/method_source.rb#38
28
+ def comment_helper(source_location, name = T.unsafe(nil)); end
29
+
30
+ # @deprecated — use MethodSource::CodeHelpers#expression_at
31
+ #
32
+ # source://method_source//lib/method_source.rb#66
33
+ def extract_code(source_location); end
34
+
35
+ # Load a memoized copy of the lines in a file.
36
+ #
37
+ # @param file_name [String]
38
+ # @param method_name [String]
39
+ # @raise [SourceNotFoundError]
40
+ # @return [Array<String>] the contents of the file
41
+ #
42
+ # source://method_source//lib/method_source.rb#51
43
+ def lines_for(file_name, name = T.unsafe(nil)); end
44
+
45
+ # Helper method responsible for extracting method body.
46
+ # Defined here to avoid polluting `Method` class.
47
+ #
48
+ # @param source_location [Array] The array returned by Method#source_location
49
+ # @param method_name [String]
50
+ # @return [String] The method body
51
+ #
52
+ # source://method_source//lib/method_source.rb#23
53
+ def source_helper(source_location, name = T.unsafe(nil)); end
54
+
55
+ # @deprecated — use MethodSource::CodeHelpers#complete_expression?
56
+ # @return [Boolean]
57
+ #
58
+ # source://method_source//lib/method_source.rb#59
59
+ def valid_expression?(str); end
60
+ end
61
+ end
62
+
63
+ # source://method_source//lib/method_source/code_helpers.rb#3
64
+ module MethodSource::CodeHelpers
65
+ # Retrieve the comment describing the expression on the given line of the given file.
66
+ #
67
+ # This is useful to get module or method documentation.
68
+ #
69
+ # @param file [Array<String>, File, String] The file to parse, either as a File or as
70
+ # a String or an Array of lines.
71
+ # @param line_number [Integer] The line number at which to look.
72
+ # NOTE: The first line in a file is line 1!
73
+ # @return [String] The comment
74
+ #
75
+ # source://method_source//lib/method_source/code_helpers.rb#52
76
+ def comment_describing(file, line_number); end
77
+
78
+ # Determine if a string of code is a complete Ruby expression.
79
+ #
80
+ # @example
81
+ # complete_expression?("class Hello") #=> false
82
+ # complete_expression?("class Hello; end") #=> true
83
+ # complete_expression?("class 123") #=> SyntaxError: unexpected tINTEGER
84
+ # @param code [String] The code to validate.
85
+ # @raise [SyntaxError] Any SyntaxError that does not represent incompleteness.
86
+ # @return [Boolean] Whether or not the code is a complete Ruby expression.
87
+ #
88
+ # source://method_source//lib/method_source/code_helpers.rb#66
89
+ def complete_expression?(str); end
90
+
91
+ # Retrieve the first expression starting on the given line of the given file.
92
+ #
93
+ # This is useful to get module or method source code.
94
+ #
95
+ # line 1!
96
+ #
97
+ # @option options
98
+ # @option options
99
+ # @param file [Array<String>, File, String] The file to parse, either as a File or as
100
+ # @param line_number [Integer] The line number at which to look.
101
+ # NOTE: The first line in a file is
102
+ # @param options [Hash] The optional configuration parameters.
103
+ # @raise [SyntaxError] If the first complete expression can't be identified
104
+ # @return [String] The first complete expression
105
+ #
106
+ # source://method_source//lib/method_source/code_helpers.rb#20
107
+ def expression_at(file, line_number, options = T.unsafe(nil)); end
108
+
109
+ private
110
+
111
+ # Get the first expression from the input.
112
+ #
113
+ # @param lines [Array<String>]
114
+ # @param consume [Integer] A number of lines to automatically
115
+ # consume (add to the expression buffer) without checking for validity.
116
+ # @raise [SyntaxError]
117
+ # @return [String] a valid ruby expression
118
+ # @yield a clean-up function to run before checking for complete_expression
119
+ #
120
+ # source://method_source//lib/method_source/code_helpers.rb#92
121
+ def extract_first_expression(lines, consume = T.unsafe(nil), &block); end
122
+
123
+ # Get the last comment from the input.
124
+ #
125
+ # @param lines [Array<String>]
126
+ # @return [String]
127
+ #
128
+ # source://method_source//lib/method_source/code_helpers.rb#106
129
+ def extract_last_comment(lines); end
130
+ end
131
+
132
+ # An exception matcher that matches only subsets of SyntaxErrors that can be
133
+ # fixed by adding more input to the buffer.
134
+ #
135
+ # source://method_source//lib/method_source/code_helpers.rb#124
136
+ module MethodSource::CodeHelpers::IncompleteExpression
137
+ class << self
138
+ # source://method_source//lib/method_source/code_helpers.rb#137
139
+ def ===(ex); end
140
+
141
+ # @return [Boolean]
142
+ #
143
+ # source://method_source//lib/method_source/code_helpers.rb#149
144
+ def rbx?; end
145
+ end
146
+ end
147
+
148
+ # source://method_source//lib/method_source/code_helpers.rb#125
149
+ MethodSource::CodeHelpers::IncompleteExpression::GENERIC_REGEXPS = T.let(T.unsafe(nil), Array)
150
+
151
+ # source://method_source//lib/method_source/code_helpers.rb#133
152
+ MethodSource::CodeHelpers::IncompleteExpression::RBX_ONLY_REGEXPS = T.let(T.unsafe(nil), Array)
153
+
154
+ # This module is to be included by `Method` and `UnboundMethod` and
155
+ # provides the `#source` functionality
156
+ #
157
+ # source://method_source//lib/method_source.rb#72
158
+ module MethodSource::MethodExtensions
159
+ # Return the comments associated with the method as a string.
160
+ #
161
+ # @example
162
+ # Set.instance_method(:clear).comment.display
163
+ # =>
164
+ # # Removes all elements and returns self.
165
+ # @raise SourceNotFoundException
166
+ # @return [String] The method's comments as a string
167
+ #
168
+ # source://method_source//lib/method_source.rb#121
169
+ def comment; end
170
+
171
+ # Return the sourcecode for the method as a string
172
+ #
173
+ # @example
174
+ # Set.instance_method(:clear).source.display
175
+ # =>
176
+ # def clear
177
+ # @hash.clear
178
+ # self
179
+ # end
180
+ # @raise SourceNotFoundException
181
+ # @return [String] The method sourcecode as a string
182
+ #
183
+ # source://method_source//lib/method_source.rb#109
184
+ def source; end
185
+
186
+ class << self
187
+ # We use the included hook to patch Method#source on rubinius.
188
+ # We need to use the included hook as Rubinius defines a `source`
189
+ # on Method so including a module will have no effect (as it's
190
+ # higher up the MRO).
191
+ #
192
+ # @param klass [Class] The class that includes the module.
193
+ #
194
+ # source://method_source//lib/method_source.rb#79
195
+ def included(klass); end
196
+ end
197
+ end
198
+
199
+ # source://method_source//lib/method_source/source_location.rb#2
200
+ module MethodSource::ReeSourceLocation
201
+ # Ruby enterprise edition provides all the information that's
202
+ # needed, in a slightly different way.
203
+ #
204
+ # source://method_source//lib/method_source/source_location.rb#5
205
+ def source_location; end
206
+ end
207
+
208
+ # source://method_source//lib/method_source/source_location.rb#10
209
+ module MethodSource::SourceLocation; end
210
+
211
+ # source://method_source//lib/method_source/source_location.rb#11
212
+ module MethodSource::SourceLocation::MethodExtensions
213
+ # Return the source location of a method for Ruby 1.8.
214
+ #
215
+ # @return [Array] A two element array. First element is the
216
+ # file, second element is the line in the file where the
217
+ # method definition is found.
218
+ #
219
+ # source://method_source//lib/method_source/source_location.rb#40
220
+ def source_location; end
221
+
222
+ private
223
+
224
+ # source://method_source//lib/method_source/source_location.rb#26
225
+ def trace_func(event, file, line, id, binding, classname); end
226
+ end
227
+
228
+ # source://method_source//lib/method_source/source_location.rb#54
229
+ module MethodSource::SourceLocation::ProcExtensions
230
+ # Return the source location for a Proc (in implementations
231
+ # without Proc#source_location)
232
+ #
233
+ # @return [Array] A two element array. First element is the
234
+ # file, second element is the line in the file where the
235
+ # proc definition is found.
236
+ #
237
+ # source://method_source//lib/method_source/source_location.rb#74
238
+ def source_location; end
239
+ end
240
+
241
+ # source://method_source//lib/method_source/source_location.rb#81
242
+ module MethodSource::SourceLocation::UnboundMethodExtensions
243
+ # Return the source location of an instance method for Ruby 1.8.
244
+ #
245
+ # @return [Array] A two element array. First element is the
246
+ # file, second element is the line in the file where the
247
+ # method definition is found.
248
+ #
249
+ # source://method_source//lib/method_source/source_location.rb#101
250
+ def source_location; end
251
+ end
252
+
253
+ # An Exception to mark errors that were raised trying to find the source from
254
+ # a given source_location.
255
+ #
256
+ # source://method_source//lib/method_source.rb#16
257
+ class MethodSource::SourceNotFoundError < ::StandardError; end
258
+
259
+ # source://method_source//lib/method_source/version.rb#2
260
+ MethodSource::VERSION = T.let(T.unsafe(nil), String)
261
+
262
+ # source://method_source//lib/method_source.rb#137
263
+ class Proc
264
+ include ::MethodSource::SourceLocation::ProcExtensions
265
+ include ::MethodSource::MethodExtensions
266
+ end
267
+
268
+ # source://method_source//lib/method_source.rb#132
269
+ class UnboundMethod
270
+ include ::MethodSource::SourceLocation::UnboundMethodExtensions
271
+ include ::MethodSource::MethodExtensions
272
+ end
@@ -0,0 +1,158 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `netrc` gem.
5
+ # Please instead update this file by running `bin/tapioca gem netrc`.
6
+
7
+ # source://netrc//lib/netrc.rb#3
8
+ class Netrc
9
+ # @return [Netrc] a new instance of Netrc
10
+ #
11
+ # source://netrc//lib/netrc.rb#166
12
+ def initialize(path, data); end
13
+
14
+ # source://netrc//lib/netrc.rb#180
15
+ def [](k); end
16
+
17
+ # source://netrc//lib/netrc.rb#188
18
+ def []=(k, info); end
19
+
20
+ # source://netrc//lib/netrc.rb#200
21
+ def delete(key); end
22
+
23
+ # source://netrc//lib/netrc.rb#211
24
+ def each(&block); end
25
+
26
+ # source://netrc//lib/netrc.rb#196
27
+ def length; end
28
+
29
+ # source://netrc//lib/netrc.rb#215
30
+ def new_item(m, l, p); end
31
+
32
+ # Returns the value of attribute new_item_prefix.
33
+ #
34
+ # source://netrc//lib/netrc.rb#178
35
+ def new_item_prefix; end
36
+
37
+ # Sets the attribute new_item_prefix
38
+ #
39
+ # @param value the value to set the attribute new_item_prefix to.
40
+ #
41
+ # source://netrc//lib/netrc.rb#178
42
+ def new_item_prefix=(_arg0); end
43
+
44
+ # source://netrc//lib/netrc.rb#219
45
+ def save; end
46
+
47
+ # source://netrc//lib/netrc.rb#233
48
+ def unparse; end
49
+
50
+ class << self
51
+ # source://netrc//lib/netrc.rb#42
52
+ def check_permissions(path); end
53
+
54
+ # source://netrc//lib/netrc.rb#33
55
+ def config; end
56
+
57
+ # @yield [self.config]
58
+ #
59
+ # source://netrc//lib/netrc.rb#37
60
+ def configure; end
61
+
62
+ # source://netrc//lib/netrc.rb#10
63
+ def default_path; end
64
+
65
+ # source://netrc//lib/netrc.rb#14
66
+ def home_path; end
67
+
68
+ # source://netrc//lib/netrc.rb#85
69
+ def lex(lines); end
70
+
71
+ # source://netrc//lib/netrc.rb#29
72
+ def netrc_filename; end
73
+
74
+ # Returns two values, a header and a list of items.
75
+ # Each item is a tuple, containing some or all of:
76
+ # - machine keyword (including trailing whitespace+comments)
77
+ # - machine name
78
+ # - login keyword (including surrounding whitespace+comments)
79
+ # - login
80
+ # - password keyword (including surrounding whitespace+comments)
81
+ # - password
82
+ # - trailing chars
83
+ # This lets us change individual fields, then write out the file
84
+ # with all its original formatting.
85
+ #
86
+ # source://netrc//lib/netrc.rb#129
87
+ def parse(ts); end
88
+
89
+ # Reads path and parses it as a .netrc file. If path doesn't
90
+ # exist, returns an empty object. Decrypt paths ending in .gpg.
91
+ #
92
+ # source://netrc//lib/netrc.rb#51
93
+ def read(path = T.unsafe(nil)); end
94
+
95
+ # @return [Boolean]
96
+ #
97
+ # source://netrc//lib/netrc.rb#112
98
+ def skip?(s); end
99
+ end
100
+ end
101
+
102
+ # source://netrc//lib/netrc.rb#8
103
+ Netrc::CYGWIN = T.let(T.unsafe(nil), T.untyped)
104
+
105
+ # source://netrc//lib/netrc.rb#244
106
+ class Netrc::Entry < ::Struct
107
+ # Returns the value of attribute login
108
+ #
109
+ # @return [Object] the current value of login
110
+ def login; end
111
+
112
+ # Sets the attribute login
113
+ #
114
+ # @param value [Object] the value to set the attribute login to.
115
+ # @return [Object] the newly set value
116
+ def login=(_); end
117
+
118
+ # Returns the value of attribute password
119
+ #
120
+ # @return [Object] the current value of password
121
+ def password; end
122
+
123
+ # Sets the attribute password
124
+ #
125
+ # @param value [Object] the value to set the attribute password to.
126
+ # @return [Object] the newly set value
127
+ def password=(_); end
128
+
129
+ def to_ary; end
130
+
131
+ class << self
132
+ def [](*_arg0); end
133
+ def inspect; end
134
+ def keyword_init?; end
135
+ def members; end
136
+ def new(*_arg0); end
137
+ end
138
+ end
139
+
140
+ # source://netrc//lib/netrc.rb#250
141
+ class Netrc::Error < ::StandardError; end
142
+
143
+ # source://netrc//lib/netrc.rb#68
144
+ class Netrc::TokenArray < ::Array
145
+ # source://netrc//lib/netrc.rb#76
146
+ def readto; end
147
+
148
+ # source://netrc//lib/netrc.rb#69
149
+ def take; end
150
+ end
151
+
152
+ # source://netrc//lib/netrc.rb#4
153
+ Netrc::VERSION = T.let(T.unsafe(nil), String)
154
+
155
+ # see http://stackoverflow.com/questions/4871309/what-is-the-correct-way-to-detect-if-ruby-is-running-on-windows
156
+ #
157
+ # source://netrc//lib/netrc.rb#7
158
+ Netrc::WINDOWS = T.let(T.unsafe(nil), T.untyped)
@@ -0,0 +1,77 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `ordinare` gem.
5
+ # Please instead update this file by running `bin/tapioca gem ordinare`.
6
+
7
+ # source://ordinare//lib/ordinare/version.rb#1
8
+ module Ordinare
9
+ private
10
+
11
+ # source://ordinare//lib/ordinare.rb#9
12
+ def hi; end
13
+
14
+ # source://ordinare//lib/ordinare.rb#13
15
+ def parse_args; end
16
+
17
+ class << self
18
+ # source://ordinare//lib/ordinare.rb#9
19
+ def hi; end
20
+
21
+ # source://ordinare//lib/ordinare.rb#13
22
+ def parse_args; end
23
+ end
24
+ end
25
+
26
+ # source://ordinare//lib/ordinare/check.rb#2
27
+ class Ordinare::Check
28
+ # @return [Check] a new instance of Check
29
+ #
30
+ # source://ordinare//lib/ordinare/check.rb#7
31
+ def initialize(path); end
32
+
33
+ # @return [Boolean]
34
+ #
35
+ # source://ordinare//lib/ordinare/check.rb#11
36
+ def gemfile_sorted?; end
37
+
38
+ class << self
39
+ # @return [Boolean]
40
+ #
41
+ # source://ordinare//lib/ordinare/check.rb#3
42
+ def gemfile_sorted?(path = T.unsafe(nil)); end
43
+ end
44
+ end
45
+
46
+ # source://ordinare//lib/ordinare/sort.rb#2
47
+ class Ordinare::Sort
48
+ # @return [Sort] a new instance of Sort
49
+ #
50
+ # source://ordinare//lib/ordinare/sort.rb#11
51
+ def initialize(overwrite, path); end
52
+
53
+ # source://ordinare//lib/ordinare/sort.rb#29
54
+ def sort_content(content); end
55
+
56
+ # source://ordinare//lib/ordinare/sort.rb#17
57
+ def sort_gemfile; end
58
+
59
+ private
60
+
61
+ # source://ordinare//lib/ordinare/sort.rb#42
62
+ def find_ranges_of_gems(content); end
63
+
64
+ # source://ordinare//lib/ordinare/sort.rb#77
65
+ def write_to_a_file(content); end
66
+
67
+ class << self
68
+ # source://ordinare//lib/ordinare/sort.rb#7
69
+ def sort_content(path = T.unsafe(nil), content); end
70
+
71
+ # source://ordinare//lib/ordinare/sort.rb#3
72
+ def sort_gemfile(overwrite = T.unsafe(nil), path = T.unsafe(nil)); end
73
+ end
74
+ end
75
+
76
+ # source://ordinare//lib/ordinare/version.rb#2
77
+ Ordinare::VERSION = T.let(T.unsafe(nil), String)