Sha256: 91fad37a91e5ce6fa75f6bdd90e4af22eabee6eefb9f1f6aef2a4ada02070be6

Contents?: true

Size: 1.16 KB

Versions: 4

Compression:

Stored size: 1.16 KB

Contents

module Tw
  class Client::Stream
    def initialize(user=nil)
      user = Tw::Auth.get_or_regist_user user
      UserStream.configure do |config|
        config.consumer_key = Conf['consumer_key']
        config.consumer_secret = Conf['consumer_secret']
        config.oauth_token = user['access_token']
        config.oauth_token_secret = user['access_secret']
      end

      @client = UserStream::Client.new
    end

    def user_stream(&block)
      raise ArgumentError, 'block not given' unless block_given?
      @client.user do |m|
        if data = tweet?(m)
          yield data
        end
      end
    end

    def filter(*track_words, &block)
      raise ArgumentError, 'block not given' unless block_given?
      @client.filter :track => track_words.join(',') do |m|
        if data = tweet?(m)
          yield data
        end
      end
    end

    private
    def tweet?(chunk)
      return false unless chunk.user and chunk.user.screen_name and chunk.text and chunk.created_at and chunk.id
      {
        :id => chunk.id,
        :user => chunk.user.screen_name,
        :text => chunk.text,
        :time => (Time.parse chunk.created_at)
      }
    end

  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
tw-0.2.4 lib/tw/client/stream.rb
tw-0.2.3 lib/tw/client/stream.rb
tw-0.2.2 lib/tw/client/stream.rb
tw-0.2.1 lib/tw/client/stream.rb