class DropletKit::Client
Constants
- DEFAULT_OPEN_TIMEOUT
- DEFAULT_TIMEOUT
- DIGITALOCEAN_API
Attributes
access_token[R]
api_url[R]
open_timeout[R]
timeout[R]
user_agent[R]
Public Class Methods
new(options = {})
click to toggle source
# File lib/droplet_kit/client.rb, line 12 def initialize(options = {}) options = DropletKit::Utils.transform_keys(options, &:to_sym) @access_token = options[:access_token] @api_url = options[:api_url] || DIGITALOCEAN_API @open_timeout = options[:open_timeout] || DEFAULT_OPEN_TIMEOUT @timeout = options[:timeout] || DEFAULT_TIMEOUT @user_agent = options[:user_agent] end
resources()
click to toggle source
# File lib/droplet_kit/client.rb, line 29 def self.resources { actions: ActionResource, cdns: CDNResource, certificates: CertificateResource, container_registry: ContainerRegistryResource, container_registry_repository: ContainerRegistryRepositoryResource, databases: DatabaseResource, droplets: DropletResource, kubernetes_clusters: KubernetesClusterResource, kubernetes_options: KubernetesOptionsResource, domains: DomainResource, domain_records: DomainRecordResource, droplet_actions: DropletActionResource, firewalls: FirewallResource, images: ImageResource, image_actions: ImageActionResource, invoices: InvoiceResource, load_balancers: LoadBalancerResource, regions: RegionResource, sizes: SizeResource, ssh_keys: SSHKeyResource, snapshots: SnapshotResource, account: AccountResource, balance: BalanceResource, floating_ips: FloatingIpResource, floating_ip_actions: FloatingIpActionResource, tags: TagResource, projects: ProjectResource, volumes: VolumeResource, volume_actions: VolumeActionResource, vpcs: VPCResource } end
Public Instance Methods
connection()
click to toggle source
# File lib/droplet_kit/client.rb, line 21 def connection @faraday ||= Faraday.new connection_options do |req| req.adapter :net_http req.options.open_timeout = open_timeout req.options.timeout = timeout end end
default_user_agent()
click to toggle source
# File lib/droplet_kit/client.rb, line 77 def default_user_agent "DropletKit/#{DropletKit::VERSION} Faraday/#{Faraday::VERSION}" end
method_missing(name, *args, &block)
click to toggle source
Calls superclass method
# File lib/droplet_kit/client.rb, line 64 def method_missing(name, *args, &block) if self.class.resources.keys.include?(name) resources[name] ||= self.class.resources[name].new(connection: connection) resources[name] else super end end
resources()
click to toggle source
# File lib/droplet_kit/client.rb, line 73 def resources @resources ||= {} end
Private Instance Methods
connection_options()
click to toggle source
# File lib/droplet_kit/client.rb, line 83 def connection_options { url: @api_url, headers: { content_type: 'application/json', authorization: "Bearer #{access_token}", user_agent: "#{user_agent} #{default_user_agent}".strip } } end