class Dag::Client::API::RestParameter
Attributes
bucket[R]
cano_resource[R]
content_type[R]
headers[R]
method[R]
parameters[R]
query_params[R]
resource[R]
Public Class Methods
new(method, resource, cano_resource: nil, query_params: {}, parameters: {}, bucket: '', content_type: nil, import: false, raw_data: false, blank_body: false, headers: {}, multipart: false)
click to toggle source
# File lib/dag/client/api/rest_parameter.rb, line 5 def initialize(method, resource, cano_resource: nil, query_params: {}, parameters: {}, bucket: '', content_type: nil, import: false, raw_data: false, blank_body: false, headers: {}, multipart: false) @method = method @resource = resource @cano_resource = cano_resource @query_params = query_params @parameters = parameters @bucket = bucket @content_type = content_type @import = import @raw_data = raw_data @blank_body = blank_body @headers = headers @multipart = multipart end
Public Instance Methods
authentication(apikey, secret, force_path_style)
click to toggle source
# File lib/dag/client/api/rest_parameter.rb, line 74 def authentication(apikey, secret, force_path_style) "IIJGIO" + " " + apikey + ":" + signature(secret, force_path_style) end
blank_body?()
click to toggle source
# File lib/dag/client/api/rest_parameter.rb, line 131 def blank_body? @blank_body end
calc_date()
click to toggle source
# File lib/dag/client/api/rest_parameter.rb, line 112 def calc_date return @date if @date @date = Time.now.httpdate @date end
canonicalized_resource(force_path_style = false)
click to toggle source
# File lib/dag/client/api/rest_parameter.rb, line 94 def canonicalized_resource(force_path_style = false) result = '' if @bucket.present? result = '/' result += "#{@bucket}/" end if @bucket.blank? || @resource != '/' result = File.join(result, @resource) end result += '?' if @cano_resource.present? result += @cano_resource if @cano_resource result end
http_verb()
click to toggle source
# File lib/dag/client/api/rest_parameter.rb, line 59 def http_verb @method.to_s.upcase end
import?()
click to toggle source
# File lib/dag/client/api/rest_parameter.rb, line 119 def import? @import end
multipart?()
click to toggle source
# File lib/dag/client/api/rest_parameter.rb, line 123 def multipart? @multipart end
raw_data?()
click to toggle source
# File lib/dag/client/api/rest_parameter.rb, line 127 def raw_data? @raw_data end
signature(secret, force_path_style = false)
click to toggle source
# File lib/dag/client/api/rest_parameter.rb, line 79 def signature(secret, force_path_style = false) http_verb = "#{self.http_verb}\n" content_md5 = "\n" content_type = signature_content_type date = "#{calc_date}\n" canonicalized_iijgio_headers = "" string_to_sign = http_verb + content_md5 + content_type + date + canonicalized_iijgio_headers + canonicalized_resource(force_path_style) digest = OpenSSL::HMAC.digest(OpenSSL::Digest.new('sha1'), secret, string_to_sign) Base64.encode64(digest).strip end
signature_content_type()
click to toggle source
# File lib/dag/client/api/rest_parameter.rb, line 63 def signature_content_type result = "" if @content_type.present? result << @content_type end result << "\n" result end
to_s()
click to toggle source
# File lib/dag/client/api/rest_parameter.rb, line 135 def to_s [ "method:#{@method}", "resource: #{@resource}", "cano_resource: #{@cano_resource}", "query_params: #{@query_params}", "bucket: #{@bucket}", "parameters: #{@parameters}", "headers: #{@headers}" ].join(", ") end
url(uri, force_path_style = false)
click to toggle source
# File lib/dag/client/api/rest_parameter.rb, line 32 def url(uri, force_path_style = false) url = uri.host url += ":#{uri.port}" unless uri.port == 80 || uri.port == 443 if @bucket.present? if force_path_style url += '/' unless url.end_with? "/" url += @bucket else url = [@bucket, url].join('.') url += '/' unless url.end_with? "/" end end if @bucket.blank? || @resource != '/' url = File.join(url, @resource) end url += '/' if url.split('/').last == @bucket url += '?' if @cano_resource.present? || @query_params.present? url += @cano_resource if @cano_resource url += '&' if @cano_resource.present? && @query_params.present? url += "#{@query_params.to_param}" if @query_params.present? uri.scheme + '://' + url end