Sha256: 88d34a497c1b3305282e602eb48d29d751f9aa46b91b94d6dfa216e75975312a
Contents?: true
Size: 1.31 KB
Versions: 3
Compression:
Stored size: 1.31 KB
Contents
class Ppl::Command::Mutt < Ppl::Application::Command attr_writer :format def initialize @name = "mutt" @description = "Integration with mutt's query_command" @format = Ppl::Format::AddressBook::MuttQuery.new end def options(parser, options) parser.banner = "usage: ppl mutt <query>" end def execute(input, output) query = input.arguments.shift if query.nil? raise Ppl::Error::IncorrectUsage, "You must provide a query" end address_book = @storage.load_address_book matches = mutt_search(address_book, query) if matches.count > 0 line = sprintf( "Searching database... %d entries... %d matching:", address_book.count, matches.count ) results = @format.process(matches) output.line(line) output.line(results) unless results == "" true else output.line("No matches") false end end private def mutt_search(address_book, query) matches = Ppl::Entity::AddressBook.new address_book.each do |contact| next if contact.email_address.nil? if contact.email_address.include?(query) matches.add_contact(contact) elsif !contact.name.nil? && contact.name.include?(query) matches.add_contact(contact) end end matches end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
ppl-1.3.0 | lib/ppl/command/mutt.rb |
ppl-1.2.0 | lib/ppl/command/mutt.rb |
ppl-1.1.0 | lib/ppl/command/mutt.rb |