Class: FlyIO::Configuration
- Inherits:
-
Object
- Object
- FlyIO::Configuration
- Defined in:
- lib/fly_io/configuration.rb
Constant Summary collapse
- DEFAULT_BASE_URL =
"https://api.machines.dev"- DEFAULT_GRAPHQL_URL =
"https://api.fly.io/graphql"- ATTRIBUTES =
%i[ base_url graphql_url metrics_url authorization_value open_timeout read_timeout write_timeout request_timeout proxy user_agent max_retries base_retry_interval max_retry_interval retry_jitter logger adapter sleeper random retry_unsafe introspection ].freeze
Instance Method Summary collapse
-
#initialize(token: nil, authorization: nil, authorization_mode: :bearer, base_url: DEFAULT_BASE_URL, graphql_url: DEFAULT_GRAPHQL_URL, metrics_url: "https://api.fly.io", open_timeout: 10, read_timeout: 30, write_timeout: 30, request_timeout: nil, proxy: nil, user_agent: "fly_io/#{FlyIO::VERSION}", max_retries: 2, base_retry_interval: 0.25, max_retry_interval: 5.0, retry_jitter: 0.25, logger: nil, adapter: nil, sleeper: ->(seconds) { sleep(seconds) }, random: Random.new, retry_unsafe: false, introspection: false) ⇒ Configuration
constructor
A new instance of Configuration.
- #with(**overrides) ⇒ Object
Constructor Details
#initialize(token: nil, authorization: nil, authorization_mode: :bearer, base_url: DEFAULT_BASE_URL, graphql_url: DEFAULT_GRAPHQL_URL, metrics_url: "https://api.fly.io", open_timeout: 10, read_timeout: 30, write_timeout: 30, request_timeout: nil, proxy: nil, user_agent: "fly_io/#{FlyIO::VERSION}", max_retries: 2, base_retry_interval: 0.25, max_retry_interval: 5.0, retry_jitter: 0.25, logger: nil, adapter: nil, sleeper: ->(seconds) { sleep(seconds) }, random: Random.new, retry_unsafe: false, introspection: false) ⇒ Configuration
Returns a new instance of Configuration.
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/fly_io/configuration.rb', line 18 def initialize(token: nil, authorization: nil, authorization_mode: :bearer, base_url: DEFAULT_BASE_URL, graphql_url: DEFAULT_GRAPHQL_URL, metrics_url: "https://api.fly.io", open_timeout: 10, read_timeout: 30, write_timeout: 30, request_timeout: nil, proxy: nil, user_agent: "fly_io/#{FlyIO::VERSION}", max_retries: 2, base_retry_interval: 0.25, max_retry_interval: 5.0, retry_jitter: 0.25, logger: nil, adapter: nil, sleeper: ->(seconds) { sleep(seconds) }, random: Random.new, retry_unsafe: false, introspection: false) @base_url = normalize_url(base_url, "base_url") @graphql_url = normalize_url(graphql_url, "graphql_url") @metrics_url = normalize_url(metrics_url, "metrics_url") @authorization_value = (token, , ) @open_timeout = positive_number(open_timeout, "open_timeout") @read_timeout = positive_number(read_timeout, "read_timeout") @write_timeout = positive_number(write_timeout, "write_timeout") @request_timeout = request_timeout && positive_number(request_timeout, "request_timeout") @proxy = proxy @user_agent = String(user_agent).dup.freeze @max_retries = Integer(max_retries) @base_retry_interval = Float(base_retry_interval) @max_retry_interval = Float(max_retry_interval) @retry_jitter = Float(retry_jitter) @logger = logger @adapter = adapter @sleeper = sleeper @random = random @retry_unsafe = retry_unsafe @introspection = introspection validate_retry! freeze end |
Instance Method Details
#with(**overrides) ⇒ Object
49 50 51 52 53 54 |
# File 'lib/fly_io/configuration.rb', line 49 def with(**overrides) current = ATTRIBUTES.to_h { |name| [name, public_send(name)] } = current.delete(:authorization_value) current[:authorization] = self.class.new(**current, **overrides) end |