checkoff 0.201.0 → 0.203.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (148) 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/internal/search_url/simple_param_converter.rb +11 -0
  23. data/lib/checkoff/version.rb +1 -1
  24. data/requirements_dev.txt +1 -1
  25. data/sorbet/config +4 -0
  26. data/sorbet/rbi/annotations/.gitattributes +1 -0
  27. data/sorbet/rbi/annotations/activesupport.rbi +453 -0
  28. data/sorbet/rbi/annotations/faraday.rbi +17 -0
  29. data/sorbet/rbi/annotations/minitest.rbi +119 -0
  30. data/sorbet/rbi/annotations/mocha.rbi +34 -0
  31. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  32. data/sorbet/rbi/annotations/webmock.rbi +9 -0
  33. data/sorbet/rbi/dsl/.gitattributes +1 -0
  34. data/sorbet/rbi/dsl/active_support/callbacks.rbi +23 -0
  35. data/sorbet/rbi/gems/.gitattributes +1 -0
  36. data/sorbet/rbi/gems/activesupport@7.1.3.rbi +18749 -0
  37. data/sorbet/rbi/gems/addressable@2.8.6.rbi +1994 -0
  38. data/sorbet/rbi/gems/ansi@1.5.0.rbi +688 -0
  39. data/sorbet/rbi/gems/asana@0.10.6-ab9393136d9ca59b75e42a661fdddc1c65c8f7c3.rbi +6142 -0
  40. data/sorbet/rbi/gems/ast@2.4.2.rbi +585 -0
  41. data/sorbet/rbi/gems/backport@1.2.0.rbi +523 -0
  42. data/sorbet/rbi/gems/base64@0.2.0.rbi +509 -0
  43. data/sorbet/rbi/gems/benchmark@0.4.0.rbi +618 -0
  44. data/sorbet/rbi/gems/bigdecimal@3.1.5.rbi +78 -0
  45. data/sorbet/rbi/gems/builder@3.2.4.rbi +505 -0
  46. data/sorbet/rbi/gems/bump@0.10.0.rbi +169 -0
  47. data/sorbet/rbi/gems/cache@0.4.1.rbi +211 -0
  48. data/sorbet/rbi/gems/cache_method@0.2.7.rbi +293 -0
  49. data/sorbet/rbi/gems/chef-utils@18.3.0.rbi +9 -0
  50. data/sorbet/rbi/gems/childprocess@5.1.0.rbi +383 -0
  51. data/sorbet/rbi/gems/coderay@1.1.3.rbi +3427 -0
  52. data/sorbet/rbi/gems/concurrent-ruby@1.2.3.rbi +11591 -0
  53. data/sorbet/rbi/gems/connection_pool@2.4.1.rbi +9 -0
  54. data/sorbet/rbi/gems/crack@0.4.5.rbi +145 -0
  55. data/sorbet/rbi/gems/diff-lcs@1.5.1.rbi +969 -0
  56. data/sorbet/rbi/gems/docile@1.4.0.rbi +377 -0
  57. data/sorbet/rbi/gems/drb@2.2.0.rbi +1347 -0
  58. data/sorbet/rbi/gems/e2mmap@0.1.0.rbi +9 -0
  59. data/sorbet/rbi/gems/erubi@1.13.0.rbi +152 -0
  60. data/sorbet/rbi/gems/faraday-em_http@1.0.0.rbi +222 -0
  61. data/sorbet/rbi/gems/faraday-em_synchrony@1.0.0.rbi +126 -0
  62. data/sorbet/rbi/gems/faraday-excon@1.1.0.rbi +136 -0
  63. data/sorbet/rbi/gems/faraday-httpclient@1.0.1.rbi +145 -0
  64. data/sorbet/rbi/gems/faraday-multipart@1.0.4.rbi +259 -0
  65. data/sorbet/rbi/gems/faraday-net_http@1.0.1.rbi +142 -0
  66. data/sorbet/rbi/gems/faraday-net_http_persistent@1.2.0.rbi +118 -0
  67. data/sorbet/rbi/gems/faraday-patron@1.0.0.rbi +125 -0
  68. data/sorbet/rbi/gems/faraday-rack@1.0.0.rbi +133 -0
  69. data/sorbet/rbi/gems/faraday-retry@1.0.3.rbi +198 -0
  70. data/sorbet/rbi/gems/faraday@1.10.3.rbi +2729 -0
  71. data/sorbet/rbi/gems/faraday_middleware-multi_json@0.0.6.rbi +29 -0
  72. data/sorbet/rbi/gems/faraday_middleware@1.2.0.rbi +1004 -0
  73. data/sorbet/rbi/gems/gli@2.21.1.rbi +9 -0
  74. data/sorbet/rbi/gems/hashdiff@1.0.1.rbi +351 -0
  75. data/sorbet/rbi/gems/i18n@1.14.1.rbi +2326 -0
  76. data/sorbet/rbi/gems/imagen@0.1.8.rbi +340 -0
  77. data/sorbet/rbi/gems/iniparse@1.5.0.rbi +899 -0
  78. data/sorbet/rbi/gems/jaro_winkler@1.6.0.rbi +22 -0
  79. data/sorbet/rbi/gems/json@2.7.1.rbi +1562 -0
  80. data/sorbet/rbi/gems/jwt@2.7.1.rbi +1405 -0
  81. data/sorbet/rbi/gems/kramdown-parser-gfm@1.1.0.rbi +128 -0
  82. data/sorbet/rbi/gems/kramdown@2.4.0.rbi +3272 -0
  83. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14238 -0
  84. data/sorbet/rbi/gems/logger@1.6.1.rbi +920 -0
  85. data/sorbet/rbi/gems/mdl@0.13.0.rbi +445 -0
  86. data/sorbet/rbi/gems/method_source@1.0.0.rbi +273 -0
  87. data/sorbet/rbi/gems/mime-types-data@3.2023.1205.rbi +127 -0
  88. data/sorbet/rbi/gems/mime-types@3.5.1.rbi +1252 -0
  89. data/sorbet/rbi/gems/minitest-profile@0.0.2.rbi +136 -0
  90. data/sorbet/rbi/gems/minitest-reporters@1.6.1.rbi +1014 -0
  91. data/sorbet/rbi/gems/minitest@5.21.1.rbi +1539 -0
  92. data/sorbet/rbi/gems/mixlib-cli@2.1.8.rbi +314 -0
  93. data/sorbet/rbi/gems/mixlib-config@3.0.27.rbi +581 -0
  94. data/sorbet/rbi/gems/mixlib-shellout@3.2.7.rbi +629 -0
  95. data/sorbet/rbi/gems/mocha@2.1.0.rbi +12 -0
  96. data/sorbet/rbi/gems/multi_json@1.15.0.rbi +268 -0
  97. data/sorbet/rbi/gems/multi_xml@0.6.0.rbi +102 -0
  98. data/sorbet/rbi/gems/multipart-post@2.3.0.rbi +234 -0
  99. data/sorbet/rbi/gems/mutex_m@0.2.0.rbi +94 -0
  100. data/sorbet/rbi/gems/netrc@0.11.0.rbi +159 -0
  101. data/sorbet/rbi/gems/nokogiri@1.16.7.rbi +7311 -0
  102. data/sorbet/rbi/gems/oauth2@1.4.11.rbi +833 -0
  103. data/sorbet/rbi/gems/ostruct@0.6.1.rbi +354 -0
  104. data/sorbet/rbi/gems/overcommit@0.64.0.rbi +2400 -0
  105. data/sorbet/rbi/gems/parallel@1.23.0.rbi +274 -0
  106. data/sorbet/rbi/gems/parser@3.2.2.4.rbi +7253 -0
  107. data/sorbet/rbi/gems/prism@1.2.0.rbi +39085 -0
  108. data/sorbet/rbi/gems/pry@0.14.2.rbi +10070 -0
  109. data/sorbet/rbi/gems/public_suffix@5.0.4.rbi +936 -0
  110. data/sorbet/rbi/gems/punchlist@1.3.2.rbi +173 -0
  111. data/sorbet/rbi/gems/racc@1.7.3.rbi +162 -0
  112. data/sorbet/rbi/gems/rack@3.0.8.rbi +5184 -0
  113. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +403 -0
  114. data/sorbet/rbi/gems/rake@13.1.0.rbi +3022 -0
  115. data/sorbet/rbi/gems/rbi@0.2.1.rbi +4535 -0
  116. data/sorbet/rbi/gems/rbs@2.8.4.rbi +5613 -0
  117. data/sorbet/rbi/gems/regexp_parser@2.8.3.rbi +3750 -0
  118. data/sorbet/rbi/gems/reverse_markdown@2.1.1.rbi +390 -0
  119. data/sorbet/rbi/gems/rexml@3.2.6.rbi +4888 -0
  120. data/sorbet/rbi/gems/rubocop-ast@1.30.0.rbi +7061 -0
  121. data/sorbet/rbi/gems/rubocop-minitest@0.34.5.rbi +2577 -0
  122. data/sorbet/rbi/gems/rubocop-performance@1.20.2.rbi +3262 -0
  123. data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +329 -0
  124. data/sorbet/rbi/gems/rubocop@1.59.0.rbi +57238 -0
  125. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1318 -0
  126. data/sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi +9 -0
  127. data/sorbet/rbi/gems/rugged@1.6.3.rbi +1577 -0
  128. data/sorbet/rbi/gems/simplecov-html@0.12.3.rbi +217 -0
  129. data/sorbet/rbi/gems/simplecov-lcov@0.8.0.rbi +256 -0
  130. data/sorbet/rbi/gems/simplecov@0.22.0.rbi +2149 -0
  131. data/sorbet/rbi/gems/simplecov_json_formatter@0.1.4.rbi +9 -0
  132. data/sorbet/rbi/gems/solargraph@0.50.1-904b9304770a59fac393c5cc3cad481e5bdf0fd8.rbi +9396 -0
  133. data/sorbet/rbi/gems/source_finder@3.2.1.rbi +317 -0
  134. data/sorbet/rbi/gems/spoom@1.5.0.rbi +4932 -0
  135. data/sorbet/rbi/gems/tapioca@0.16.4.rbi +3604 -0
  136. data/sorbet/rbi/gems/thor@1.3.2.rbi +4378 -0
  137. data/sorbet/rbi/gems/tilt@2.4.0.rbi +933 -0
  138. data/sorbet/rbi/gems/tomlrb@2.0.3.rbi +9 -0
  139. data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +5918 -0
  140. data/sorbet/rbi/gems/undercover@0.5.0.rbi +433 -0
  141. data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +66 -0
  142. data/sorbet/rbi/gems/webmock@3.19.1.rbi +1769 -0
  143. data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +435 -0
  144. data/sorbet/rbi/gems/yard@0.9.34.rbi +18247 -0
  145. data/sorbet/rbi/todo.rbi +11 -0
  146. data/sorbet/tapioca/config.yml +13 -0
  147. data/sorbet/tapioca/require.rb +4 -0
  148. metadata +134 -3
@@ -0,0 +1,1994 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `addressable` gem.
5
+ # Please instead update this file by running `bin/tapioca gem addressable`.
6
+
7
+
8
+ # Addressable is a library for processing links and URIs.
9
+ #
10
+ # source://addressable//lib/addressable/version.rb#22
11
+ module Addressable; end
12
+
13
+ # source://addressable//lib/addressable/idna/pure.rb#21
14
+ module Addressable::IDNA
15
+ class << self
16
+ # source://addressable//lib/addressable/idna/pure.rb#117
17
+ def _deprecated_unicode_normalize_kc(value); end
18
+
19
+ # Converts from a Unicode internationalized domain name to an ASCII
20
+ # domain name as described in RFC 3490.
21
+ #
22
+ # source://addressable//lib/addressable/idna/pure.rb#67
23
+ def to_ascii(input); end
24
+
25
+ # Converts from an ASCII domain name to a Unicode internationalized
26
+ # domain name as described in RFC 3490.
27
+ #
28
+ # source://addressable//lib/addressable/idna/pure.rb#93
29
+ def to_unicode(input); end
30
+
31
+ # @deprecated Use {String#unicode_normalize(:nfkc)} instead
32
+ def unicode_normalize_kc(*args, **_arg1, &block); end
33
+
34
+ private
35
+
36
+ # source://addressable//lib/addressable/idna/pure.rb#140
37
+ def lookup_unicode_lowercase(codepoint); end
38
+
39
+ # Bias adaptation method
40
+ #
41
+ # source://addressable//lib/addressable/idna/pure.rb#488
42
+ def punycode_adapt(delta, numpoints, firsttime); end
43
+
44
+ # @return [Boolean]
45
+ #
46
+ # source://addressable//lib/addressable/idna/pure.rb#456
47
+ def punycode_basic?(codepoint); end
48
+
49
+ # source://addressable//lib/addressable/idna/pure.rb#334
50
+ def punycode_decode(punycode); end
51
+
52
+ # Returns the numeric value of a basic codepoint
53
+ # (for use in representing integers) in the range 0 to
54
+ # base - 1, or PUNYCODE_BASE if codepoint does not represent a value.
55
+ #
56
+ # source://addressable//lib/addressable/idna/pure.rb#474
57
+ def punycode_decode_digit(codepoint); end
58
+
59
+ # @return [Boolean]
60
+ #
61
+ # source://addressable//lib/addressable/idna/pure.rb#461
62
+ def punycode_delimiter?(codepoint); end
63
+
64
+ # source://addressable//lib/addressable/idna/pure.rb#213
65
+ def punycode_encode(unicode); end
66
+
67
+ # source://addressable//lib/addressable/idna/pure.rb#466
68
+ def punycode_encode_digit(d); end
69
+
70
+ # Unicode aware downcase method.
71
+ #
72
+ # @api private
73
+ # @param input [String] The input string.
74
+ # @return [String] The downcased result.
75
+ #
76
+ # source://addressable//lib/addressable/idna/pure.rb#132
77
+ def unicode_downcase(input); end
78
+ end
79
+ end
80
+
81
+ # source://addressable//lib/addressable/idna/pure.rb#183
82
+ Addressable::IDNA::ACE_MAX_LENGTH = T.let(T.unsafe(nil), Integer)
83
+
84
+ # source://addressable//lib/addressable/idna/pure.rb#40
85
+ Addressable::IDNA::ACE_PREFIX = T.let(T.unsafe(nil), String)
86
+
87
+ # source://addressable//lib/addressable/idna/pure.rb#172
88
+ Addressable::IDNA::COMPOSITION_TABLE = T.let(T.unsafe(nil), Hash)
89
+
90
+ # source://addressable//lib/addressable/idna/pure.rb#185
91
+ Addressable::IDNA::PUNYCODE_BASE = T.let(T.unsafe(nil), Integer)
92
+
93
+ # source://addressable//lib/addressable/idna/pure.rb#189
94
+ Addressable::IDNA::PUNYCODE_DAMP = T.let(T.unsafe(nil), Integer)
95
+
96
+ # source://addressable//lib/addressable/idna/pure.rb#192
97
+ Addressable::IDNA::PUNYCODE_DELIMITER = T.let(T.unsafe(nil), Integer)
98
+
99
+ # source://addressable//lib/addressable/idna/pure.rb#190
100
+ Addressable::IDNA::PUNYCODE_INITIAL_BIAS = T.let(T.unsafe(nil), Integer)
101
+
102
+ # source://addressable//lib/addressable/idna/pure.rb#191
103
+ Addressable::IDNA::PUNYCODE_INITIAL_N = T.let(T.unsafe(nil), Integer)
104
+
105
+ # source://addressable//lib/addressable/idna/pure.rb#194
106
+ Addressable::IDNA::PUNYCODE_MAXINT = T.let(T.unsafe(nil), Integer)
107
+
108
+ # source://addressable//lib/addressable/idna/pure.rb#196
109
+ Addressable::IDNA::PUNYCODE_PRINT_ASCII = T.let(T.unsafe(nil), String)
110
+
111
+ # source://addressable//lib/addressable/idna/pure.rb#188
112
+ Addressable::IDNA::PUNYCODE_SKEW = T.let(T.unsafe(nil), Integer)
113
+
114
+ # source://addressable//lib/addressable/idna/pure.rb#187
115
+ Addressable::IDNA::PUNYCODE_TMAX = T.let(T.unsafe(nil), Integer)
116
+
117
+ # source://addressable//lib/addressable/idna/pure.rb#186
118
+ Addressable::IDNA::PUNYCODE_TMIN = T.let(T.unsafe(nil), Integer)
119
+
120
+ # Input is invalid.
121
+ #
122
+ # source://addressable//lib/addressable/idna/pure.rb#207
123
+ class Addressable::IDNA::PunycodeBadInput < ::StandardError; end
124
+
125
+ # Output would exceed the space provided.
126
+ #
127
+ # source://addressable//lib/addressable/idna/pure.rb#209
128
+ class Addressable::IDNA::PunycodeBigOutput < ::StandardError; end
129
+
130
+ # Input needs wider integers to process.
131
+ #
132
+ # source://addressable//lib/addressable/idna/pure.rb#211
133
+ class Addressable::IDNA::PunycodeOverflow < ::StandardError; end
134
+
135
+ # source://addressable//lib/addressable/idna/pure.rb#163
136
+ Addressable::IDNA::UNICODE_DATA = T.let(T.unsafe(nil), Hash)
137
+
138
+ # source://addressable//lib/addressable/idna/pure.rb#150
139
+ Addressable::IDNA::UNICODE_DATA_CANONICAL = T.let(T.unsafe(nil), Integer)
140
+
141
+ # source://addressable//lib/addressable/idna/pure.rb#148
142
+ Addressable::IDNA::UNICODE_DATA_COMBINING_CLASS = T.let(T.unsafe(nil), Integer)
143
+
144
+ # source://addressable//lib/addressable/idna/pure.rb#151
145
+ Addressable::IDNA::UNICODE_DATA_COMPATIBILITY = T.let(T.unsafe(nil), Integer)
146
+
147
+ # source://addressable//lib/addressable/idna/pure.rb#149
148
+ Addressable::IDNA::UNICODE_DATA_EXCLUSION = T.let(T.unsafe(nil), Integer)
149
+
150
+ # source://addressable//lib/addressable/idna/pure.rb#153
151
+ Addressable::IDNA::UNICODE_DATA_LOWERCASE = T.let(T.unsafe(nil), Integer)
152
+
153
+ # source://addressable//lib/addressable/idna/pure.rb#154
154
+ Addressable::IDNA::UNICODE_DATA_TITLECASE = T.let(T.unsafe(nil), Integer)
155
+
156
+ # source://addressable//lib/addressable/idna/pure.rb#152
157
+ Addressable::IDNA::UNICODE_DATA_UPPERCASE = T.let(T.unsafe(nil), Integer)
158
+
159
+ # source://addressable//lib/addressable/idna/pure.rb#182
160
+ Addressable::IDNA::UNICODE_MAX_LENGTH = T.let(T.unsafe(nil), Integer)
161
+
162
+ # source://addressable//lib/addressable/idna/pure.rb#36
163
+ Addressable::IDNA::UNICODE_TABLE = T.let(T.unsafe(nil), String)
164
+
165
+ # source://addressable//lib/addressable/idna/pure.rb#42
166
+ Addressable::IDNA::UTF8_REGEX = T.let(T.unsafe(nil), Regexp)
167
+
168
+ # source://addressable//lib/addressable/idna/pure.rb#53
169
+ Addressable::IDNA::UTF8_REGEX_MULTIBYTE = T.let(T.unsafe(nil), Regexp)
170
+
171
+ # This is an implementation of a URI template based on
172
+ # RFC 6570 (http://tools.ietf.org/html/rfc6570).
173
+ #
174
+ # source://addressable//lib/addressable/template.rb#27
175
+ class Addressable::Template
176
+ # Creates a new <tt>Addressable::Template</tt> object.
177
+ #
178
+ # @param pattern [#to_str] The URI Template pattern.
179
+ # @return [Addressable::Template] The initialized Template object.
180
+ #
181
+ # source://addressable//lib/addressable/template.rb#234
182
+ def initialize(pattern); end
183
+
184
+ # Returns <code>true</code> if the Template objects are equal. This method
185
+ # does NOT normalize either Template before doing the comparison.
186
+ #
187
+ # @param template [Object] The Template to compare.
188
+ # @return [TrueClass, FalseClass] <code>true</code> if the Templates are equivalent, <code>false</code>
189
+ # otherwise.
190
+ #
191
+ # source://addressable//lib/addressable/template.rb#274
192
+ def ==(template); end
193
+
194
+ # Returns <code>true</code> if the Template objects are equal. This method
195
+ # does NOT normalize either Template before doing the comparison.
196
+ # Addressable::Template makes no distinction between `==` and `eql?`.
197
+ #
198
+ # @param template [Object] The Template to compare.
199
+ # @return [TrueClass, FalseClass] <code>true</code> if the Templates are equivalent, <code>false</code>
200
+ # otherwise.
201
+ # @see #==
202
+ #
203
+ # source://addressable//lib/addressable/template.rb#274
204
+ def eql?(template); end
205
+
206
+ # Expands a URI template into a full URI.
207
+ #
208
+ # The object should respond to either the <tt>validate</tt> or
209
+ # <tt>transform</tt> messages or both. Both the <tt>validate</tt> and
210
+ # <tt>transform</tt> methods should take two parameters: <tt>name</tt> and
211
+ # <tt>value</tt>. The <tt>validate</tt> method should return <tt>true</tt>
212
+ # or <tt>false</tt>; <tt>true</tt> if the value of the variable is valid,
213
+ # <tt>false</tt> otherwise. An <tt>InvalidTemplateValueError</tt>
214
+ # exception will be raised if the value is invalid. The <tt>transform</tt>
215
+ # method should return the transformed variable value as a <tt>String</tt>.
216
+ # If a <tt>transform</tt> method is used, the value will not be percent
217
+ # encoded automatically. Unicode normalization will be performed both
218
+ # before and after sending the value to the transform method.
219
+ #
220
+ # @example
221
+ # class ExampleProcessor
222
+ # def self.validate(name, value)
223
+ # return !!(value =~ /^[\w ]+$/) if name == "query"
224
+ # return true
225
+ # end
226
+ #
227
+ # def self.transform(name, value)
228
+ # return value.gsub(/ /, "+") if name == "query"
229
+ # return value
230
+ # end
231
+ # end
232
+ #
233
+ # Addressable::Template.new(
234
+ # "http://example.com/search/{query}/"
235
+ # ).expand(
236
+ # {"query" => "an example search query"},
237
+ # ExampleProcessor
238
+ # ).to_str
239
+ # #=> "http://example.com/search/an+example+search+query/"
240
+ #
241
+ # Addressable::Template.new(
242
+ # "http://example.com/search/{query}/"
243
+ # ).expand(
244
+ # {"query" => "an example search query"}
245
+ # ).to_str
246
+ # #=> "http://example.com/search/an%20example%20search%20query/"
247
+ #
248
+ # Addressable::Template.new(
249
+ # "http://example.com/search/{query}/"
250
+ # ).expand(
251
+ # {"query" => "bogus!"},
252
+ # ExampleProcessor
253
+ # ).to_str
254
+ # #=> Addressable::Template::InvalidTemplateValueError
255
+ # @param mapping [Hash] The mapping that corresponds to the pattern.
256
+ # @param processor [#validate, #transform] An optional processor object may be supplied.
257
+ # @param normalize_values [Boolean] Optional flag to enable/disable unicode normalization. Default: true
258
+ # @return [Addressable::URI] The expanded URI template.
259
+ #
260
+ # source://addressable//lib/addressable/template.rb#591
261
+ def expand(mapping, processor = T.unsafe(nil), normalize_values = T.unsafe(nil)); end
262
+
263
+ # Extracts a mapping from the URI using a URI Template pattern.
264
+ #
265
+ # @example
266
+ # class ExampleProcessor
267
+ # def self.restore(name, value)
268
+ # return value.gsub(/\+/, " ") if name == "query"
269
+ # return value
270
+ # end
271
+ #
272
+ # def self.match(name)
273
+ # return ".*?" if name == "first"
274
+ # return ".*"
275
+ # end
276
+ # end
277
+ #
278
+ # uri = Addressable::URI.parse(
279
+ # "http://example.com/search/an+example+search+query/"
280
+ # )
281
+ # Addressable::Template.new(
282
+ # "http://example.com/search/{query}/"
283
+ # ).extract(uri, ExampleProcessor)
284
+ # #=> {"query" => "an example search query"}
285
+ #
286
+ # uri = Addressable::URI.parse("http://example.com/a/b/c/")
287
+ # Addressable::Template.new(
288
+ # "http://example.com/{first}/{second}/"
289
+ # ).extract(uri, ExampleProcessor)
290
+ # #=> {"first" => "a", "second" => "b/c"}
291
+ #
292
+ # uri = Addressable::URI.parse("http://example.com/a/b/c/")
293
+ # Addressable::Template.new(
294
+ # "http://example.com/{first}/{-list|/|second}/"
295
+ # ).extract(uri)
296
+ # #=> {"first" => "a", "second" => ["b", "c"]}
297
+ # @param uri [Addressable::URI, #to_str] The URI to extract from.
298
+ # @param processor [#restore, #match] A template processor object may optionally be supplied.
299
+ #
300
+ # The object should respond to either the <tt>restore</tt> or
301
+ # <tt>match</tt> messages or both. The <tt>restore</tt> method should
302
+ # take two parameters: `[String] name` and `[String] value`.
303
+ # The <tt>restore</tt> method should reverse any transformations that
304
+ # have been performed on the value to ensure a valid URI.
305
+ # The <tt>match</tt> method should take a single
306
+ # parameter: `[String] name`. The <tt>match</tt> method should return
307
+ # a <tt>String</tt> containing a regular expression capture group for
308
+ # matching on that particular variable. The default value is `".*?"`.
309
+ # The <tt>match</tt> method has no effect on multivariate operator
310
+ # expansions.
311
+ # @return [Hash, NilClass] The <tt>Hash</tt> mapping that was extracted from the URI, or
312
+ # <tt>nil</tt> if the URI didn't match the template.
313
+ #
314
+ # source://addressable//lib/addressable/template.rb#342
315
+ def extract(uri, processor = T.unsafe(nil)); end
316
+
317
+ # Freeze URI, initializing instance variables.
318
+ #
319
+ # @return [Addressable::URI] The frozen URI object.
320
+ #
321
+ # source://addressable//lib/addressable/template.rb#245
322
+ def freeze; end
323
+
324
+ # Returns a <tt>String</tt> representation of the Template object's state.
325
+ #
326
+ # @return [String] The Template object's state, as a <tt>String</tt>.
327
+ #
328
+ # source://addressable//lib/addressable/template.rb#260
329
+ def inspect; end
330
+
331
+ # Returns an Array of variables used within the template pattern.
332
+ # The variables are listed in the Array in the order they appear within
333
+ # the pattern. Multiple occurrences of a variable within a pattern are
334
+ # not represented in this Array.
335
+ #
336
+ # @return [Array] The variables present in the template's pattern.
337
+ #
338
+ # source://addressable//lib/addressable/template.rb#607
339
+ def keys; end
340
+
341
+ # Extracts match data from the URI using a URI Template pattern.
342
+ #
343
+ # @example
344
+ # class ExampleProcessor
345
+ # def self.restore(name, value)
346
+ # return value.gsub(/\+/, " ") if name == "query"
347
+ # return value
348
+ # end
349
+ #
350
+ # def self.match(name)
351
+ # return ".*?" if name == "first"
352
+ # return ".*"
353
+ # end
354
+ # end
355
+ #
356
+ # uri = Addressable::URI.parse(
357
+ # "http://example.com/search/an+example+search+query/"
358
+ # )
359
+ # match = Addressable::Template.new(
360
+ # "http://example.com/search/{query}/"
361
+ # ).match(uri, ExampleProcessor)
362
+ # match.variables
363
+ # #=> ["query"]
364
+ # match.captures
365
+ # #=> ["an example search query"]
366
+ #
367
+ # uri = Addressable::URI.parse("http://example.com/a/b/c/")
368
+ # match = Addressable::Template.new(
369
+ # "http://example.com/{first}/{+second}/"
370
+ # ).match(uri, ExampleProcessor)
371
+ # match.variables
372
+ # #=> ["first", "second"]
373
+ # match.captures
374
+ # #=> ["a", "b/c"]
375
+ #
376
+ # uri = Addressable::URI.parse("http://example.com/a/b/c/")
377
+ # match = Addressable::Template.new(
378
+ # "http://example.com/{first}{/second*}/"
379
+ # ).match(uri)
380
+ # match.variables
381
+ # #=> ["first", "second"]
382
+ # match.captures
383
+ # #=> ["a", ["b", "c"]]
384
+ # @param uri [Addressable::URI, #to_str] The URI to extract from.
385
+ # @param processor [#restore, #match] A template processor object may optionally be supplied.
386
+ #
387
+ # The object should respond to either the <tt>restore</tt> or
388
+ # <tt>match</tt> messages or both. The <tt>restore</tt> method should
389
+ # take two parameters: `[String] name` and `[String] value`.
390
+ # The <tt>restore</tt> method should reverse any transformations that
391
+ # have been performed on the value to ensure a valid URI.
392
+ # The <tt>match</tt> method should take a single
393
+ # parameter: `[String] name`. The <tt>match</tt> method should return
394
+ # a <tt>String</tt> containing a regular expression capture group for
395
+ # matching on that particular variable. The default value is `".*?"`.
396
+ # The <tt>match</tt> method has no effect on multivariate operator
397
+ # expansions.
398
+ # @return [Hash, NilClass] The <tt>Hash</tt> mapping that was extracted from the URI, or
399
+ # <tt>nil</tt> if the URI didn't match the template.
400
+ #
401
+ # source://addressable//lib/addressable/template.rb#413
402
+ def match(uri, processor = T.unsafe(nil)); end
403
+
404
+ # Returns the named captures of the coerced `Regexp`.
405
+ #
406
+ # @api private
407
+ # @return [Hash] The named captures of the `Regexp` given by {#to_regexp}.
408
+ #
409
+ # source://addressable//lib/addressable/template.rb#651
410
+ def named_captures; end
411
+
412
+ # Returns an Array of variables used within the template pattern.
413
+ # The variables are listed in the Array in the order they appear within
414
+ # the pattern. Multiple occurrences of a variable within a pattern are
415
+ # not represented in this Array.
416
+ #
417
+ # @return [Array] The variables present in the template's pattern.
418
+ #
419
+ # source://addressable//lib/addressable/template.rb#607
420
+ def names; end
421
+
422
+ # Expands a URI template into another URI template.
423
+ #
424
+ # The object should respond to either the <tt>validate</tt> or
425
+ # <tt>transform</tt> messages or both. Both the <tt>validate</tt> and
426
+ # <tt>transform</tt> methods should take two parameters: <tt>name</tt> and
427
+ # <tt>value</tt>. The <tt>validate</tt> method should return <tt>true</tt>
428
+ # or <tt>false</tt>; <tt>true</tt> if the value of the variable is valid,
429
+ # <tt>false</tt> otherwise. An <tt>InvalidTemplateValueError</tt>
430
+ # exception will be raised if the value is invalid. The <tt>transform</tt>
431
+ # method should return the transformed variable value as a <tt>String</tt>.
432
+ # If a <tt>transform</tt> method is used, the value will not be percent
433
+ # encoded automatically. Unicode normalization will be performed both
434
+ # before and after sending the value to the transform method.
435
+ #
436
+ # @example
437
+ # Addressable::Template.new(
438
+ # "http://example.com/{one}/{two}/"
439
+ # ).partial_expand({"one" => "1"}).pattern
440
+ # #=> "http://example.com/1/{two}/"
441
+ #
442
+ # Addressable::Template.new(
443
+ # "http://example.com/{?one,two}/"
444
+ # ).partial_expand({"one" => "1"}).pattern
445
+ # #=> "http://example.com/?one=1{&two}/"
446
+ #
447
+ # Addressable::Template.new(
448
+ # "http://example.com/{?one,two,three}/"
449
+ # ).partial_expand({"one" => "1", "three" => 3}).pattern
450
+ # #=> "http://example.com/?one=1{&two}&three=3"
451
+ # @param mapping [Hash] The mapping that corresponds to the pattern.
452
+ # @param processor [#validate, #transform] An optional processor object may be supplied.
453
+ # @param normalize_values [Boolean] Optional flag to enable/disable unicode normalization. Default: true
454
+ # @return [Addressable::Template] The partially expanded URI template.
455
+ #
456
+ # source://addressable//lib/addressable/template.rb#524
457
+ def partial_expand(mapping, processor = T.unsafe(nil), normalize_values = T.unsafe(nil)); end
458
+
459
+ # @return [String] The Template object's pattern.
460
+ #
461
+ # source://addressable//lib/addressable/template.rb#254
462
+ def pattern; end
463
+
464
+ # Returns the source of the coerced `Regexp`.
465
+ #
466
+ # @api private
467
+ # @return [String] The source of the `Regexp` given by {#to_regexp}.
468
+ #
469
+ # source://addressable//lib/addressable/template.rb#641
470
+ def source; end
471
+
472
+ # Coerces a template into a `Regexp` object. This regular expression will
473
+ # behave very similarly to the actual template, and should match the same
474
+ # URI values, but it cannot fully handle, for example, values that would
475
+ # extract to an `Array`.
476
+ #
477
+ # @return [Regexp] A regular expression which should match the template.
478
+ #
479
+ # source://addressable//lib/addressable/template.rb#630
480
+ def to_regexp; end
481
+
482
+ # Returns a mapping of variables to their default values specified
483
+ # in the template. Variables without defaults are not returned.
484
+ #
485
+ # @return [Hash] Mapping of template variables to their defaults
486
+ #
487
+ # source://addressable//lib/addressable/template.rb#618
488
+ def variable_defaults; end
489
+
490
+ # Returns an Array of variables used within the template pattern.
491
+ # The variables are listed in the Array in the order they appear within
492
+ # the pattern. Multiple occurrences of a variable within a pattern are
493
+ # not represented in this Array.
494
+ #
495
+ # @return [Array] The variables present in the template's pattern.
496
+ #
497
+ # source://addressable//lib/addressable/template.rb#607
498
+ def variables; end
499
+
500
+ private
501
+
502
+ # Takes a set of values, and joins them together based on the
503
+ # operator.
504
+ #
505
+ # @param operator [String, Nil] One of the operators from the set
506
+ # (?,&,+,#,;,/,.), or nil if there wasn't one.
507
+ # @param return_value [Array] The set of return values (as [variable_name, value] tuples) that will
508
+ # be joined together.
509
+ # @return [String] The transformed mapped value
510
+ #
511
+ # source://addressable//lib/addressable/template.rb#861
512
+ def join_values(operator, return_value); end
513
+
514
+ # Generates a hash with string keys
515
+ #
516
+ # @param mapping [Hash] A mapping hash to normalize
517
+ # @return [Hash] A hash with stringified keys
518
+ #
519
+ # source://addressable//lib/addressable/template.rb#924
520
+ def normalize_keys(mapping); end
521
+
522
+ # Takes a set of values, and joins them together based on the
523
+ # operator.
524
+ #
525
+ # @param value [Hash, Array, String] Normalizes unicode keys and values with String#unicode_normalize (NFC)
526
+ # @return [Hash, Array, String] The normalized values
527
+ #
528
+ # source://addressable//lib/addressable/template.rb#898
529
+ def normalize_value(value); end
530
+
531
+ # source://addressable//lib/addressable/template.rb#656
532
+ def ordered_variable_defaults; end
533
+
534
+ # Generates the <tt>Regexp</tt> that parses a template pattern.
535
+ #
536
+ # @param pattern [String] The URI template pattern.
537
+ # @param processor [#match] The template processor to use.
538
+ # @return [Array, Regexp] An array of expansion variables nad a regular expression which may be
539
+ # used to parse a template pattern
540
+ #
541
+ # source://addressable//lib/addressable/template.rb#968
542
+ def parse_new_template_pattern(pattern, processor = T.unsafe(nil)); end
543
+
544
+ # Generates the <tt>Regexp</tt> that parses a template pattern. Memoizes the
545
+ # value if template processor not set (processors may not be deterministic)
546
+ #
547
+ # @param pattern [String] The URI template pattern.
548
+ # @param processor [#match] The template processor to use.
549
+ # @return [Array, Regexp] An array of expansion variables nad a regular expression which may be
550
+ # used to parse a template pattern
551
+ #
552
+ # source://addressable//lib/addressable/template.rb#950
553
+ def parse_template_pattern(pattern, processor = T.unsafe(nil)); end
554
+
555
+ # Transforms a mapped value so that values can be substituted into the
556
+ # template.
557
+ #
558
+ # The object should respond to either the <tt>validate</tt> or
559
+ # <tt>transform</tt> messages or both. Both the <tt>validate</tt> and
560
+ # <tt>transform</tt> methods should take two parameters: <tt>name</tt> and
561
+ # <tt>value</tt>. The <tt>validate</tt> method should return <tt>true</tt>
562
+ # or <tt>false</tt>; <tt>true</tt> if the value of the variable is valid,
563
+ # <tt>false</tt> otherwise. An <tt>InvalidTemplateValueError</tt> exception
564
+ # will be raised if the value is invalid. The <tt>transform</tt> method
565
+ # should return the transformed variable value as a <tt>String</tt>. If a
566
+ # <tt>transform</tt> method is used, the value will not be percent encoded
567
+ # automatically. Unicode normalization will be performed both before and
568
+ # after sending the value to the transform method.
569
+ #
570
+ # @param mapping [Hash] The mapping to replace captures
571
+ # @param capture [String] The expression to replace
572
+ # @param processor [#validate, #transform] An optional processor object may be supplied.
573
+ # @param normalize_values [Boolean] Optional flag to enable/disable unicode normalization. Default: true
574
+ # @return [String] The expanded expression
575
+ #
576
+ # source://addressable//lib/addressable/template.rb#753
577
+ def transform_capture(mapping, capture, processor = T.unsafe(nil), normalize_values = T.unsafe(nil)); end
578
+
579
+ # Loops through each capture and expands any values available in mapping
580
+ #
581
+ # The object should respond to either the <tt>validate</tt> or
582
+ # <tt>transform</tt> messages or both. Both the <tt>validate</tt> and
583
+ # <tt>transform</tt> methods should take two parameters: <tt>name</tt> and
584
+ # <tt>value</tt>. The <tt>validate</tt> method should return <tt>true</tt>
585
+ # or <tt>false</tt>; <tt>true</tt> if the value of the variable is valid,
586
+ # <tt>false</tt> otherwise. An <tt>InvalidTemplateValueError</tt> exception
587
+ # will be raised if the value is invalid. The <tt>transform</tt> method
588
+ # should return the transformed variable value as a <tt>String</tt>. If a
589
+ # <tt>transform</tt> method is used, the value will not be percent encoded
590
+ # automatically. Unicode normalization will be performed both before and
591
+ # after sending the value to the transform method.
592
+ #
593
+ # @param mapping [Hash] Set of keys to expand
594
+ # @param capture [String] The expression to expand
595
+ # @param processor [#validate, #transform] An optional processor object may be supplied.
596
+ # @param normalize_values [Boolean] Optional flag to enable/disable unicode normalization. Default: true
597
+ # @return [String] The expanded expression
598
+ #
599
+ # source://addressable//lib/addressable/template.rb#694
600
+ def transform_partial_capture(mapping, capture, processor = T.unsafe(nil), normalize_values = T.unsafe(nil)); end
601
+ end
602
+
603
+ # source://addressable//lib/addressable/template.rb#58
604
+ Addressable::Template::EXPRESSION = T.let(T.unsafe(nil), Regexp)
605
+
606
+ # Raised if an invalid template operator is used in a pattern.
607
+ #
608
+ # source://addressable//lib/addressable/template.rb#85
609
+ class Addressable::Template::InvalidTemplateOperatorError < ::StandardError; end
610
+
611
+ # Raised if an invalid template value is supplied.
612
+ #
613
+ # source://addressable//lib/addressable/template.rb#80
614
+ class Addressable::Template::InvalidTemplateValueError < ::StandardError; end
615
+
616
+ # source://addressable//lib/addressable/template.rb#70
617
+ Addressable::Template::JOINERS = T.let(T.unsafe(nil), Hash)
618
+
619
+ # source://addressable//lib/addressable/template.rb#62
620
+ Addressable::Template::LEADERS = T.let(T.unsafe(nil), Hash)
621
+
622
+ # This class represents the data that is extracted when a Template
623
+ # is matched against a URI.
624
+ #
625
+ # source://addressable//lib/addressable/template.rb#96
626
+ class Addressable::Template::MatchData
627
+ # Creates a new MatchData object.
628
+ # MatchData objects should never be instantiated directly.
629
+ #
630
+ # @param uri [Addressable::URI] The URI that the template was matched against.
631
+ # @return [MatchData] a new instance of MatchData
632
+ #
633
+ # source://addressable//lib/addressable/template.rb#103
634
+ def initialize(uri, template, mapping); end
635
+
636
+ # Accesses captured values by name or by index.
637
+ #
638
+ # @param key [String, Symbol, Fixnum] Capture index or name. Note that when accessing by with index
639
+ # of 0, the full URI will be returned. The intention is to mimic
640
+ # the ::MatchData#[] behavior.
641
+ # @param len [#to_int, nil] If provided, an array of values will be returend with the given
642
+ # parameter used as length.
643
+ # @return [Array, String, nil] The captured value corresponding to the index or name. If the
644
+ # value was not provided or the key is unknown, nil will be
645
+ # returned.
646
+ #
647
+ # If the second parameter is provided, an array of that length will
648
+ # be returned instead.
649
+ #
650
+ # source://addressable//lib/addressable/template.rb#170
651
+ def [](key, len = T.unsafe(nil)); end
652
+
653
+ # @return [Array] The list of values that were captured by the Template.
654
+ # Note that this list will include nils for any variables which
655
+ # were in the Template, but did not appear in the URI.
656
+ #
657
+ # source://addressable//lib/addressable/template.rb#143
658
+ def captures; end
659
+
660
+ # Returns a <tt>String</tt> representation of the MatchData's state.
661
+ #
662
+ # @return [String] The MatchData's state, as a <tt>String</tt>.
663
+ #
664
+ # source://addressable//lib/addressable/template.rb#213
665
+ def inspect; end
666
+
667
+ # @return [Array] The list of variables that were present in the Template.
668
+ # Note that this list will include variables which do not appear
669
+ # in the mapping because they were not present in URI.
670
+ #
671
+ # source://addressable//lib/addressable/template.rb#132
672
+ def keys; end
673
+
674
+ # @return [Hash] The mapping that resulted from the match.
675
+ # Note that this mapping does not include keys or values for
676
+ # variables that appear in the Template, but are not present
677
+ # in the URI.
678
+ #
679
+ # source://addressable//lib/addressable/template.rb#125
680
+ def mapping; end
681
+
682
+ # @return [Array] The list of variables that were present in the Template.
683
+ # Note that this list will include variables which do not appear
684
+ # in the mapping because they were not present in URI.
685
+ #
686
+ # source://addressable//lib/addressable/template.rb#132
687
+ def names; end
688
+
689
+ # Dummy method for code expecting a ::MatchData instance
690
+ #
691
+ # @return [String] An empty string.
692
+ #
693
+ # source://addressable//lib/addressable/template.rb#222
694
+ def post_match; end
695
+
696
+ # Dummy method for code expecting a ::MatchData instance
697
+ #
698
+ # @return [String] An empty string.
699
+ #
700
+ # source://addressable//lib/addressable/template.rb#222
701
+ def pre_match; end
702
+
703
+ # @return [String] The matched URI as String.
704
+ #
705
+ # source://addressable//lib/addressable/template.rb#191
706
+ def string; end
707
+
708
+ # @return [Addressable::Template] The Template used for the match.
709
+ #
710
+ # source://addressable//lib/addressable/template.rb#117
711
+ def template; end
712
+
713
+ # @return [Array] Array with the matched URI as first element followed by the captured
714
+ # values.
715
+ #
716
+ # source://addressable//lib/addressable/template.rb#184
717
+ def to_a; end
718
+
719
+ # @return [String] The matched URI as String.
720
+ #
721
+ # source://addressable//lib/addressable/template.rb#191
722
+ def to_s; end
723
+
724
+ # @return [Addressable::URI] The URI that the Template was matched against.
725
+ #
726
+ # source://addressable//lib/addressable/template.rb#112
727
+ def uri; end
728
+
729
+ # @return [Array] The list of values that were captured by the Template.
730
+ # Note that this list will include nils for any variables which
731
+ # were in the Template, but did not appear in the URI.
732
+ #
733
+ # source://addressable//lib/addressable/template.rb#143
734
+ def values; end
735
+
736
+ # Returns multiple captured values at once.
737
+ #
738
+ # @param *indexes [String, Symbol, Fixnum] Indices of the captures to be returned
739
+ # @return [Array] Values corresponding to given indices.
740
+ # @see Addressable::Template::MatchData#[]
741
+ #
742
+ # source://addressable//lib/addressable/template.rb#205
743
+ def values_at(*indexes); end
744
+
745
+ # @return [Array] The list of variables that were present in the Template.
746
+ # Note that this list will include variables which do not appear
747
+ # in the mapping because they were not present in URI.
748
+ #
749
+ # source://addressable//lib/addressable/template.rb#132
750
+ def variables; end
751
+ end
752
+
753
+ # source://addressable//lib/addressable/template.rb#40
754
+ Addressable::Template::RESERVED = T.let(T.unsafe(nil), String)
755
+
756
+ # Raised if an invalid template operator is used in a pattern.
757
+ #
758
+ # source://addressable//lib/addressable/template.rb#90
759
+ class Addressable::Template::TemplateOperatorAbortedError < ::StandardError; end
760
+
761
+ # source://addressable//lib/addressable/template.rb#42
762
+ Addressable::Template::UNRESERVED = T.let(T.unsafe(nil), String)
763
+
764
+ # source://addressable//lib/addressable/template.rb#54
765
+ Addressable::Template::VARIABLE_LIST = T.let(T.unsafe(nil), Regexp)
766
+
767
+ # source://addressable//lib/addressable/template.rb#50
768
+ Addressable::Template::VARNAME = T.let(T.unsafe(nil), Regexp)
769
+
770
+ # source://addressable//lib/addressable/template.rb#52
771
+ Addressable::Template::VARSPEC = T.let(T.unsafe(nil), Regexp)
772
+
773
+ # This is an implementation of a URI parser based on
774
+ # <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>,
775
+ # <a href="http://www.ietf.org/rfc/rfc3987.txt">RFC 3987</a>.
776
+ #
777
+ # source://addressable//lib/addressable/uri.rb#31
778
+ class Addressable::URI
779
+ # Creates a new uri object from component parts.
780
+ #
781
+ # @option [String,
782
+ # @option [String,
783
+ # @option [String,
784
+ # @option [String,
785
+ # @option [String,
786
+ # @option [String,
787
+ # @option [String,
788
+ # @option [String,
789
+ # @option [String,
790
+ # @option [String,
791
+ # @param [String, [Hash] a customizable set of options
792
+ # @return [Addressable::URI] The constructed URI object.
793
+ #
794
+ # source://addressable//lib/addressable/uri.rb#830
795
+ def initialize(options = T.unsafe(nil)); end
796
+
797
+ # Joins two URIs together.
798
+ #
799
+ # @param The [String, Addressable::URI, #to_str] URI to join with.
800
+ # @return [Addressable::URI] The joined URI.
801
+ #
802
+ # source://addressable//lib/addressable/uri.rb#1889
803
+ def +(uri); end
804
+
805
+ # Returns <code>true</code> if the URI objects are equal. This method
806
+ # normalizes both URIs before doing the comparison.
807
+ #
808
+ # @param uri [Object] The URI to compare.
809
+ # @return [TrueClass, FalseClass] <code>true</code> if the URIs are equivalent, <code>false</code>
810
+ # otherwise.
811
+ #
812
+ # source://addressable//lib/addressable/uri.rb#2239
813
+ def ==(uri); end
814
+
815
+ # Returns <code>true</code> if the URI objects are equal. This method
816
+ # normalizes both URIs before doing the comparison, and allows comparison
817
+ # against <code>Strings</code>.
818
+ #
819
+ # @param uri [Object] The URI to compare.
820
+ # @return [TrueClass, FalseClass] <code>true</code> if the URIs are equivalent, <code>false</code>
821
+ # otherwise.
822
+ #
823
+ # source://addressable//lib/addressable/uri.rb#2217
824
+ def ===(uri); end
825
+
826
+ # Determines if the URI is absolute.
827
+ #
828
+ # @return [TrueClass, FalseClass] <code>true</code> if the URI is absolute. <code>false</code>
829
+ # otherwise.
830
+ #
831
+ # source://addressable//lib/addressable/uri.rb#1879
832
+ def absolute?; end
833
+
834
+ # The authority component for this URI.
835
+ # Combines the user, password, host, and port components.
836
+ #
837
+ # @return [String] The authority component.
838
+ #
839
+ # source://addressable//lib/addressable/uri.rb#1234
840
+ def authority; end
841
+
842
+ # Sets the authority component for this URI.
843
+ #
844
+ # @param new_authority [String, #to_str] The new authority component.
845
+ #
846
+ # source://addressable//lib/addressable/uri.rb#1274
847
+ def authority=(new_authority); end
848
+
849
+ # The basename, if any, of the file in the path component.
850
+ #
851
+ # @return [String] The path's basename.
852
+ #
853
+ # source://addressable//lib/addressable/uri.rb#1588
854
+ def basename; end
855
+
856
+ # The default port for this URI's scheme.
857
+ # This method will always returns the default port for the URI's scheme
858
+ # regardless of the presence of an explicit port in the URI.
859
+ #
860
+ # @return [Integer] The default port.
861
+ #
862
+ # source://addressable//lib/addressable/uri.rb#1454
863
+ def default_port; end
864
+
865
+ # This method allows you to make several changes to a URI simultaneously,
866
+ # which separately would cause validation errors, but in conjunction,
867
+ # are valid. The URI will be revalidated as soon as the entire block has
868
+ # been executed.
869
+ #
870
+ # @param block [Proc] A set of operations to perform on a given URI.
871
+ #
872
+ # source://addressable//lib/addressable/uri.rb#2396
873
+ def defer_validation; end
874
+
875
+ # Creates a URI suitable for display to users. If semantic attacks are
876
+ # likely, the application should try to detect these and warn the user.
877
+ # See <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>,
878
+ # section 7.6 for more information.
879
+ #
880
+ # @return [Addressable::URI] A URI suitable for display purposes.
881
+ #
882
+ # source://addressable//lib/addressable/uri.rb#2201
883
+ def display_uri; end
884
+
885
+ # Returns the public suffix domain for this host.
886
+ #
887
+ # @example
888
+ # Addressable::URI.parse("http://www.example.co.uk").domain # => "example.co.uk"
889
+ #
890
+ # source://addressable//lib/addressable/uri.rb#1225
891
+ def domain; end
892
+
893
+ # Clones the URI object.
894
+ #
895
+ # @return [Addressable::URI] The cloned URI.
896
+ #
897
+ # source://addressable//lib/addressable/uri.rb#2271
898
+ def dup; end
899
+
900
+ # Determines if the URI is an empty string.
901
+ #
902
+ # @return [TrueClass, FalseClass] Returns <code>true</code> if empty, <code>false</code> otherwise.
903
+ #
904
+ # source://addressable//lib/addressable/uri.rb#2333
905
+ def empty?; end
906
+
907
+ # source://addressable//lib/addressable/uri.rb#2406
908
+ def encode_with(coder); end
909
+
910
+ # Returns <code>true</code> if the URI objects are equal. This method
911
+ # does NOT normalize either URI before doing the comparison.
912
+ #
913
+ # @param uri [Object] The URI to compare.
914
+ # @return [TrueClass, FalseClass] <code>true</code> if the URIs are equivalent, <code>false</code>
915
+ # otherwise.
916
+ #
917
+ # source://addressable//lib/addressable/uri.rb#2253
918
+ def eql?(uri); end
919
+
920
+ # The extname, if any, of the file in the path component.
921
+ # Empty string if there is no extension.
922
+ #
923
+ # @return [String] The path's extname.
924
+ #
925
+ # source://addressable//lib/addressable/uri.rb#1598
926
+ def extname; end
927
+
928
+ # The fragment component for this URI.
929
+ #
930
+ # @return [String] The fragment component.
931
+ #
932
+ # source://addressable//lib/addressable/uri.rb#1810
933
+ def fragment; end
934
+
935
+ # Sets the fragment component for this URI.
936
+ #
937
+ # @param new_fragment [String, #to_str] The new fragment component.
938
+ #
939
+ # source://addressable//lib/addressable/uri.rb#1835
940
+ def fragment=(new_fragment); end
941
+
942
+ # Freeze URI, initializing instance variables.
943
+ #
944
+ # @return [Addressable::URI] The frozen URI object.
945
+ #
946
+ # source://addressable//lib/addressable/uri.rb#870
947
+ def freeze; end
948
+
949
+ # A hash value that will make a URI equivalent to its normalized
950
+ # form.
951
+ #
952
+ # @return [Integer] A hash of the URI.
953
+ #
954
+ # source://addressable//lib/addressable/uri.rb#2263
955
+ def hash; end
956
+
957
+ # The host component for this URI.
958
+ #
959
+ # @return [String] The host component.
960
+ #
961
+ # source://addressable//lib/addressable/uri.rb#1120
962
+ def host; end
963
+
964
+ # Sets the host component for this URI.
965
+ #
966
+ # @param new_host [String, #to_str] The new host component.
967
+ #
968
+ # source://addressable//lib/addressable/uri.rb#1156
969
+ def host=(new_host); end
970
+
971
+ # This method is same as URI::Generic#host except
972
+ # brackets for IPv6 (and 'IPvFuture') addresses are removed.
973
+ #
974
+ # @return [String] The hostname for this URI.
975
+ # @see Addressable::URI#host
976
+ #
977
+ # source://addressable//lib/addressable/uri.rb#1178
978
+ def hostname; end
979
+
980
+ # This method is same as URI::Generic#host= except
981
+ # the argument can be a bare IPv6 address (or 'IPvFuture').
982
+ #
983
+ # @param new_hostname [String, #to_str] The new hostname for this URI.
984
+ # @see Addressable::URI#host=
985
+ #
986
+ # source://addressable//lib/addressable/uri.rb#1190
987
+ def hostname=(new_hostname); end
988
+
989
+ # The inferred port component for this URI.
990
+ # This method will normalize to the default port for the URI's scheme if
991
+ # the port isn't explicitly specified in the URI.
992
+ #
993
+ # @return [Integer] The inferred port component.
994
+ #
995
+ # source://addressable//lib/addressable/uri.rb#1440
996
+ def inferred_port; end
997
+
998
+ # source://addressable//lib/addressable/uri.rb#2417
999
+ def init_with(coder); end
1000
+
1001
+ # Returns a <code>String</code> representation of the URI object's state.
1002
+ #
1003
+ # @return [String] The URI object's state, as a <code>String</code>.
1004
+ #
1005
+ # source://addressable//lib/addressable/uri.rb#2384
1006
+ def inspect; end
1007
+
1008
+ # Determines if the scheme indicates an IP-based protocol.
1009
+ #
1010
+ # @return [TrueClass, FalseClass] <code>true</code> if the scheme indicates an IP-based protocol.
1011
+ # <code>false</code> otherwise.
1012
+ #
1013
+ # source://addressable//lib/addressable/uri.rb#1855
1014
+ def ip_based?; end
1015
+
1016
+ # Joins two URIs together.
1017
+ #
1018
+ # @param The [String, Addressable::URI, #to_str] URI to join with.
1019
+ # @return [Addressable::URI] The joined URI.
1020
+ #
1021
+ # source://addressable//lib/addressable/uri.rb#1889
1022
+ def join(uri); end
1023
+
1024
+ # Destructive form of <code>join</code>.
1025
+ #
1026
+ # @param The [String, Addressable::URI, #to_str] URI to join with.
1027
+ # @return [Addressable::URI] The joined URI.
1028
+ # @see Addressable::URI#join
1029
+ #
1030
+ # source://addressable//lib/addressable/uri.rb#1992
1031
+ def join!(uri); end
1032
+
1033
+ # Merges a URI with a <code>Hash</code> of components.
1034
+ # This method has different behavior from <code>join</code>. Any
1035
+ # components present in the <code>hash</code> parameter will override the
1036
+ # original components. The path component is not treated specially.
1037
+ #
1038
+ # @param The [Hash, Addressable::URI, #to_hash] components to merge with.
1039
+ # @return [Addressable::URI] The merged URI.
1040
+ # @see Hash#merge
1041
+ #
1042
+ # source://addressable//lib/addressable/uri.rb#2007
1043
+ def merge(hash); end
1044
+
1045
+ # Destructive form of <code>merge</code>.
1046
+ #
1047
+ # @param The [Hash, Addressable::URI, #to_hash] components to merge with.
1048
+ # @return [Addressable::URI] The merged URI.
1049
+ # @see Addressable::URI#merge
1050
+ #
1051
+ # source://addressable//lib/addressable/uri.rb#2072
1052
+ def merge!(uri); end
1053
+
1054
+ # Returns a normalized URI object.
1055
+ #
1056
+ # NOTE: This method does not attempt to fully conform to specifications.
1057
+ # It exists largely to correct other people's failures to read the
1058
+ # specifications, and also to deal with caching issues since several
1059
+ # different URIs may represent the same resource and should not be
1060
+ # cached multiple times.
1061
+ #
1062
+ # @return [Addressable::URI] The normalized URI.
1063
+ #
1064
+ # source://addressable//lib/addressable/uri.rb#2164
1065
+ def normalize; end
1066
+
1067
+ # Destructively normalizes this URI object.
1068
+ #
1069
+ # @return [Addressable::URI] The normalized URI.
1070
+ # @see Addressable::URI#normalize
1071
+ #
1072
+ # source://addressable//lib/addressable/uri.rb#2190
1073
+ def normalize!; end
1074
+
1075
+ # The authority component for this URI, normalized.
1076
+ #
1077
+ # @return [String] The authority component, normalized.
1078
+ #
1079
+ # source://addressable//lib/addressable/uri.rb#1252
1080
+ def normalized_authority; end
1081
+
1082
+ # The fragment component for this URI, normalized.
1083
+ #
1084
+ # @return [String] The fragment component, normalized.
1085
+ #
1086
+ # source://addressable//lib/addressable/uri.rb#1816
1087
+ def normalized_fragment; end
1088
+
1089
+ # The host component for this URI, normalized.
1090
+ #
1091
+ # @return [String] The host component, normalized.
1092
+ #
1093
+ # source://addressable//lib/addressable/uri.rb#1126
1094
+ def normalized_host; end
1095
+
1096
+ # The password component for this URI, normalized.
1097
+ #
1098
+ # @return [String] The password component, normalized.
1099
+ #
1100
+ # source://addressable//lib/addressable/uri.rb#1002
1101
+ def normalized_password; end
1102
+
1103
+ # The path component for this URI, normalized.
1104
+ #
1105
+ # @return [String] The path component, normalized.
1106
+ #
1107
+ # source://addressable//lib/addressable/uri.rb#1535
1108
+ def normalized_path; end
1109
+
1110
+ # The port component for this URI, normalized.
1111
+ #
1112
+ # @return [Integer] The port component, normalized.
1113
+ #
1114
+ # source://addressable//lib/addressable/uri.rb#1392
1115
+ def normalized_port; end
1116
+
1117
+ # The query component for this URI, normalized.
1118
+ #
1119
+ # @return [String] The query component, normalized.
1120
+ #
1121
+ # source://addressable//lib/addressable/uri.rb#1613
1122
+ def normalized_query(*flags); end
1123
+
1124
+ # The scheme component for this URI, normalized.
1125
+ #
1126
+ # @return [String] The scheme component, normalized.
1127
+ #
1128
+ # source://addressable//lib/addressable/uri.rb#896
1129
+ def normalized_scheme; end
1130
+
1131
+ # The normalized combination of components that represent a site.
1132
+ # Combines the scheme, user, password, host, and port components.
1133
+ # Primarily useful for HTTP and HTTPS.
1134
+ #
1135
+ # For example, <code>"http://example.com/path?query"</code> would have a
1136
+ # <code>site</code> value of <code>"http://example.com"</code>.
1137
+ #
1138
+ # @return [String] The normalized components that identify a site.
1139
+ #
1140
+ # source://addressable//lib/addressable/uri.rb#1485
1141
+ def normalized_site; end
1142
+
1143
+ # The user component for this URI, normalized.
1144
+ #
1145
+ # @return [String] The user component, normalized.
1146
+ #
1147
+ # source://addressable//lib/addressable/uri.rb#947
1148
+ def normalized_user; end
1149
+
1150
+ # The userinfo component for this URI, normalized.
1151
+ #
1152
+ # @return [String] The userinfo component, normalized.
1153
+ #
1154
+ # source://addressable//lib/addressable/uri.rb#1068
1155
+ def normalized_userinfo; end
1156
+
1157
+ # Omits components from a URI.
1158
+ #
1159
+ # @example
1160
+ # uri = Addressable::URI.parse("http://example.com/path?query")
1161
+ # #=> #<Addressable::URI:0xcc5e7a URI:http://example.com/path?query>
1162
+ # uri.omit(:scheme, :authority)
1163
+ # #=> #<Addressable::URI:0xcc4d86 URI:/path?query>
1164
+ # @param *components [Symbol] The components to be omitted.
1165
+ # @return [Addressable::URI] The URI with components omitted.
1166
+ #
1167
+ # source://addressable//lib/addressable/uri.rb#2297
1168
+ def omit(*components); end
1169
+
1170
+ # Destructive form of omit.
1171
+ #
1172
+ # @param *components [Symbol] The components to be omitted.
1173
+ # @return [Addressable::URI] The URI with components omitted.
1174
+ # @see Addressable::URI#omit
1175
+ #
1176
+ # source://addressable//lib/addressable/uri.rb#2324
1177
+ def omit!(*components); end
1178
+
1179
+ # The origin for this URI, serialized to ASCII, as per
1180
+ # RFC 6454, section 6.2.
1181
+ #
1182
+ # @return [String] The serialized origin.
1183
+ #
1184
+ # source://addressable//lib/addressable/uri.rb#1314
1185
+ def origin; end
1186
+
1187
+ # Sets the origin for this URI, serialized to ASCII, as per
1188
+ # RFC 6454, section 6.2. This assignment will reset the `userinfo`
1189
+ # component.
1190
+ #
1191
+ # @param new_origin [String, #to_str] The new origin component.
1192
+ #
1193
+ # source://addressable//lib/addressable/uri.rb#1333
1194
+ def origin=(new_origin); end
1195
+
1196
+ # The password component for this URI.
1197
+ #
1198
+ # @return [String] The password component.
1199
+ #
1200
+ # source://addressable//lib/addressable/uri.rb#996
1201
+ def password; end
1202
+
1203
+ # Sets the password component for this URI.
1204
+ #
1205
+ # @param new_password [String, #to_str] The new password component.
1206
+ #
1207
+ # source://addressable//lib/addressable/uri.rb#1025
1208
+ def password=(new_password); end
1209
+
1210
+ # The path component for this URI.
1211
+ #
1212
+ # @return [String] The path component.
1213
+ #
1214
+ # source://addressable//lib/addressable/uri.rb#1528
1215
+ def path; end
1216
+
1217
+ # Sets the path component for this URI.
1218
+ #
1219
+ # @param new_path [String, #to_str] The new path component.
1220
+ #
1221
+ # source://addressable//lib/addressable/uri.rb#1567
1222
+ def path=(new_path); end
1223
+
1224
+ # The port component for this URI.
1225
+ # This is the port number actually given in the URI. This does not
1226
+ # infer port numbers from default values.
1227
+ #
1228
+ # @return [Integer] The port component.
1229
+ #
1230
+ # source://addressable//lib/addressable/uri.rb#1386
1231
+ def port; end
1232
+
1233
+ # Sets the port component for this URI.
1234
+ #
1235
+ # @param new_port [String, Integer, #to_s] The new port component.
1236
+ #
1237
+ # source://addressable//lib/addressable/uri.rb#1408
1238
+ def port=(new_port); end
1239
+
1240
+ # The query component for this URI.
1241
+ #
1242
+ # @return [String] The query component.
1243
+ #
1244
+ # source://addressable//lib/addressable/uri.rb#1607
1245
+ def query; end
1246
+
1247
+ # Sets the query component for this URI.
1248
+ #
1249
+ # @param new_query [String, #to_str] The new query component.
1250
+ #
1251
+ # source://addressable//lib/addressable/uri.rb#1641
1252
+ def query=(new_query); end
1253
+
1254
+ # Converts the query component to a Hash value.
1255
+ #
1256
+ # @example
1257
+ # Addressable::URI.parse("?one=1&two=2&three=3").query_values
1258
+ # #=> {"one" => "1", "two" => "2", "three" => "3"}
1259
+ # Addressable::URI.parse("?one=two&one=three").query_values(Array)
1260
+ # #=> [["one", "two"], ["one", "three"]]
1261
+ # Addressable::URI.parse("?one=two&one=three").query_values(Hash)
1262
+ # #=> {"one" => "three"}
1263
+ # Addressable::URI.parse("?").query_values
1264
+ # #=> {}
1265
+ # Addressable::URI.parse("").query_values
1266
+ # #=> nil
1267
+ # @param return_type [Class] The return type desired. Value must be either
1268
+ # `Hash` or `Array`.
1269
+ # @return [Hash, Array, nil] The query string parsed as a Hash or Array
1270
+ # or nil if the query string is blank.
1271
+ #
1272
+ # source://addressable//lib/addressable/uri.rb#1672
1273
+ def query_values(return_type = T.unsafe(nil)); end
1274
+
1275
+ # Sets the query component for this URI from a Hash object.
1276
+ # An empty Hash or Array will result in an empty query string.
1277
+ #
1278
+ # @example
1279
+ # uri.query_values = {:a => "a", :b => ["c", "d", "e"]}
1280
+ # uri.query
1281
+ # # => "a=a&b=c&b=d&b=e"
1282
+ # uri.query_values = [['a', 'a'], ['b', 'c'], ['b', 'd'], ['b', 'e']]
1283
+ # uri.query
1284
+ # # => "a=a&b=c&b=d&b=e"
1285
+ # uri.query_values = [['a', 'a'], ['b', ['c', 'd', 'e']]]
1286
+ # uri.query
1287
+ # # => "a=a&b=c&b=d&b=e"
1288
+ # uri.query_values = [['flag'], ['key', 'value']]
1289
+ # uri.query
1290
+ # # => "flag&key=value"
1291
+ # @param new_query_values [Hash, #to_hash, Array] The new query values.
1292
+ #
1293
+ # source://addressable//lib/addressable/uri.rb#1723
1294
+ def query_values=(new_query_values); end
1295
+
1296
+ # Determines if the URI is relative.
1297
+ #
1298
+ # @return [TrueClass, FalseClass] <code>true</code> if the URI is relative. <code>false</code>
1299
+ # otherwise.
1300
+ #
1301
+ # source://addressable//lib/addressable/uri.rb#1869
1302
+ def relative?; end
1303
+
1304
+ # The HTTP request URI for this URI. This is the path and the
1305
+ # query string.
1306
+ #
1307
+ # @return [String] The request URI required for an HTTP request.
1308
+ #
1309
+ # source://addressable//lib/addressable/uri.rb#1774
1310
+ def request_uri; end
1311
+
1312
+ # Sets the HTTP request URI for this URI.
1313
+ #
1314
+ # @param new_request_uri [String, #to_str] The new HTTP request URI.
1315
+ #
1316
+ # source://addressable//lib/addressable/uri.rb#1786
1317
+ def request_uri=(new_request_uri); end
1318
+
1319
+ # Returns the shortest normalized relative form of this URI that uses the
1320
+ # supplied URI as a base for resolution. Returns an absolute URI if
1321
+ # necessary. This is effectively the opposite of <code>route_to</code>.
1322
+ #
1323
+ # @param uri [String, Addressable::URI, #to_str] The URI to route from.
1324
+ # @return [Addressable::URI] The normalized relative URI that is equivalent to the original URI.
1325
+ #
1326
+ # source://addressable//lib/addressable/uri.rb#2085
1327
+ def route_from(uri); end
1328
+
1329
+ # Returns the shortest normalized relative form of the supplied URI that
1330
+ # uses this URI as a base for resolution. Returns an absolute URI if
1331
+ # necessary. This is effectively the opposite of <code>route_from</code>.
1332
+ #
1333
+ # @param uri [String, Addressable::URI, #to_str] The URI to route to.
1334
+ # @return [Addressable::URI] The normalized relative URI that is equivalent to the supplied URI.
1335
+ #
1336
+ # source://addressable//lib/addressable/uri.rb#2150
1337
+ def route_to(uri); end
1338
+
1339
+ # The scheme component for this URI.
1340
+ #
1341
+ # @return [String] The scheme component.
1342
+ #
1343
+ # source://addressable//lib/addressable/uri.rb#890
1344
+ def scheme; end
1345
+
1346
+ # Sets the scheme component for this URI.
1347
+ #
1348
+ # @param new_scheme [String, #to_str] The new scheme component.
1349
+ #
1350
+ # source://addressable//lib/addressable/uri.rb#917
1351
+ def scheme=(new_scheme); end
1352
+
1353
+ # The combination of components that represent a site.
1354
+ # Combines the scheme, user, password, host, and port components.
1355
+ # Primarily useful for HTTP and HTTPS.
1356
+ #
1357
+ # For example, <code>"http://example.com/path?query"</code> would have a
1358
+ # <code>site</code> value of <code>"http://example.com"</code>.
1359
+ #
1360
+ # @return [String] The components that identify a site.
1361
+ #
1362
+ # source://addressable//lib/addressable/uri.rb#1467
1363
+ def site; end
1364
+
1365
+ # Sets the site value for this URI.
1366
+ #
1367
+ # @param new_site [String, #to_str] The new site value.
1368
+ #
1369
+ # source://addressable//lib/addressable/uri.rb#1506
1370
+ def site=(new_site); end
1371
+
1372
+ # Returns the top-level domain for this host.
1373
+ #
1374
+ # @example
1375
+ # Addressable::URI.parse("http://www.example.co.uk").tld # => "co.uk"
1376
+ #
1377
+ # source://addressable//lib/addressable/uri.rb#1207
1378
+ def tld; end
1379
+
1380
+ # Sets the top-level domain for this URI.
1381
+ #
1382
+ # @param new_tld [String, #to_str] The new top-level domain.
1383
+ #
1384
+ # source://addressable//lib/addressable/uri.rb#1215
1385
+ def tld=(new_tld); end
1386
+
1387
+ # Returns a Hash of the URI components.
1388
+ #
1389
+ # @return [Hash] The URI as a <code>Hash</code> of components.
1390
+ #
1391
+ # source://addressable//lib/addressable/uri.rb#2367
1392
+ def to_hash; end
1393
+
1394
+ # Converts the URI to a <code>String</code>.
1395
+ #
1396
+ # @return [String] The URI's <code>String</code> representation.
1397
+ #
1398
+ # source://addressable//lib/addressable/uri.rb#2341
1399
+ def to_s; end
1400
+
1401
+ # Converts the URI to a <code>String</code>.
1402
+ # URI's are glorified <code>Strings</code>. Allow implicit conversion.
1403
+ #
1404
+ # @return [String] The URI's <code>String</code> representation.
1405
+ #
1406
+ # source://addressable//lib/addressable/uri.rb#2341
1407
+ def to_str; end
1408
+
1409
+ # The user component for this URI.
1410
+ #
1411
+ # @return [String] The user component.
1412
+ #
1413
+ # source://addressable//lib/addressable/uri.rb#941
1414
+ def user; end
1415
+
1416
+ # Sets the user component for this URI.
1417
+ #
1418
+ # @param new_user [String, #to_str] The new user component.
1419
+ #
1420
+ # source://addressable//lib/addressable/uri.rb#970
1421
+ def user=(new_user); end
1422
+
1423
+ # The userinfo component for this URI.
1424
+ # Combines the user and password components.
1425
+ #
1426
+ # @return [String] The userinfo component.
1427
+ #
1428
+ # source://addressable//lib/addressable/uri.rb#1052
1429
+ def userinfo; end
1430
+
1431
+ # Sets the userinfo component for this URI.
1432
+ #
1433
+ # @param new_userinfo [String, #to_str] The new userinfo component.
1434
+ #
1435
+ # source://addressable//lib/addressable/uri.rb#1091
1436
+ def userinfo=(new_userinfo); end
1437
+
1438
+ protected
1439
+
1440
+ # Converts the string to be UTF-8 if it is not already UTF-8
1441
+ #
1442
+ # @api private
1443
+ #
1444
+ # source://addressable//lib/addressable/uri.rb#2561
1445
+ def force_utf8_encoding_if_needed(str); end
1446
+
1447
+ # Resets composite values for the entire URI
1448
+ #
1449
+ # @api private
1450
+ #
1451
+ # source://addressable//lib/addressable/uri.rb#2552
1452
+ def remove_composite_values; end
1453
+
1454
+ # Replaces the internal state of self with the specified URI's state.
1455
+ # Used in destructive operations to avoid massive code repetition.
1456
+ #
1457
+ # @param uri [Addressable::URI] The URI to replace <code>self</code> with.
1458
+ # @return [Addressable::URI] <code>self</code>.
1459
+ #
1460
+ # source://addressable//lib/addressable/uri.rb#2519
1461
+ def replace_self(uri); end
1462
+
1463
+ # Splits path string with "/" (slash).
1464
+ # It is considered that there is empty string after last slash when
1465
+ # path ends with slash.
1466
+ #
1467
+ # @param path [String] The path to split.
1468
+ # @return [Array<String>] An array of parts of path.
1469
+ #
1470
+ # source://addressable//lib/addressable/uri.rb#2542
1471
+ def split_path(path); end
1472
+
1473
+ # Ensures that the URI is valid.
1474
+ #
1475
+ # source://addressable//lib/addressable/uri.rb#2476
1476
+ def validate; end
1477
+
1478
+ private
1479
+
1480
+ # Resets instance variables
1481
+ #
1482
+ # @api private
1483
+ #
1484
+ # source://addressable//lib/addressable/uri.rb#2573
1485
+ def reset_ivs; end
1486
+
1487
+ class << self
1488
+ # Converts a path to a file scheme URI. If the path supplied is
1489
+ # relative, it will be returned as a relative URI. If the path supplied
1490
+ # is actually a non-file URI, it will parse the URI as if it had been
1491
+ # parsed with <code>Addressable::URI.parse</code>. Handles all of the
1492
+ # various Microsoft-specific formats for specifying paths.
1493
+ #
1494
+ # @example
1495
+ # base = Addressable::URI.convert_path("/absolute/path/")
1496
+ # uri = Addressable::URI.convert_path("relative/path")
1497
+ # (base + uri).to_s
1498
+ # #=> "file:///absolute/path/relative/path"
1499
+ #
1500
+ # Addressable::URI.convert_path(
1501
+ # "c:\\windows\\My Documents 100%20\\foo.txt"
1502
+ # ).to_s
1503
+ # #=> "file:///c:/windows/My%20Documents%20100%20/foo.txt"
1504
+ #
1505
+ # Addressable::URI.convert_path("http://example.com/").to_s
1506
+ # #=> "http://example.com/"
1507
+ # @param path [String, Addressable::URI, #to_str] Typically a <code>String</code> path to a file or directory, but
1508
+ # will return a sensible return value if an absolute URI is supplied
1509
+ # instead.
1510
+ # @return [Addressable::URI] The parsed file scheme URI or the original URI if some other URI
1511
+ # scheme was provided.
1512
+ #
1513
+ # source://addressable//lib/addressable/uri.rb#292
1514
+ def convert_path(path); end
1515
+
1516
+ # Percent encodes any special characters in the URI.
1517
+ #
1518
+ # @param uri [String, Addressable::URI, #to_str] The URI to encode.
1519
+ # @param return_type [Class] The type of object to return.
1520
+ # This value may only be set to <code>String</code> or
1521
+ # <code>Addressable::URI</code>. All other values are invalid. Defaults
1522
+ # to <code>String</code>.
1523
+ # @return [String, Addressable::URI] The encoded URI.
1524
+ # The return type is determined by the <code>return_type</code>
1525
+ # parameter.
1526
+ #
1527
+ # source://addressable//lib/addressable/uri.rb#616
1528
+ def encode(uri, return_type = T.unsafe(nil)); end
1529
+
1530
+ # Percent encodes a URI component.
1531
+ #
1532
+ # '9' to be percent encoded. If a <code>Regexp</code> is passed, the
1533
+ # value <code>/[^b-zB-Z0-9]/</code> would have the same effect. A set of
1534
+ # useful <code>String</code> values may be found in the
1535
+ # <code>Addressable::URI::CharacterClasses</code> module. The default
1536
+ # value is the reserved plus unreserved character classes specified in
1537
+ # <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>.
1538
+ #
1539
+ # @example
1540
+ # Addressable::URI.encode_component("simple/example", "b-zB-Z0-9")
1541
+ # => "simple%2Fex%61mple"
1542
+ # Addressable::URI.encode_component("simple/example", /[^b-zB-Z0-9]/)
1543
+ # => "simple%2Fex%61mple"
1544
+ # Addressable::URI.encode_component(
1545
+ # "simple/example", Addressable::URI::CharacterClasses::UNRESERVED
1546
+ # )
1547
+ # => "simple%2Fexample"
1548
+ # @param component [String, #to_str] The URI component to encode.
1549
+ # @param character_class [String, Regexp] The characters which are not percent encoded. If a <code>String</code>
1550
+ # is passed, the <code>String</code> must be formatted as a regular
1551
+ # expression character class. (Do not include the surrounding square
1552
+ # brackets.) For example, <code>"b-zB-Z0-9"</code> would cause
1553
+ # everything but the letters 'b' through 'z' and the numbers '0' through
1554
+ # @param upcase_encoded [Regexp] A string of characters that may already be percent encoded, and whose
1555
+ # encodings should be upcased. This allows normalization of percent
1556
+ # encodings for characters not included in the
1557
+ # <code>character_class</code>.
1558
+ # @return [String] The encoded component.
1559
+ #
1560
+ # source://addressable//lib/addressable/uri.rb#403
1561
+ def encode_component(component, character_class = T.unsafe(nil), upcase_encoded = T.unsafe(nil)); end
1562
+
1563
+ # Percent encodes any special characters in the URI.
1564
+ #
1565
+ # @param uri [String, Addressable::URI, #to_str] The URI to encode.
1566
+ # @param return_type [Class] The type of object to return.
1567
+ # This value may only be set to <code>String</code> or
1568
+ # <code>Addressable::URI</code>. All other values are invalid. Defaults
1569
+ # to <code>String</code>.
1570
+ # @return [String, Addressable::URI] The encoded URI.
1571
+ # The return type is determined by the <code>return_type</code>
1572
+ # parameter.
1573
+ #
1574
+ # source://addressable//lib/addressable/uri.rb#616
1575
+ def escape(uri, return_type = T.unsafe(nil)); end
1576
+
1577
+ # Percent encodes a URI component.
1578
+ #
1579
+ # '9' to be percent encoded. If a <code>Regexp</code> is passed, the
1580
+ # value <code>/[^b-zB-Z0-9]/</code> would have the same effect. A set of
1581
+ # useful <code>String</code> values may be found in the
1582
+ # <code>Addressable::URI::CharacterClasses</code> module. The default
1583
+ # value is the reserved plus unreserved character classes specified in
1584
+ # <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>.
1585
+ #
1586
+ # @example
1587
+ # Addressable::URI.encode_component("simple/example", "b-zB-Z0-9")
1588
+ # => "simple%2Fex%61mple"
1589
+ # Addressable::URI.encode_component("simple/example", /[^b-zB-Z0-9]/)
1590
+ # => "simple%2Fex%61mple"
1591
+ # Addressable::URI.encode_component(
1592
+ # "simple/example", Addressable::URI::CharacterClasses::UNRESERVED
1593
+ # )
1594
+ # => "simple%2Fexample"
1595
+ # @param component [String, #to_str] The URI component to encode.
1596
+ # @param character_class [String, Regexp] The characters which are not percent encoded. If a <code>String</code>
1597
+ # is passed, the <code>String</code> must be formatted as a regular
1598
+ # expression character class. (Do not include the surrounding square
1599
+ # brackets.) For example, <code>"b-zB-Z0-9"</code> would cause
1600
+ # everything but the letters 'b' through 'z' and the numbers '0' through
1601
+ # @param upcase_encoded [Regexp] A string of characters that may already be percent encoded, and whose
1602
+ # encodings should be upcased. This allows normalization of percent
1603
+ # encodings for characters not included in the
1604
+ # <code>character_class</code>.
1605
+ # @return [String] The encoded component.
1606
+ #
1607
+ # source://addressable//lib/addressable/uri.rb#403
1608
+ def escape_component(component, character_class = T.unsafe(nil), upcase_encoded = T.unsafe(nil)); end
1609
+
1610
+ # Encodes a set of key/value pairs according to the rules for the
1611
+ # <code>application/x-www-form-urlencoded</code> MIME type.
1612
+ #
1613
+ # @param form_values [#to_hash, #to_ary] The form values to encode.
1614
+ # @param sort [TrueClass, FalseClass] Sort the key/value pairs prior to encoding.
1615
+ # Defaults to <code>false</code>.
1616
+ # @return [String] The encoded value.
1617
+ #
1618
+ # source://addressable//lib/addressable/uri.rb#740
1619
+ def form_encode(form_values, sort = T.unsafe(nil)); end
1620
+
1621
+ # Decodes a <code>String</code> according to the rules for the
1622
+ # <code>application/x-www-form-urlencoded</code> MIME type.
1623
+ #
1624
+ # @param encoded_value [String, #to_str] The form values to decode.
1625
+ # @return [Array] The decoded values.
1626
+ # This is not a <code>Hash</code> because of the possibility for
1627
+ # duplicate keys.
1628
+ #
1629
+ # source://addressable//lib/addressable/uri.rb#793
1630
+ def form_unencode(encoded_value); end
1631
+
1632
+ # Converts an input to a URI. The input does not have to be a valid
1633
+ # URI — the method will use heuristics to guess what URI was intended.
1634
+ # This is not standards-compliant, merely user-friendly.
1635
+ #
1636
+ # @param uri [String, Addressable::URI, #to_str] The URI string to parse.
1637
+ # No parsing is performed if the object is already an
1638
+ # <code>Addressable::URI</code>.
1639
+ # @param hints [Hash] A <code>Hash</code> of hints to the heuristic parser.
1640
+ # Defaults to <code>{:scheme => "http"}</code>.
1641
+ # @return [Addressable::URI] The parsed URI.
1642
+ #
1643
+ # source://addressable//lib/addressable/uri.rb#191
1644
+ def heuristic_parse(uri, hints = T.unsafe(nil)); end
1645
+
1646
+ # Returns an array of known ip-based schemes. These schemes typically
1647
+ # use a similar URI form:
1648
+ # <code>//<user>:<password>@<host>:<port>/<url-path></code>
1649
+ #
1650
+ # source://addressable//lib/addressable/uri.rb#1369
1651
+ def ip_based_schemes; end
1652
+
1653
+ # Joins several URIs together.
1654
+ #
1655
+ # @example
1656
+ # base = "http://example.com/"
1657
+ # uri = Addressable::URI.parse("relative/path")
1658
+ # Addressable::URI.join(base, uri)
1659
+ # #=> #<Addressable::URI:0xcab390 URI:http://example.com/relative/path>
1660
+ # @param *uris [String, Addressable::URI, #to_str] The URIs to join.
1661
+ # @return [Addressable::URI] The joined URI.
1662
+ #
1663
+ # source://addressable//lib/addressable/uri.rb#343
1664
+ def join(*uris); end
1665
+
1666
+ # Normalizes the encoding of a URI component.
1667
+ #
1668
+ # @example
1669
+ # Addressable::URI.normalize_component("simpl%65/%65xampl%65", "b-zB-Z")
1670
+ # => "simple%2Fex%61mple"
1671
+ # Addressable::URI.normalize_component(
1672
+ # "simpl%65/%65xampl%65", /[^b-zB-Z]/
1673
+ # )
1674
+ # => "simple%2Fex%61mple"
1675
+ # Addressable::URI.normalize_component(
1676
+ # "simpl%65/%65xampl%65",
1677
+ # Addressable::URI::CharacterClasses::UNRESERVED
1678
+ # )
1679
+ # => "simple%2Fexample"
1680
+ # Addressable::URI.normalize_component(
1681
+ # "one%20two%2fthree%26four",
1682
+ # "0-9a-zA-Z &/",
1683
+ # "/"
1684
+ # )
1685
+ # => "one two%2Fthree&four"
1686
+ # @param component [String, #to_str] The URI component to encode.
1687
+ # @param character_class [String, Regexp] The characters which are not percent encoded. If a <code>String</code>
1688
+ # is passed, the <code>String</code> must be formatted as a regular
1689
+ # expression character class. (Do not include the surrounding square
1690
+ # brackets.) For example, <code>"b-zB-Z0-9"</code> would cause
1691
+ # everything but the letters 'b' through 'z' and the numbers '0'
1692
+ # through '9' to be percent encoded. If a <code>Regexp</code> is passed,
1693
+ # the value <code>/[^b-zB-Z0-9]/</code> would have the same effect. A
1694
+ # set of useful <code>String</code> values may be found in the
1695
+ # <code>Addressable::URI::CharacterClasses</code> module. The default
1696
+ # value is the reserved plus unreserved character classes specified in
1697
+ # <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>.
1698
+ # @param leave_encoded [String] When <code>character_class</code> is a <code>String</code> then
1699
+ # <code>leave_encoded</code> is a string of characters that should remain
1700
+ # percent encoded while normalizing the component; if they appear percent
1701
+ # encoded in the original component, then they will be upcased ("%2f"
1702
+ # normalized to "%2F") but otherwise left alone.
1703
+ # @return [String] The normalized component.
1704
+ #
1705
+ # source://addressable//lib/addressable/uri.rb#552
1706
+ def normalize_component(component, character_class = T.unsafe(nil), leave_encoded = T.unsafe(nil)); end
1707
+
1708
+ # Resolves paths to their simplest form.
1709
+ #
1710
+ # @param path [String] The path to normalize.
1711
+ # @return [String] The normalized path.
1712
+ #
1713
+ # source://addressable//lib/addressable/uri.rb#2440
1714
+ def normalize_path(path); end
1715
+
1716
+ # Normalizes the encoding of a URI. Characters within a hostname are
1717
+ # not percent encoded to allow for internationalized domain names.
1718
+ #
1719
+ # @param uri [String, Addressable::URI, #to_str] The URI to encode.
1720
+ # @param return_type [Class] The type of object to return.
1721
+ # This value may only be set to <code>String</code> or
1722
+ # <code>Addressable::URI</code>. All other values are invalid. Defaults
1723
+ # to <code>String</code>.
1724
+ # @return [String, Addressable::URI] The encoded URI.
1725
+ # The return type is determined by the <code>return_type</code>
1726
+ # parameter.
1727
+ #
1728
+ # source://addressable//lib/addressable/uri.rb#671
1729
+ def normalized_encode(uri, return_type = T.unsafe(nil)); end
1730
+
1731
+ # Returns a URI object based on the parsed string.
1732
+ #
1733
+ # @param uri [String, Addressable::URI, #to_str] The URI string to parse.
1734
+ # No parsing is performed if the object is already an
1735
+ # <code>Addressable::URI</code>.
1736
+ # @return [Addressable::URI] The parsed URI.
1737
+ #
1738
+ # source://addressable//lib/addressable/uri.rb#114
1739
+ def parse(uri); end
1740
+
1741
+ # Returns a hash of common IP-based schemes and their default port
1742
+ # numbers. Adding new schemes to this hash, as necessary, will allow
1743
+ # for better URI normalization.
1744
+ #
1745
+ # source://addressable//lib/addressable/uri.rb#1376
1746
+ def port_mapping; end
1747
+
1748
+ # Unencodes any percent encoded characters within a URI component.
1749
+ # This method may be used for unencoding either components or full URIs,
1750
+ # however, it is recommended to use the <code>unencode_component</code>
1751
+ # alias when unencoding components.
1752
+ #
1753
+ # @param uri [String, Addressable::URI, #to_str] The URI or component to unencode.
1754
+ # @param return_type [Class] The type of object to return.
1755
+ # This value may only be set to <code>String</code> or
1756
+ # <code>Addressable::URI</code>. All other values are invalid. Defaults
1757
+ # to <code>String</code>.
1758
+ # @param leave_encoded [String] A string of characters to leave encoded. If a percent encoded character
1759
+ # in this list is encountered then it will remain percent encoded.
1760
+ # @return [String, Addressable::URI] The unencoded component or URI.
1761
+ # The return type is determined by the <code>return_type</code>
1762
+ # parameter.
1763
+ #
1764
+ # source://addressable//lib/addressable/uri.rb#472
1765
+ def unencode(uri, return_type = T.unsafe(nil), leave_encoded = T.unsafe(nil)); end
1766
+
1767
+ # Unencodes any percent encoded characters within a URI component.
1768
+ # This method may be used for unencoding either components or full URIs,
1769
+ # however, it is recommended to use the <code>unencode_component</code>
1770
+ # alias when unencoding components.
1771
+ #
1772
+ # @param uri [String, Addressable::URI, #to_str] The URI or component to unencode.
1773
+ # @param return_type [Class] The type of object to return.
1774
+ # This value may only be set to <code>String</code> or
1775
+ # <code>Addressable::URI</code>. All other values are invalid. Defaults
1776
+ # to <code>String</code>.
1777
+ # @param leave_encoded [String] A string of characters to leave encoded. If a percent encoded character
1778
+ # in this list is encountered then it will remain percent encoded.
1779
+ # @return [String, Addressable::URI] The unencoded component or URI.
1780
+ # The return type is determined by the <code>return_type</code>
1781
+ # parameter.
1782
+ #
1783
+ # source://addressable//lib/addressable/uri.rb#472
1784
+ def unencode_component(uri, return_type = T.unsafe(nil), leave_encoded = T.unsafe(nil)); end
1785
+
1786
+ # Unencodes any percent encoded characters within a URI component.
1787
+ # This method may be used for unencoding either components or full URIs,
1788
+ # however, it is recommended to use the <code>unencode_component</code>
1789
+ # alias when unencoding components.
1790
+ #
1791
+ # @param uri [String, Addressable::URI, #to_str] The URI or component to unencode.
1792
+ # @param return_type [Class] The type of object to return.
1793
+ # This value may only be set to <code>String</code> or
1794
+ # <code>Addressable::URI</code>. All other values are invalid. Defaults
1795
+ # to <code>String</code>.
1796
+ # @param leave_encoded [String] A string of characters to leave encoded. If a percent encoded character
1797
+ # in this list is encountered then it will remain percent encoded.
1798
+ # @return [String, Addressable::URI] The unencoded component or URI.
1799
+ # The return type is determined by the <code>return_type</code>
1800
+ # parameter.
1801
+ #
1802
+ # source://addressable//lib/addressable/uri.rb#472
1803
+ def unescape(uri, return_type = T.unsafe(nil), leave_encoded = T.unsafe(nil)); end
1804
+
1805
+ # Unencodes any percent encoded characters within a URI component.
1806
+ # This method may be used for unencoding either components or full URIs,
1807
+ # however, it is recommended to use the <code>unencode_component</code>
1808
+ # alias when unencoding components.
1809
+ #
1810
+ # @param uri [String, Addressable::URI, #to_str] The URI or component to unencode.
1811
+ # @param return_type [Class] The type of object to return.
1812
+ # This value may only be set to <code>String</code> or
1813
+ # <code>Addressable::URI</code>. All other values are invalid. Defaults
1814
+ # to <code>String</code>.
1815
+ # @param leave_encoded [String] A string of characters to leave encoded. If a percent encoded character
1816
+ # in this list is encountered then it will remain percent encoded.
1817
+ # @return [String, Addressable::URI] The unencoded component or URI.
1818
+ # The return type is determined by the <code>return_type</code>
1819
+ # parameter.
1820
+ #
1821
+ # source://addressable//lib/addressable/uri.rb#472
1822
+ def unescape_component(uri, return_type = T.unsafe(nil), leave_encoded = T.unsafe(nil)); end
1823
+ end
1824
+ end
1825
+
1826
+ # Container for the character classes specified in
1827
+ # <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>.
1828
+ #
1829
+ # Note: Concatenated and interpolated `String`s are not affected by the
1830
+ # `frozen_string_literal` directive and must be frozen explicitly.
1831
+ #
1832
+ # Interpolated `String`s *were* frozen this way before Ruby 3.0:
1833
+ # https://bugs.ruby-lang.org/issues/17104
1834
+ #
1835
+ # source://addressable//lib/addressable/uri.rb#46
1836
+ module Addressable::URI::CharacterClasses; end
1837
+
1838
+ # source://addressable//lib/addressable/uri.rb#47
1839
+ Addressable::URI::CharacterClasses::ALPHA = T.let(T.unsafe(nil), String)
1840
+
1841
+ # source://addressable//lib/addressable/uri.rb#57
1842
+ Addressable::URI::CharacterClasses::AUTHORITY = T.let(T.unsafe(nil), String)
1843
+
1844
+ # source://addressable//lib/addressable/uri.rb#48
1845
+ Addressable::URI::CharacterClasses::DIGIT = T.let(T.unsafe(nil), String)
1846
+
1847
+ # source://addressable//lib/addressable/uri.rb#60
1848
+ Addressable::URI::CharacterClasses::FRAGMENT = T.let(T.unsafe(nil), String)
1849
+
1850
+ # source://addressable//lib/addressable/uri.rb#49
1851
+ Addressable::URI::CharacterClasses::GEN_DELIMS = T.let(T.unsafe(nil), String)
1852
+
1853
+ # source://addressable//lib/addressable/uri.rb#56
1854
+ Addressable::URI::CharacterClasses::HOST = T.let(T.unsafe(nil), String)
1855
+
1856
+ # source://addressable//lib/addressable/uri.rb#58
1857
+ Addressable::URI::CharacterClasses::PATH = T.let(T.unsafe(nil), String)
1858
+
1859
+ # source://addressable//lib/addressable/uri.rb#54
1860
+ Addressable::URI::CharacterClasses::PCHAR = T.let(T.unsafe(nil), String)
1861
+
1862
+ # source://addressable//lib/addressable/uri.rb#59
1863
+ Addressable::URI::CharacterClasses::QUERY = T.let(T.unsafe(nil), String)
1864
+
1865
+ # source://addressable//lib/addressable/uri.rb#51
1866
+ Addressable::URI::CharacterClasses::RESERVED = T.let(T.unsafe(nil), String)
1867
+
1868
+ # source://addressable//lib/addressable/uri.rb#53
1869
+ Addressable::URI::CharacterClasses::RESERVED_AND_UNRESERVED = T.let(T.unsafe(nil), String)
1870
+
1871
+ # source://addressable//lib/addressable/uri.rb#55
1872
+ Addressable::URI::CharacterClasses::SCHEME = T.let(T.unsafe(nil), String)
1873
+
1874
+ # source://addressable//lib/addressable/uri.rb#50
1875
+ Addressable::URI::CharacterClasses::SUB_DELIMS = T.let(T.unsafe(nil), String)
1876
+
1877
+ # source://addressable//lib/addressable/uri.rb#52
1878
+ Addressable::URI::CharacterClasses::UNRESERVED = T.let(T.unsafe(nil), String)
1879
+
1880
+ # source://addressable//lib/addressable/uri.rb#72
1881
+ module Addressable::URI::CharacterClassesRegexps; end
1882
+
1883
+ # source://addressable//lib/addressable/uri.rb#73
1884
+ Addressable::URI::CharacterClassesRegexps::AUTHORITY = T.let(T.unsafe(nil), Regexp)
1885
+
1886
+ # source://addressable//lib/addressable/uri.rb#74
1887
+ Addressable::URI::CharacterClassesRegexps::FRAGMENT = T.let(T.unsafe(nil), Regexp)
1888
+
1889
+ # source://addressable//lib/addressable/uri.rb#75
1890
+ Addressable::URI::CharacterClassesRegexps::HOST = T.let(T.unsafe(nil), Regexp)
1891
+
1892
+ # source://addressable//lib/addressable/uri.rb#76
1893
+ Addressable::URI::CharacterClassesRegexps::PATH = T.let(T.unsafe(nil), Regexp)
1894
+
1895
+ # source://addressable//lib/addressable/uri.rb#77
1896
+ Addressable::URI::CharacterClassesRegexps::QUERY = T.let(T.unsafe(nil), Regexp)
1897
+
1898
+ # source://addressable//lib/addressable/uri.rb#78
1899
+ Addressable::URI::CharacterClassesRegexps::RESERVED = T.let(T.unsafe(nil), Regexp)
1900
+
1901
+ # source://addressable//lib/addressable/uri.rb#79
1902
+ Addressable::URI::CharacterClassesRegexps::RESERVED_AND_UNRESERVED = T.let(T.unsafe(nil), Regexp)
1903
+
1904
+ # source://addressable//lib/addressable/uri.rb#80
1905
+ Addressable::URI::CharacterClassesRegexps::SCHEME = T.let(T.unsafe(nil), Regexp)
1906
+
1907
+ # source://addressable//lib/addressable/uri.rb#81
1908
+ Addressable::URI::CharacterClassesRegexps::UNRESERVED = T.let(T.unsafe(nil), Regexp)
1909
+
1910
+ # source://addressable//lib/addressable/uri.rb#85
1911
+ Addressable::URI::EMPTY_STR = T.let(T.unsafe(nil), String)
1912
+
1913
+ # Raised if something other than a uri is supplied.
1914
+ #
1915
+ # source://addressable//lib/addressable/uri.rb#34
1916
+ class Addressable::URI::InvalidURIError < ::StandardError; end
1917
+
1918
+ # source://addressable//lib/addressable/uri.rb#2598
1919
+ module Addressable::URI::NONE; end
1920
+
1921
+ # source://addressable//lib/addressable/uri.rb#1530
1922
+ Addressable::URI::NORMPATH = T.let(T.unsafe(nil), Regexp)
1923
+
1924
+ # source://addressable//lib/addressable/uri.rb#63
1925
+ module Addressable::URI::NormalizeCharacterClasses; end
1926
+
1927
+ # source://addressable//lib/addressable/uri.rb#68
1928
+ Addressable::URI::NormalizeCharacterClasses::FRAGMENT = T.let(T.unsafe(nil), Regexp)
1929
+
1930
+ # source://addressable//lib/addressable/uri.rb#64
1931
+ Addressable::URI::NormalizeCharacterClasses::HOST = T.let(T.unsafe(nil), Regexp)
1932
+
1933
+ # source://addressable//lib/addressable/uri.rb#66
1934
+ Addressable::URI::NormalizeCharacterClasses::PCHAR = T.let(T.unsafe(nil), Regexp)
1935
+
1936
+ # source://addressable//lib/addressable/uri.rb#69
1937
+ Addressable::URI::NormalizeCharacterClasses::QUERY = T.let(T.unsafe(nil), Regexp)
1938
+
1939
+ # source://addressable//lib/addressable/uri.rb#67
1940
+ Addressable::URI::NormalizeCharacterClasses::SCHEME = T.let(T.unsafe(nil), Regexp)
1941
+
1942
+ # source://addressable//lib/addressable/uri.rb#65
1943
+ Addressable::URI::NormalizeCharacterClasses::UNRESERVED = T.let(T.unsafe(nil), Regexp)
1944
+
1945
+ # source://addressable//lib/addressable/uri.rb#2427
1946
+ Addressable::URI::PARENT = T.let(T.unsafe(nil), String)
1947
+
1948
+ # source://addressable//lib/addressable/uri.rb#89
1949
+ Addressable::URI::PORT_MAPPING = T.let(T.unsafe(nil), Hash)
1950
+
1951
+ # source://addressable//lib/addressable/uri.rb#2429
1952
+ Addressable::URI::RULE_2A = T.let(T.unsafe(nil), Regexp)
1953
+
1954
+ # source://addressable//lib/addressable/uri.rb#2430
1955
+ Addressable::URI::RULE_2B_2C = T.let(T.unsafe(nil), Regexp)
1956
+
1957
+ # source://addressable//lib/addressable/uri.rb#2431
1958
+ Addressable::URI::RULE_2D = T.let(T.unsafe(nil), Regexp)
1959
+
1960
+ # source://addressable//lib/addressable/uri.rb#2432
1961
+ Addressable::URI::RULE_PREFIXED_PARENT = T.let(T.unsafe(nil), Regexp)
1962
+
1963
+ # source://addressable//lib/addressable/uri.rb#2426
1964
+ Addressable::URI::SELF_REF = T.let(T.unsafe(nil), String)
1965
+
1966
+ # Tables used to optimize encoding operations in `self.encode_component`
1967
+ # and `self.normalize_component`
1968
+ #
1969
+ # source://addressable//lib/addressable/uri.rb#360
1970
+ Addressable::URI::SEQUENCE_ENCODING_TABLE = T.let(T.unsafe(nil), Array)
1971
+
1972
+ # source://addressable//lib/addressable/uri.rb#364
1973
+ Addressable::URI::SEQUENCE_UPCASED_PERCENT_ENCODING_TABLE = T.let(T.unsafe(nil), Array)
1974
+
1975
+ # source://addressable//lib/addressable/uri.rb#84
1976
+ Addressable::URI::SLASH = T.let(T.unsafe(nil), String)
1977
+
1978
+ # source://addressable//lib/addressable/uri.rb#87
1979
+ Addressable::URI::URIREGEX = T.let(T.unsafe(nil), Regexp)
1980
+
1981
+ # source://addressable//lib/addressable/version.rb#23
1982
+ module Addressable::VERSION; end
1983
+
1984
+ # source://addressable//lib/addressable/version.rb#24
1985
+ Addressable::VERSION::MAJOR = T.let(T.unsafe(nil), Integer)
1986
+
1987
+ # source://addressable//lib/addressable/version.rb#25
1988
+ Addressable::VERSION::MINOR = T.let(T.unsafe(nil), Integer)
1989
+
1990
+ # source://addressable//lib/addressable/version.rb#28
1991
+ Addressable::VERSION::STRING = T.let(T.unsafe(nil), String)
1992
+
1993
+ # source://addressable//lib/addressable/version.rb#26
1994
+ Addressable::VERSION::TINY = T.let(T.unsafe(nil), Integer)