class SkypeSearch::Cli
Public Class Methods
new()
click to toggle source
# File lib/skype_search/cli.rb, line 6 def initialize @skype_search = SkypeSearch.configure set_color_scheme end
Public Instance Methods
options()
click to toggle source
# File lib/skype_search/cli.rb, line 11 def options [ "Select conversation", "Select group conversation", "Search for text", "Exit" ] end
process(selection)
click to toggle source
# File lib/skype_search/cli.rb, line 26 def process selection send selection.downcase.split(" ").join("_") end
prompt()
click to toggle source
# File lib/skype_search/cli.rb, line 18 def prompt choose do |menu| menu.header = "What do you want to do" menu.choices *options end end
Private Instance Methods
exit()
click to toggle source
# File lib/skype_search/cli.rb, line 49 def exit abort "Game over!" end
get_row_color(index)
click to toggle source
# File lib/skype_search/cli.rb, line 95 def get_row_color index index.odd? ? :odd_row : :even_row end
print(title=nil, messages)
click to toggle source
# File lib/skype_search/cli.rb, line 81 def print title=nil, messages print_title title if title messages.each_with_index do |message, index| OutputProcessor.new(message).parse say(%{<%= color('#{message}', '#{get_row_color(index)}') %>}) end end
print_title(title)
click to toggle source
# File lib/skype_search/cli.rb, line 90 def print_title title say("<%= color('#{title}', :headline) %>") say("<%= color('*'*30, :horizontal_line) %>") end
search_for_text()
click to toggle source
# File lib/skype_search/cli.rb, line 40 def search_for_text search_string = ask("What are you looking for?") do |question| question.case = :up question.validate = ->(q) { q.length >= 3 } question.responses[:not_valid] = "You search needs to be at least 3 characters long" end print "Search results", @skype_search.search_for(search_string).map(&:to_s) end
select_contact()
click to toggle source
# File lib/skype_search/cli.rb, line 53 def select_contact choose do |menu| menu.prompt = "Select a contact" menu.choices *@skype_search.find_contacts.map(&:dialog_partner) end end
select_conversation()
click to toggle source
# File lib/skype_search/cli.rb, line 32 def select_conversation print "Conversation", @skype_search.find_messages_between(select_contact).map(&:to_s) end
select_group()
click to toggle source
# File lib/skype_search/cli.rb, line 61 def select_group group_conversations = @skype_search.find_conversations selection = choose do |menu| menu.prompt = "Select a contact" menu.choices *group_conversations.map(&:to_s) end group_conversations.select { |con| con.to_s == selection }.first.id end
select_group_conversation()
click to toggle source
# File lib/skype_search/cli.rb, line 36 def select_group_conversation print "Group conversation", @skype_search.find_conversation_by_id(select_group).map(&:to_s) end
set_color_scheme()
click to toggle source
# File lib/skype_search/cli.rb, line 71 def set_color_scheme colors = HighLine::ColorScheme.new do |cs| cs[:headline] = [ :bold, :yellow, :on_black ] cs[:horizontal_line] = [ :bold, :white, :on_blue] cs[:even_row] = [ :yellow ] cs[:odd_row] = [ :gray ] end HighLine.color_scheme = colors end