Module: Kotsms2::Network
- Included in:
- Client
- Defined in:
- lib/kotsms2/network.rb
Instance Method Summary collapse
- #escape(component) ⇒ Object
- #get(host, request_uri, params = {}) ⇒ Object
- #parse(http_response, host) ⇒ Object
- #query_string(params) ⇒ Object
- #request(uri, message) ⇒ Object
Instance Method Details
#escape(component) ⇒ Object
44 45 46 |
# File 'lib/kotsms2/network.rb', line 44 def escape(component) CGI.escape(component.to_s) end |
#get(host, request_uri, params = {}) ⇒ Object
6 7 8 9 10 11 12 13 14 |
# File 'lib/kotsms2/network.rb', line 6 def get(host, request_uri, params = {}) uri = URI('https://' + host + request_uri) uri.query = query_string(params.merge(username: @username, password: @password)) = Net::HTTP::Get.new(uri.request_uri) ['User-Agent'] = @user_agent parse(request(uri, ), host) end |
#parse(http_response, host) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/kotsms2/network.rb', line 16 def parse(http_response, host) case http_response when Net::HTTPSuccess http_response.body when Net::HTTPClientError raise ClientError, "#{http_response.code} response from #{host}" when Net::HTTPServerError raise ServerError, "#{http_response.code} response from #{host}" when 'READ_TIMEOUT' raise ClientTimeoutError, "Read Timeout from #{host}" else raise Error, "#{http_response.code} response from #{host}" end end |
#query_string(params) ⇒ Object
40 41 42 |
# File 'lib/kotsms2/network.rb', line 40 def query_string(params) params.flat_map { |k, vs| Array(vs).map { |v| "#{escape(k)}=#{escape(v)}" } }.join('&') end |
#request(uri, message) ⇒ Object
31 32 33 34 35 36 37 38 |
# File 'lib/kotsms2/network.rb', line 31 def request(uri, ) http = Net::HTTP.new(uri.host, Net::HTTP.https_default_port) http.read_timeout = @timeout http.use_ssl = true http.request() rescue Net::ReadTimeout 'READ_TIMEOUT' end |