Object
# File lib/rabbiter.rb, line 62 def close return if @connection.nil? @connection.close @connection = nil end
# File lib/rabbiter.rb, line 46 def register_listener(&block) @listeners << block end
# File lib/rabbiter.rb, line 50 def setup return unless @oauth_parameters.nil? setup_access_token unless @config_file_path.exist? oauth_access_parameters = YAML.load(@config_file_path.read) @oauth_parameters = { :consumer_key => CONSUMER_KEY, :consumer_secret => CONSUMER_SECRET, :access_key => oauth_access_parameters[:access_token], :access_secret => oauth_access_parameters[:access_secret], } end
# File lib/rabbiter.rb, line 68 def start(*filters, &block) register_listener(&block) if block_given? setup if @oauth_parameters.nil? return if @oauth_parameters.nil? stream_options = { :oauth => @oauth_parameters, :user_agent => "Rabbiter #{Rabbiter::VERSION}", :method => "POST", :filters => filters, } @stream = ::Twitter::JSONStream.allocate @stream.send(:initialize, stream_options) @stream.send(:reset_state) @connection = GLibConnection.new(@logger, @stream) @stream.each_item do |item| status = JSON.parse(item) @listeners.each do |listener| listener.call(status) end end @stream.on_error do |message| @logger.error("[twitter] #{message}") end @stream.on_reconnect do |timeout, n_retries| format = _("%{timeout} seconds (%{n_retries})") message = format % {:timeout => timeout, :n_retries => retries} @logger.info("[twitter][reconnect] #{message}") end @stream.on_max_reconnects do |timeout, n_retries| format = _("Failed after %{n_retries} failed reconnects") message = format % {:n_retries => retries} @logger.info("[twitter][max-reconnects] #{message}") end @connection.connect end
Generated with the Darkfish Rdoc Generator 2.