workosv2 2.15.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/CODEOWNERS +5 -0
- data/.github/pull_request_template.md +11 -0
- data/.github/renovate.json +5 -0
- data/.gitignore +49 -0
- data/.rspec +1 -0
- data/.rubocop.yml +24 -0
- data/.ruby-version +1 -0
- data/.semaphore/rubygems.yml +24 -0
- data/.semaphore/semaphore.yml +51 -0
- data/Gemfile +5 -0
- data/Gemfile.lock +126 -0
- data/Gemfile.lock.old +127 -0
- data/LICENSE +21 -0
- data/README.md +53 -0
- data/bin/build +3 -0
- data/bin/console +3 -0
- data/bin/docs +5 -0
- data/bin/publish +3 -0
- data/bin/tapioca +29 -0
- data/codecov.yml +12 -0
- data/docs/WorkOS/APIError.html +160 -0
- data/docs/WorkOS/AuditLog.html +235 -0
- data/docs/WorkOS/AuditTrail.html +235 -0
- data/docs/WorkOS/AuthenticationError.html +160 -0
- data/docs/WorkOS/Base.html +287 -0
- data/docs/WorkOS/Client.html +504 -0
- data/docs/WorkOS/InvalidRequestError.html +160 -0
- data/docs/WorkOS/Profile.html +788 -0
- data/docs/WorkOS/RequestError.html +135 -0
- data/docs/WorkOS/SSO.html +691 -0
- data/docs/WorkOS/Types/ProfileStruct.html +135 -0
- data/docs/WorkOS/Types/Provider.html +135 -0
- data/docs/WorkOS/Types.html +128 -0
- data/docs/WorkOS/WorkOSError.html +447 -0
- data/docs/WorkOS.html +324 -0
- data/docs/class_list.html +51 -0
- data/docs/css/common.css +1 -0
- data/docs/css/full_list.css +58 -0
- data/docs/css/style.css +496 -0
- data/docs/file.README.html +252 -0
- data/docs/file_list.html +56 -0
- data/docs/frames.html +17 -0
- data/docs/index.html +250 -0
- data/docs/js/app.js +314 -0
- data/docs/js/full_list.js +216 -0
- data/docs/js/jquery.js +4 -0
- data/docs/method_list.html +267 -0
- data/docs/top-level-namespace.html +110 -0
- data/lib/workosv2/audit_log_export.rb +55 -0
- data/lib/workosv2/audit_logs.rb +114 -0
- data/lib/workosv2/audit_trail.rb +111 -0
- data/lib/workosv2/challenge.rb +55 -0
- data/lib/workosv2/client.rb +186 -0
- data/lib/workosv2/configuration.rb +17 -0
- data/lib/workosv2/connection.rb +66 -0
- data/lib/workosv2/deprecated_hash_wrapper.rb +76 -0
- data/lib/workosv2/directory.rb +65 -0
- data/lib/workosv2/directory_group.rb +68 -0
- data/lib/workosv2/directory_sync.rb +218 -0
- data/lib/workosv2/directory_user.rb +97 -0
- data/lib/workosv2/errors.rb +81 -0
- data/lib/workosv2/event.rb +51 -0
- data/lib/workosv2/events.rb +52 -0
- data/lib/workosv2/factor.rb +54 -0
- data/lib/workosv2/hash_provider.rb +19 -0
- data/lib/workosv2/mfa.rb +178 -0
- data/lib/workosv2/organization.rb +57 -0
- data/lib/workosv2/organizations.rb +188 -0
- data/lib/workosv2/passwordless.rb +85 -0
- data/lib/workosv2/portal.rb +66 -0
- data/lib/workosv2/profile.rb +76 -0
- data/lib/workosv2/profile_and_token.rb +29 -0
- data/lib/workosv2/sso.rb +297 -0
- data/lib/workosv2/types/audit_log_export_struct.rb +17 -0
- data/lib/workosv2/types/challenge_struct.rb +18 -0
- data/lib/workosv2/types/connection_struct.rb +20 -0
- data/lib/workosv2/types/directory_group_struct.rb +19 -0
- data/lib/workosv2/types/directory_struct.rb +19 -0
- data/lib/workosv2/types/directory_user_struct.rb +26 -0
- data/lib/workosv2/types/event_struct.rb +15 -0
- data/lib/workosv2/types/factor_struct.rb +18 -0
- data/lib/workosv2/types/intent_enum.rb +17 -0
- data/lib/workosv2/types/list_struct.rb +13 -0
- data/lib/workosv2/types/organization_struct.rb +17 -0
- data/lib/workosv2/types/passwordless_session_struct.rb +17 -0
- data/lib/workosv2/types/profile_struct.rb +21 -0
- data/lib/workosv2/types/provider_enum.rb +15 -0
- data/lib/workosv2/types/verify_challenge_struct.rb +13 -0
- data/lib/workosv2/types/webhook_struct.rb +15 -0
- data/lib/workosv2/types.rb +25 -0
- data/lib/workosv2/verify_challenge.rb +39 -0
- data/lib/workosv2/version.rb +6 -0
- data/lib/workosv2/webhook.rb +51 -0
- data/lib/workosv2/webhooks.rb +217 -0
- data/lib/workosv2.rb +79 -0
- data/sorbet/config +2 -0
- data/sorbet/rbi/gems/addressable@2.8.0.rbi +290 -0
- data/sorbet/rbi/gems/ast@2.4.2.rbi +54 -0
- data/sorbet/rbi/gems/codecov@0.2.12.rbi +55 -0
- data/sorbet/rbi/gems/coderay@1.1.3.rbi +8 -0
- data/sorbet/rbi/gems/crack@0.4.5.rbi +57 -0
- data/sorbet/rbi/gems/diff-lcs@1.4.4.rbi +185 -0
- data/sorbet/rbi/gems/docile@1.3.5.rbi +54 -0
- data/sorbet/rbi/gems/hashdiff@1.0.1.rbi +82 -0
- data/sorbet/rbi/gems/json@2.5.1.rbi +109 -0
- data/sorbet/rbi/gems/method_source@1.0.0.rbi +8 -0
- data/sorbet/rbi/gems/parallel@1.20.1.rbi +113 -0
- data/sorbet/rbi/gems/parser@3.0.1.0.rbi +1187 -0
- data/sorbet/rbi/gems/pry@0.14.2.rbi +8 -0
- data/sorbet/rbi/gems/public_suffix@4.0.6.rbi +146 -0
- data/sorbet/rbi/gems/rainbow@3.0.0.rbi +153 -0
- data/sorbet/rbi/gems/rake@13.0.3.rbi +807 -0
- data/sorbet/rbi/gems/rbi@0.0.16.rbi +2118 -0
- data/sorbet/rbi/gems/regexp_parser@2.1.1.rbi +1117 -0
- data/sorbet/rbi/gems/rexml@3.2.5.rbi +709 -0
- data/sorbet/rbi/gems/rspec-core@3.9.3.rbi +2467 -0
- data/sorbet/rbi/gems/rspec-expectations@3.9.4.rbi +1569 -0
- data/sorbet/rbi/gems/rspec-mocks@3.9.1.rbi +1493 -0
- data/sorbet/rbi/gems/rspec-support@3.9.4.rbi +511 -0
- data/sorbet/rbi/gems/rspec@3.9.0.rbi +38 -0
- data/sorbet/rbi/gems/rubocop-ast@1.4.1.rbi +1881 -0
- data/sorbet/rbi/gems/rubocop@0.93.1.rbi +11497 -0
- data/sorbet/rbi/gems/ruby-progressbar@1.11.0.rbi +405 -0
- data/sorbet/rbi/gems/simplecov-html@0.12.3.rbi +89 -0
- data/sorbet/rbi/gems/simplecov@0.21.2.rbi +577 -0
- data/sorbet/rbi/gems/simplecov_json_formatter@0.1.2.rbi +8 -0
- data/sorbet/rbi/gems/spoom@1.1.15.rbi +1549 -0
- data/sorbet/rbi/gems/tapioca@0.7.3.rbi +1718 -0
- data/sorbet/rbi/gems/thor@1.2.1.rbi +844 -0
- data/sorbet/rbi/gems/unicode-display_width@1.7.0.rbi +22 -0
- data/sorbet/rbi/gems/unparser@0.6.2.rbi +8 -0
- data/sorbet/rbi/gems/vcr@5.0.0.rbi +699 -0
- data/sorbet/rbi/gems/webmock@3.12.2.rbi +662 -0
- data/sorbet/rbi/gems/yard-sorbet@0.8.0.rbi +268 -0
- data/sorbet/rbi/gems/yard@0.9.26.rbi +4048 -0
- data/sorbet/tapioca/config.yml +13 -0
- data/sorbet/tapioca/require.rb +4 -0
- data/spec/lib/workos/audit_logs_spec.rb +151 -0
- data/spec/lib/workos/audit_trail_spec.rb +146 -0
- data/spec/lib/workos/configuration_spec.rb +61 -0
- data/spec/lib/workos/directory_sync_spec.rb +492 -0
- data/spec/lib/workos/directory_user_spec.rb +36 -0
- data/spec/lib/workos/event_spec.rb +88 -0
- data/spec/lib/workos/mfa_spec.rb +281 -0
- data/spec/lib/workos/organizations_spec.rb +257 -0
- data/spec/lib/workos/passwordless_spec.rb +77 -0
- data/spec/lib/workos/portal_spec.rb +87 -0
- data/spec/lib/workos/sso_spec.rb +650 -0
- data/spec/lib/workos/webhooks_spec.rb +236 -0
- data/spec/spec_helper.rb +56 -0
- data/spec/support/fixtures/vcr_cassettes/audit_logs/create_event.yml +59 -0
- data/spec/support/fixtures/vcr_cassettes/audit_logs/create_event_custom_idempotency_key.yml +60 -0
- data/spec/support/fixtures/vcr_cassettes/audit_logs/create_event_invalid.yml +59 -0
- data/spec/support/fixtures/vcr_cassettes/audit_logs/create_export.yml +76 -0
- data/spec/support/fixtures/vcr_cassettes/audit_logs/create_export_with_filters.yml +77 -0
- data/spec/support/fixtures/vcr_cassettes/audit_logs/get_export.yml +73 -0
- data/spec/support/fixtures/vcr_cassettes/audit_trail/create_event.yml +65 -0
- data/spec/support/fixtures/vcr_cassettes/audit_trail/create_event_custom_idempotency_key.yml +67 -0
- data/spec/support/fixtures/vcr_cassettes/audit_trail/create_event_invalid.yml +68 -0
- data/spec/support/fixtures/vcr_cassettes/audit_trail/create_events_duplicate_idempotency_key_and_payload.yml +131 -0
- data/spec/support/fixtures/vcr_cassettes/audit_trail/create_events_duplicate_idempotency_key_different_payload.yml +134 -0
- data/spec/support/fixtures/vcr_cassettes/audit_trail/get_events.yml +61 -0
- data/spec/support/fixtures/vcr_cassettes/base/execute_request_unauthenticated.yml +66 -0
- data/spec/support/fixtures/vcr_cassettes/directory_sync/delete_directory.yml +72 -0
- data/spec/support/fixtures/vcr_cassettes/directory_sync/get_directory_with_invalid_id.yml +83 -0
- data/spec/support/fixtures/vcr_cassettes/directory_sync/get_directory_with_valid_id.yml +84 -0
- data/spec/support/fixtures/vcr_cassettes/directory_sync/get_group.yml +80 -0
- data/spec/support/fixtures/vcr_cassettes/directory_sync/get_group_with_invalid_id.yml +62 -0
- data/spec/support/fixtures/vcr_cassettes/directory_sync/get_user.yml +83 -0
- data/spec/support/fixtures/vcr_cassettes/directory_sync/get_user_with_invalid_id.yml +62 -0
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories/with_after.yml +87 -0
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories/with_before.yml +89 -0
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories/with_domain.yml +84 -0
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories/with_limit.yml +85 -0
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories/with_no_options.yml +93 -0
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_directories/with_search.yml +85 -0
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_after.yml +90 -0
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_before.yml +90 -0
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_directory.yml +90 -0
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_limit.yml +84 -0
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_no_options.yml +84 -0
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_groups/with_user.yml +82 -0
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_after.yml +186 -0
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_before.yml +88 -0
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_directory.yml +194 -0
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_group.yml +186 -0
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_limit.yml +189 -0
- data/spec/support/fixtures/vcr_cassettes/directory_sync/list_users/with_no_options.yml +74 -0
- data/spec/support/fixtures/vcr_cassettes/events/list_events_with_after.yml +80 -0
- data/spec/support/fixtures/vcr_cassettes/events/list_events_with_event.yml +80 -0
- data/spec/support/fixtures/vcr_cassettes/events/list_events_with_no_options.yml +80 -0
- data/spec/support/fixtures/vcr_cassettes/events/list_events_with_range.yml +80 -0
- data/spec/support/fixtures/vcr_cassettes/mfa/challenge_factor_generic_valid.yml +82 -0
- data/spec/support/fixtures/vcr_cassettes/mfa/challenge_factor_sms_valid.yml +82 -0
- data/spec/support/fixtures/vcr_cassettes/mfa/challenge_factor_totp_valid.yml +82 -0
- data/spec/support/fixtures/vcr_cassettes/mfa/delete_factor.yml +80 -0
- data/spec/support/fixtures/vcr_cassettes/mfa/enroll_factor_generic_valid.yml +82 -0
- data/spec/support/fixtures/vcr_cassettes/mfa/enroll_factor_sms_valid.yml +82 -0
- data/spec/support/fixtures/vcr_cassettes/mfa/enroll_factor_totp_valid.yml +82 -0
- data/spec/support/fixtures/vcr_cassettes/mfa/get_factor_invalid.yml +82 -0
- data/spec/support/fixtures/vcr_cassettes/mfa/get_factor_valid.yml +82 -0
- data/spec/support/fixtures/vcr_cassettes/mfa/verify_challenge_generic_expired.yml +84 -0
- data/spec/support/fixtures/vcr_cassettes/mfa/verify_challenge_generic_invalid.yml +84 -0
- data/spec/support/fixtures/vcr_cassettes/mfa/verify_challenge_generic_valid.yml +82 -0
- data/spec/support/fixtures/vcr_cassettes/mfa/verify_challenge_generic_valid_is_false.yml +82 -0
- data/spec/support/fixtures/vcr_cassettes/organization/create.yml +84 -0
- data/spec/support/fixtures/vcr_cassettes/organization/create_invalid.yml +72 -0
- data/spec/support/fixtures/vcr_cassettes/organization/create_with_duplicate_idempotency_key_and_different_payload.yml +155 -0
- data/spec/support/fixtures/vcr_cassettes/organization/create_with_duplicate_idempotency_key_and_payload.yml +154 -0
- data/spec/support/fixtures/vcr_cassettes/organization/create_with_idempotency_key.yml +79 -0
- data/spec/support/fixtures/vcr_cassettes/organization/delete.yml +72 -0
- data/spec/support/fixtures/vcr_cassettes/organization/delete_invalid.yml +72 -0
- data/spec/support/fixtures/vcr_cassettes/organization/get.yml +84 -0
- data/spec/support/fixtures/vcr_cassettes/organization/get_invalid.yml +72 -0
- data/spec/support/fixtures/vcr_cassettes/organization/list.yml +87 -0
- data/spec/support/fixtures/vcr_cassettes/organization/update.yml +84 -0
- data/spec/support/fixtures/vcr_cassettes/passwordless/create_session.yml +72 -0
- data/spec/support/fixtures/vcr_cassettes/passwordless/create_session_invalid.yml +73 -0
- data/spec/support/fixtures/vcr_cassettes/passwordless/send_session.yml +72 -0
- data/spec/support/fixtures/vcr_cassettes/passwordless/send_session_invalid.yml +73 -0
- data/spec/support/fixtures/vcr_cassettes/portal/generate_link_audit_logs.yml +72 -0
- data/spec/support/fixtures/vcr_cassettes/portal/generate_link_dsync.yml +72 -0
- data/spec/support/fixtures/vcr_cassettes/portal/generate_link_invalid.yml +72 -0
- data/spec/support/fixtures/vcr_cassettes/portal/generate_link_sso.yml +72 -0
- data/spec/support/fixtures/vcr_cassettes/sso/delete_connection_with_invalid_id.yml +72 -0
- data/spec/support/fixtures/vcr_cassettes/sso/delete_connection_with_valid_id.yml +70 -0
- data/spec/support/fixtures/vcr_cassettes/sso/get_connection_with_invalid_id.yml +72 -0
- data/spec/support/fixtures/vcr_cassettes/sso/get_connection_with_valid_id.yml +86 -0
- data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_after.yml +83 -0
- data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_before.yml +86 -0
- data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_connection_type.yml +90 -0
- data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_domain.yml +86 -0
- data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_limit.yml +83 -0
- data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_no_options.yml +89 -0
- data/spec/support/fixtures/vcr_cassettes/sso/list_connections/with_organization_id.yml +86 -0
- data/spec/support/fixtures/vcr_cassettes/sso/profile.yml +74 -0
- data/spec/support/profile.txt +1 -0
- data/spec/support/shared_examples/client_spec.rb +30 -0
- data/spec/support/webhook_payload.txt +1 -0
- data/workosv2.gemspec +38 -0
- metadata +531 -0
@@ -0,0 +1,54 @@
|
|
1
|
+
# typed: true
|
2
|
+
|
3
|
+
# DO NOT EDIT MANUALLY
|
4
|
+
# This is an autogenerated file for types exported from the `ast` gem.
|
5
|
+
# Please instead update this file by running `bin/tapioca gem ast`.
|
6
|
+
|
7
|
+
module AST; end
|
8
|
+
|
9
|
+
class AST::Node
|
10
|
+
def initialize(type, children = T.unsafe(nil), properties = T.unsafe(nil)); end
|
11
|
+
|
12
|
+
def +(array); end
|
13
|
+
def <<(element); end
|
14
|
+
def ==(other); end
|
15
|
+
def append(element); end
|
16
|
+
def children; end
|
17
|
+
def clone; end
|
18
|
+
def concat(array); end
|
19
|
+
def deconstruct; end
|
20
|
+
def dup; end
|
21
|
+
def eql?(other); end
|
22
|
+
def hash; end
|
23
|
+
def inspect(indent = T.unsafe(nil)); end
|
24
|
+
def to_a; end
|
25
|
+
def to_ast; end
|
26
|
+
def to_s(indent = T.unsafe(nil)); end
|
27
|
+
def to_sexp(indent = T.unsafe(nil)); end
|
28
|
+
def to_sexp_array; end
|
29
|
+
def type; end
|
30
|
+
def updated(type = T.unsafe(nil), children = T.unsafe(nil), properties = T.unsafe(nil)); end
|
31
|
+
|
32
|
+
protected
|
33
|
+
|
34
|
+
def assign_properties(properties); end
|
35
|
+
def fancy_type; end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
def original_dup; end
|
40
|
+
end
|
41
|
+
|
42
|
+
class AST::Processor
|
43
|
+
include ::AST::Processor::Mixin
|
44
|
+
end
|
45
|
+
|
46
|
+
module AST::Processor::Mixin
|
47
|
+
def handler_missing(node); end
|
48
|
+
def process(node); end
|
49
|
+
def process_all(nodes); end
|
50
|
+
end
|
51
|
+
|
52
|
+
module AST::Sexp
|
53
|
+
def s(type, *children); end
|
54
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# typed: true
|
2
|
+
|
3
|
+
# DO NOT EDIT MANUALLY
|
4
|
+
# This is an autogenerated file for types exported from the `codecov` gem.
|
5
|
+
# Please instead update this file by running `bin/tapioca gem codecov`.
|
6
|
+
|
7
|
+
class SimpleCov::Formatter::Codecov
|
8
|
+
def build_params(ci); end
|
9
|
+
def create_report(report); end
|
10
|
+
def detect_ci; end
|
11
|
+
def display_header; end
|
12
|
+
def format(result, disable_net_blockers = T.unsafe(nil)); end
|
13
|
+
def gzip_report(report); end
|
14
|
+
def handle_report_response(report); end
|
15
|
+
def retry_request(req, https); end
|
16
|
+
def upload_to_codecov(ci, report); end
|
17
|
+
def upload_to_v2(url, report, query, query_without_token); end
|
18
|
+
def upload_to_v4(url, report, query, query_without_token); end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def black(str); end
|
23
|
+
def file_network; end
|
24
|
+
def file_to_codecov(file); end
|
25
|
+
def green(str); end
|
26
|
+
def net_blockers(switch); end
|
27
|
+
def red(str); end
|
28
|
+
def result_to_codecov(result); end
|
29
|
+
def result_to_codecov_coverage(result); end
|
30
|
+
def result_to_codecov_messages(result); end
|
31
|
+
def result_to_codecov_report(result); end
|
32
|
+
def shortened_filename(file); end
|
33
|
+
end
|
34
|
+
|
35
|
+
SimpleCov::Formatter::Codecov::APPVEYOR = T.let(T.unsafe(nil), String)
|
36
|
+
SimpleCov::Formatter::Codecov::AZUREPIPELINES = T.let(T.unsafe(nil), String)
|
37
|
+
SimpleCov::Formatter::Codecov::BITBUCKET = T.let(T.unsafe(nil), String)
|
38
|
+
SimpleCov::Formatter::Codecov::BITRISE = T.let(T.unsafe(nil), String)
|
39
|
+
SimpleCov::Formatter::Codecov::BUILDKITE = T.let(T.unsafe(nil), String)
|
40
|
+
SimpleCov::Formatter::Codecov::CIRCLE = T.let(T.unsafe(nil), String)
|
41
|
+
SimpleCov::Formatter::Codecov::CODEBUILD = T.let(T.unsafe(nil), String)
|
42
|
+
SimpleCov::Formatter::Codecov::CODESHIP = T.let(T.unsafe(nil), String)
|
43
|
+
SimpleCov::Formatter::Codecov::DRONEIO = T.let(T.unsafe(nil), String)
|
44
|
+
SimpleCov::Formatter::Codecov::GITHUB = T.let(T.unsafe(nil), String)
|
45
|
+
SimpleCov::Formatter::Codecov::GITLAB = T.let(T.unsafe(nil), String)
|
46
|
+
SimpleCov::Formatter::Codecov::HEROKU = T.let(T.unsafe(nil), String)
|
47
|
+
SimpleCov::Formatter::Codecov::JENKINS = T.let(T.unsafe(nil), String)
|
48
|
+
SimpleCov::Formatter::Codecov::RECOGNIZED_CIS = T.let(T.unsafe(nil), Array)
|
49
|
+
SimpleCov::Formatter::Codecov::SEMAPHORE = T.let(T.unsafe(nil), String)
|
50
|
+
SimpleCov::Formatter::Codecov::SHIPPABLE = T.let(T.unsafe(nil), String)
|
51
|
+
SimpleCov::Formatter::Codecov::SOLANO = T.let(T.unsafe(nil), String)
|
52
|
+
SimpleCov::Formatter::Codecov::TEAMCITY = T.let(T.unsafe(nil), String)
|
53
|
+
SimpleCov::Formatter::Codecov::TRAVIS = T.let(T.unsafe(nil), String)
|
54
|
+
SimpleCov::Formatter::Codecov::VERSION = T.let(T.unsafe(nil), String)
|
55
|
+
SimpleCov::Formatter::Codecov::WERCKER = T.let(T.unsafe(nil), String)
|
@@ -0,0 +1,8 @@
|
|
1
|
+
# typed: true
|
2
|
+
|
3
|
+
# DO NOT EDIT MANUALLY
|
4
|
+
# This is an autogenerated file for types exported from the `coderay` gem.
|
5
|
+
# Please instead update this file by running `bin/tapioca gem coderay`.
|
6
|
+
|
7
|
+
# THIS IS AN EMPTY RBI FILE.
|
8
|
+
# see https://github.com/Shopify/tapioca/wiki/Manual-Gem-Requires
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# typed: true
|
2
|
+
|
3
|
+
# DO NOT EDIT MANUALLY
|
4
|
+
# This is an autogenerated file for types exported from the `crack` gem.
|
5
|
+
# Please instead update this file by running `bin/tapioca gem crack`.
|
6
|
+
|
7
|
+
module Crack; end
|
8
|
+
|
9
|
+
class Crack::REXMLParser
|
10
|
+
class << self
|
11
|
+
def parse(xml); end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
class Crack::XML
|
16
|
+
class << self
|
17
|
+
def parse(xml); end
|
18
|
+
def parser; end
|
19
|
+
def parser=(parser); end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
class REXMLUtilityNode
|
24
|
+
def initialize(name, normalized_attributes = T.unsafe(nil)); end
|
25
|
+
|
26
|
+
def add_node(node); end
|
27
|
+
def attributes; end
|
28
|
+
def attributes=(_arg0); end
|
29
|
+
def children; end
|
30
|
+
def children=(_arg0); end
|
31
|
+
def inner_html; end
|
32
|
+
def name; end
|
33
|
+
def name=(_arg0); end
|
34
|
+
def to_hash; end
|
35
|
+
def to_html; end
|
36
|
+
def to_s; end
|
37
|
+
def type; end
|
38
|
+
def type=(_arg0); end
|
39
|
+
def typecast_value(value); end
|
40
|
+
def undasherize_keys(params); end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
def unnormalize_xml_entities(value); end
|
45
|
+
|
46
|
+
class << self
|
47
|
+
def available_typecasts; end
|
48
|
+
def available_typecasts=(obj); end
|
49
|
+
def typecasts; end
|
50
|
+
def typecasts=(obj); end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
class REXMLUtiliyNodeString < ::String
|
55
|
+
def attributes; end
|
56
|
+
def attributes=(_arg0); end
|
57
|
+
end
|
@@ -0,0 +1,185 @@
|
|
1
|
+
# typed: true
|
2
|
+
|
3
|
+
# DO NOT EDIT MANUALLY
|
4
|
+
# This is an autogenerated file for types exported from the `diff-lcs` gem.
|
5
|
+
# Please instead update this file by running `bin/tapioca gem diff-lcs`.
|
6
|
+
|
7
|
+
module Diff; end
|
8
|
+
|
9
|
+
module Diff::LCS
|
10
|
+
def diff(other, callbacks = T.unsafe(nil), &block); end
|
11
|
+
def lcs(other, &block); end
|
12
|
+
def patch(patchset); end
|
13
|
+
def patch!(patchset); end
|
14
|
+
def patch_me(patchset); end
|
15
|
+
def sdiff(other, callbacks = T.unsafe(nil), &block); end
|
16
|
+
def traverse_balanced(other, callbacks = T.unsafe(nil), &block); end
|
17
|
+
def traverse_sequences(other, callbacks = T.unsafe(nil), &block); end
|
18
|
+
def unpatch(patchset); end
|
19
|
+
def unpatch!(patchset); end
|
20
|
+
def unpatch_me(patchset); end
|
21
|
+
|
22
|
+
class << self
|
23
|
+
def LCS(seq1, seq2, &block); end
|
24
|
+
def callbacks_for(callbacks); end
|
25
|
+
def diff(seq1, seq2, callbacks = T.unsafe(nil), &block); end
|
26
|
+
def lcs(seq1, seq2, &block); end
|
27
|
+
def patch(src, patchset, direction = T.unsafe(nil)); end
|
28
|
+
def patch!(src, patchset); end
|
29
|
+
def sdiff(seq1, seq2, callbacks = T.unsafe(nil), &block); end
|
30
|
+
def traverse_balanced(seq1, seq2, callbacks = T.unsafe(nil)); end
|
31
|
+
def traverse_sequences(seq1, seq2, callbacks = T.unsafe(nil)); end
|
32
|
+
def unpatch!(src, patchset); end
|
33
|
+
|
34
|
+
private
|
35
|
+
|
36
|
+
def diff_traversal(method, seq1, seq2, callbacks, &block); end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
Diff::LCS::BalancedCallbacks = Diff::LCS::DefaultCallbacks
|
41
|
+
|
42
|
+
class Diff::LCS::Block
|
43
|
+
def initialize(chunk); end
|
44
|
+
|
45
|
+
def changes; end
|
46
|
+
def diff_size; end
|
47
|
+
def insert; end
|
48
|
+
def op; end
|
49
|
+
def remove; end
|
50
|
+
end
|
51
|
+
|
52
|
+
class Diff::LCS::Change
|
53
|
+
include ::Comparable
|
54
|
+
|
55
|
+
def initialize(*args); end
|
56
|
+
|
57
|
+
def <=>(other); end
|
58
|
+
def ==(other); end
|
59
|
+
def action; end
|
60
|
+
def adding?; end
|
61
|
+
def changed?; end
|
62
|
+
def deleting?; end
|
63
|
+
def element; end
|
64
|
+
def finished_a?; end
|
65
|
+
def finished_b?; end
|
66
|
+
def inspect(*_args); end
|
67
|
+
def position; end
|
68
|
+
def to_a; end
|
69
|
+
def to_ary; end
|
70
|
+
def unchanged?; end
|
71
|
+
|
72
|
+
class << self
|
73
|
+
def from_a(arr); end
|
74
|
+
def valid_action?(action); end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
Diff::LCS::Change::IntClass = Integer
|
79
|
+
Diff::LCS::Change::VALID_ACTIONS = T.let(T.unsafe(nil), Array)
|
80
|
+
|
81
|
+
class Diff::LCS::ContextChange < ::Diff::LCS::Change
|
82
|
+
def initialize(*args); end
|
83
|
+
|
84
|
+
def <=>(other); end
|
85
|
+
def ==(other); end
|
86
|
+
def new_element; end
|
87
|
+
def new_position; end
|
88
|
+
def old_element; end
|
89
|
+
def old_position; end
|
90
|
+
def to_a; end
|
91
|
+
def to_ary; end
|
92
|
+
|
93
|
+
class << self
|
94
|
+
def from_a(arr); end
|
95
|
+
def simplify(event); end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
class Diff::LCS::ContextDiffCallbacks < ::Diff::LCS::DiffCallbacks
|
100
|
+
def change(event); end
|
101
|
+
def discard_a(event); end
|
102
|
+
def discard_b(event); end
|
103
|
+
end
|
104
|
+
|
105
|
+
class Diff::LCS::DefaultCallbacks
|
106
|
+
class << self
|
107
|
+
def change(event); end
|
108
|
+
def discard_a(event); end
|
109
|
+
def discard_b(event); end
|
110
|
+
def match(event); end
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
class Diff::LCS::DiffCallbacks
|
115
|
+
def initialize; end
|
116
|
+
|
117
|
+
def diffs; end
|
118
|
+
def discard_a(event); end
|
119
|
+
def discard_b(event); end
|
120
|
+
def finish; end
|
121
|
+
def match(_event); end
|
122
|
+
|
123
|
+
private
|
124
|
+
|
125
|
+
def finish_hunk; end
|
126
|
+
end
|
127
|
+
|
128
|
+
class Diff::LCS::Hunk
|
129
|
+
def initialize(data_old, data_new, piece, flag_context, file_length_difference); end
|
130
|
+
|
131
|
+
def blocks; end
|
132
|
+
def diff(format, last = T.unsafe(nil)); end
|
133
|
+
def end_new; end
|
134
|
+
def end_old; end
|
135
|
+
def file_length_difference; end
|
136
|
+
def flag_context; end
|
137
|
+
def flag_context=(context); end
|
138
|
+
def merge(hunk); end
|
139
|
+
def missing_last_newline?(data); end
|
140
|
+
def overlaps?(hunk); end
|
141
|
+
def start_new; end
|
142
|
+
def start_old; end
|
143
|
+
def unshift(hunk); end
|
144
|
+
|
145
|
+
private
|
146
|
+
|
147
|
+
def context_diff(last = T.unsafe(nil)); end
|
148
|
+
def context_range(mode, op, last = T.unsafe(nil)); end
|
149
|
+
def ed_diff(format, _last = T.unsafe(nil)); end
|
150
|
+
def encode(literal, target_encoding = T.unsafe(nil)); end
|
151
|
+
def encode_as(string, *args); end
|
152
|
+
def old_diff(_last = T.unsafe(nil)); end
|
153
|
+
def unified_diff(last = T.unsafe(nil)); end
|
154
|
+
def unified_range(mode, last); end
|
155
|
+
end
|
156
|
+
|
157
|
+
Diff::LCS::Hunk::ED_DIFF_OP_ACTION = T.let(T.unsafe(nil), Hash)
|
158
|
+
Diff::LCS::Hunk::OLD_DIFF_OP_ACTION = T.let(T.unsafe(nil), Hash)
|
159
|
+
|
160
|
+
module Diff::LCS::Internals
|
161
|
+
class << self
|
162
|
+
def analyze_patchset(patchset, depth = T.unsafe(nil)); end
|
163
|
+
def intuit_diff_direction(src, patchset, limit = T.unsafe(nil)); end
|
164
|
+
def lcs(a, b); end
|
165
|
+
|
166
|
+
private
|
167
|
+
|
168
|
+
def inverse_vector(a, vector); end
|
169
|
+
def position_hash(enum, interval); end
|
170
|
+
def replace_next_larger(enum, value, last_index = T.unsafe(nil)); end
|
171
|
+
end
|
172
|
+
end
|
173
|
+
|
174
|
+
class Diff::LCS::SDiffCallbacks
|
175
|
+
def initialize; end
|
176
|
+
|
177
|
+
def change(event); end
|
178
|
+
def diffs; end
|
179
|
+
def discard_a(event); end
|
180
|
+
def discard_b(event); end
|
181
|
+
def match(event); end
|
182
|
+
end
|
183
|
+
|
184
|
+
Diff::LCS::SequenceCallbacks = Diff::LCS::DefaultCallbacks
|
185
|
+
Diff::LCS::VERSION = T.let(T.unsafe(nil), String)
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# typed: true
|
2
|
+
|
3
|
+
# DO NOT EDIT MANUALLY
|
4
|
+
# This is an autogenerated file for types exported from the `docile` gem.
|
5
|
+
# Please instead update this file by running `bin/tapioca gem docile`.
|
6
|
+
|
7
|
+
module Docile
|
8
|
+
extend ::Docile::Execution
|
9
|
+
|
10
|
+
private
|
11
|
+
|
12
|
+
def dsl_eval(dsl, *args, **_arg2, &block); end
|
13
|
+
def dsl_eval_immutable(dsl, *args, **_arg2, &block); end
|
14
|
+
def dsl_eval_with_block_return(dsl, *args, **_arg2, &block); end
|
15
|
+
|
16
|
+
class << self
|
17
|
+
def dsl_eval(dsl, *args, **_arg2, &block); end
|
18
|
+
def dsl_eval_immutable(dsl, *args, **_arg2, &block); end
|
19
|
+
def dsl_eval_with_block_return(dsl, *args, **_arg2, &block); end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
module Docile::BacktraceFilter
|
24
|
+
def backtrace; end
|
25
|
+
def backtrace_locations; end
|
26
|
+
end
|
27
|
+
|
28
|
+
Docile::BacktraceFilter::FILTER_PATTERN = T.let(T.unsafe(nil), Regexp)
|
29
|
+
|
30
|
+
class Docile::ChainingFallbackContextProxy < ::Docile::FallbackContextProxy
|
31
|
+
def method_missing(method, *args, **_arg2, &block); end
|
32
|
+
end
|
33
|
+
|
34
|
+
module Docile::Execution
|
35
|
+
private
|
36
|
+
|
37
|
+
def exec_in_proxy_context(dsl, proxy_type, *args, **_arg3, &block); end
|
38
|
+
|
39
|
+
class << self
|
40
|
+
def exec_in_proxy_context(dsl, proxy_type, *args, **_arg3, &block); end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
class Docile::FallbackContextProxy
|
45
|
+
def initialize(receiver, fallback); end
|
46
|
+
|
47
|
+
def instance_variables; end
|
48
|
+
def method_missing(method, *args, **_arg2, &block); end
|
49
|
+
end
|
50
|
+
|
51
|
+
Docile::FallbackContextProxy::NON_FALLBACK_METHODS = T.let(T.unsafe(nil), Set)
|
52
|
+
Docile::FallbackContextProxy::NON_PROXIED_INSTANCE_VARIABLES = T.let(T.unsafe(nil), Set)
|
53
|
+
Docile::FallbackContextProxy::NON_PROXIED_METHODS = T.let(T.unsafe(nil), Set)
|
54
|
+
Docile::VERSION = T.let(T.unsafe(nil), String)
|
@@ -0,0 +1,82 @@
|
|
1
|
+
# typed: true
|
2
|
+
|
3
|
+
# DO NOT EDIT MANUALLY
|
4
|
+
# This is an autogenerated file for types exported from the `hashdiff` gem.
|
5
|
+
# Please instead update this file by running `bin/tapioca gem hashdiff`.
|
6
|
+
|
7
|
+
module Hashdiff
|
8
|
+
class << self
|
9
|
+
def best_diff(obj1, obj2, options = T.unsafe(nil), &block); end
|
10
|
+
def comparable?(obj1, obj2, strict = T.unsafe(nil)); end
|
11
|
+
def compare_values(obj1, obj2, options = T.unsafe(nil)); end
|
12
|
+
def count_diff(diffs); end
|
13
|
+
def count_nodes(obj); end
|
14
|
+
def custom_compare(method, key, obj1, obj2); end
|
15
|
+
def decode_property_path(path, delimiter = T.unsafe(nil)); end
|
16
|
+
def diff(obj1, obj2, options = T.unsafe(nil), &block); end
|
17
|
+
def diff_array_lcs(arraya, arrayb, options = T.unsafe(nil)); end
|
18
|
+
def lcs(arraya, arrayb, options = T.unsafe(nil)); end
|
19
|
+
def node(hash, parts); end
|
20
|
+
def patch!(obj, changes, options = T.unsafe(nil)); end
|
21
|
+
def prefix_append_array_index(prefix, array_index, opts); end
|
22
|
+
def prefix_append_key(prefix, key, opts); end
|
23
|
+
def similar?(obja, objb, options = T.unsafe(nil)); end
|
24
|
+
def unpatch!(obj, changes, options = T.unsafe(nil)); end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def any_hash_or_array?(obja, objb); end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
class Hashdiff::CompareHashes
|
33
|
+
class << self
|
34
|
+
def call(obj1, obj2, opts = T.unsafe(nil)); end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
class Hashdiff::LcsCompareArrays
|
39
|
+
class << self
|
40
|
+
def call(obj1, obj2, opts = T.unsafe(nil)); end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
class Hashdiff::LinearCompareArray
|
45
|
+
def initialize(old_array, new_array, options); end
|
46
|
+
|
47
|
+
def call; end
|
48
|
+
|
49
|
+
private
|
50
|
+
|
51
|
+
def additions; end
|
52
|
+
def append_addition(item, index); end
|
53
|
+
def append_addititions_before_match(match_index); end
|
54
|
+
def append_deletion(item, index); end
|
55
|
+
def append_deletions_before_match(match_index); end
|
56
|
+
def append_differences(difference); end
|
57
|
+
def changes; end
|
58
|
+
def compare_at_index; end
|
59
|
+
def deletions; end
|
60
|
+
def differences; end
|
61
|
+
def expected_additions; end
|
62
|
+
def expected_additions=(_arg0); end
|
63
|
+
def extra_items_in_new_array?; end
|
64
|
+
def extra_items_in_old_array?; end
|
65
|
+
def index_of_match_after_additions; end
|
66
|
+
def index_of_match_after_deletions; end
|
67
|
+
def item_difference(old_item, new_item, item_index); end
|
68
|
+
def iterated_through_both_arrays?; end
|
69
|
+
def new_array; end
|
70
|
+
def new_index; end
|
71
|
+
def new_index=(_arg0); end
|
72
|
+
def old_array; end
|
73
|
+
def old_index; end
|
74
|
+
def old_index=(_arg0); end
|
75
|
+
def options; end
|
76
|
+
|
77
|
+
class << self
|
78
|
+
def call(old_array, new_array, options = T.unsafe(nil)); end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
Hashdiff::VERSION = T.let(T.unsafe(nil), String)
|
@@ -0,0 +1,109 @@
|
|
1
|
+
# typed: true
|
2
|
+
|
3
|
+
# DO NOT EDIT MANUALLY
|
4
|
+
# This is an autogenerated file for types exported from the `json` gem.
|
5
|
+
# Please instead update this file by running `bin/tapioca gem json`.
|
6
|
+
|
7
|
+
class Class < ::Module
|
8
|
+
def json_creatable?; end
|
9
|
+
end
|
10
|
+
|
11
|
+
module JSON
|
12
|
+
private
|
13
|
+
|
14
|
+
def dump(obj, anIO = T.unsafe(nil), limit = T.unsafe(nil)); end
|
15
|
+
def fast_generate(obj, opts = T.unsafe(nil)); end
|
16
|
+
def fast_unparse(obj, opts = T.unsafe(nil)); end
|
17
|
+
def generate(obj, opts = T.unsafe(nil)); end
|
18
|
+
def load(source, proc = T.unsafe(nil), options = T.unsafe(nil)); end
|
19
|
+
def load_file(filespec, opts = T.unsafe(nil)); end
|
20
|
+
def load_file!(filespec, opts = T.unsafe(nil)); end
|
21
|
+
def parse(source, opts = T.unsafe(nil)); end
|
22
|
+
def parse!(source, opts = T.unsafe(nil)); end
|
23
|
+
def pretty_generate(obj, opts = T.unsafe(nil)); end
|
24
|
+
def pretty_unparse(obj, opts = T.unsafe(nil)); end
|
25
|
+
def recurse_proc(result, &proc); end
|
26
|
+
def restore(source, proc = T.unsafe(nil), options = T.unsafe(nil)); end
|
27
|
+
def unparse(obj, opts = T.unsafe(nil)); end
|
28
|
+
|
29
|
+
class << self
|
30
|
+
def [](object, opts = T.unsafe(nil)); end
|
31
|
+
def create_fast_state; end
|
32
|
+
def create_id; end
|
33
|
+
def create_id=(new_value); end
|
34
|
+
def create_pretty_state; end
|
35
|
+
def deep_const_get(path); end
|
36
|
+
def dump(obj, anIO = T.unsafe(nil), limit = T.unsafe(nil)); end
|
37
|
+
def dump_default_options; end
|
38
|
+
def dump_default_options=(_arg0); end
|
39
|
+
def fast_generate(obj, opts = T.unsafe(nil)); end
|
40
|
+
def fast_unparse(obj, opts = T.unsafe(nil)); end
|
41
|
+
def generate(obj, opts = T.unsafe(nil)); end
|
42
|
+
def generator; end
|
43
|
+
def generator=(generator); end
|
44
|
+
def iconv(to, from, string); end
|
45
|
+
def load(source, proc = T.unsafe(nil), options = T.unsafe(nil)); end
|
46
|
+
def load_default_options; end
|
47
|
+
def load_default_options=(_arg0); end
|
48
|
+
def load_file(filespec, opts = T.unsafe(nil)); end
|
49
|
+
def load_file!(filespec, opts = T.unsafe(nil)); end
|
50
|
+
def parse(source, opts = T.unsafe(nil)); end
|
51
|
+
def parse!(source, opts = T.unsafe(nil)); end
|
52
|
+
def parser; end
|
53
|
+
def parser=(parser); end
|
54
|
+
def pretty_generate(obj, opts = T.unsafe(nil)); end
|
55
|
+
def pretty_unparse(obj, opts = T.unsafe(nil)); end
|
56
|
+
def recurse_proc(result, &proc); end
|
57
|
+
def restore(source, proc = T.unsafe(nil), options = T.unsafe(nil)); end
|
58
|
+
def state; end
|
59
|
+
def state=(_arg0); end
|
60
|
+
def unparse(obj, opts = T.unsafe(nil)); end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
JSON::CREATE_ID_TLS_KEY = T.let(T.unsafe(nil), String)
|
65
|
+
JSON::DEFAULT_CREATE_ID = T.let(T.unsafe(nil), String)
|
66
|
+
|
67
|
+
class JSON::GenericObject < ::OpenStruct
|
68
|
+
def as_json(*_arg0); end
|
69
|
+
def to_hash; end
|
70
|
+
def to_json(*a); end
|
71
|
+
def |(other); end
|
72
|
+
|
73
|
+
class << self
|
74
|
+
def dump(obj, *args); end
|
75
|
+
def from_hash(object); end
|
76
|
+
def json_creatable=(_arg0); end
|
77
|
+
def json_creatable?; end
|
78
|
+
def json_create(data); end
|
79
|
+
def load(source, proc = T.unsafe(nil), opts = T.unsafe(nil)); end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
class JSON::JSONError < ::StandardError
|
84
|
+
class << self
|
85
|
+
def wrap(exception); end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
JSON::Parser = JSON::Ext::Parser
|
90
|
+
JSON::State = JSON::Ext::Generator::State
|
91
|
+
JSON::UnparserError = JSON::GeneratorError
|
92
|
+
|
93
|
+
module Kernel
|
94
|
+
private
|
95
|
+
|
96
|
+
def JSON(object, *args); end
|
97
|
+
def j(*objs); end
|
98
|
+
def jj(*objs); end
|
99
|
+
end
|
100
|
+
|
101
|
+
class Set
|
102
|
+
include ::Enumerable
|
103
|
+
end
|
104
|
+
|
105
|
+
Set::InspectKey = T.let(T.unsafe(nil), Symbol)
|
106
|
+
|
107
|
+
class Symbol
|
108
|
+
include ::Comparable
|
109
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
# typed: true
|
2
|
+
|
3
|
+
# DO NOT EDIT MANUALLY
|
4
|
+
# This is an autogenerated file for types exported from the `method_source` gem.
|
5
|
+
# Please instead update this file by running `bin/tapioca gem method_source`.
|
6
|
+
|
7
|
+
# THIS IS AN EMPTY RBI FILE.
|
8
|
+
# see https://github.com/Shopify/tapioca/wiki/Manual-Gem-Requires
|