def direct_messages
count = options['number'] || DEFAULT_NUM_RESULTS
direct_messages = collect_with_count(count) do |opts|
client.direct_messages(opts)
end
direct_messages.reverse! if options['reverse']
if options['csv']
say DIRECT_MESSAGE_HEADINGS.to_csv unless direct_messages.empty?
direct_messages.each do |direct_message|
say [direct_message.id, csv_formatted_time(direct_message), direct_message.sender.screen_name, direct_message.text].to_csv
end
elsif options['long']
array = direct_messages.map do |direct_message|
[direct_message.id, ls_formatted_time(direct_message), "@#{direct_message.sender.screen_name}", HTMLEntities.new.decode(direct_message.text).gsub(/\n+/, ' ')]
end
print_table_with_headings(array, DIRECT_MESSAGE_HEADINGS)
else
direct_messages.each do |direct_message|
say "#{direct_message.sender.screen_name.rjust(MAX_SCREEN_NAME_SIZE)}: #{direct_message.text.gsub(/\n+/, ' ')} (#{time_ago_in_words(direct_message.created_at)} ago)"
end
end
end