simplify by pushing query string building down into excon
This commit is contained in:
parent
6e156d0cfb
commit
4529a3444f
2
Gemfile
2
Gemfile
|
@ -1,7 +1,7 @@
|
||||||
source 'http://gemcutter.org'
|
source 'http://gemcutter.org'
|
||||||
|
|
||||||
gem 'rake'
|
gem 'rake'
|
||||||
gem 'excon', '>= 0.0.24'
|
gem 'excon', '>= 0.0.25'
|
||||||
gem 'formatador', ">= 0.0.10"
|
gem 'formatador', ">= 0.0.10"
|
||||||
gem 'json', ">= 0"
|
gem 'json', ">= 0"
|
||||||
gem 'mime-types', ">= 0"
|
gem 'mime-types', ">= 0"
|
||||||
|
|
|
@ -31,7 +31,7 @@ dependencies:
|
||||||
excon:
|
excon:
|
||||||
group:
|
group:
|
||||||
- :default
|
- :default
|
||||||
version: ">= 0.0.24"
|
version: ">= 0.0.25"
|
||||||
builder:
|
builder:
|
||||||
group:
|
group:
|
||||||
- :default
|
- :default
|
||||||
|
@ -50,7 +50,7 @@ specs:
|
||||||
- builder:
|
- builder:
|
||||||
version: 2.1.2
|
version: 2.1.2
|
||||||
- excon:
|
- excon:
|
||||||
version: 0.0.24
|
version: 0.0.25
|
||||||
- formatador:
|
- formatador:
|
||||||
version: 0.0.14
|
version: 0.0.14
|
||||||
- gestalt:
|
- gestalt:
|
||||||
|
@ -60,7 +60,7 @@ specs:
|
||||||
- mime-types:
|
- mime-types:
|
||||||
version: "1.16"
|
version: "1.16"
|
||||||
- net-ssh:
|
- net-ssh:
|
||||||
version: 2.0.22
|
version: 2.0.23
|
||||||
- nokogiri:
|
- nokogiri:
|
||||||
version: 1.4.2
|
version: 1.4.2
|
||||||
- rspec:
|
- rspec:
|
||||||
|
@ -69,7 +69,7 @@ specs:
|
||||||
version: 0.4.0
|
version: 0.4.0
|
||||||
- shindo:
|
- shindo:
|
||||||
version: 0.1.4
|
version: 0.1.4
|
||||||
hash: 3e4f041a5b790fadb4d85f239577c92b71b9dd78
|
hash: 47be4240cdce9d626cc1834c503ca8e275e76307
|
||||||
sources:
|
sources:
|
||||||
- Rubygems:
|
- Rubygems:
|
||||||
uri: http://gemcutter.org
|
uri: http://gemcutter.org
|
||||||
|
|
|
@ -38,11 +38,6 @@ module Fog
|
||||||
unless bucket_name
|
unless bucket_name
|
||||||
raise ArgumentError.new('bucket_name is required')
|
raise ArgumentError.new('bucket_name is required')
|
||||||
end
|
end
|
||||||
query = ''
|
|
||||||
for key, value in options
|
|
||||||
query << "#{key}=#{CGI.escape(value.to_s).gsub(/\+/, '%20')}&"
|
|
||||||
end
|
|
||||||
query.chop!
|
|
||||||
request({
|
request({
|
||||||
:expects => 200,
|
:expects => 200,
|
||||||
:headers => {},
|
:headers => {},
|
||||||
|
@ -50,7 +45,7 @@ module Fog
|
||||||
:idempotent => true,
|
:idempotent => true,
|
||||||
:method => 'GET',
|
:method => 'GET',
|
||||||
:parser => Fog::Parsers::AWS::S3::GetBucket.new,
|
:parser => Fog::Parsers::AWS::S3::GetBucket.new,
|
||||||
:query => query
|
:query => options
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ module Fog
|
||||||
:idempotent => true,
|
:idempotent => true,
|
||||||
:method => 'GET',
|
:method => 'GET',
|
||||||
:parser => Fog::Parsers::AWS::S3::AccessControlList.new,
|
:parser => Fog::Parsers::AWS::S3::AccessControlList.new,
|
||||||
:query => 'acl'
|
:query => {'acl' => nil}
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ module Fog
|
||||||
:idempotent => true,
|
:idempotent => true,
|
||||||
:method => 'GET',
|
:method => 'GET',
|
||||||
:parser => Fog::Parsers::AWS::S3::GetBucketLocation.new,
|
:parser => Fog::Parsers::AWS::S3::GetBucketLocation.new,
|
||||||
:query => 'location'
|
:query => {'location' => nil}
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ module Fog
|
||||||
:idempotent => true,
|
:idempotent => true,
|
||||||
:method => 'GET',
|
:method => 'GET',
|
||||||
:parser => Fog::Parsers::AWS::S3::GetBucketLogging.new,
|
:parser => Fog::Parsers::AWS::S3::GetBucketLogging.new,
|
||||||
:query => 'logging'
|
:query => {'logging' => nil}
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -53,11 +53,6 @@ module Fog
|
||||||
unless bucket_name
|
unless bucket_name
|
||||||
raise ArgumentError.new('bucket_name is required')
|
raise ArgumentError.new('bucket_name is required')
|
||||||
end
|
end
|
||||||
query = 'versions&'
|
|
||||||
for key, value in options
|
|
||||||
query << "#{key}=#{CGI.escape(value.to_s).gsub(/\+/, '%20')}&"
|
|
||||||
end
|
|
||||||
query.chop!
|
|
||||||
request({
|
request({
|
||||||
:expects => 200,
|
:expects => 200,
|
||||||
:headers => {},
|
:headers => {},
|
||||||
|
@ -65,7 +60,7 @@ module Fog
|
||||||
:idempotent => true,
|
:idempotent => true,
|
||||||
:method => 'GET',
|
:method => 'GET',
|
||||||
:parser => Fog::Parsers::AWS::S3::GetBucketObjectVersions.new,
|
:parser => Fog::Parsers::AWS::S3::GetBucketObjectVersions.new,
|
||||||
:query => query
|
:query => {'versions' => nil}.merge!(options)
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ module Fog
|
||||||
:idempotent => true,
|
:idempotent => true,
|
||||||
:method => 'GET',
|
:method => 'GET',
|
||||||
:parser => Fog::Parsers::AWS::S3::GetBucketVersioning.new,
|
:parser => Fog::Parsers::AWS::S3::GetBucketVersioning.new,
|
||||||
:query => 'versioning'
|
:query => {'versioning' => nil}
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,7 @@ module Fog
|
||||||
raise ArgumentError.new('object_name is required')
|
raise ArgumentError.new('object_name is required')
|
||||||
end
|
end
|
||||||
if version_id = options.delete('versionId')
|
if version_id = options.delete('versionId')
|
||||||
query = CGI.escape(version_id)
|
query = {'versionId' => version_id}
|
||||||
end
|
end
|
||||||
headers = {}
|
headers = {}
|
||||||
headers['If-Modified-Since'] = options['If-Modified-Since'].utc.strftime("%a, %d %b %Y %H:%M:%S +0000") if options['If-Modified-Since']
|
headers['If-Modified-Since'] = options['If-Modified-Since'].utc.strftime("%a, %d %b %Y %H:%M:%S +0000") if options['If-Modified-Since']
|
||||||
|
|
|
@ -34,9 +34,9 @@ module Fog
|
||||||
unless object_name
|
unless object_name
|
||||||
raise ArgumentError.new('object_name is required')
|
raise ArgumentError.new('object_name is required')
|
||||||
end
|
end
|
||||||
query = 'acl'
|
query = {'acl' => nil}
|
||||||
if version_id = options.delete('versionId')
|
if version_id = options.delete('versionId')
|
||||||
query << "&#{CGI.escape(version_id)}"
|
query['versionId'] = version_id
|
||||||
end
|
end
|
||||||
request({
|
request({
|
||||||
:expects => 200,
|
:expects => 200,
|
||||||
|
|
|
@ -37,7 +37,7 @@ module Fog
|
||||||
:idempotent => true,
|
:idempotent => true,
|
||||||
:method => 'GET',
|
:method => 'GET',
|
||||||
:path => CGI.escape(object_name),
|
:path => CGI.escape(object_name),
|
||||||
:query => 'torrent'
|
:query => {'torrent' => nil}
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ module Fog
|
||||||
:idempotent => true,
|
:idempotent => true,
|
||||||
:method => 'GET',
|
:method => 'GET',
|
||||||
:parser => Fog::Parsers::AWS::S3::GetRequestPayment.new,
|
:parser => Fog::Parsers::AWS::S3::GetRequestPayment.new,
|
||||||
:query => 'requestPayment'
|
:query => {'requestPayment' => nil}
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ module Fog
|
||||||
raise ArgumentError.new('object_name is required')
|
raise ArgumentError.new('object_name is required')
|
||||||
end
|
end
|
||||||
if version_id = options.delete('versionId')
|
if version_id = options.delete('versionId')
|
||||||
query = CGI.escape(version_id)
|
query = {'versionId' => version_id}
|
||||||
end
|
end
|
||||||
headers = {}
|
headers = {}
|
||||||
headers['If-Modified-Since'] = options['If-Modified-Since'].utc.strftime("%a, %d %b %Y %H:%M:%S +0000") if options['If-Modified-Since']
|
headers['If-Modified-Since'] = options['If-Modified-Since'].utc.strftime("%a, %d %b %Y %H:%M:%S +0000") if options['If-Modified-Since']
|
||||||
|
|
|
@ -62,7 +62,7 @@ DATA
|
||||||
:headers => {},
|
:headers => {},
|
||||||
:host => "#{bucket_name}.#{@host}",
|
:host => "#{bucket_name}.#{@host}",
|
||||||
:method => 'PUT',
|
:method => 'PUT',
|
||||||
:query => 'acl'
|
:query => {'acl' => nil}
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -69,7 +69,7 @@ DATA
|
||||||
:headers => {},
|
:headers => {},
|
||||||
:host => "#{bucket_name}.#{@host}",
|
:host => "#{bucket_name}.#{@host}",
|
||||||
:method => 'PUT',
|
:method => 'PUT',
|
||||||
:query => 'logging'
|
:query => {'logging' => nil}
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ DATA
|
||||||
:headers => {},
|
:headers => {},
|
||||||
:host => "#{bucket_name}.#{@host}",
|
:host => "#{bucket_name}.#{@host}",
|
||||||
:method => 'PUT',
|
:method => 'PUT',
|
||||||
:query => 'versioning'
|
:query => {'versioning' => nil}
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ DATA
|
||||||
:headers => {},
|
:headers => {},
|
||||||
:host => "#{bucket_name}.#{@host}",
|
:host => "#{bucket_name}.#{@host}",
|
||||||
:method => 'PUT',
|
:method => 'PUT',
|
||||||
:query => "requestPayment"
|
:query => {'requestPayment' => nil}
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -208,9 +208,13 @@ DATA
|
||||||
canonical_resource << "#{CGI.escape(subdomain).downcase}/"
|
canonical_resource << "#{CGI.escape(subdomain).downcase}/"
|
||||||
end
|
end
|
||||||
canonical_resource << "#{params[:path]}"
|
canonical_resource << "#{params[:path]}"
|
||||||
if ['acl', 'location', 'logging', 'requestPayment', 'torrent', 'versions', 'versioning'].include?(params[:query])
|
canonical_resource << '?'
|
||||||
canonical_resource << "?#{params[:query]}"
|
for key in params[:query].keys
|
||||||
|
if ['acl', 'location', 'logging', 'requestPayment', 'torrent', 'versions', 'versioning'].include?(key)
|
||||||
|
canonical_resource << "#{key}&"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
canonical_resource.chop!
|
||||||
string_to_sign << "#{canonical_resource}"
|
string_to_sign << "#{canonical_resource}"
|
||||||
|
|
||||||
hmac = @hmac.update(string_to_sign)
|
hmac = @hmac.update(string_to_sign)
|
||||||
|
|
|
@ -18,23 +18,11 @@ module Fog
|
||||||
# * body<~Hash>:
|
# * body<~Hash>:
|
||||||
# TODO
|
# TODO
|
||||||
def create_block(product_id, template_id, options = {})
|
def create_block(product_id, template_id, options = {})
|
||||||
data = {
|
|
||||||
'product' => product_id,
|
|
||||||
'template' => template_id
|
|
||||||
}.merge!(options)
|
|
||||||
|
|
||||||
query = ''
|
|
||||||
for key, value in data
|
|
||||||
query << "#{key}=#{CGI.escape(value.to_s).gsub(/\+/, '%20')}&"
|
|
||||||
end
|
|
||||||
query.chop!
|
|
||||||
|
|
||||||
request(
|
request(
|
||||||
# :body => data.to_json,
|
|
||||||
:expects => 200,
|
:expects => 200,
|
||||||
:method => 'POST',
|
:method => 'POST',
|
||||||
:path => '/api/blocks.json',
|
:path => '/api/blocks.json',
|
||||||
:query => query
|
:query => {'product' => product_id, 'template' => templated_id}.merge!(query)
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -29,16 +29,11 @@ module Fog
|
||||||
# * 'last_modified'<~String> - Last modified timestamp
|
# * 'last_modified'<~String> - Last modified timestamp
|
||||||
# * 'name'<~String> - Name of object
|
# * 'name'<~String> - Name of object
|
||||||
def get_container(container, options = {})
|
def get_container(container, options = {})
|
||||||
query = ''
|
|
||||||
for key, value in options.merge!({ 'format' => 'json' })
|
|
||||||
query << "#{key}=#{value}&"
|
|
||||||
end
|
|
||||||
query.chop!
|
|
||||||
response = storage_request(
|
response = storage_request(
|
||||||
:expects => 200,
|
:expects => 200,
|
||||||
:method => 'GET',
|
:method => 'GET',
|
||||||
:path => container,
|
:path => container,
|
||||||
:query => query
|
:query => {'format' => 'json'}.merge!(options)
|
||||||
)
|
)
|
||||||
response
|
response
|
||||||
end
|
end
|
||||||
|
|
|
@ -18,17 +18,11 @@ module Fog
|
||||||
# * 'count'<~Integer>: - Number of items in container
|
# * 'count'<~Integer>: - Number of items in container
|
||||||
# * 'name'<~String>: - Name of container
|
# * 'name'<~String>: - Name of container
|
||||||
def get_containers(options = {})
|
def get_containers(options = {})
|
||||||
options = { 'format' => 'json' }.merge!(options)
|
|
||||||
query = ''
|
|
||||||
for key, value in options
|
|
||||||
query << "#{key}=#{CGI.escape(value)}&"
|
|
||||||
end
|
|
||||||
query.chop!
|
|
||||||
response = storage_request(
|
response = storage_request(
|
||||||
:expects => [200, 204],
|
:expects => [200, 204],
|
||||||
:method => 'GET',
|
:method => 'GET',
|
||||||
:path => '',
|
:path => '',
|
||||||
:query => query
|
:query => {'format' => 'json'}.merge!(options)
|
||||||
)
|
)
|
||||||
response
|
response
|
||||||
end
|
end
|
||||||
|
|
|
@ -18,7 +18,7 @@ module Fog
|
||||||
:expects => 204,
|
:expects => 204,
|
||||||
:method => 'HEAD',
|
:method => 'HEAD',
|
||||||
:path => container,
|
:path => container,
|
||||||
:query => 'format=json'
|
:query => {'format' => 'json'}
|
||||||
)
|
)
|
||||||
response
|
response
|
||||||
end
|
end
|
||||||
|
|
|
@ -15,7 +15,7 @@ module Fog
|
||||||
:expects => 204,
|
:expects => 204,
|
||||||
:method => 'HEAD',
|
:method => 'HEAD',
|
||||||
:path => '',
|
:path => '',
|
||||||
:query => 'format=json'
|
:query => {'format' => 'json'}
|
||||||
)
|
)
|
||||||
response
|
response
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue