123: def initialize( options = {} )
124:
125: options = { :access_key_id => "",
126: :secret_access_key => "",
127: :use_ssl => true,
128: :server => default_host,
129: :proxy_server => nil
130: }.merge(options)
131:
132: @server = options[:server]
133: @proxy_server = options[:proxy_server]
134: @use_ssl = options[:use_ssl]
135:
136: raise ArgumentError, "No :access_key_id provided" if options[:access_key_id].nil? || options[:access_key_id].empty?
137: raise ArgumentError, "No :secret_access_key provided" if options[:secret_access_key].nil? || options[:secret_access_key].empty?
138: raise ArgumentError, "No :use_ssl value provided" if options[:use_ssl].nil?
139: raise ArgumentError, "Invalid :use_ssl value provided, only 'true' or 'false' allowed" unless options[:use_ssl] == true || options[:use_ssl] == false
140: raise ArgumentError, "No :server provided" if options[:server].nil? || options[:server].empty?
141:
142: if options[:port]
143:
144: @port = options[:port]
145: elsif @use_ssl
146:
147: @port = 443
148: else
149:
150: @port = 80
151: end
152:
153: @access_key_id = options[:access_key_id]
154: @secret_access_key = options[:secret_access_key]
155:
156:
157:
158: proxy = @proxy_server ? URI.parse(@proxy_server) : OpenStruct.new
159: @http = Net::HTTP::Proxy( proxy.host,
160: proxy.port,
161: proxy.user,
162: proxy.password).new(options[:server], @port)
163:
164: @http.use_ssl = @use_ssl
165:
166:
167: @http.verify_mode = OpenSSL::SSL::VERIFY_NONE
168:
169: end