checkoff 0.200.0 → 0.203.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (149) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +130 -28
  3. data/.git-hooks/pre_commit/solargraph_typecheck.rb +12 -11
  4. data/.overcommit.yml +27 -2
  5. data/.rubocop.yml +20 -2
  6. data/.rubocop_todo.yml +90 -0
  7. data/.solargraph.yml +10 -1
  8. data/DEVELOPMENT.md +1 -1
  9. data/Gemfile +11 -8
  10. data/Gemfile.lock +66 -42
  11. data/LICENSE +1 -1
  12. data/Makefile +14 -12
  13. data/bin/brakeman +27 -0
  14. data/bin/overcommit_branch +117 -0
  15. data/bin/spoom +27 -0
  16. data/bin/srb +27 -0
  17. data/bin/srb-rbi +27 -0
  18. data/bin/tapioca +27 -0
  19. data/config/annotations_misc.rb +35 -0
  20. data/docs/cookiecutter_input.json +1 -0
  21. data/fix.sh +14 -6
  22. data/lib/checkoff/custom_fields.rb +3 -2
  23. data/lib/checkoff/internal/search_url/simple_param_converter.rb +11 -0
  24. data/lib/checkoff/version.rb +1 -1
  25. data/requirements_dev.txt +1 -1
  26. data/sorbet/config +4 -0
  27. data/sorbet/rbi/annotations/.gitattributes +1 -0
  28. data/sorbet/rbi/annotations/activesupport.rbi +453 -0
  29. data/sorbet/rbi/annotations/faraday.rbi +17 -0
  30. data/sorbet/rbi/annotations/minitest.rbi +119 -0
  31. data/sorbet/rbi/annotations/mocha.rbi +34 -0
  32. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  33. data/sorbet/rbi/annotations/webmock.rbi +9 -0
  34. data/sorbet/rbi/dsl/.gitattributes +1 -0
  35. data/sorbet/rbi/dsl/active_support/callbacks.rbi +23 -0
  36. data/sorbet/rbi/gems/.gitattributes +1 -0
  37. data/sorbet/rbi/gems/activesupport@7.1.3.rbi +18749 -0
  38. data/sorbet/rbi/gems/addressable@2.8.6.rbi +1994 -0
  39. data/sorbet/rbi/gems/ansi@1.5.0.rbi +688 -0
  40. data/sorbet/rbi/gems/asana@0.10.6-ab9393136d9ca59b75e42a661fdddc1c65c8f7c3.rbi +6142 -0
  41. data/sorbet/rbi/gems/ast@2.4.2.rbi +585 -0
  42. data/sorbet/rbi/gems/backport@1.2.0.rbi +523 -0
  43. data/sorbet/rbi/gems/base64@0.2.0.rbi +509 -0
  44. data/sorbet/rbi/gems/benchmark@0.4.0.rbi +618 -0
  45. data/sorbet/rbi/gems/bigdecimal@3.1.5.rbi +78 -0
  46. data/sorbet/rbi/gems/builder@3.2.4.rbi +505 -0
  47. data/sorbet/rbi/gems/bump@0.10.0.rbi +169 -0
  48. data/sorbet/rbi/gems/cache@0.4.1.rbi +211 -0
  49. data/sorbet/rbi/gems/cache_method@0.2.7.rbi +293 -0
  50. data/sorbet/rbi/gems/chef-utils@18.3.0.rbi +9 -0
  51. data/sorbet/rbi/gems/childprocess@5.1.0.rbi +383 -0
  52. data/sorbet/rbi/gems/coderay@1.1.3.rbi +3427 -0
  53. data/sorbet/rbi/gems/concurrent-ruby@1.2.3.rbi +11591 -0
  54. data/sorbet/rbi/gems/connection_pool@2.4.1.rbi +9 -0
  55. data/sorbet/rbi/gems/crack@0.4.5.rbi +145 -0
  56. data/sorbet/rbi/gems/diff-lcs@1.5.1.rbi +969 -0
  57. data/sorbet/rbi/gems/docile@1.4.0.rbi +377 -0
  58. data/sorbet/rbi/gems/drb@2.2.0.rbi +1347 -0
  59. data/sorbet/rbi/gems/e2mmap@0.1.0.rbi +9 -0
  60. data/sorbet/rbi/gems/erubi@1.13.0.rbi +152 -0
  61. data/sorbet/rbi/gems/faraday-em_http@1.0.0.rbi +222 -0
  62. data/sorbet/rbi/gems/faraday-em_synchrony@1.0.0.rbi +126 -0
  63. data/sorbet/rbi/gems/faraday-excon@1.1.0.rbi +136 -0
  64. data/sorbet/rbi/gems/faraday-httpclient@1.0.1.rbi +145 -0
  65. data/sorbet/rbi/gems/faraday-multipart@1.0.4.rbi +259 -0
  66. data/sorbet/rbi/gems/faraday-net_http@1.0.1.rbi +142 -0
  67. data/sorbet/rbi/gems/faraday-net_http_persistent@1.2.0.rbi +118 -0
  68. data/sorbet/rbi/gems/faraday-patron@1.0.0.rbi +125 -0
  69. data/sorbet/rbi/gems/faraday-rack@1.0.0.rbi +133 -0
  70. data/sorbet/rbi/gems/faraday-retry@1.0.3.rbi +198 -0
  71. data/sorbet/rbi/gems/faraday@1.10.3.rbi +2729 -0
  72. data/sorbet/rbi/gems/faraday_middleware-multi_json@0.0.6.rbi +29 -0
  73. data/sorbet/rbi/gems/faraday_middleware@1.2.0.rbi +1004 -0
  74. data/sorbet/rbi/gems/gli@2.21.1.rbi +9 -0
  75. data/sorbet/rbi/gems/hashdiff@1.0.1.rbi +351 -0
  76. data/sorbet/rbi/gems/i18n@1.14.1.rbi +2326 -0
  77. data/sorbet/rbi/gems/imagen@0.1.8.rbi +340 -0
  78. data/sorbet/rbi/gems/iniparse@1.5.0.rbi +899 -0
  79. data/sorbet/rbi/gems/jaro_winkler@1.6.0.rbi +22 -0
  80. data/sorbet/rbi/gems/json@2.7.1.rbi +1562 -0
  81. data/sorbet/rbi/gems/jwt@2.7.1.rbi +1405 -0
  82. data/sorbet/rbi/gems/kramdown-parser-gfm@1.1.0.rbi +128 -0
  83. data/sorbet/rbi/gems/kramdown@2.4.0.rbi +3272 -0
  84. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14238 -0
  85. data/sorbet/rbi/gems/logger@1.6.1.rbi +920 -0
  86. data/sorbet/rbi/gems/mdl@0.13.0.rbi +445 -0
  87. data/sorbet/rbi/gems/method_source@1.0.0.rbi +273 -0
  88. data/sorbet/rbi/gems/mime-types-data@3.2023.1205.rbi +127 -0
  89. data/sorbet/rbi/gems/mime-types@3.5.1.rbi +1252 -0
  90. data/sorbet/rbi/gems/minitest-profile@0.0.2.rbi +136 -0
  91. data/sorbet/rbi/gems/minitest-reporters@1.6.1.rbi +1014 -0
  92. data/sorbet/rbi/gems/minitest@5.21.1.rbi +1539 -0
  93. data/sorbet/rbi/gems/mixlib-cli@2.1.8.rbi +314 -0
  94. data/sorbet/rbi/gems/mixlib-config@3.0.27.rbi +581 -0
  95. data/sorbet/rbi/gems/mixlib-shellout@3.2.7.rbi +629 -0
  96. data/sorbet/rbi/gems/mocha@2.1.0.rbi +12 -0
  97. data/sorbet/rbi/gems/multi_json@1.15.0.rbi +268 -0
  98. data/sorbet/rbi/gems/multi_xml@0.6.0.rbi +102 -0
  99. data/sorbet/rbi/gems/multipart-post@2.3.0.rbi +234 -0
  100. data/sorbet/rbi/gems/mutex_m@0.2.0.rbi +94 -0
  101. data/sorbet/rbi/gems/netrc@0.11.0.rbi +159 -0
  102. data/sorbet/rbi/gems/nokogiri@1.16.7.rbi +7311 -0
  103. data/sorbet/rbi/gems/oauth2@1.4.11.rbi +833 -0
  104. data/sorbet/rbi/gems/ostruct@0.6.1.rbi +354 -0
  105. data/sorbet/rbi/gems/overcommit@0.64.0.rbi +2400 -0
  106. data/sorbet/rbi/gems/parallel@1.23.0.rbi +274 -0
  107. data/sorbet/rbi/gems/parser@3.2.2.4.rbi +7253 -0
  108. data/sorbet/rbi/gems/prism@1.2.0.rbi +39085 -0
  109. data/sorbet/rbi/gems/pry@0.14.2.rbi +10070 -0
  110. data/sorbet/rbi/gems/public_suffix@5.0.4.rbi +936 -0
  111. data/sorbet/rbi/gems/punchlist@1.3.2.rbi +173 -0
  112. data/sorbet/rbi/gems/racc@1.7.3.rbi +162 -0
  113. data/sorbet/rbi/gems/rack@3.0.8.rbi +5184 -0
  114. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +403 -0
  115. data/sorbet/rbi/gems/rake@13.1.0.rbi +3022 -0
  116. data/sorbet/rbi/gems/rbi@0.2.1.rbi +4535 -0
  117. data/sorbet/rbi/gems/rbs@2.8.4.rbi +5613 -0
  118. data/sorbet/rbi/gems/regexp_parser@2.8.3.rbi +3750 -0
  119. data/sorbet/rbi/gems/reverse_markdown@2.1.1.rbi +390 -0
  120. data/sorbet/rbi/gems/rexml@3.2.6.rbi +4888 -0
  121. data/sorbet/rbi/gems/rubocop-ast@1.30.0.rbi +7061 -0
  122. data/sorbet/rbi/gems/rubocop-minitest@0.34.5.rbi +2577 -0
  123. data/sorbet/rbi/gems/rubocop-performance@1.20.2.rbi +3262 -0
  124. data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +329 -0
  125. data/sorbet/rbi/gems/rubocop@1.59.0.rbi +57238 -0
  126. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1318 -0
  127. data/sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi +9 -0
  128. data/sorbet/rbi/gems/rugged@1.6.3.rbi +1577 -0
  129. data/sorbet/rbi/gems/simplecov-html@0.12.3.rbi +217 -0
  130. data/sorbet/rbi/gems/simplecov-lcov@0.8.0.rbi +256 -0
  131. data/sorbet/rbi/gems/simplecov@0.22.0.rbi +2149 -0
  132. data/sorbet/rbi/gems/simplecov_json_formatter@0.1.4.rbi +9 -0
  133. data/sorbet/rbi/gems/solargraph@0.50.1-904b9304770a59fac393c5cc3cad481e5bdf0fd8.rbi +9396 -0
  134. data/sorbet/rbi/gems/source_finder@3.2.1.rbi +317 -0
  135. data/sorbet/rbi/gems/spoom@1.5.0.rbi +4932 -0
  136. data/sorbet/rbi/gems/tapioca@0.16.4.rbi +3604 -0
  137. data/sorbet/rbi/gems/thor@1.3.2.rbi +4378 -0
  138. data/sorbet/rbi/gems/tilt@2.4.0.rbi +933 -0
  139. data/sorbet/rbi/gems/tomlrb@2.0.3.rbi +9 -0
  140. data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +5918 -0
  141. data/sorbet/rbi/gems/undercover@0.5.0.rbi +433 -0
  142. data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +66 -0
  143. data/sorbet/rbi/gems/webmock@3.19.1.rbi +1769 -0
  144. data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +435 -0
  145. data/sorbet/rbi/gems/yard@0.9.34.rbi +18247 -0
  146. data/sorbet/rbi/todo.rbi +11 -0
  147. data/sorbet/tapioca/config.yml +13 -0
  148. data/sorbet/tapioca/require.rb +4 -0
  149. metadata +134 -3
@@ -0,0 +1,899 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `iniparse` gem.
5
+ # Please instead update this file by running `bin/tapioca gem iniparse`.
6
+
7
+
8
+ # source://iniparse//lib/iniparse/document.rb#1
9
+ module IniParse
10
+ private
11
+
12
+ # Creates a new IniParse::Document using the specification you provide.
13
+ #
14
+ # See IniParse::Generator.
15
+ #
16
+ # ==== Returns
17
+ # IniParse::Document
18
+ #
19
+ # source://iniparse//lib/iniparse.rb#63
20
+ def gen(&blk); end
21
+
22
+ # Opens the file at +path+, reads and parses it's contents.
23
+ #
24
+ # ==== Parameters
25
+ # path<String>:: The path to the INI document.
26
+ #
27
+ # ==== Returns
28
+ # IniParse::Document
29
+ #
30
+ # source://iniparse//lib/iniparse.rb#50
31
+ def open(path); end
32
+
33
+ # Parse given given INI document source +source+.
34
+ #
35
+ # See IniParse::Parser.parse
36
+ #
37
+ # ==== Parameters
38
+ # source<String>:: The source from the INI document.
39
+ #
40
+ # ==== Returns
41
+ # IniParse::Document
42
+ #
43
+ # source://iniparse//lib/iniparse.rb#38
44
+ def parse(source); end
45
+
46
+ class << self
47
+ # Creates a new IniParse::Document using the specification you provide.
48
+ #
49
+ # See IniParse::Generator.
50
+ #
51
+ # ==== Returns
52
+ # IniParse::Document
53
+ #
54
+ # source://iniparse//lib/iniparse.rb#63
55
+ def gen(&blk); end
56
+
57
+ # Opens the file at +path+, reads and parses it's contents.
58
+ #
59
+ # ==== Parameters
60
+ # path<String>:: The path to the INI document.
61
+ #
62
+ # ==== Returns
63
+ # IniParse::Document
64
+ #
65
+ # source://iniparse//lib/iniparse.rb#50
66
+ def open(path); end
67
+
68
+ # Parse given given INI document source +source+.
69
+ #
70
+ # See IniParse::Parser.parse
71
+ #
72
+ # ==== Parameters
73
+ # source<String>:: The source from the INI document.
74
+ #
75
+ # ==== Returns
76
+ # IniParse::Document
77
+ #
78
+ # source://iniparse//lib/iniparse.rb#38
79
+ def parse(source); end
80
+ end
81
+ end
82
+
83
+ # Represents an INI document.
84
+ #
85
+ # source://iniparse//lib/iniparse/document.rb#3
86
+ class IniParse::Document
87
+ include ::Enumerable
88
+
89
+ # Creates a new Document instance.
90
+ #
91
+ # @return [Document] a new instance of Document
92
+ #
93
+ # source://iniparse//lib/iniparse/document.rb#10
94
+ def initialize(path = T.unsafe(nil)); end
95
+
96
+ # Returns the section identified by +key+.
97
+ #
98
+ # Returns nil if there is no Section with the given key.
99
+ #
100
+ # source://iniparse//lib/iniparse/document.rb#31
101
+ def [](key); end
102
+
103
+ # Deletes the section whose name matches the given +key+.
104
+ #
105
+ # Returns the document.
106
+ #
107
+ # source://iniparse//lib/iniparse/document.rb#47
108
+ def delete(*args); end
109
+
110
+ # Enumerates through each Section in this document.
111
+ #
112
+ # Does not yield blank and comment lines by default; if you want _all_
113
+ # lines to be yielded, pass true.
114
+ #
115
+ # ==== Parameters
116
+ # include_blank<Boolean>:: Include blank/comment lines?
117
+ #
118
+ # source://iniparse//lib/iniparse/document.rb#23
119
+ def each(*args, &blk); end
120
+
121
+ # Returns true if a section with the given +key+ exists in this document.
122
+ #
123
+ # @return [Boolean]
124
+ #
125
+ # source://iniparse//lib/iniparse/document.rb#87
126
+ def has_section?(key); end
127
+
128
+ # A human-readable version of the document, for debugging.
129
+ #
130
+ # source://iniparse//lib/iniparse/document.rb#81
131
+ def inspect; end
132
+
133
+ # Returns the value of attribute lines.
134
+ #
135
+ # source://iniparse//lib/iniparse/document.rb#6
136
+ def lines; end
137
+
138
+ # Returns the value of attribute path.
139
+ #
140
+ # source://iniparse//lib/iniparse/document.rb#7
141
+ def path; end
142
+
143
+ # Sets the attribute path
144
+ #
145
+ # @param value the value to set the attribute path to.
146
+ #
147
+ # source://iniparse//lib/iniparse/document.rb#7
148
+ def path=(_arg0); end
149
+
150
+ # Saves a copy of this Document to disk.
151
+ #
152
+ # If a path was supplied when the Document was initialized then nothing
153
+ # needs to be given to Document#save. If Document was not given a file
154
+ # path, or you wish to save the document elsewhere, supply a path when
155
+ # calling Document#save.
156
+ #
157
+ # ==== Parameters
158
+ # path<String>:: A path to which this document will be saved.
159
+ #
160
+ # ==== Raises
161
+ # IniParseError:: If your document couldn't be saved.
162
+ #
163
+ # @raise [IniParseError]
164
+ #
165
+ # source://iniparse//lib/iniparse/document.rb#104
166
+ def save(path = T.unsafe(nil)); end
167
+
168
+ # Returns the section identified by +key+.
169
+ #
170
+ # If there is no Section with the given key it will be created.
171
+ #
172
+ # source://iniparse//lib/iniparse/document.rb#39
173
+ def section(key); end
174
+
175
+ # Returns a has representation of the INI with multi-line options
176
+ # as an array
177
+ #
178
+ # source://iniparse//lib/iniparse/document.rb#64
179
+ def to_h; end
180
+
181
+ # Returns a has representation of the INI with multi-line options
182
+ # as an array
183
+ #
184
+ # source://iniparse//lib/iniparse/document.rb#64
185
+ def to_hash; end
186
+
187
+ # Returns this document as a string suitable for saving to a file.
188
+ #
189
+ # source://iniparse//lib/iniparse/document.rb#53
190
+ def to_ini; end
191
+
192
+ # Returns this document as a string suitable for saving to a file.
193
+ #
194
+ # source://iniparse//lib/iniparse/document.rb#53
195
+ def to_s; end
196
+ end
197
+
198
+ # Generator provides a means for easily creating new INI documents.
199
+ #
200
+ # Rather than trying to hack together new INI documents by manually creating
201
+ # Document, Section and Option instances, it is preferable to use Generator
202
+ # which will handle it all for you.
203
+ #
204
+ # The Generator is exposed through IniParse.gen.
205
+ #
206
+ # IniParse.gen do |doc|
207
+ # doc.section("vehicle") do |vehicle|
208
+ # vehicle.option("road_side", "left")
209
+ # vehicle.option("realistic_acceleration", true)
210
+ # vehicle.option("max_trains", 500)
211
+ # end
212
+ #
213
+ # doc.section("construction") do |construction|
214
+ # construction.option("build_on_slopes", true)
215
+ # construction.option("autoslope", true)
216
+ # end
217
+ # end
218
+ #
219
+ # # => IniParse::Document
220
+ #
221
+ # This can be simplified further if you don't mind the small overhead
222
+ # which comes with +method_missing+:
223
+ #
224
+ # IniParse.gen do |doc|
225
+ # doc.vehicle do |vehicle|
226
+ # vehicle.road_side = "left"
227
+ # vehicle.realistic_acceleration = true
228
+ # vehicle.max_trains = 500
229
+ # end
230
+ #
231
+ # doc.construction do |construction|
232
+ # construction.build_on_slopes = true
233
+ # construction.autoslope = true
234
+ # end
235
+ # end
236
+ #
237
+ # # => IniParse::Document
238
+ #
239
+ # If you want to add slightly more complicated formatting to your document,
240
+ # each line type (except blanks) takes a number of optional parameters:
241
+ #
242
+ # :comment::
243
+ # Adds an inline comment at the end of the line.
244
+ # :comment_offset::
245
+ # Indent the comment. Measured in characters from _beginning_ of the line.
246
+ # See String#ljust.
247
+ # :indent::
248
+ # Adds the supplied text to the beginning of the line.
249
+ #
250
+ # If you supply +:indent+, +:comment_sep+, or +:comment_offset+ options when
251
+ # adding a section, the same options will be inherited by all of the options
252
+ # which belong to it.
253
+ #
254
+ # IniParse.gen do |doc|
255
+ # doc.section("vehicle",
256
+ # :comment => "Options for vehicles", :indent => " "
257
+ # ) do |vehicle|
258
+ # vehicle.option("road_side", "left")
259
+ # vehicle.option("realistic_acceleration", true)
260
+ # vehicle.option("max_trains", 500, :comment => "More = slower")
261
+ # end
262
+ # end.to_ini
263
+ #
264
+ # [vehicle] ; Options for vehicles
265
+ # road_side = left
266
+ # realistic_acceleration = true
267
+ # max_trains = 500 ; More = slower
268
+ #
269
+ # source://iniparse//lib/iniparse/generator.rb#73
270
+ class IniParse::Generator
271
+ # @return [Generator] a new instance of Generator
272
+ #
273
+ # source://iniparse//lib/iniparse/generator.rb#77
274
+ def initialize(opts = T.unsafe(nil)); end
275
+
276
+ # Adds a new blank line to the document.
277
+ #
278
+ # source://iniparse//lib/iniparse/generator.rb#170
279
+ def blank; end
280
+
281
+ # Adds a new comment line to the document.
282
+ #
283
+ # ==== Parameters
284
+ # comment<String>:: The text for the comment line.
285
+ #
286
+ # source://iniparse//lib/iniparse/generator.rb#163
287
+ def comment(comment, opts = T.unsafe(nil)); end
288
+
289
+ # Returns the value of attribute context.
290
+ #
291
+ # source://iniparse//lib/iniparse/generator.rb#74
292
+ def context; end
293
+
294
+ # Returns the value of attribute document.
295
+ #
296
+ # source://iniparse//lib/iniparse/generator.rb#75
297
+ def document; end
298
+
299
+ # @yield [_self]
300
+ # @yieldparam _self [IniParse::Generator] the object that the method was called on
301
+ #
302
+ # source://iniparse//lib/iniparse/generator.rb#85
303
+ def gen; end
304
+
305
+ # source://iniparse//lib/iniparse/generator.rb#183
306
+ def method_missing(name, *args, &blk); end
307
+
308
+ # Adds a new option to the current section.
309
+ #
310
+ # Can only be called as part of a section block, or after at least one
311
+ # section has been added to the document.
312
+ #
313
+ # ==== Parameters
314
+ # key<String>:: The key (name) for this option.
315
+ # value:: The option's value.
316
+ # opts<Hash>:: Extra options for the line (formatting, etc).
317
+ #
318
+ # ==== Raises
319
+ # IniParse::NoSectionError::
320
+ # If no section has been added to the document yet.
321
+ #
322
+ # source://iniparse//lib/iniparse/generator.rb#147
323
+ def option(key, value, opts = T.unsafe(nil)); end
324
+
325
+ # Creates a new section with the given name and adds it to the document.
326
+ #
327
+ # You can optionally supply a block (as detailed in the documentation for
328
+ # Generator#gen) in order to add options to the section.
329
+ #
330
+ # ==== Parameters
331
+ # name<String>:: A name for the given section.
332
+ #
333
+ # source://iniparse//lib/iniparse/generator.rb#107
334
+ def section(name, opts = T.unsafe(nil)); end
335
+
336
+ # Wraps lines, setting default options for each.
337
+ #
338
+ # @yield [_self]
339
+ # @yieldparam _self [IniParse::Generator] the object that the method was called on
340
+ #
341
+ # source://iniparse//lib/iniparse/generator.rb#175
342
+ def with_options(opts = T.unsafe(nil)); end
343
+
344
+ private
345
+
346
+ # Returns options for a line.
347
+ #
348
+ # If the context is a section, we use the section options as a base,
349
+ # rather than the global defaults.
350
+ #
351
+ # source://iniparse//lib/iniparse/generator.rb#200
352
+ def line_options(given_opts); end
353
+
354
+ class << self
355
+ # Creates a new IniParse::Document with the given sections and options.
356
+ #
357
+ # ==== Returns
358
+ # IniParse::Document
359
+ #
360
+ # source://iniparse//lib/iniparse/generator.rb#95
361
+ def gen(opts = T.unsafe(nil), &blk); end
362
+ end
363
+ end
364
+
365
+ # A base class for IniParse errors.
366
+ #
367
+ # source://iniparse//lib/iniparse.rb#13
368
+ class IniParse::IniParseError < ::StandardError; end
369
+
370
+ # Represents a collection of lines in an INI document.
371
+ #
372
+ # LineCollection acts a bit like an Array/Hash hybrid, allowing arbitrary
373
+ # lines to be added to the collection, but also indexes the keys of Section
374
+ # and Option lines to enable O(1) lookup via LineCollection#[].
375
+ #
376
+ # The lines instances are stored in an array, +@lines+, while the index of
377
+ # each Section/Option is held in a Hash, +@indicies+, keyed with the
378
+ # Section/Option#key value (see LineCollection#[]=).
379
+ #
380
+ # source://iniparse//lib/iniparse/line_collection.rb#12
381
+ module IniParse::LineCollection
382
+ include ::Enumerable
383
+ include ::ActiveSupport::ToJsonWithActiveSupportEncoder
384
+
385
+ # source://iniparse//lib/iniparse/line_collection.rb#15
386
+ def initialize; end
387
+
388
+ # Appends a line to the collection.
389
+ #
390
+ # Note that if you pass a line with a key already represented in the
391
+ # collection, the old item will be replaced.
392
+ #
393
+ # source://iniparse//lib/iniparse/line_collection.rb#46
394
+ def <<(line); end
395
+
396
+ # Retrive a value identified by +key+.
397
+ #
398
+ # source://iniparse//lib/iniparse/line_collection.rb#21
399
+ def [](key); end
400
+
401
+ # Set a +value+ identified by +key+.
402
+ #
403
+ # If a value with the given key already exists, the value will be replaced
404
+ # with the new one, with the new value taking the position of the old.
405
+ #
406
+ # source://iniparse//lib/iniparse/line_collection.rb#30
407
+ def []=(key, value); end
408
+
409
+ # Removes the value identified by +key+.
410
+ #
411
+ # source://iniparse//lib/iniparse/line_collection.rb#70
412
+ def delete(key); end
413
+
414
+ # Enumerates through the collection.
415
+ #
416
+ # By default #each does not yield blank and comment lines.
417
+ #
418
+ # ==== Parameters
419
+ # include_blank<Boolean>:: Include blank/comment lines?
420
+ #
421
+ # source://iniparse//lib/iniparse/line_collection.rb#59
422
+ def each(include_blank = T.unsafe(nil)); end
423
+
424
+ # Returns whether +key+ is in the collection.
425
+ #
426
+ # @return [Boolean]
427
+ #
428
+ # source://iniparse//lib/iniparse/line_collection.rb#81
429
+ def has_key?(*args); end
430
+
431
+ # Return an array containing the keys for the lines added to this
432
+ # collection.
433
+ #
434
+ # source://iniparse//lib/iniparse/line_collection.rb#87
435
+ def keys; end
436
+
437
+ # Appends a line to the collection.
438
+ #
439
+ # Note that if you pass a line with a key already represented in the
440
+ # collection, the old item will be replaced.
441
+ #
442
+ # source://iniparse//lib/iniparse/line_collection.rb#46
443
+ def push(line); end
444
+
445
+ # Returns this collection as an array. Includes blank and comment lines.
446
+ #
447
+ # source://iniparse//lib/iniparse/line_collection.rb#92
448
+ def to_a; end
449
+
450
+ # Returns this collection as a hash. Does not contain blank and comment
451
+ # lines.
452
+ #
453
+ # source://iniparse//lib/iniparse/line_collection.rb#98
454
+ def to_h; end
455
+
456
+ # Returns this collection as a hash. Does not contain blank and comment
457
+ # lines.
458
+ #
459
+ # source://iniparse//lib/iniparse/line_collection.rb#98
460
+ def to_hash; end
461
+ end
462
+
463
+ # Raised when a line is added to a collection which isn't allowed (e.g.
464
+ # adding a Section line into an OptionCollection).
465
+ #
466
+ # source://iniparse//lib/iniparse.rb#24
467
+ class IniParse::LineNotAllowed < ::IniParse::IniParseError; end
468
+
469
+ # source://iniparse//lib/iniparse/lines.rb#2
470
+ module IniParse::Lines; end
471
+
472
+ # Stores options which appear at the beginning of a file, without a
473
+ # preceding section.
474
+ #
475
+ # source://iniparse//lib/iniparse/lines.rb#225
476
+ class IniParse::Lines::AnonymousSection < ::IniParse::Lines::Section
477
+ # @return [AnonymousSection] a new instance of AnonymousSection
478
+ #
479
+ # source://iniparse//lib/iniparse/lines.rb#226
480
+ def initialize; end
481
+
482
+ # source://iniparse//lib/iniparse/lines.rb#230
483
+ def to_ini; end
484
+
485
+ private
486
+
487
+ # source://iniparse//lib/iniparse/lines.rb#240
488
+ def line_contents; end
489
+ end
490
+
491
+ # Represents a blank line. Used so that we can preserve blank lines when
492
+ # writing back to the file.
493
+ #
494
+ # source://iniparse//lib/iniparse/lines.rb#307
495
+ class IniParse::Lines::Blank
496
+ include ::IniParse::Lines::Line
497
+
498
+ # @return [Boolean]
499
+ #
500
+ # source://iniparse//lib/iniparse/lines.rb#310
501
+ def blank?; end
502
+
503
+ class << self
504
+ # source://iniparse//lib/iniparse/lines.rb#314
505
+ def parse(line, opts); end
506
+ end
507
+ end
508
+
509
+ # Represents a comment. Comment lines begin with a semi-colon or hash.
510
+ #
511
+ # ; this is a comment
512
+ # # also a comment
513
+ #
514
+ # source://iniparse//lib/iniparse/lines.rb#337
515
+ class IniParse::Lines::Comment < ::IniParse::Lines::Blank
516
+ # Returns the inline comment for this line. Includes the comment
517
+ # separator at the beginning of the string.
518
+ #
519
+ # In rare cases where a comment seperator appeared in the original file,
520
+ # but without a comment, just the seperator will be returned.
521
+ #
522
+ # source://iniparse//lib/iniparse/lines.rb#348
523
+ def comment; end
524
+
525
+ # Returns if this line has an inline comment.
526
+ #
527
+ # Being a Comment this will always return true, even if the comment
528
+ # is nil. This would be the case if the line starts with a comment
529
+ # seperator, but has no comment text. See spec/fixtures/smb.ini for a
530
+ # real-world example.
531
+ #
532
+ # @return [Boolean]
533
+ #
534
+ # source://iniparse//lib/iniparse/lines.rb#338
535
+ def has_comment?; end
536
+ end
537
+
538
+ # A base class from which other line types should inherit.
539
+ #
540
+ # source://iniparse//lib/iniparse/lines.rb#4
541
+ module IniParse::Lines::Line
542
+ # ==== Parameters
543
+ # opts<Hash>:: Extra options for the line.
544
+ #
545
+ # source://iniparse//lib/iniparse/lines.rb#8
546
+ def initialize(opts = T.unsafe(nil)); end
547
+
548
+ # Returns whether this is a line which has no data.
549
+ #
550
+ # @return [Boolean]
551
+ #
552
+ # source://iniparse//lib/iniparse/lines.rb#47
553
+ def blank?; end
554
+
555
+ # Returns the inline comment for this line. Includes the comment
556
+ # separator at the beginning of the string.
557
+ #
558
+ # source://iniparse//lib/iniparse/lines.rb#42
559
+ def comment; end
560
+
561
+ # Returns if this line has an inline comment.
562
+ #
563
+ # @return [Boolean]
564
+ #
565
+ # source://iniparse//lib/iniparse/lines.rb#18
566
+ def has_comment?; end
567
+
568
+ # Returns the contents for this line.
569
+ #
570
+ # source://iniparse//lib/iniparse/lines.rb#36
571
+ def line_contents; end
572
+
573
+ # Returns the options used to create the line
574
+ #
575
+ # source://iniparse//lib/iniparse/lines.rb#52
576
+ def options; end
577
+
578
+ # Returns this line as a string as it would be represented in an INI
579
+ # document.
580
+ #
581
+ # source://iniparse//lib/iniparse/lines.rb#24
582
+ def to_ini; end
583
+ end
584
+
585
+ # Represents probably the most common type of line in an INI document:
586
+ # an option. Consists of a key and value, usually separated with an =.
587
+ #
588
+ # key = value
589
+ #
590
+ # source://iniparse//lib/iniparse/lines.rb#250
591
+ class IniParse::Lines::Option
592
+ include ::IniParse::Lines::Line
593
+
594
+ # ==== Parameters
595
+ # key<String>:: The option key.
596
+ # value<String>:: The value for this option.
597
+ # opts<Hash>:: Extra options for the line.
598
+ #
599
+ # @return [Option] a new instance of Option
600
+ #
601
+ # source://iniparse//lib/iniparse/lines.rb#265
602
+ def initialize(key, value, opts = T.unsafe(nil)); end
603
+
604
+ # Returns the value of attribute key.
605
+ #
606
+ # source://iniparse//lib/iniparse/lines.rb#258
607
+ def key; end
608
+
609
+ # Sets the attribute key
610
+ #
611
+ # @param value the value to set the attribute key to.
612
+ #
613
+ # source://iniparse//lib/iniparse/lines.rb#258
614
+ def key=(_arg0); end
615
+
616
+ # Returns the value of attribute value.
617
+ #
618
+ # source://iniparse//lib/iniparse/lines.rb#258
619
+ def value; end
620
+
621
+ # Sets the attribute value
622
+ #
623
+ # @param value the value to set the attribute value to.
624
+ #
625
+ # source://iniparse//lib/iniparse/lines.rb#258
626
+ def value=(_arg0); end
627
+
628
+ private
629
+
630
+ # returns an array to support multiple lines or a single one at once
631
+ # because of options key duplication
632
+ #
633
+ # source://iniparse//lib/iniparse/lines.rb#296
634
+ def line_contents; end
635
+
636
+ class << self
637
+ # source://iniparse//lib/iniparse/lines.rb#271
638
+ def parse(line, opts); end
639
+
640
+ # Attempts to typecast values.
641
+ #
642
+ # source://iniparse//lib/iniparse/lines.rb#279
643
+ def typecast(value); end
644
+ end
645
+ end
646
+
647
+ # Represents a section header in an INI document. Section headers consist
648
+ # of a string of characters wrapped in square brackets.
649
+ #
650
+ # [section]
651
+ # key=value
652
+ # etc
653
+ # ...
654
+ #
655
+ # source://iniparse//lib/iniparse/lines.rb#72
656
+ class IniParse::Lines::Section
657
+ include ::IniParse::Lines::Line
658
+ include ::Enumerable
659
+
660
+ # ==== Parameters
661
+ # key<String>:: The section name.
662
+ # opts<Hash>:: Extra options for the line.
663
+ #
664
+ # @return [Section] a new instance of Section
665
+ #
666
+ # source://iniparse//lib/iniparse/lines.rb#89
667
+ def initialize(key, opts = T.unsafe(nil)); end
668
+
669
+ # Returns the value of an option identified by +key+.
670
+ #
671
+ # Returns nil if there is no corresponding option. If the key provided
672
+ # matches a set of duplicate options, an array will be returned containing
673
+ # the value of each option.
674
+ #
675
+ # source://iniparse//lib/iniparse/lines.rb#162
676
+ def [](key); end
677
+
678
+ # Adds a new option to this section, or updates an existing one.
679
+ #
680
+ # Note that +[]=+ has no knowledge of duplicate options and will happily
681
+ # overwrite duplicate options with your new value.
682
+ #
683
+ # section['an_option']
684
+ # # => ['duplicate one', 'duplicate two', ...]
685
+ # section['an_option'] = 'new value'
686
+ # section['an_option]
687
+ # # => 'new value'
688
+ #
689
+ # If you do not wish to overwrite duplicates, but wish instead for your
690
+ # new option to be considered a duplicate, use +add_option+ instead.
691
+ #
692
+ # source://iniparse//lib/iniparse/lines.rb#145
693
+ def []=(key, value); end
694
+
695
+ # Deletes the option identified by +key+.
696
+ #
697
+ # Returns the section.
698
+ #
699
+ # source://iniparse//lib/iniparse/lines.rb#178
700
+ def delete(*args); end
701
+
702
+ # Enumerates through each Option in this section.
703
+ #
704
+ # Does not yield blank and comment lines by default; if you want _all_
705
+ # lines to be yielded, pass true.
706
+ #
707
+ # ==== Parameters
708
+ # include_blank<Boolean>:: Include blank/comment lines?
709
+ #
710
+ # source://iniparse//lib/iniparse/lines.rb#127
711
+ def each(*args, &blk); end
712
+
713
+ # Returns true if an option with the given +key+ exists in this section.
714
+ #
715
+ # @return [Boolean]
716
+ #
717
+ # source://iniparse//lib/iniparse/lines.rb#193
718
+ def has_option?(key); end
719
+
720
+ # Returns the value of attribute key.
721
+ #
722
+ # source://iniparse//lib/iniparse/lines.rb#80
723
+ def key; end
724
+
725
+ # Sets the attribute key
726
+ #
727
+ # @param value the value to set the attribute key to.
728
+ #
729
+ # source://iniparse//lib/iniparse/lines.rb#80
730
+ def key=(_arg0); end
731
+
732
+ # Returns the value of attribute lines.
733
+ #
734
+ # source://iniparse//lib/iniparse/lines.rb#81
735
+ def lines; end
736
+
737
+ # Merges section +other+ into this one. If the section being merged into
738
+ # this one contains options with the same key, they will be handled as
739
+ # duplicates.
740
+ #
741
+ # ==== Parameters
742
+ # other<IniParse::Section>:: The section to merge into this one.
743
+ #
744
+ # source://iniparse//lib/iniparse/lines.rb#204
745
+ def merge!(other); end
746
+
747
+ # Like [], except instead of returning just the option value, it returns
748
+ # the matching line instance.
749
+ #
750
+ # Will return an array of lines if the key matches a set of duplicates.
751
+ #
752
+ # source://iniparse//lib/iniparse/lines.rb#188
753
+ def option(key); end
754
+
755
+ # Returns this line as a string as it would be represented in an INI
756
+ # document. Includes options, comments and blanks.
757
+ #
758
+ # source://iniparse//lib/iniparse/lines.rb#103
759
+ def to_ini; end
760
+
761
+ private
762
+
763
+ # source://iniparse//lib/iniparse/lines.rb#218
764
+ def line_contents; end
765
+
766
+ class << self
767
+ # source://iniparse//lib/iniparse/lines.rb#95
768
+ def parse(line, opts); end
769
+ end
770
+ end
771
+
772
+ # Raised when an option line is found during parsing before the first
773
+ # section.
774
+ #
775
+ # source://iniparse//lib/iniparse.rb#20
776
+ class IniParse::NoSectionError < ::IniParse::ParseError; end
777
+
778
+ # A implementation of LineCollection used for storing (mostly) Option
779
+ # instances contained within a Section.
780
+ #
781
+ # Whenever OptionCollection encounters an Option key already held in the
782
+ # collection, it treats it as a duplicate. This means that instead of
783
+ # overwriting the existing value, the value is changed to an array
784
+ # containing the previous _and_ the new Option instances.
785
+ #
786
+ # source://iniparse//lib/iniparse/line_collection.rb#140
787
+ class IniParse::OptionCollection
788
+ include ::Enumerable
789
+ include ::IniParse::LineCollection
790
+
791
+ # Appends a line to the collection.
792
+ #
793
+ # If you push an Option with a key already represented in the collection,
794
+ # the previous Option will not be overwritten, but treated as a duplicate.
795
+ #
796
+ # ==== Parameters
797
+ # line<IniParse::LineType::Line>:: The line to be added to this section.
798
+ #
799
+ # source://iniparse//lib/iniparse/line_collection.rb#151
800
+ def <<(line); end
801
+
802
+ # source://iniparse//lib/iniparse/line_collection.rb#166
803
+ def each(*args); end
804
+
805
+ # Return an array containing the keys for the lines added to this
806
+ # collection.
807
+ #
808
+ # source://iniparse//lib/iniparse/line_collection.rb#180
809
+ def keys; end
810
+ end
811
+
812
+ # Raised if an error occurs parsing an INI document.
813
+ #
814
+ # source://iniparse//lib/iniparse.rb#16
815
+ class IniParse::ParseError < ::IniParse::IniParseError; end
816
+
817
+ # source://iniparse//lib/iniparse/parser.rb#2
818
+ class IniParse::Parser
819
+ # Creates a new Parser instance for parsing string +source+.
820
+ #
821
+ # ==== Parameters
822
+ # source<String>:: The source string.
823
+ #
824
+ # @return [Parser] a new instance of Parser
825
+ #
826
+ # source://iniparse//lib/iniparse/parser.rb#31
827
+ def initialize(source); end
828
+
829
+ # Parses the source string and returns the resulting data structure.
830
+ #
831
+ # ==== Returns
832
+ # IniParse::Document
833
+ #
834
+ # source://iniparse//lib/iniparse/parser.rb#40
835
+ def parse; end
836
+
837
+ class << self
838
+ # Takes a raw line from an INI document, striping out any inline
839
+ # comment, and indent, then returns the appropriate tuple so that the
840
+ # Generator instance can add the line to the Document.
841
+ #
842
+ # ==== Raises
843
+ # IniParse::ParseError: If the line could not be parsed.
844
+ #
845
+ # source://iniparse//lib/iniparse/parser.rb#56
846
+ def parse_line(line); end
847
+
848
+ # Returns the line types.
849
+ #
850
+ # ==== Returns
851
+ # Array
852
+ #
853
+ # source://iniparse//lib/iniparse/parser.rb#9
854
+ def parse_types; end
855
+
856
+ # Sets the line types. Handy if you want to add your own custom Line
857
+ # classes.
858
+ #
859
+ # ==== Parameters
860
+ # types<Array[IniParse::Lines::Line]>:: An array containing Line classes.
861
+ #
862
+ # source://iniparse//lib/iniparse/parser.rb#19
863
+ def parse_types=(types); end
864
+
865
+ private
866
+
867
+ # Strips in inline comment from a line (or value), removes trailing
868
+ # whitespace and sets the comment options as applicable.
869
+ #
870
+ # source://iniparse//lib/iniparse/parser.rb#79
871
+ def strip_comment(line, opts); end
872
+
873
+ # Removes any leading whitespace from a line, and adds it to the options
874
+ # hash.
875
+ #
876
+ # source://iniparse//lib/iniparse/parser.rb#100
877
+ def strip_indent(line, opts); end
878
+ end
879
+ end
880
+
881
+ # A implementation of LineCollection used for storing (mostly) Option
882
+ # instances contained within a Section.
883
+ #
884
+ # Since it is assumed that an INI document will only represent a section
885
+ # once, if SectionCollection encounters a Section key already held in the
886
+ # collection, the existing section is merged with the new one (see
887
+ # IniParse::Lines::Section#merge!).
888
+ #
889
+ # source://iniparse//lib/iniparse/line_collection.rb#112
890
+ class IniParse::SectionCollection
891
+ include ::Enumerable
892
+ include ::IniParse::LineCollection
893
+
894
+ # source://iniparse//lib/iniparse/line_collection.rb#115
895
+ def <<(line); end
896
+ end
897
+
898
+ # source://iniparse//lib/iniparse.rb#10
899
+ IniParse::VERSION = T.let(T.unsafe(nil), String)