Class: T::CLI::Delete

Inherits:
Thor
  • Object
show all
Includes:
Requestable
Defined in:
lib/t/cli/delete.rb

Constant Summary

Constants included from Requestable

Requestable::DEFAULT_HOST, Requestable::DEFAULT_PROTOCOL

Instance Method Summary collapse

Methods included from Requestable

#base_url, #client, #host, included, #protocol

Constructor Details

#initializeDelete

Returns a new instance of Delete.



13
14
15
16
# File 'lib/t/cli/delete.rb', line 13

def initialize(*)
  super
  @rcfile = RCFile.instance
end

Instance Method Details

#block(screen_name) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/t/cli/delete.rb', line 19

def block(screen_name)
  screen_name = screen_name.strip_at
  user = client.unblock(screen_name, :include_entities => false)
  say "@#{@rcfile.default_profile[0]} unblocked @#{user.screen_name}."
  say
  say "Run `#{File.basename($0)} block #{user.screen_name}` to block."
end

#dmObject



28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/t/cli/delete.rb', line 28

def dm
  direct_message = client.direct_messages_sent(:count => 1, :include_entities => false).first
  if direct_message
    unless parent_options['force']
      return unless yes? "Are you sure you want to permanently delete the direct message to @#{direct_message.recipient.screen_name}: \"#{direct_message.text}\"?"
    end
    direct_message = client.direct_message_destroy(direct_message.id, :include_entities => false)
    say "@#{direct_message.sender.screen_name} deleted the direct message sent to @#{direct_message.recipient.screen_name}: \"#{direct_message.text}\""
  else
    raise Thor::Error, "Direct Message not found"
  end
end

#favoriteObject



43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/t/cli/delete.rb', line 43

def favorite
  status = client.favorites(:count => 1, :include_entities => false).first
  if status
    unless parent_options['force']
      return unless yes? "Are you sure you want to delete the favorite of @#{status.user.screen_name}'s latest status: \"#{status.text}\"?"
    end
    client.unfavorite(status.id, :include_entities => false)
    say "@#{@rcfile.default_profile[0]} unfavorited @#{status.user.screen_name}'s latest status: \"#{status.text}\""
    say
    say "Run `#{File.basename($0)} favorite #{status.user.screen_name}` to favorite."
  else
    raise Thor::Error, "Tweet not found"
  end
end

#list(list_name) ⇒ Object



60
61
62
63
64
65
66
# File 'lib/t/cli/delete.rb', line 60

def list(list_name)
  unless parent_options['force']
    return unless yes? "Are you sure you want to permanently delete the list \"#{list_name}\"?"
  end
  status = client.list_destroy(list_name)
  say "@#{@rcfile.default_profile[0]} deleted the list \"#{list_name}\"."
end

#statusObject



69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/t/cli/delete.rb', line 69

def status
  user = client.user(:include_entities => false)
  if user.status
    unless parent_options['force']
      return unless yes? "Are you sure you want to permanently delete @#{@rcfile.default_profile[0]}'s latest status: \"#{user.status.text}\"?"
    end
    status = client.status_destroy(user.status.id, :include_entities => false, :trim_user => true)
    say "@#{@rcfile.default_profile[0]} deleted the status: \"#{status.text}\""
  else
    raise Thor::Error, "Tweet not found"
  end
end