Sha256: 7d2d566ba15cada03592508da2816f6c06e0917cc5979a2d526900b3fa44a277
Contents?: true
Size: 1.99 KB
Versions: 3
Compression:
Stored size: 1.99 KB
Contents
require 'twitter/default' require 'twitter/api/timelines' require 'net/http' require 'uri' require 'json' module Twitter # @note Inspired from twitter-4.5.0/spec/twitter/tweet_spec.rb class Client ConnectionError = Class.new(StandardError) include Twitter::API::Timelines # Perform an HTTP get request against Twitter API then parse the result # # @param [String] path the relative path to twitter API # @param [Array<Array<(String, String)>>] qry a nested array used to build the http query string # # @return [Array<Hash>] a collection of twitter response object, for example tweets # # @example # path = "statuses/user_timeline.json" # qry = [['screen_name', 'elgalu'], ['count', '1']] # Twitter::Client.new.get(path, qry) # #=> [{"created_at"=>"Fri Mar 01 21:42:19 +0000 2013", "id"=>30760.... def get(path, qry=[]) uri = build_uri(path, qry) begin result = Net::HTTP.get(uri) rescue => ex pute uri, "Some network connection error: #{ex.inspect}" end pute uri, "The result contains errors: #{result}" if result =~ /error/ JSON.parse(result) end private # Builds an URI object out of a path and a query string appending twitter endpoint and api version # # @param (see #get) # # @return [URI] parsed ready url # # @private def build_uri(path, qry=[]) query = URI.encode_www_form(qry) path.chomp!('/') path.sub!(/^\//, '') base = Twitter::Default.endpoint ver = Twitter::Default.api_version URI.parse("#{base}/#{ver}/#{path}?#{query}") end # Output connection related errors and terminates execusion # # @param [URI] uri the uri from which will use the full url # @param [String] msg the custom error message # # @raise [ConnectionError] always, with url and message # # @private def pute(uri, msg) raise ConnectionError.new("#{msg}\nRequest: #{uri.to_s}\n") end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
twitter_anonymous_client-1.0.2.0 | lib/twitter/client.rb |
twitter_anonymous_client-1.0.1.0 | lib/twitter/client.rb |
twitter_anonymous_client-1.0.0.0 | lib/twitter/client.rb |