class Ppl::Command::Ls

Attributes

custom_format[W]
default_format[W]

Public Instance Methods

execute(input, output) click to toggle source
# File lib/ppl/command/ls.rb, line 19
def execute(input, output)
  address_book = @storage.load_address_book
  formatted    = format_address_book(address_book, input.options)
  output.line(formatted)
  true
end
options(parser, options) click to toggle source
# File lib/ppl/command/ls.rb, line 9
def options(parser, options)
  parser.banner = "usage: ppl ls"
  parser.on("--format <format>", "specify a custom output format") do |format|
    options[:format] = format
  end
  parser.on("--pretty <format>", "specify a custom output format") do |pretty|
    options[:pretty] = pretty
  end
end

Private Instance Methods

custom_formatting?(options) click to toggle source
# File lib/ppl/command/ls.rb, line 36
def custom_formatting?(options)
  options[:pretty] || options[:format]
end
format_address_book(address_book, options) click to toggle source
# File lib/ppl/command/ls.rb, line 28
def format_address_book(address_book, options)
  if custom_formatting? options
    use_custom_format(address_book, options)
  else
    @default_format.process(address_book)
  end
end
use_custom_format(address_book, options) click to toggle source
# File lib/ppl/command/ls.rb, line 40
def use_custom_format(address_book, options)
  if !options[:pretty].nil?
    @custom_format.use_preset options[:pretty]
  elsif !options[:format].nil?
    @custom_format.format = options[:format]
  end
  address_book.contacts.map { |c| @custom_format.process(c) }.join("\n")
end