Module: Birdwatcher::Concerns::Presentation
- Included in:
- Birdwatcher::Command, Module
- Defined in:
- lib/birdwatcher/concerns/presentation.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
-
#make_status_summary_output(status) ⇒ String
Make status summary output.
-
#make_url_summary_output(url) ⇒ String
Make URL summary output.
-
#make_user_details_output(user) ⇒ String
Make user details output.
-
#make_user_summary_output(user) ⇒ String
Make a user summary output.
-
#output_status_summary(status) ⇒ Object
Output status summary to the console.
-
#output_user_details(user) ⇒ Object
Output user details to the console.
-
#output_user_summary(user) ⇒ Object
Output a user summary to the console.
-
#page_text(text) ⇒ Object
Page potentially long output to the console.
Class Method Details
.included(base) ⇒ Object
4 5 6 |
# File 'lib/birdwatcher/concerns/presentation.rb', line 4 def self.included(base) base.extend(ClassMethods) end |
Instance Method Details
#make_status_summary_output(status) ⇒ String
Make status summary output
69 70 71 72 73 74 |
# File 'lib/birdwatcher/concerns/presentation.rb', line 69 def make_status_summary_output(status) "#{status.user.name.bold.light_green} (@#{status.user.screen_name}) #{status.user.verified ? '*'.bold.light_blue : ''} #{status.posted_at.strftime('%b %e, %H:%M')}\n" + "#{status.text.bold}\n" + "#{'Favorites:'.light_blue} #{status.favorite_count} | " + "#{'Retweets:'.light_blue} #{status.retweet_count}\n" end |
#make_url_summary_output(url) ⇒ String
Make URL summary output
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/birdwatcher/concerns/presentation.rb', line 87 def make_url_summary_output(url) out = "#{(url[:final_url] || url[:url]).bold}\n" + "#{'Shares:'.bold} #{url[:count]}\n" out += "#{'Title:'.bold} #{url[:title] || 'Unknown'}\n" if url[:http_status] case url[:http_status] when 200..299 status = url[:http_status].to_s.bold.light_green when 400..499 status = url[:http_status].to_s.bold.light_yellow when 500..599 status = url[:http_status].to_s.bold.light_red else status = url[:http_status].to_s.bold end out += "#{'Status Code:'.bold} #{status}\n" else out += "#{'Status Code:'.bold} Unknown\n" end out += "#{'Content Type:'.bold} #{url[:content_type] || 'Unknown'}\n" out end |
#make_user_details_output(user) ⇒ String
Make user details output
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/birdwatcher/concerns/presentation.rb', line 39 def make_user_details_output(user) "#{user.name.bold.light_green} (@#{user.screen_name}) #{user.verified ? '*'.bold.light_blue : ''}\n\n" + "Description:".bold + " #{user.description || 'No description'}\n" + " Location:".bold + " #{user.location || 'Unknown'}\n" + " Website:".bold + " #{user.url || 'None'}\n" + " Timezone:".bold + " #{user.timezone}\n" + " Language:".bold + " #{user.lang}\n\n" + "Followers:".bold + " #{user.followers_count}\n" + "Following:".bold + " #{user.friends_count}\n" + "Favorites:".bold + " #{user.favorites_count}\n" + " Statuses:".bold + " #{user.statuses_count}\n\n" + " Added:".bold + " #{time_ago_in_words(user.created_at)}\n" + "Updated:".bold + (user.updated_at ? " #{time_ago_in_words(user.updated_at)}" : " Never") + "\n" end |
#make_user_summary_output(user) ⇒ String
Make a user summary output
16 17 18 19 20 21 22 23 24 25 |
# File 'lib/birdwatcher/concerns/presentation.rb', line 16 def make_user_summary_output(user) "#{user.name.bold.light_green} (@#{user.screen_name}) #{user.verified ? '*'.bold.light_blue : ''}\n" + "Description:".bold + " #{user.description || 'No description'}\n" + "Location:".bold + " #{user.location || 'Unknown'}\n" + "Followers:".bold + " #{user.followers_count} | " + "Following:".bold + " #{user.friends_count} | " + "Listed:".bold + " #{user.listed_count} | " + "Favorites:".bold + " #{user.favorites_count} | " + "Statuses:".bold + " #{user.statuses_count}\n" end |
#output_status_summary(status) ⇒ Object
Output status summary to the console
79 80 81 |
# File 'lib/birdwatcher/concerns/presentation.rb', line 79 def output_status_summary(status) output make_status_summary_output(status) end |
#output_user_details(user) ⇒ Object
Output user details to the console
60 61 62 |
# File 'lib/birdwatcher/concerns/presentation.rb', line 60 def output_user_details(user) output make_user_details_output(user) end |
#output_user_summary(user) ⇒ Object
Output a user summary to the console
30 31 32 |
# File 'lib/birdwatcher/concerns/presentation.rb', line 30 def output_user_summary(user) make_user_summary_output(user) end |
#page_text(text) ⇒ Object
Page potentially long output to the console
If the text is long, it will be automatically paged with the system’s currently configured pager command (usually ‘less`).
116 117 118 119 |
# File 'lib/birdwatcher/concerns/presentation.rb', line 116 def page_text(text) ::TTY::Pager::SystemPager.new.page(text) rescue Errno::EPIPE end |