Module: Twsms2::Network
- Included in:
- Client
- Defined in:
- lib/twsms2/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
39 40 41 |
# File 'lib/twsms2/network.rb', line 39 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/twsms2/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 |
# File 'lib/twsms2/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}" else raise Error, "#{http_response.code} response from #{host}" end end |
#query_string(params) ⇒ Object
35 36 37 |
# File 'lib/twsms2/network.rb', line 35 def query_string(params) params.flat_map { |k, vs| Array(vs).map { |v| "#{escape(k)}=#{escape(v)}" } }.join('&') end |
#request(uri, message) ⇒ Object
29 30 31 32 33 |
# File 'lib/twsms2/network.rb', line 29 def request(uri, ) http = Net::HTTP.new(uri.host, Net::HTTP.https_default_port) http.use_ssl = true http.request() end |