Class: Tjplurk::API
- Inherits:
-
Object
- Object
- Tjplurk::API
- Defined in:
- lib/tjplurk/api.rb
Instance Attribute Summary collapse
-
#access_token ⇒ Object
readonly
Returns the value of attribute access_token.
-
#consumer ⇒ Object
readonly
Returns the value of attribute consumer.
-
#request_token ⇒ Object
readonly
Returns the value of attribute request_token.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(consumer_key = nil, consumer_secret = nil, token_key = nil, token_secret = nil) ⇒ API
constructor
A new instance of API.
- #real_time ⇒ Object
- #request(path, body = '', headers = {}) ⇒ Object
Constructor Details
#initialize(consumer_key = nil, consumer_secret = nil, token_key = nil, token_secret = nil) ⇒ API
Returns a new instance of API.
12 13 14 15 16 17 18 19 |
# File 'lib/tjplurk/api.rb', line 12 def initialize(consumer_key = nil, consumer_secret = nil, token_key = nil, token_secret = nil) if consumer_key.nil? || consumer_secret.nil? raise 'Consumer key & secret are not found.' unless File.exist? Tjplurk::API.config_file_path consumer_key, consumer_secret, token_key, token_secret = File.readlines(Tjplurk::API.config_file_path).map(&:strip!).delete_if(&:empty?) end @consumer = OAuth::Consumer.new(consumer_key, consumer_secret, Tjplurk::OAUTH_OPTIONS) @access_token = OAuth::AccessToken.new(@consumer, token_key, token_secret) if token_key && token_secret end |
Instance Attribute Details
#access_token ⇒ Object (readonly)
Returns the value of attribute access_token.
6 7 8 |
# File 'lib/tjplurk/api.rb', line 6 def access_token @access_token end |
#consumer ⇒ Object (readonly)
Returns the value of attribute consumer.
6 7 8 |
# File 'lib/tjplurk/api.rb', line 6 def consumer @consumer end |
#request_token ⇒ Object (readonly)
Returns the value of attribute request_token.
6 7 8 |
# File 'lib/tjplurk/api.rb', line 6 def request_token @request_token end |
Class Method Details
.config_file_path ⇒ Object
8 9 10 |
# File 'lib/tjplurk/api.rb', line 8 def self.config_file_path ENV['TJPLURK_FILE'] || File.join(ENV['HOME'], '.tjplurk') end |
Instance Method Details
#real_time ⇒ Object
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/tjplurk/api.rb', line 29 def real_time ret = request('/APP/Realtime/getUserChannel') comet_server = ret['comet_server'] loop do uri = URI(comet_server) json = JSON.parse(Net::HTTP.get(uri)[/CometChannel.scriptCallback\((.*)\);/m, 1]) json['data'].each{ |plurk| yield plurk } if json['data'] comet_server.sub!(/(offset=)\d+/, "\\1#{json['new_offset']}") end end |
#request(path, body = '', headers = {}) ⇒ Object
25 26 27 |
# File 'lib/tjplurk/api.rb', line 25 def request path, body = '', headers = {} JSON.parse(@access_token.post(path, body, headers).body) end |