Module: Twitter::CLI::Helpers
- Defined in:
- lib/twitter/cli/helpers.rb
Defined Under Namespace
Classes: NoAccounts, NoActiveAccount
Instance Method Summary
collapse
Instance Method Details
#attempt_import(&block) ⇒ Object
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# File 'lib/twitter/cli/helpers.rb', line 42
def attempt_import(&block)
= File.join(ENV['HOME'], '.twitter')
if File.exists?()
say '.twitter file found, attempting import...'
config = YAML::load(File.read())
if !config['email'].blank? && !config['password'].blank?
Account.add(:username => config['email'], :password => config['password'])
say 'Account imported'
block.call if block_given?
true
else
say "Either your username or password were blank in your .twitter file so I could not import. Use 'twitter add' to add an account."
false
end
end
end
|
#base(username = current_account.username, password = current_account.password) ⇒ Object
32
33
34
|
# File 'lib/twitter/cli/helpers.rb', line 32
def base(username=current_account.username, password=current_account.password)
@base ||= Twitter::Base.new(username, password)
end
|
#connect ⇒ Object
78
79
80
81
82
|
# File 'lib/twitter/cli/helpers.rb', line 78
def connect
ActiveRecord::Base.logger = Logger.new('/tmp/twitter_ar_logger.log')
ActiveRecord::Base.establish_connection(Twitter::CLI::Config)
ActiveRecord::Base.connection
end
|
#connect_and_migrate ⇒ Object
89
90
91
92
93
94
|
# File 'lib/twitter/cli/helpers.rb', line 89
def connect_and_migrate
say('Attempting to establish connection...')
connect
say('Connection established...migrating database...')
migrate
end
|
#current_account ⇒ Object
#do_work(&block) ⇒ Object
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
# File 'lib/twitter/cli/helpers.rb', line 59
def do_work(&block)
connect
begin
block.call
rescue Twitter::RateExceeded
say("Twitter says you've been making too many requests. Wait for a bit and try again.")
rescue Twitter::Unavailable
say("Twitter is unavailable right now. Try again later.")
rescue Twitter::CantConnect => msg
say("Can't connect to twitter because: #{msg}")
rescue Twitter::CLI::Helpers::NoActiveAccount
say("You have not set an active account. Use 'twitter change' to set one now.")
rescue Twitter::CLI::Helpers::NoAccounts
unless attempt_import { block.call }
say("You have not created any accounts. Use 'twitter add' to create one now.")
end
end
end
|
#migrate ⇒ Object
84
85
86
87
|
# File 'lib/twitter/cli/helpers.rb', line 84
def migrate
connect
ActiveRecord::Migrator.migrate("#{CLI_ROOT}/migrations/")
end
|
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/twitter/cli/helpers.rb', line 7
def (collection, options={})
options.reverse_merge!({
:cache => false,
:since_prefix => '',
:empty_msg => 'Nothing new since your last check.'
})
if collection.size > 0
justify = collection.collect { |s| s.user.screen_name }.max { |a,b| a.length <=> b.length }.length rescue 0
indention = ' ' * (justify + 3)
say("\n#{indention}#{collection.size} new tweet(s) found.\n\n")
collection.each do |s|
Tweet.(current_account, s) if options[:cache]
occurred_at = Time.parse(s.created_at).strftime('On %b %d at %l:%M%P')
formatted_time = '-' * occurred_at.length + "\n#{indention}#{occurred_at}"
formatted_name = s.user.screen_name.rjust(justify + 1)
formatted_msg = ''
s.text.split(' ').in_groups_of(6, false) { |row| formatted_msg += row.join(' ') + "\n#{indention}" }
say "#{CGI::unescapeHTML(formatted_name)}: #{CGI::unescapeHTML(formatted_msg)}#{formatted_time}\n\n"
end
Configuration["#{options[:since_prefix]}_since_id"] = collection.first.id
else
say(options[:empty_msg])
end
end
|