Module: Pry::SendTweet::TweetRenderer

Includes:
TimeAgoInWords, Timeout
Included in:
BaseCommand
Defined in:
lib/pry/send_tweet/renderers/tweet_renderer.rb

Constant Summary

Constants included from TimeAgoInWords

TimeAgoInWords::VERSION

Instance Method Summary collapse

Methods included from TimeAgoInWords

time_ago_in_words

Instance Method Details

#render_tweets(tweet_fetcher, title: nil, timeout: _pry_.config.twitter.refresh_interval) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/pry/send_tweet/renderers/tweet_renderer.rb', line 5

def render_tweets(tweet_fetcher, title: nil, timeout: _pry_.config.twitter.refresh_interval)
  pager = Pry::Pager::SystemPager.new(_pry_.output).tap(&:fork)
  interval = __choose_render_interval(timeout)
  timeout(interval) do
    began_at, refresh_at = __find_timeout_range(interval)
    rendered_title = __choose_title(title, began_at, refresh_at)
    tweets = __fetch_tweets(tweet_fetcher)
    tweets.empty? ? pager.write("No tweets to show.") :
                    pager.write(__render_tweets(rendered_title, tweets))
  end
rescue Pry::Pager::StopPaging, Interrupt
  pager.fast_exit!
  system 'reset'
rescue Timeout::Error
  pager.fast_exit!
  system 'reset'
  retry
ensure
  pager.close
end