alchemrest 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.rspec +3 -0
- data/.rubocop.yml +22 -0
- data/.rubocop_todo.yml +242 -0
- data/.ruby-version +1 -0
- data/Appraisals +19 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +378 -0
- data/Rakefile +29 -0
- data/alchemrest.gemspec +71 -0
- data/coach.yml +5 -0
- data/examples/bank_api/client.rb +31 -0
- data/examples/bank_api/data/account.rb +21 -0
- data/examples/bank_api/data/ach.rb +16 -0
- data/examples/bank_api/data/business_account.rb +22 -0
- data/examples/bank_api/data/card.rb +21 -0
- data/examples/bank_api/data/check.rb +19 -0
- data/examples/bank_api/data/product.rb +20 -0
- data/examples/bank_api/data/transaction.rb +49 -0
- data/examples/bank_api/data/user.rb +27 -0
- data/examples/bank_api/factories.rb +68 -0
- data/examples/bank_api/graph_visualization.rb +45 -0
- data/examples/bank_api/positive_interest_string.rb +33 -0
- data/examples/bank_api/requests/delete_user.rb +17 -0
- data/examples/bank_api/requests/get_business_account.rb +24 -0
- data/examples/bank_api/requests/get_products.rb +12 -0
- data/examples/bank_api/requests/get_transactions.rb +34 -0
- data/examples/bank_api/requests/get_user.rb +19 -0
- data/examples/bank_api/requests/post_transaction.rb +20 -0
- data/examples/bank_api/requests/update_user.rb +28 -0
- data/examples/bank_api/root.rb +52 -0
- data/examples/bank_api.rb +33 -0
- data/gemfiles/faraday_2.gemfile +9 -0
- data/gemfiles/faraday_2.gemfile.lock +363 -0
- data/gemfiles/rails_7_0.gemfile.lock +341 -0
- data/gemfiles/rails_7_2.gemfile +9 -0
- data/gemfiles/rails_7_2.gemfile.lock +384 -0
- data/gemfiles/rails_8_0.gemfile +9 -0
- data/gemfiles/rails_8_0.gemfile.lock +385 -0
- data/lib/alchemrest/circuit_breaker.rb +84 -0
- data/lib/alchemrest/client/configuration/connection.rb +83 -0
- data/lib/alchemrest/client/configuration.rb +89 -0
- data/lib/alchemrest/client.rb +48 -0
- data/lib/alchemrest/cop.rb +8 -0
- data/lib/alchemrest/data/capture_configuration.rb +77 -0
- data/lib/alchemrest/data/field.rb +36 -0
- data/lib/alchemrest/data/graph.rb +40 -0
- data/lib/alchemrest/data/record.rb +60 -0
- data/lib/alchemrest/data/schema.rb +80 -0
- data/lib/alchemrest/data.rb +9 -0
- data/lib/alchemrest/endpoint_definition.rb +47 -0
- data/lib/alchemrest/error.rb +122 -0
- data/lib/alchemrest/factory_bot.rb +64 -0
- data/lib/alchemrest/faraday_middleware/external_api_instrumentation.rb +24 -0
- data/lib/alchemrest/faraday_middleware/json_parser.rb +30 -0
- data/lib/alchemrest/faraday_middleware/kill_switch.rb +22 -0
- data/lib/alchemrest/faraday_middleware/underscore_response.rb +24 -0
- data/lib/alchemrest/hash_path.rb +81 -0
- data/lib/alchemrest/http_request.rb +75 -0
- data/lib/alchemrest/kill_switch/adapters.rb +88 -0
- data/lib/alchemrest/kill_switch.rb +31 -0
- data/lib/alchemrest/railtie.rb +25 -0
- data/lib/alchemrest/request/endpoint.rb +29 -0
- data/lib/alchemrest/request/returns.rb +46 -0
- data/lib/alchemrest/request.rb +80 -0
- data/lib/alchemrest/request_definition/builder.rb +13 -0
- data/lib/alchemrest/request_definition.rb +26 -0
- data/lib/alchemrest/response/pipeline/extract_payload.rb +64 -0
- data/lib/alchemrest/response/pipeline/final.rb +11 -0
- data/lib/alchemrest/response/pipeline/omit.rb +46 -0
- data/lib/alchemrest/response/pipeline/sanitize.rb +59 -0
- data/lib/alchemrest/response/pipeline/transform.rb +26 -0
- data/lib/alchemrest/response/pipeline/was_successful.rb +29 -0
- data/lib/alchemrest/response/pipeline.rb +71 -0
- data/lib/alchemrest/response.rb +73 -0
- data/lib/alchemrest/response_captured_handler.rb +68 -0
- data/lib/alchemrest/result/halt.rb +15 -0
- data/lib/alchemrest/result/try_helpers.rb +16 -0
- data/lib/alchemrest/result.rb +128 -0
- data/lib/alchemrest/root.rb +77 -0
- data/lib/alchemrest/transforms/base_to_type_transform_registry.rb +42 -0
- data/lib/alchemrest/transforms/constrainable.rb +41 -0
- data/lib/alchemrest/transforms/constraint/block.rb +22 -0
- data/lib/alchemrest/transforms/constraint/greater_than.rb +19 -0
- data/lib/alchemrest/transforms/constraint/greater_than_or_eq.rb +19 -0
- data/lib/alchemrest/transforms/constraint/in_list.rb +19 -0
- data/lib/alchemrest/transforms/constraint/is_instance_of.rb +19 -0
- data/lib/alchemrest/transforms/constraint/is_uuid.rb +19 -0
- data/lib/alchemrest/transforms/constraint/less_than.rb +19 -0
- data/lib/alchemrest/transforms/constraint/less_than_or_eq.rb +19 -0
- data/lib/alchemrest/transforms/constraint/matches_regex.rb +19 -0
- data/lib/alchemrest/transforms/constraint/max_length.rb +19 -0
- data/lib/alchemrest/transforms/constraint/min_length.rb +19 -0
- data/lib/alchemrest/transforms/constraint.rb +17 -0
- data/lib/alchemrest/transforms/constraint_builder/for_number.rb +25 -0
- data/lib/alchemrest/transforms/constraint_builder/for_string.rb +21 -0
- data/lib/alchemrest/transforms/constraint_builder.rb +15 -0
- data/lib/alchemrest/transforms/date_transform.rb +30 -0
- data/lib/alchemrest/transforms/enum.rb +52 -0
- data/lib/alchemrest/transforms/epoch_time.rb +32 -0
- data/lib/alchemrest/transforms/from_chain.rb +15 -0
- data/lib/alchemrest/transforms/from_number/to_type_transform_registry.rb +18 -0
- data/lib/alchemrest/transforms/from_number.rb +47 -0
- data/lib/alchemrest/transforms/from_string/to_type_transform_registry.rb +17 -0
- data/lib/alchemrest/transforms/from_string.rb +36 -0
- data/lib/alchemrest/transforms/from_type/empty_to_type_transform_registry.rb +14 -0
- data/lib/alchemrest/transforms/from_type.rb +64 -0
- data/lib/alchemrest/transforms/iso_time.rb +58 -0
- data/lib/alchemrest/transforms/json_number.rb +26 -0
- data/lib/alchemrest/transforms/loose_hash.rb +96 -0
- data/lib/alchemrest/transforms/money_transform.rb +42 -0
- data/lib/alchemrest/transforms/number.rb +27 -0
- data/lib/alchemrest/transforms/output_type.rb +65 -0
- data/lib/alchemrest/transforms/to_decimal.rb +22 -0
- data/lib/alchemrest/transforms/to_type/from_string_to_time_selector.rb +29 -0
- data/lib/alchemrest/transforms/to_type/transforms_selector.rb +61 -0
- data/lib/alchemrest/transforms/to_type.rb +86 -0
- data/lib/alchemrest/transforms/typed.rb +32 -0
- data/lib/alchemrest/transforms/union.rb +44 -0
- data/lib/alchemrest/transforms/with_constraint.rb +26 -0
- data/lib/alchemrest/transforms.rb +93 -0
- data/lib/alchemrest/url_builder/encoders.rb +39 -0
- data/lib/alchemrest/url_builder/options.rb +33 -0
- data/lib/alchemrest/url_builder.rb +31 -0
- data/lib/alchemrest/version.rb +5 -0
- data/lib/alchemrest/webmock_helpers.rb +27 -0
- data/lib/alchemrest.rb +159 -0
- data/lib/generators/alchemrest/kill_switch_migration_generator.rb +27 -0
- data/lib/generators/alchemrest/templates/kill_switch_migration.rb.erb +17 -0
- data/lib/rubocop/cop/alchemrest/define_request_using_with_params.rb +53 -0
- data/lib/rubocop/cop/alchemrest/endpoint_definition_using_generic_params.rb +55 -0
- data/lib/rubocop/cop/alchemrest/request_hash_returning_block.rb +54 -0
- data/lib/rubocop/cop/alchemrest/time_transform_with_no_zone.rb +56 -0
- data/lib/tapioca/dsl/compilers/alchemrest_data.rb +84 -0
- data/lib/tapioca/dsl/compilers/alchemrest_root.rb +68 -0
- data/mutant.yml +16 -0
- data/rbi/alchemrest/result.rbi +80 -0
- data/rbi/alchemrest.rbi +246 -0
- data/sorbet/config +5 -0
- data/sorbet/rbi/gems/.gitattributes +1 -0
- data/sorbet/rbi/gems/abstract_type@0.0.7.rbi +41 -0
- data/sorbet/rbi/gems/actionpack@8.0.4.rbi +11733 -0
- data/sorbet/rbi/gems/actionview@8.0.4.rbi +6560 -0
- data/sorbet/rbi/gems/activemodel@8.0.4.rbi +2891 -0
- data/sorbet/rbi/gems/activesupport@8.0.4.rbi +9621 -0
- data/sorbet/rbi/gems/adamantium@0.2.0.rbi +144 -0
- data/sorbet/rbi/gems/addressable@2.8.7.rbi +779 -0
- data/sorbet/rbi/gems/anima@0.3.2.rbi +103 -0
- data/sorbet/rbi/gems/ast@2.4.2.rbi +107 -0
- data/sorbet/rbi/gems/base64@0.3.0.rbi +52 -0
- data/sorbet/rbi/gems/benchmark@0.5.0.rbi +153 -0
- data/sorbet/rbi/gems/bigdecimal@3.3.1.rbi +77 -0
- data/sorbet/rbi/gems/builder@3.3.0.rbi +9 -0
- data/sorbet/rbi/gems/circuitbox@2.0.0.rbi +297 -0
- data/sorbet/rbi/gems/concord@0.1.6.rbi +51 -0
- data/sorbet/rbi/gems/concurrent-ruby@1.3.5.rbi +4716 -0
- data/sorbet/rbi/gems/connection_pool@2.5.4.rbi +9 -0
- data/sorbet/rbi/gems/crack@1.0.0.rbi +110 -0
- data/sorbet/rbi/gems/crass@1.0.6.rbi +294 -0
- data/sorbet/rbi/gems/date@3.4.1.rbi +58 -0
- data/sorbet/rbi/gems/drb@2.2.3.rbi +639 -0
- data/sorbet/rbi/gems/equalizer@0.0.11.rbi +38 -0
- data/sorbet/rbi/gems/erubi@1.13.1.rbi +85 -0
- data/sorbet/rbi/gems/factory_bot@6.5.0.rbi +1529 -0
- data/sorbet/rbi/gems/faraday-em_http@1.0.0.rbi +181 -0
- data/sorbet/rbi/gems/faraday-em_synchrony@1.0.1.rbi +120 -0
- data/sorbet/rbi/gems/faraday-excon@1.1.0.rbi +128 -0
- data/sorbet/rbi/gems/faraday-httpclient@1.0.1.rbi +123 -0
- data/sorbet/rbi/gems/faraday-multipart@1.2.0.rbi +190 -0
- data/sorbet/rbi/gems/faraday-net_http@1.0.2.rbi +140 -0
- data/sorbet/rbi/gems/faraday-net_http_persistent@1.2.0.rbi +116 -0
- data/sorbet/rbi/gems/faraday-patron@1.0.0.rbi +119 -0
- data/sorbet/rbi/gems/faraday-rack@1.0.0.rbi +113 -0
- data/sorbet/rbi/gems/faraday-retry@1.0.3.rbi +149 -0
- data/sorbet/rbi/gems/faraday@1.10.5.rbi +1620 -0
- data/sorbet/rbi/gems/hansi@0.2.1.rbi +9 -0
- data/sorbet/rbi/gems/hashdiff@1.1.2.rbi +174 -0
- data/sorbet/rbi/gems/i18n@1.14.7.rbi +1328 -0
- data/sorbet/rbi/gems/ice_nine@0.11.2.rbi +145 -0
- data/sorbet/rbi/gems/io-console@0.8.0.rbi +9 -0
- data/sorbet/rbi/gems/json@2.9.1.rbi +282 -0
- data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +8057 -0
- data/sorbet/rbi/gems/logger@1.7.0.rbi +260 -0
- data/sorbet/rbi/gems/loofah@2.24.0.rbi +571 -0
- data/sorbet/rbi/gems/memoizable@0.4.2.rbi +131 -0
- data/sorbet/rbi/gems/memosa@0.8.2.rbi +185 -0
- data/sorbet/rbi/gems/minitest@5.26.0.rbi +824 -0
- data/sorbet/rbi/gems/money@6.19.0.rbi +815 -0
- data/sorbet/rbi/gems/morpher@0.4.2.rbi +388 -0
- data/sorbet/rbi/gems/mprelude@0.1.0.rbi +140 -0
- data/sorbet/rbi/gems/multi_json@1.15.0.rbi +180 -0
- data/sorbet/rbi/gems/multipart-post@2.4.1.rbi +154 -0
- data/sorbet/rbi/gems/mustermann-contrib@3.0.3.rbi +9 -0
- data/sorbet/rbi/gems/mustermann@3.0.3.rbi +809 -0
- data/sorbet/rbi/gems/netrc@0.11.0.rbi +112 -0
- data/sorbet/rbi/gems/nokogiri@1.19.1.rbi +3412 -0
- data/sorbet/rbi/gems/parallel@1.26.3.rbi +234 -0
- data/sorbet/rbi/gems/parser@3.3.7.0.rbi +4877 -0
- data/sorbet/rbi/gems/pp@0.6.2.rbi +176 -0
- data/sorbet/rbi/gems/prettyprint@0.2.0.rbi +155 -0
- data/sorbet/rbi/gems/prism@1.5.1.rbi +26368 -0
- data/sorbet/rbi/gems/procto@0.0.3.rbi +9 -0
- data/sorbet/rbi/gems/psych@5.2.3.rbi +806 -0
- data/sorbet/rbi/gems/public_suffix@6.0.1.rbi +267 -0
- data/sorbet/rbi/gems/racc@1.8.1.rbi +120 -0
- data/sorbet/rbi/gems/rack-session@2.1.1.rbi +458 -0
- data/sorbet/rbi/gems/rack-test@2.2.0.rbi +405 -0
- data/sorbet/rbi/gems/rack@3.1.14.rbi +2774 -0
- data/sorbet/rbi/gems/rackup@2.2.1.rbi +132 -0
- data/sorbet/rbi/gems/rails-dom-testing@2.2.0.rbi +266 -0
- data/sorbet/rbi/gems/rails-html-sanitizer@1.6.2.rbi +545 -0
- data/sorbet/rbi/gems/railties@8.0.4.rbi +2150 -0
- data/sorbet/rbi/gems/rainbow@3.1.1.rbi +333 -0
- data/sorbet/rbi/gems/rake@13.2.1.rbi +2054 -0
- data/sorbet/rbi/gems/rbi@0.2.3.rbi +3961 -0
- data/sorbet/rbi/gems/rdoc@6.13.1.rbi +6784 -0
- data/sorbet/rbi/gems/regexp_parser@2.11.3.rbi +3020 -0
- data/sorbet/rbi/gems/reline@0.6.0.rbi +9 -0
- data/sorbet/rbi/gems/rexml@3.4.2.rbi +1777 -0
- data/sorbet/rbi/gems/rubocop-ast@1.38.0.rbi +5293 -0
- data/sorbet/rbi/gems/rubocop@1.71.1.rbi +31846 -0
- data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +980 -0
- data/sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi +9 -0
- data/sorbet/rbi/gems/securerandom@0.4.1.rbi +33 -0
- data/sorbet/rbi/gems/sentry-ruby@5.22.1.rbi +3782 -0
- data/sorbet/rbi/gems/spoom@1.5.1.rbi +4321 -0
- data/sorbet/rbi/gems/stringio@3.1.2.rbi +9 -0
- data/sorbet/rbi/gems/tapioca@0.16.8.rbi +3399 -0
- data/sorbet/rbi/gems/thor@1.3.2.rbi +2012 -0
- data/sorbet/rbi/gems/thread_safe@0.3.6.rbi +711 -0
- data/sorbet/rbi/gems/timeout@0.4.4.rbi +80 -0
- data/sorbet/rbi/gems/tsort@0.2.0.rbi +50 -0
- data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +1677 -0
- data/sorbet/rbi/gems/unicode-display_width@2.6.0.rbi +62 -0
- data/sorbet/rbi/gems/uri@1.1.0.rbi +760 -0
- data/sorbet/rbi/gems/useragent@0.16.11.rbi +9 -0
- data/sorbet/rbi/gems/webmock@3.24.0.rbi +1362 -0
- data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +345 -0
- data/sorbet/rbi/gems/yard@0.9.37.rbi +8795 -0
- data/sorbet/rbi/gems/zeitwerk@2.7.1.rbi +589 -0
- data/sorbet/tapioca/config.yml +45 -0
- data/sorbet/tapioca/require.rb +8 -0
- data/sorbet/tapioca/sorbet/rbi/dsl/.gitattributes +1 -0
- data/sorbet/tapioca/sorbet/rbi/dsl/active_support/callbacks.rbi +23 -0
- metadata +737 -0
data/mutant.yml
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
integration:
|
|
3
|
+
name: rspec
|
|
4
|
+
requires:
|
|
5
|
+
- alchemrest
|
|
6
|
+
matcher:
|
|
7
|
+
subjects:
|
|
8
|
+
- Alchemrest*
|
|
9
|
+
mutation:
|
|
10
|
+
timeout: 1.0
|
|
11
|
+
coverage_criteria:
|
|
12
|
+
timeout: true
|
|
13
|
+
environment_variables:
|
|
14
|
+
# we need to include this to avoid segfault when working with psql
|
|
15
|
+
PGGSSENCMODE: disable
|
|
16
|
+
usage: opensource
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
|
|
3
|
+
class Alchemrest::Result
|
|
4
|
+
extend T::Generic
|
|
5
|
+
|
|
6
|
+
ValueType = type_member(:out)
|
|
7
|
+
|
|
8
|
+
sealed!
|
|
9
|
+
abstract!
|
|
10
|
+
|
|
11
|
+
sig do
|
|
12
|
+
type_parameters(:Value)
|
|
13
|
+
.params(value: T.type_parameter(:Value))
|
|
14
|
+
.returns(Alchemrest::Result::Ok[T.type_parameter(:Value)])
|
|
15
|
+
end
|
|
16
|
+
def self.Ok(value); end
|
|
17
|
+
|
|
18
|
+
sig { params(error: T.any(Exception, String)).returns(Alchemrest::Result::Error) }
|
|
19
|
+
def self.Error(error); end
|
|
20
|
+
|
|
21
|
+
sig do
|
|
22
|
+
type_parameters(:ValueType)
|
|
23
|
+
.params(
|
|
24
|
+
block: T.proc.params(try: T.class_of(Alchemrest::Result::TryHelpers)).returns(
|
|
25
|
+
T.any(Alchemrest::Result[T.type_parameter(:ValueType)], T.type_parameter(:ValueType)),
|
|
26
|
+
),
|
|
27
|
+
)
|
|
28
|
+
.returns(Alchemrest::Result[T.type_parameter(:ValueType)])
|
|
29
|
+
end
|
|
30
|
+
def self.for(&block); end
|
|
31
|
+
|
|
32
|
+
sig { returns(T::Boolean) }
|
|
33
|
+
def ok?; end
|
|
34
|
+
|
|
35
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
36
|
+
def ==(other); end
|
|
37
|
+
|
|
38
|
+
sig do
|
|
39
|
+
type_parameters(:Result)
|
|
40
|
+
.params(block: T.proc.params(value: ValueType).returns(T.type_parameter(:Result)))
|
|
41
|
+
.returns(Alchemrest::Result[T.type_parameter(:Result)])
|
|
42
|
+
end
|
|
43
|
+
def transform(&block); end
|
|
44
|
+
|
|
45
|
+
sig { returns(ValueType) }
|
|
46
|
+
def unwrap_or_raise!; end
|
|
47
|
+
|
|
48
|
+
sig do
|
|
49
|
+
type_parameters(:Fallback)
|
|
50
|
+
.params(block: T.proc.returns(T.type_parameter(:Fallback)))
|
|
51
|
+
.returns(T.any(ValueType, T.type_parameter(:Fallback)))
|
|
52
|
+
end
|
|
53
|
+
def unwrap_or_rescue(&block); end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
class Alchemrest::Result::Ok < Alchemrest::Result
|
|
57
|
+
ValueType = type_member
|
|
58
|
+
|
|
59
|
+
sig { params(value: ValueType).void }
|
|
60
|
+
def initialize(value); end
|
|
61
|
+
|
|
62
|
+
sig { returns([ValueType]) }
|
|
63
|
+
def deconstruct; end
|
|
64
|
+
|
|
65
|
+
sig { params(_keys: T.untyped).returns({ value: ValueType }) }
|
|
66
|
+
def deconstruct_keys(_keys); end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
class Alchemrest::Result::Error < Alchemrest::Result
|
|
70
|
+
ValueType = type_member { { fixed: T.noreturn } }
|
|
71
|
+
|
|
72
|
+
sig { params(error: T.any(String, Exception)).void }
|
|
73
|
+
def initialize(error); end
|
|
74
|
+
|
|
75
|
+
sig { returns([Exception]) }
|
|
76
|
+
def deconstruct; end
|
|
77
|
+
|
|
78
|
+
sig { params(_keys: T.untyped).returns({ error: Exception }) }
|
|
79
|
+
def deconstruct_keys(_keys); end
|
|
80
|
+
end
|
data/rbi/alchemrest.rbi
ADDED
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
|
|
3
|
+
module Alchemrest
|
|
4
|
+
|
|
5
|
+
sig { returns(Logger) }
|
|
6
|
+
def self.logger; end
|
|
7
|
+
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
class Alchemrest::Data::CaptureConfiguration
|
|
11
|
+
|
|
12
|
+
sig { params(keys: Symbol).void }
|
|
13
|
+
def safe(*keys); end
|
|
14
|
+
|
|
15
|
+
sig { params(keys: Symbol).void }
|
|
16
|
+
def omitted(*keys); end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
class Alchemrest::Data
|
|
20
|
+
sig { params(hash: T::Hash[T.any(Symbol, String), T.untyped]).returns(T.attached_class) }
|
|
21
|
+
def self.from_hash(hash); end
|
|
22
|
+
|
|
23
|
+
sig { returns(Alchemrest::Data::Graph) }
|
|
24
|
+
def self.graph; end
|
|
25
|
+
|
|
26
|
+
sig { returns(T.class_of(Alchemrest::Data)) }
|
|
27
|
+
def self.[]; end
|
|
28
|
+
|
|
29
|
+
sig { params(blk: T.proc.bind(Alchemrest::Data::CaptureConfiguration).void).void }
|
|
30
|
+
def self.configure_response_capture(&blk); end
|
|
31
|
+
|
|
32
|
+
sig { void }
|
|
33
|
+
def self.schema; end
|
|
34
|
+
|
|
35
|
+
sig { params(attributes: T.untyped).void }
|
|
36
|
+
def initialize(**attributes); end
|
|
37
|
+
|
|
38
|
+
sig { returns(T::Hash[T.untyped, T.untyped]) }
|
|
39
|
+
def to_h; end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
class Alchemrest::Data::Graph
|
|
43
|
+
sig { returns(T::Hash[Symbol, Alchemrest::Data::Field]) }
|
|
44
|
+
def fields; end
|
|
45
|
+
|
|
46
|
+
sig { returns(T.class_of(Alchemrest::Data)) }
|
|
47
|
+
def type; end
|
|
48
|
+
|
|
49
|
+
sig { returns(T::Hash[Symbol, Alchemrest::Data::Graph]) }
|
|
50
|
+
def sub_graphs; end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
class Alchemrest::Data::Field
|
|
54
|
+
sig { returns(T::Array[Alchemrest::Transforms::Constraint]) }
|
|
55
|
+
def constraints; end
|
|
56
|
+
|
|
57
|
+
sig { returns(T.nilable(Alchemrest::Transforms::OutputType)) }
|
|
58
|
+
def output_type; end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
class Alchemrest::UrlBuilder::Options
|
|
62
|
+
sig { params(values: T::Hash[Symbol, T.untyped]).void }
|
|
63
|
+
def query=(values); end
|
|
64
|
+
|
|
65
|
+
sig { params(values: T::Hash[Symbol, T.untyped]).void }
|
|
66
|
+
def values=(values); end
|
|
67
|
+
|
|
68
|
+
sig { params(name: Symbol).void }
|
|
69
|
+
def encode_query_with=(name); end
|
|
70
|
+
|
|
71
|
+
sig { params(block: T.proc.params(query: T::Hash[Symbol, T.untyped]).returns(String)).void }
|
|
72
|
+
def encode_query_with(&block); end
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
class Alchemrest::EndpointDefinition
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
class Alchemrest::Transforms::OutputType
|
|
79
|
+
sig { returns(T.nilable(Alchemrest::Data::Graph)) }
|
|
80
|
+
def graph; end
|
|
81
|
+
|
|
82
|
+
sig { returns(T.untyped) }
|
|
83
|
+
def sorbet_type; end
|
|
84
|
+
|
|
85
|
+
sig { returns(T::Array[Alchemrest::Transforms::Constraint]) }
|
|
86
|
+
def constraints; end
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
class Alchemrest::Transforms::Constraint
|
|
90
|
+
sig { returns(String) }
|
|
91
|
+
def description; end
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
class Alchemrest::Request
|
|
96
|
+
class << self
|
|
97
|
+
sig do
|
|
98
|
+
params(
|
|
99
|
+
http_method: Symbol,
|
|
100
|
+
template: String,
|
|
101
|
+
block: T.nilable(T.proc.bind(T.attached_class).params(url: Alchemrest::UrlBuilder::Options).void),
|
|
102
|
+
).void
|
|
103
|
+
end
|
|
104
|
+
def endpoint(http_method, template, &block); end
|
|
105
|
+
|
|
106
|
+
sig do
|
|
107
|
+
params(
|
|
108
|
+
domain_type: T.class_of(Alchemrest::Data),
|
|
109
|
+
path_to_payload: T::Array[T.any(Symbol, String)],
|
|
110
|
+
allow_empty_response: T::Boolean
|
|
111
|
+
).void
|
|
112
|
+
end
|
|
113
|
+
def returns(domain_type, path_to_payload: nil, allow_empty_response: false); end
|
|
114
|
+
|
|
115
|
+
sig { void }
|
|
116
|
+
def enable_response_capture; end
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
class Alchemrest::Response < SimpleDelegator
|
|
121
|
+
sig { returns(Integer) }
|
|
122
|
+
def status; end
|
|
123
|
+
|
|
124
|
+
sig { returns(T.untyped) }
|
|
125
|
+
def body; end
|
|
126
|
+
|
|
127
|
+
sig { returns(T::Hash[T.untyped, T.untyped]) }
|
|
128
|
+
def headers; end
|
|
129
|
+
|
|
130
|
+
sig { returns(String) }
|
|
131
|
+
def reason_phrase; end
|
|
132
|
+
|
|
133
|
+
sig { returns(T::Boolean) }
|
|
134
|
+
def success?; end
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
class Alchemrest::Response::Pipeline
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
class Alchemrest::Response::Pipeline::Transform
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
class Alchemrest::Response::Pipeline::ExtractPayload
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
class Alchemrest::Client
|
|
147
|
+
|
|
148
|
+
sig { params(block: T.proc.params(config: Alchemrest::Client::Configuration).bind(T.attached_class).void).void }
|
|
149
|
+
def self.configure(&block); end
|
|
150
|
+
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
class Alchemrest::CircuitBreaker; end
|
|
154
|
+
|
|
155
|
+
class Alchemrest::Client::Configuration
|
|
156
|
+
|
|
157
|
+
sig { returns(Alchemrest::Client::Configuration::Connection) }
|
|
158
|
+
def connection; end
|
|
159
|
+
|
|
160
|
+
sig { params(service_name: String).void }
|
|
161
|
+
def service_name=(service_name); end
|
|
162
|
+
|
|
163
|
+
sig do
|
|
164
|
+
params(
|
|
165
|
+
value: T.any(
|
|
166
|
+
T::Boolean, Alchemrest::CircuitBreaker,
|
|
167
|
+
{
|
|
168
|
+
disabled_when: T.nilable(T.proc.returns(T::Boolean)),
|
|
169
|
+
sleep_window: Integer,
|
|
170
|
+
time_window: Integer,
|
|
171
|
+
error_threshold: Integer,
|
|
172
|
+
volume_threshold: Integer,
|
|
173
|
+
}
|
|
174
|
+
)
|
|
175
|
+
).void
|
|
176
|
+
end
|
|
177
|
+
def use_circuit_breaker(value); end
|
|
178
|
+
|
|
179
|
+
sig { params(value: T::Boolean).void }
|
|
180
|
+
def use_kill_switch(value); end
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
class Alchemrest::Client::Configuration::Connection
|
|
184
|
+
|
|
185
|
+
sig { params(url: String).void }
|
|
186
|
+
def url=(url); end
|
|
187
|
+
|
|
188
|
+
sig { params(block: T.proc.params(connection: Faraday::Connection).void).void }
|
|
189
|
+
def customize(&block); end
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
class Alchemrest::RequestDefinition
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
class Alchemrest::RequestDefinition::Builder
|
|
197
|
+
sig { params(value: T::Hash[Symbol, T.untyped]).void }
|
|
198
|
+
def defaults=(value); end
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
class Alchemrest::Root
|
|
202
|
+
WithParams = T.type_alias { T.proc.returns(T::Hash[Symbol, T.untyped]) }
|
|
203
|
+
|
|
204
|
+
sig { returns(T::Hash[Symbol, Alchemrest::RequestDefinition]) }
|
|
205
|
+
def self.request_definitions; end
|
|
206
|
+
|
|
207
|
+
sig { params(client_class: T.class_of(Alchemrest::Client)).void }
|
|
208
|
+
def self.use_client(client_class); end
|
|
209
|
+
|
|
210
|
+
sig do
|
|
211
|
+
params(
|
|
212
|
+
name: Symbol,
|
|
213
|
+
request_class: T.class_of(Alchemrest::Request),
|
|
214
|
+
block: T.nilable(
|
|
215
|
+
T.proc
|
|
216
|
+
.params(request: Alchemrest::RequestDefinition::Builder)
|
|
217
|
+
.bind(T.attached_class)
|
|
218
|
+
.void,
|
|
219
|
+
),
|
|
220
|
+
).void
|
|
221
|
+
end
|
|
222
|
+
def self.define_request(name, request_class, &block); end
|
|
223
|
+
|
|
224
|
+
sig { params(block: T.proc.bind(T.attached_class).params(error: Exception).void).void }
|
|
225
|
+
def self.on_alchemrest_error(&block); end
|
|
226
|
+
|
|
227
|
+
sig { params(name: Symbol, params: T::Hash[Symbol, T.untyped]).returns(Alchemrest::Request) }
|
|
228
|
+
def build_request(name, params = nil); end
|
|
229
|
+
|
|
230
|
+
sig { returns(Alchemrest::Client) }
|
|
231
|
+
def client; end
|
|
232
|
+
end
|
|
233
|
+
|
|
234
|
+
module Alchemrest::Result::TryHelpers
|
|
235
|
+
class << self
|
|
236
|
+
sig do
|
|
237
|
+
type_parameters(:Value)
|
|
238
|
+
.params(result: Alchemrest::Result[T.type_parameter(:Value)])
|
|
239
|
+
.returns(T.type_parameter(:Value))
|
|
240
|
+
end
|
|
241
|
+
def unwrap(result); end
|
|
242
|
+
end
|
|
243
|
+
end
|
|
244
|
+
|
|
245
|
+
module Alchemrest::FactoryBot
|
|
246
|
+
end
|
data/sorbet/config
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
**/*.rbi linguist-generated=true
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
|
|
3
|
+
# DO NOT EDIT MANUALLY
|
|
4
|
+
# This is an autogenerated file for types exported from the `abstract_type` gem.
|
|
5
|
+
# Please instead update this file by running `bin/tapioca gem abstract_type`.
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
# source://abstract_type//lib/abstract_type.rb#4
|
|
9
|
+
module AbstractType
|
|
10
|
+
mixes_in_class_methods ::AbstractType::AbstractMethodDeclarations
|
|
11
|
+
|
|
12
|
+
class << self
|
|
13
|
+
private
|
|
14
|
+
|
|
15
|
+
# source://abstract_type//lib/abstract_type.rb#32
|
|
16
|
+
def create_new_method(abstract_class); end
|
|
17
|
+
|
|
18
|
+
# source://abstract_type//lib/abstract_type.rb#14
|
|
19
|
+
def included(descendant); end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# source://abstract_type//lib/abstract_type.rb#44
|
|
24
|
+
module AbstractType::AbstractMethodDeclarations
|
|
25
|
+
# source://abstract_type//lib/abstract_type.rb#61
|
|
26
|
+
def abstract_method(*names); end
|
|
27
|
+
|
|
28
|
+
# source://abstract_type//lib/abstract_type.rb#81
|
|
29
|
+
def abstract_singleton_method(*names); end
|
|
30
|
+
|
|
31
|
+
private
|
|
32
|
+
|
|
33
|
+
# source://abstract_type//lib/abstract_type.rb#110
|
|
34
|
+
def create_abstract_instance_method(name); end
|
|
35
|
+
|
|
36
|
+
# source://abstract_type//lib/abstract_type.rb#96
|
|
37
|
+
def create_abstract_singleton_method(name); end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# source://abstract_type//lib/abstract_type/version.rb#6
|
|
41
|
+
AbstractType::VERSION = T.let(T.unsafe(nil), String)
|