awis-sdk-ruby 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -19,7 +19,10 @@ Awis.config do |c|
19
19
  c.access_key_id = AWIS_CONFIG['access_key_id']
20
20
  c.secret_access_key = AWIS_CONFIG['secret_access_key']
21
21
  c.debug = AWIS_CONFIG['debug']
22
- c.protocol = 'https'
22
+ c.protocol = 'https' # Default 'https'
23
+ c.timeout = 5 # Default 5
24
+ c.open_timeout = 5 # Default 2
25
+ c.logger = false # Default nil
23
26
  end
24
27
  ```
25
28
 
@@ -34,7 +34,7 @@ module Awis
34
34
  def load_request_uri(params)
35
35
  collection = Awis::Connection.new
36
36
  collection.setup_params(params)
37
- collection.uri
37
+ collection.request_url
38
38
  end
39
39
 
40
40
  def before_validation_arguments(arguments)
@@ -3,13 +3,13 @@ require "singleton"
3
3
  module Awis
4
4
  class Config
5
5
  include Singleton
6
- attr_accessor :access_key_id, :secret_access_key, :proxy, :debug, :protocol
6
+ attr_accessor :access_key_id, :secret_access_key, :proxy, :debug, :protocol,
7
+ :timeout, :open_timeout, :logger
7
8
  end
8
9
 
9
10
  def self.config
10
- if block_given?
11
- yield Config.instance
12
- end
11
+ yield Config.instance if block_given?
12
+
13
13
  Config.instance
14
14
  end
15
15
  end
@@ -13,8 +13,14 @@ module Awis
13
13
  def initialize
14
14
  raise CertificateError.new("Amazon access certificate is missing!") if Awis.config.access_key_id.nil? || Awis.config.secret_access_key.nil?
15
15
 
16
- @debug = Awis.config.debug || false
17
- @protocol = Awis.config.protocol || 'https'
16
+ setup_options!
17
+ end
18
+
19
+ def setup_options!
20
+ @debug = Awis.config.debug || false
21
+ @protocol = Awis.config.protocol || 'https'
22
+ @timeout = Awis.config.timeout || 5
23
+ @open_timeout = Awis.config.open_timeout || 2
18
24
  end
19
25
 
20
26
  def params
@@ -49,13 +55,23 @@ module Awis
49
55
  end
50
56
 
51
57
  def request
52
- showing_request_uri
58
+ connection = Faraday.new(url: host_with_port) do |faraday|
59
+ faraday.request :url_encoded # form-encode POST params
60
+ faraday.response :logger do |logger|
61
+ logger.filter(/(AWSAccessKeyId=)(\w+)/, '\1[REMOVED]')
62
+ end if Awis.config.logger
63
+ faraday.adapter :net_http
64
+ end
53
65
 
54
- Faraday.get(uri)
66
+ connection.get do |req|
67
+ req.url url_params
68
+ req.options.open_timeout = @timeout
69
+ req.options.timeout = @open_timeout
70
+ end
55
71
  end
56
72
 
57
- def showing_request_uri
58
- puts "[DEBUG] -> #{uri}" if debug
73
+ def host_with_port
74
+ protocol + '://' + Awis::API_HOST
59
75
  end
60
76
 
61
77
  def timestamp
@@ -66,8 +82,12 @@ module Awis
66
82
  Base64.encode64(OpenSSL::HMAC.digest(OpenSSL::Digest.new("sha256"), Awis.config.secret_access_key, sign)).strip
67
83
  end
68
84
 
69
- def uri
70
- URI.parse("#{protocol}://#{Awis::API_HOST}/?" + query_params + "&Signature=" + CGI::escape(signature))
85
+ def url_params
86
+ '?' + original_params
87
+ end
88
+
89
+ def request_url
90
+ URI.parse(host_with_port + url_params)
71
91
  end
72
92
 
73
93
  def default_params
@@ -87,5 +107,9 @@ module Awis
87
107
  def query_params
88
108
  default_params.merge(params).map { |key, value| "#{key}=#{CGI::escape(value.to_s)}" }.sort.join("&")
89
109
  end
110
+
111
+ def original_params
112
+ query_params + "&Signature=" + CGI::escape(signature)
113
+ end
90
114
  end
91
115
  end
@@ -1,3 +1,3 @@
1
1
  module Awis
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: awis-sdk-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2017-08-22 00:00:00.000000000 Z
12
+ date: 2017-08-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: multi_xml
@@ -167,7 +167,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
167
167
  version: '0'
168
168
  segments:
169
169
  - 0
170
- hash: -2693191246107031408
170
+ hash: 862568070736027421
171
171
  requirements: []
172
172
  rubyforge_project:
173
173
  rubygems_version: 1.8.23