class T::Delete

Public Class Methods

new(*) click to toggle source
Calls superclass method
# File lib/t/delete.rb, line 14
def initialize(*)
  @rcfile = T::RCFile.instance
  super
end

Public Instance Methods

account(account, key = nil) click to toggle source
# File lib/t/delete.rb, line 104
def account(account, key = nil)
  if key && @rcfile.profiles[account].keys.size > 1
    @rcfile.delete_key(account, key)
  else
    @rcfile.delete_profile(account)
  end
end
block(user, *users) click to toggle source
# File lib/t/delete.rb, line 22
def block(user, *users)
  unblocked_users, number = fetch_users(users.unshift(user), options) do |users_to_unblock|
    client.unblock(users_to_unblock)
  end
  say "@#{@rcfile.active_profile[0]} unblocked #{pluralize(number, 'user')}."
  say
  say "Run `#{File.basename($PROGRAM_NAME)} block #{unblocked_users.collect { |unblocked_user| "@#{unblocked_user.screen_name}" }.join(' ')}` to block."
end
dm(direct_message_id, *direct_message_ids) click to toggle source
# File lib/t/delete.rb, line 33
def dm(direct_message_id, *direct_message_ids)
  direct_message_ids.unshift(direct_message_id)
  require 't/core_ext/string'
  direct_message_ids.collect!(&:to_i)
  if options['force']
    direct_messages = client.destroy_direct_message(direct_message_ids)
    direct_messages.each do |direct_message|
      say "@#{@rcfile.active_profile[0]} deleted the direct message sent to @#{direct_message.recipient.screen_name}: \"#{direct_message.text}\""
    end
  else
    direct_message_ids.each do |direct_message_id_to_delete|
      direct_message = client.direct_message(direct_message_id_to_delete)
      next unless yes? "Are you sure you want to permanently delete the direct message to @#{direct_message.recipient.screen_name}: \"#{direct_message.text}\"? [y/N]"
      client.destroy_direct_message(direct_message_id_to_delete)
      say "@#{@rcfile.active_profile[0]} deleted the direct message sent to @#{direct_message.recipient.screen_name}: \"#{direct_message.text}\""
    end
  end
end
favorite(status_id, *status_ids) click to toggle source
# File lib/t/delete.rb, line 55
def favorite(status_id, *status_ids)
  status_ids.unshift(status_id)
  require 't/core_ext/string'
  status_ids.collect!(&:to_i)
  if options['force']
    tweets = client.unfavorite(status_ids)
    tweets.each do |status|
      say "@#{@rcfile.active_profile[0]} unfavorited @#{status.user.screen_name}'s status: \"#{status.full_text}\""
    end
  else
    status_ids.each do |status_id_to_unfavorite|
      status = client.status(status_id_to_unfavorite, include_my_retweet: false)
      next unless yes? "Are you sure you want to remove @#{status.user.screen_name}'s status: \"#{status.full_text}\" from your favorites? [y/N]"
      client.unfavorite(status_id_to_unfavorite)
      say "@#{@rcfile.active_profile[0]} unfavorited @#{status.user.screen_name}'s status: \"#{status.full_text}\""
    end
  end
end
list(list) click to toggle source
# File lib/t/delete.rb, line 78
def list(list)
  if options['id']
    require 't/core_ext/string'
    list = list.to_i
  end
  list = client.list(list)
  unless options['force']
    return unless yes? "Are you sure you want to permanently delete the list \"#{list.name}\"? [y/N]"
  end
  client.destroy_list(list)
  say "@#{@rcfile.active_profile[0]} deleted the list \"#{list.name}\"."
end
mute(user, *users) click to toggle source
# File lib/t/delete.rb, line 94
def mute(user, *users)
  unmuted_users, number = fetch_users(users.unshift(user), options) do |users_to_unmute|
    client.unmute(users_to_unmute)
  end
  say "@#{@rcfile.active_profile[0]} unmuted #{pluralize(number, 'user')}."
  say
  say "Run `#{File.basename($PROGRAM_NAME)} mute #{unmuted_users.collect { |unmuted_user| "@#{unmuted_user.screen_name}" }.join(' ')}` to mute."
end
status(status_id, *status_ids) click to toggle source
# File lib/t/delete.rb, line 114
def status(status_id, *status_ids)
  status_ids.unshift(status_id)
  require 't/core_ext/string'
  status_ids.collect!(&:to_i)
  if options['force']
    tweets = client.destroy_status(status_ids, trim_user: true)
    tweets.each do |status|
      say "@#{@rcfile.active_profile[0]} deleted the Tweet: \"#{status.full_text}\""
    end
  else
    status_ids.each do |status_id_to_delete|
      status = client.status(status_id_to_delete, include_my_retweet: false)
      next unless yes? "Are you sure you want to permanently delete @#{status.user.screen_name}'s status: \"#{status.full_text}\"? [y/N]"
      client.destroy_status(status_id_to_delete, trim_user: true)
      say "@#{@rcfile.active_profile[0]} deleted the Tweet: \"#{status.full_text}\""
    end
  end
end