class Arroyo::API::Client

Public Class Methods

new(access_key_id:, secret_access_key:, region:, bucket:) click to toggle source
# File lib/arroyo/api/client.rb, line 7
def initialize(access_key_id:, secret_access_key:, region:, bucket:)
  @access_key_id     = access_key_id
  @secret_access_key = secret_access_key
  @region            = region
  @bucket            = bucket
end

Public Instance Methods

get(path) { |response| ... } click to toggle source
# File lib/arroyo/api/client.rb, line 14
def get(path)
  request(:get, path).then { |response| yield response }
end

Private Instance Methods

request(method, path) click to toggle source
# File lib/arroyo/api/client.rb, line 19
def request(method, path)
  Request.new(method: method, url: url_for(path), signer: signer).perform
end
signer() click to toggle source
# File lib/arroyo/api/client.rb, line 27
def signer
  @signer ||= Aws::Sigv4::Signer.new \
    access_key_id:     @access_key_id,
    secret_access_key: @secret_access_key,
    region:            @region,
    service:           "s3"
end
url_for(path) click to toggle source
# File lib/arroyo/api/client.rb, line 23
def url_for(path)
  "https://#{@bucket}.s3.amazonaws.com/" + path.remove(/\A\//)
end