module Twitter class JSONStream protected def reconnect_after timeout @reconnect_callback.call(timeout, @reconnect_retries) if @reconnect_callback if timeout == 0 reconnect @options[:host], @options[:port] start_tls if @options[:ssl] else EventMachine.add_timer(timeout) do reconnect @options[:host], @options[:port] start_tls if @options[:ssl] end end end end end module TwitterOAuth class Client private def consumer @consumer ||= OAuth::Consumer.new( @consumer_key, @consumer_secret, { :site => 'https://api.twitter.com', :proxy => @proxy } ) end end end class String def c(*codes) codes = codes.flatten.map { |code| case code when String, Symbol Earthquake.config[:color][code.to_sym] rescue nil else code end }.compact.unshift(0) "\e[#{codes.join(';')}m#{self}\e[0m" end def coloring(pattern, color = nil, &block) self.gsub(pattern) do |i| applied_colors = $`.scan(/\e\[[\d;]+m/) c = color || block.call(i) "#{i.c(c)}#{applied_colors.join}" end end def u gsub(/&(lt|gt|amp|quot|apos);/) do |s| case s when '&' then '&' when '<' then '<' when '>' then '>' when ''' then "'" when '"' then '"' end end end def e gsub(/[&<>'"]/) do |s| case s when '&' then '&' when '<' then '<' when '>' then '>' when "'" then ''' when '"' then '"' end end end end