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
print_title(title) click to toggle source
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