genius-api 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.github/ISSUE_TEMPLATE/bug_report.md +36 -0
- data/.github/ISSUE_TEMPLATE/config.yml +5 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +24 -0
- data/.github/PULL_REQUEST_TEMPLATE.md +23 -0
- data/.github/workflows/check-source-branch.yml +8 -0
- data/.github/workflows/ci.yml +38 -0
- data/.gitignore +15 -0
- data/.rspec +3 -0
- data/.rubocop.yml +20 -0
- data/.ruby-version +1 -0
- data/CHANGELOG.md +37 -0
- data/CODE_OF_CONDUCT.md +106 -0
- data/CONTRIBUTING.md +368 -0
- data/Gemfile +7 -0
- data/Gemfile.lock +174 -0
- data/LICENSE.txt +674 -0
- data/README.md +288 -0
- data/SECURITY.md +14 -0
- data/Steepfile +13 -0
- data/bin/console +15 -0
- data/bin/release +5 -0
- data/bin/setup +21 -0
- data/docscribe.yml +9 -0
- data/exe/genius-api +4 -0
- data/genius-api.gemspec +47 -0
- data/lib/extensions/deep_find.rb +36 -0
- data/lib/extensions/extensions.rb +12 -0
- data/lib/extensions/options_helper.rb +17 -0
- data/lib/extensions/token_ext.rb +12 -0
- data/lib/extensions/unescape.rb +13 -0
- data/lib/genius/api/account.rb +35 -0
- data/lib/genius/api/annotations.rb +90 -0
- data/lib/genius/api/artists.rb +82 -0
- data/lib/genius/api/authorization.rb +47 -0
- data/lib/genius/api/errors.rb +211 -0
- data/lib/genius/api/referents.rb +38 -0
- data/lib/genius/api/search.rb +26 -0
- data/lib/genius/api/songs.rb +84 -0
- data/lib/genius/api/version.rb +8 -0
- data/lib/genius/api/web_pages.rb +26 -0
- data/lib/genius/api.rb +23 -0
- data/rbs_collection.lock.yaml +232 -0
- data/rbs_collection.yaml +14 -0
- data/sig/lib/extensions/deep_find.rbs +30 -0
- data/sig/lib/extensions/options_helper.rbs +3 -0
- data/sig/lib/extensions/token_ext.rbs +3 -0
- data/sig/lib/extensions/unescape.rbs +3 -0
- data/sig/lib/genius/api/account.rbs +23 -0
- data/sig/lib/genius/api/annotations.rbs +13 -0
- data/sig/lib/genius/api/artists.rbs +15 -0
- data/sig/lib/genius/api/authorization.rbs +11 -0
- data/sig/lib/genius/api/errors.rbs +46 -0
- data/sig/lib/genius/api/referents.rbs +7 -0
- data/sig/lib/genius/api/search.rbs +5 -0
- data/sig/lib/genius/api/songs.rbs +15 -0
- data/sig/lib/genius/api/version.rbs +5 -0
- data/sig/lib/genius/api/web_pages.rbs +5 -0
- data/sig/lib/genius/api.rbs +9 -0
- metadata +313 -0
data/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
# Project code style
|
|
2
|
+
|
|
3
|
+
This file includes code style references which can help when contributing to project.
|
|
4
|
+
|
|
5
|
+
## Documentation content
|
|
6
|
+
|
|
7
|
+
1. [Overview][1]
|
|
8
|
+
2. [Project structure][2]
|
|
9
|
+
1. [Outer layer][2.1]
|
|
10
|
+
2. [Inner layer][2.2]
|
|
11
|
+
3. [Extensions][2.3]
|
|
12
|
+
4. [Rakelib][2.4]
|
|
13
|
+
3. [Naming convention][3]
|
|
14
|
+
1. [File naming][3.1]
|
|
15
|
+
2. [Module naming][3.2]
|
|
16
|
+
3. [Class naming][3.3]
|
|
17
|
+
4. [Parameters naming][3.4]
|
|
18
|
+
5. [Variables naming][3.5]
|
|
19
|
+
4. [Code semantics][4]
|
|
20
|
+
1. [Define modules][4.1]
|
|
21
|
+
2. [Define classes][4.2]
|
|
22
|
+
3. [Define methods][4.3]
|
|
23
|
+
5. [Contributing][5]
|
|
24
|
+
1. [Git commits][5.1]
|
|
25
|
+
2. [RuboCop][5.2]
|
|
26
|
+
3. [RSpec][5.3]
|
|
27
|
+
4. [Docscribe][5.4]
|
|
28
|
+
5. [RBS][5.5]
|
|
29
|
+
6. [Steep][5.6]
|
|
30
|
+
6. [TODO][6]
|
|
31
|
+
7. [License][7]
|
|
32
|
+
|
|
33
|
+
## Overview
|
|
34
|
+
|
|
35
|
+
This project will show patterns and tips to contribute in this project. Feel free to contribute there!
|
|
36
|
+
|
|
37
|
+
## Project structure
|
|
38
|
+
|
|
39
|
+
The project tree consists of several directories. Some of them are described at
|
|
40
|
+
RubyGems [documentation](https://guides.rubygems.org/make-your-own-gem/). See it for clearance.
|
|
41
|
+
|
|
42
|
+
Folder structure in the `lib` directory deserves special attention. There are two other folders there — `lib/extensions`
|
|
43
|
+
and `lib/genius`, the last of which is divided into two more layers - outer and inner. The `api.rb` file (referred as
|
|
44
|
+
the main file) acts as the outer layer, into which the entire interface is imported which is defined in inner layer
|
|
45
|
+
referred as `lib/genius/api` folder.
|
|
46
|
+
|
|
47
|
+
### Outer layer
|
|
48
|
+
|
|
49
|
+
As mentioned above, the outer layer consists of only one main file where other files are included. The file consists of
|
|
50
|
+
a main module and its submodule to preserve the structure of the project tree, as indicated in the
|
|
51
|
+
RubyGems [documentation](https://guides.rubygems.org/patterns/#consistent-naming). The other files act as a category for
|
|
52
|
+
the main module which is called `Genius`. Outer layer is stored in `lib/genius`
|
|
53
|
+
|
|
54
|
+
### Inner layer
|
|
55
|
+
|
|
56
|
+
The inner layer is a kind of bunch of interfaces and extensions (categories) for the main module. Each of the interface
|
|
57
|
+
is named after the resource in [Genius API documentation](https://docs.genius.com). Inner layer is stored
|
|
58
|
+
in `lib/genius/api`.
|
|
59
|
+
|
|
60
|
+
### Extensions
|
|
61
|
+
|
|
62
|
+
Extensions are the files which represents the methods which are used in a bunch of other methods in the inner layer.
|
|
63
|
+
This kind of interfaces were bundled in a separate folder for multiple reuse in other methods. They are not a part of
|
|
64
|
+
the `Genius` module interface, so it means that they are a category to other structures (`Hash`, `Object` or `String`
|
|
65
|
+
classes). Extensions are stored in `lib/extensions`.
|
|
66
|
+
|
|
67
|
+
### Rakelib
|
|
68
|
+
|
|
69
|
+
Rakelib is another sort of extensions but it is used for generating the documentation. Note that the files in this
|
|
70
|
+
directory are distributed under the BSD license!
|
|
71
|
+
|
|
72
|
+
## Naming convention
|
|
73
|
+
|
|
74
|
+
This paragraph will show the main conventions in naming of some structures or objects, such as files, classes, variables
|
|
75
|
+
to represent their semantics more clear.
|
|
76
|
+
|
|
77
|
+
### File naming
|
|
78
|
+
|
|
79
|
+
The files are named after the resource from the [Genius API documentation](https://docs.genius.com). File names should
|
|
80
|
+
not contain uppercase letters or contain non-letter characters except for the underscore. All files should be stored in
|
|
81
|
+
the [inner layer](https://github.com/unurgunite/genius-api/CODESTYLE.md#inner-layer).
|
|
82
|
+
|
|
83
|
+
### Module naming
|
|
84
|
+
|
|
85
|
+
Modules should be defined inside the `Genius` module — a top-level project module — and they should be named after the
|
|
86
|
+
filename where they defined.
|
|
87
|
+
|
|
88
|
+
### Class naming
|
|
89
|
+
|
|
90
|
+
For the most part, classes are used to represent errors and they are stored in the inner layers file — `api/errors.rb`.
|
|
91
|
+
Each of this classes must end with the word `Error`.
|
|
92
|
+
|
|
93
|
+
### Parameters naming
|
|
94
|
+
|
|
95
|
+
Parameters should be named as a keyword arguments. This rule does not apply to private methods.
|
|
96
|
+
See: [Style/OptionHash](https://www.rubydoc.info/github/bbatsov/RuboCop/RuboCop/Cop/Style/OptionHash)
|
|
97
|
+
|
|
98
|
+
### Variables naming
|
|
99
|
+
|
|
100
|
+
Variables should be named as in a style guide of the RuboCop.
|
|
101
|
+
See: [Naming/VariableName](https://www.rubydoc.info/gems/rubocop/RuboCop/Cop/Naming/VariableName)
|
|
102
|
+
|
|
103
|
+
## Code semantics
|
|
104
|
+
|
|
105
|
+
This paragraph will show some of the style guides for defining some sorts of the structures.
|
|
106
|
+
|
|
107
|
+
### Define modules
|
|
108
|
+
|
|
109
|
+
All of the modules defined as a category for the main module `Genius`. For e.g., `Genius::Account`
|
|
110
|
+
|
|
111
|
+
```ruby
|
|
112
|
+
# lib/genius/api/account.rb
|
|
113
|
+
module Genius # :nodoc:
|
|
114
|
+
module Account # :nodoc:
|
|
115
|
+
# some interface
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Among other things, modules must have documentation on the top of them. Documentation should consist of a brief
|
|
121
|
+
description of the module, its semantics and the semantics of its interface - objects that the module uses, extensions,
|
|
122
|
+
etc. For e.g.,
|
|
123
|
+
|
|
124
|
+
```ruby
|
|
125
|
+
# This module reflects the structure of our world, consisting of a class of people and a class of animals.
|
|
126
|
+
module World
|
|
127
|
+
class Animal # :nodoc:
|
|
128
|
+
# some interface
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
class Human # :nodoc:
|
|
132
|
+
# some interface
|
|
133
|
+
end
|
|
134
|
+
end
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
If no documentation is attached to the module, then a special tag in the form of a comment should be placed next to its
|
|
138
|
+
name, indicating this — `# :nodoc:`. In instance,
|
|
139
|
+
|
|
140
|
+
```ruby
|
|
141
|
+
|
|
142
|
+
module A # :nodoc:
|
|
143
|
+
# some interface
|
|
144
|
+
end
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Define classes
|
|
148
|
+
|
|
149
|
+
As mentioned above, classes are usually represents error objects. This classes should be stored in a separate file
|
|
150
|
+
— `lib/genius/errors.rb`, they must be inherited from the `Genius::Errors::GeniusExceptionSuperClass` which in turn is
|
|
151
|
+
inherited from `StandardError` and they must have at least two readable attributes — `:msg` and `:exception_type`.
|
|
152
|
+
Moreover, this constructor must invoke method `super(message)`. Declaration of more arguments for debugging or
|
|
153
|
+
additional info to represent while error raised is optional. An example interface logic for such a class would be as
|
|
154
|
+
follows:
|
|
155
|
+
|
|
156
|
+
```ruby
|
|
157
|
+
|
|
158
|
+
class SomeError < GeniusExceptionSuperClass # :nodoc:
|
|
159
|
+
attr_reader :msg, :exception_type, :some_useful_argument
|
|
160
|
+
|
|
161
|
+
# @param [String (frozen)] msg Exception message.
|
|
162
|
+
# @param [String (frozen)] exception_type Exception type.
|
|
163
|
+
# @param [String (frozen)] some_useful_argument Some useful stuff for debugging.
|
|
164
|
+
# @return [String (frozen)]
|
|
165
|
+
def initialize(msg: "Some error message.", exception_type: "some_exception_error", some_useful_argument: nil)
|
|
166
|
+
super(message)
|
|
167
|
+
@msg = msg + some_useful_argument
|
|
168
|
+
@exception_type = exception_type
|
|
169
|
+
end
|
|
170
|
+
end
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
As modules, classes must have documentation on top of them and if there is no documentation was attached (in instance,
|
|
174
|
+
if there is a category for built-in objects as `Hash` or `String` classes) there should be a special tag inside a
|
|
175
|
+
comment which should be placed next to the class name — `# :nodoc:`.
|
|
176
|
+
|
|
177
|
+
### Define methods
|
|
178
|
+
|
|
179
|
+
Methods, among other structures, must have at least some documentation, consisting of at least its signature, as well as
|
|
180
|
+
the arguments that the method takes. The documentation must be written in a specific syntax, according to
|
|
181
|
+
the [YARD documentation](https://www.rubydoc.info/gems/yard/file/docs/Tags.md). This rule is specific for methods inside
|
|
182
|
+
classes interface if they are object constructors, because they always point to the instance declaration, so they do not
|
|
183
|
+
require explicit specification of their signature at the top of the comments section. For this sort of methods the
|
|
184
|
+
return type can be omitted.
|
|
185
|
+
|
|
186
|
+
Required YARD tags to indicate and theirs abstract syntax:
|
|
187
|
+
|
|
188
|
+
- `@param [Class] param_name documentation.`
|
|
189
|
+
- `@raise [ExceptionClass] if something went wrong.`
|
|
190
|
+
- `@return [Class]`
|
|
191
|
+
|
|
192
|
+
Required YARD tags to indicate and theirs abstract syntax:
|
|
193
|
+
|
|
194
|
+
- `@private`
|
|
195
|
+
- `@example Example usage`
|
|
196
|
+
- `@option variable_name [Class] :option documentation.`
|
|
197
|
+
- `@see #method_name`
|
|
198
|
+
|
|
199
|
+
Example for regular singleton methods (inside modules)
|
|
200
|
+
|
|
201
|
+
```ruby
|
|
202
|
+
|
|
203
|
+
module M # :nodoc:
|
|
204
|
+
module A # :nodoc:
|
|
205
|
+
class << self
|
|
206
|
+
# +M::A.foo+ -> Integer
|
|
207
|
+
#
|
|
208
|
+
# Method documenation.
|
|
209
|
+
#
|
|
210
|
+
# @param [Integer] arg1 First integer argument.
|
|
211
|
+
# @param [Integer] arg2 Second integer argument.
|
|
212
|
+
# @raise [RuntimeError] if one of the argument is not an integer.
|
|
213
|
+
# @return [Integer]
|
|
214
|
+
def foo(arg1: nil, arg2: nil)
|
|
215
|
+
unless arg1.is_a?(Integer) || arg2.is_a?(Integer)
|
|
216
|
+
raise RuntimeError, 'Some error was raised'
|
|
217
|
+
end
|
|
218
|
+
arg1 + arg2
|
|
219
|
+
rescue RuntimeError => e
|
|
220
|
+
e.message
|
|
221
|
+
end
|
|
222
|
+
end
|
|
223
|
+
end
|
|
224
|
+
end
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
Example for regular constructors.
|
|
228
|
+
|
|
229
|
+
```ruby
|
|
230
|
+
|
|
231
|
+
class SomeError < GeniusExceptionSuperClass # :nodoc:
|
|
232
|
+
attr_reader :msg, :exception_type, :some_useful_argument
|
|
233
|
+
|
|
234
|
+
# @param [String (frozen)] msg Exception message.
|
|
235
|
+
# @param [String (frozen)] exception_type Exception type.
|
|
236
|
+
# @param [String (frozen)] some_useful_argument Some useful stuff for debugging.
|
|
237
|
+
# @return [String (frozen)]
|
|
238
|
+
def initialize(msg: "Some error message.", exception_type: "some_exception_error", some_useful_argument: nil)
|
|
239
|
+
super(message)
|
|
240
|
+
@msg = msg + some_useful_argument
|
|
241
|
+
@exception_type = exception_type
|
|
242
|
+
end
|
|
243
|
+
end
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
## Contributing
|
|
247
|
+
|
|
248
|
+
This section will demonstrate the rules for contributing in project
|
|
249
|
+
|
|
250
|
+
### Git commits
|
|
251
|
+
|
|
252
|
+
Git commits should clearly describe the purpose of your commit. For example, commits as _"Do smth"_ or _"Refactored some
|
|
253
|
+
files"_ do not actually represent theirs content. Commits as _"Refactored `README.md`"_ reflects theirs content, so it
|
|
254
|
+
will be unused to delve into the purpose of the commit most of the time.
|
|
255
|
+
|
|
256
|
+
### RuboCop
|
|
257
|
+
|
|
258
|
+
See: [RuboCop documentation](https://docs.rubocop.org/rubocop/index.html)
|
|
259
|
+
|
|
260
|
+
Before pushing, you must be sure that the code you write is correct, so it should always be formatted through a static
|
|
261
|
+
analyzer. Look towards the `rubocop -D` and `rubocop -A` commands.
|
|
262
|
+
|
|
263
|
+
### RSpec
|
|
264
|
+
|
|
265
|
+
Before pushing, run the test suite to ensure nothing is broken:
|
|
266
|
+
|
|
267
|
+
```shell
|
|
268
|
+
bundle exec rspec
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
The test suite currently has 84 examples with 0 failures.
|
|
272
|
+
|
|
273
|
+
### Docscribe
|
|
274
|
+
|
|
275
|
+
Docscribe keeps YARD annotations in sync with the codebase. After making changes to method signatures, run:
|
|
276
|
+
|
|
277
|
+
```shell
|
|
278
|
+
bundle exec docscribe lib
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
This will check for missing or outdated documentation. To regenerate annotations automatically:
|
|
282
|
+
|
|
283
|
+
```shell
|
|
284
|
+
bundle exec docscribe -A --rbs-collection lib
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
The project's docscribe configuration is in `docscribe.yml` at the project root.
|
|
288
|
+
|
|
289
|
+
### RBS
|
|
290
|
+
|
|
291
|
+
RBS type signatures are located in `sig/` directory. After adding or changing methods, update the corresponding `.rbs`
|
|
292
|
+
files. Validate signatures with:
|
|
293
|
+
|
|
294
|
+
```shell
|
|
295
|
+
bundle exec rbs validate
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### Steep
|
|
299
|
+
|
|
300
|
+
Steep performs static type checking using RBS signatures. Run the type checker:
|
|
301
|
+
|
|
302
|
+
```shell
|
|
303
|
+
bundle exec steep check
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
All type errors must be resolved before committing.
|
|
307
|
+
|
|
308
|
+
## TODO
|
|
309
|
+
|
|
310
|
+
- [ ] Look at the documentation with fresh eyes
|
|
311
|
+
- [ ] Check the file for all sorts of errors
|
|
312
|
+
|
|
313
|
+
## License
|
|
314
|
+
|
|
315
|
+
The documentation is available as open source under the terms of
|
|
316
|
+
the [CC BY-SA 4.0 License](https://creativecommons.org/licenses/by-sa/4.0/)
|
|
317
|
+
|
|
318
|
+

|
|
319
|
+
|
|
320
|
+
[1]:https://github.com/unurgunite/genius-api/blob/master/CONTRIBUTING.md#overview
|
|
321
|
+
|
|
322
|
+
[2]:https://github.com/unurgunite/genius-api/blob/master/CONTRIBUTING.md#project-structure
|
|
323
|
+
|
|
324
|
+
[2.1]:https://github.com/unurgunite/genius-api/blob/master/CONTRIBUTING.md#outer-layer
|
|
325
|
+
|
|
326
|
+
[2.2]:https://github.com/unurgunite/genius-api/blob/master/CONTRIBUTING.md#inner-layer
|
|
327
|
+
|
|
328
|
+
[2.3]:https://github.com/unurgunite/genius-api/blob/master/CONTRIBUTING.md#extensions
|
|
329
|
+
|
|
330
|
+
[2.4]:https://github.com/unurgunite/genius-api/blob/master/CONTRIBUTING.md#rakelib
|
|
331
|
+
|
|
332
|
+
[3]:https://github.com/unurgunite/genius-api/blob/master/CONTRIBUTING.md#naming-convention
|
|
333
|
+
|
|
334
|
+
[3.1]:https://github.com/unurgunite/genius-api/blob/master/CONTRIBUTING.md#file-naming
|
|
335
|
+
|
|
336
|
+
[3.2]:https://github.com/unurgunite/genius-api/blob/master/CONTRIBUTING.md#module-naming
|
|
337
|
+
|
|
338
|
+
[3.3]:https://github.com/unurgunite/genius-api/blob/master/CONTRIBUTING.md#class-naming
|
|
339
|
+
|
|
340
|
+
[3.4]:https://github.com/unurgunite/genius-api/blob/master/CONTRIBUTING.md#parameters-naming
|
|
341
|
+
|
|
342
|
+
[3.5]:https://github.com/unurgunite/genius-api/blob/master/CONTRIBUTING.md#variables-naming
|
|
343
|
+
|
|
344
|
+
[4]:https://github.com/unurgunite/genius-api/blob/master/CONTRIBUTING.md#code-semantics
|
|
345
|
+
|
|
346
|
+
[4.1]:https://github.com/unurgunite/genius-api/blob/master/CONTRIBUTING.md#define-modules
|
|
347
|
+
|
|
348
|
+
[4.2]:https://github.com/unurgunite/genius-api/blob/master/CONTRIBUTING.md#define-classes
|
|
349
|
+
|
|
350
|
+
[4.3]:https://github.com/unurgunite/genius-api/blob/master/CONTRIBUTING.md#define-methods
|
|
351
|
+
|
|
352
|
+
[5]:https://github.com/unurgunite/genius-api/blob/master/CONTRIBUTING.md#contributing
|
|
353
|
+
|
|
354
|
+
[5.1]:https://github.com/unurgunite/genius-api/blob/master/CONTRIBUTING.md#git-commits
|
|
355
|
+
|
|
356
|
+
[5.2]:https://github.com/unurgunite/genius-api/blob/master/CONTRIBUTING.md#rubocop
|
|
357
|
+
|
|
358
|
+
[5.3]:https://github.com/unurgunite/genius-api/blob/master/CONTRIBUTING.md#rspec
|
|
359
|
+
|
|
360
|
+
[5.4]:https://github.com/unurgunite/genius-api/blob/master/CONTRIBUTING.md#docscribe
|
|
361
|
+
|
|
362
|
+
[5.5]:https://github.com/unurgunite/genius-api/blob/master/CONTRIBUTING.md#rbs
|
|
363
|
+
|
|
364
|
+
[5.6]:https://github.com/unurgunite/genius-api/blob/master/CONTRIBUTING.md#steep
|
|
365
|
+
|
|
366
|
+
[6]:https://github.com/unurgunite/genius-api/blob/master/CONTRIBUTING.md#todo
|
|
367
|
+
|
|
368
|
+
[7]:https://github.com/unurgunite/genius-api/blob/master/CONTRIBUTING.md#license
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
genius-api (0.3.0)
|
|
5
|
+
httparty (~> 0.21)
|
|
6
|
+
nokogiri
|
|
7
|
+
|
|
8
|
+
GEM
|
|
9
|
+
remote: https://rubygems.org/
|
|
10
|
+
specs:
|
|
11
|
+
ast (2.4.3)
|
|
12
|
+
bigdecimal (4.1.2)
|
|
13
|
+
coderay (1.1.3)
|
|
14
|
+
concurrent-ruby (1.3.6)
|
|
15
|
+
csv (3.3.5)
|
|
16
|
+
diff-lcs (1.6.2)
|
|
17
|
+
docscribe (1.4.1)
|
|
18
|
+
parser (>= 3.3)
|
|
19
|
+
prism (~> 1.8)
|
|
20
|
+
dotenv (2.7.6)
|
|
21
|
+
ffi (1.17.4-aarch64-linux-gnu)
|
|
22
|
+
ffi (1.17.4-aarch64-linux-musl)
|
|
23
|
+
ffi (1.17.4-arm-linux-gnu)
|
|
24
|
+
ffi (1.17.4-arm-linux-musl)
|
|
25
|
+
ffi (1.17.4-arm64-darwin)
|
|
26
|
+
ffi (1.17.4-x86_64-darwin)
|
|
27
|
+
ffi (1.17.4-x86_64-linux-gnu)
|
|
28
|
+
ffi (1.17.4-x86_64-linux-musl)
|
|
29
|
+
fileutils (1.8.0)
|
|
30
|
+
httparty (0.24.2)
|
|
31
|
+
csv
|
|
32
|
+
mini_mime (>= 1.0.0)
|
|
33
|
+
multi_xml (>= 0.5.2)
|
|
34
|
+
json (2.19.9)
|
|
35
|
+
language_server-protocol (3.17.0.5)
|
|
36
|
+
lint_roller (1.1.0)
|
|
37
|
+
listen (3.10.0)
|
|
38
|
+
logger
|
|
39
|
+
rb-fsevent (~> 0.10, >= 0.10.3)
|
|
40
|
+
rb-inotify (~> 0.9, >= 0.9.10)
|
|
41
|
+
logger (1.7.0)
|
|
42
|
+
mini_mime (1.1.5)
|
|
43
|
+
multi_xml (0.9.1)
|
|
44
|
+
bigdecimal (>= 3.1, < 5)
|
|
45
|
+
nokogiri (1.19.3-aarch64-linux-gnu)
|
|
46
|
+
racc (~> 1.4)
|
|
47
|
+
nokogiri (1.19.3-aarch64-linux-musl)
|
|
48
|
+
racc (~> 1.4)
|
|
49
|
+
nokogiri (1.19.3-arm-linux-gnu)
|
|
50
|
+
racc (~> 1.4)
|
|
51
|
+
nokogiri (1.19.3-arm-linux-musl)
|
|
52
|
+
racc (~> 1.4)
|
|
53
|
+
nokogiri (1.19.3-arm64-darwin)
|
|
54
|
+
racc (~> 1.4)
|
|
55
|
+
nokogiri (1.19.3-x86_64-darwin)
|
|
56
|
+
racc (~> 1.4)
|
|
57
|
+
nokogiri (1.19.3-x86_64-linux-gnu)
|
|
58
|
+
racc (~> 1.4)
|
|
59
|
+
nokogiri (1.19.3-x86_64-linux-musl)
|
|
60
|
+
racc (~> 1.4)
|
|
61
|
+
parallel (1.28.0)
|
|
62
|
+
parser (3.3.11.1)
|
|
63
|
+
ast (~> 2.4.1)
|
|
64
|
+
racc
|
|
65
|
+
prism (1.9.0)
|
|
66
|
+
racc (1.8.1)
|
|
67
|
+
rainbow (3.1.1)
|
|
68
|
+
rake (13.4.2)
|
|
69
|
+
rb-fsevent (0.11.2)
|
|
70
|
+
rb-inotify (0.11.1)
|
|
71
|
+
ffi (~> 1.0)
|
|
72
|
+
rbs (4.0.2)
|
|
73
|
+
logger
|
|
74
|
+
prism (>= 1.6.0)
|
|
75
|
+
tsort
|
|
76
|
+
regexp_parser (2.12.0)
|
|
77
|
+
rspec (3.13.2)
|
|
78
|
+
rspec-core (~> 3.13.0)
|
|
79
|
+
rspec-expectations (~> 3.13.0)
|
|
80
|
+
rspec-mocks (~> 3.13.0)
|
|
81
|
+
rspec-core (3.13.6)
|
|
82
|
+
rspec-support (~> 3.13.0)
|
|
83
|
+
rspec-expectations (3.13.5)
|
|
84
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
85
|
+
rspec-support (~> 3.13.0)
|
|
86
|
+
rspec-mocks (3.13.8)
|
|
87
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
88
|
+
rspec-support (~> 3.13.0)
|
|
89
|
+
rspec-support (3.13.7)
|
|
90
|
+
rubocop (1.87.0)
|
|
91
|
+
json (~> 2.3)
|
|
92
|
+
language_server-protocol (~> 3.17.0.2)
|
|
93
|
+
lint_roller (~> 1.1.0)
|
|
94
|
+
parallel (>= 1.10)
|
|
95
|
+
parser (>= 3.3.0.2)
|
|
96
|
+
rainbow (>= 2.2.2, < 4.0)
|
|
97
|
+
regexp_parser (>= 2.9.3, < 3.0)
|
|
98
|
+
rubocop-ast (>= 1.49.0, < 2.0)
|
|
99
|
+
ruby-progressbar (~> 1.7)
|
|
100
|
+
unicode-display_width (>= 2.4.0, < 4.0)
|
|
101
|
+
rubocop-ast (1.49.1)
|
|
102
|
+
parser (>= 3.3.7.2)
|
|
103
|
+
prism (~> 1.7)
|
|
104
|
+
rubocop-performance (1.26.1)
|
|
105
|
+
lint_roller (~> 1.1)
|
|
106
|
+
rubocop (>= 1.75.0, < 2.0)
|
|
107
|
+
rubocop-ast (>= 1.47.1, < 2.0)
|
|
108
|
+
rubocop-rake (0.7.1)
|
|
109
|
+
lint_roller (~> 1.1)
|
|
110
|
+
rubocop (>= 1.72.1)
|
|
111
|
+
rubocop-rspec (3.10.2)
|
|
112
|
+
lint_roller (~> 1.1)
|
|
113
|
+
regexp_parser (>= 2.0)
|
|
114
|
+
rubocop (~> 1.86, >= 1.86.2)
|
|
115
|
+
rubocop-sorted_methods_by_call (1.2.3)
|
|
116
|
+
lint_roller
|
|
117
|
+
rubocop (>= 1.72.0)
|
|
118
|
+
ruby-progressbar (1.13.0)
|
|
119
|
+
securerandom (0.4.1)
|
|
120
|
+
steep (2.0.0)
|
|
121
|
+
concurrent-ruby (>= 1.1.10)
|
|
122
|
+
csv (>= 3.0.9)
|
|
123
|
+
fileutils (>= 1.1.0)
|
|
124
|
+
json (>= 2.1.0)
|
|
125
|
+
language_server-protocol (>= 3.17.0.4, < 4.0)
|
|
126
|
+
listen (~> 3.0)
|
|
127
|
+
logger (>= 1.3.0)
|
|
128
|
+
parser (>= 3.2)
|
|
129
|
+
prism (>= 0.25.0)
|
|
130
|
+
rainbow (>= 2.2.2, < 4.0)
|
|
131
|
+
rbs (~> 4.0)
|
|
132
|
+
securerandom (>= 0.1)
|
|
133
|
+
strscan (>= 1.0.0)
|
|
134
|
+
terminal-table (>= 2, < 5)
|
|
135
|
+
uri (>= 0.12.0)
|
|
136
|
+
strscan (3.1.8)
|
|
137
|
+
terminal-table (4.0.0)
|
|
138
|
+
unicode-display_width (>= 1.1.1, < 4)
|
|
139
|
+
tsort (0.2.0)
|
|
140
|
+
unicode-display_width (3.2.0)
|
|
141
|
+
unicode-emoji (~> 4.1)
|
|
142
|
+
unicode-emoji (4.2.0)
|
|
143
|
+
uri (1.1.1)
|
|
144
|
+
yard (0.9.44)
|
|
145
|
+
|
|
146
|
+
PLATFORMS
|
|
147
|
+
aarch64-linux-gnu
|
|
148
|
+
aarch64-linux-musl
|
|
149
|
+
arm-linux-gnu
|
|
150
|
+
arm-linux-musl
|
|
151
|
+
arm64-darwin
|
|
152
|
+
x86_64-darwin
|
|
153
|
+
x86_64-linux-gnu
|
|
154
|
+
x86_64-linux-musl
|
|
155
|
+
|
|
156
|
+
DEPENDENCIES
|
|
157
|
+
coderay
|
|
158
|
+
docscribe
|
|
159
|
+
dotenv (~> 2.7.6)
|
|
160
|
+
genius-api!
|
|
161
|
+
parallel (< 2.0)
|
|
162
|
+
rake (~> 13.0)
|
|
163
|
+
rbs
|
|
164
|
+
rspec (~> 3.4)
|
|
165
|
+
rubocop
|
|
166
|
+
rubocop-performance
|
|
167
|
+
rubocop-rake
|
|
168
|
+
rubocop-rspec
|
|
169
|
+
rubocop-sorted_methods_by_call
|
|
170
|
+
steep
|
|
171
|
+
yard
|
|
172
|
+
|
|
173
|
+
BUNDLED WITH
|
|
174
|
+
4.0.14
|