t 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,8 +16,8 @@ module T
16
16
  end
17
17
 
18
18
  desc "block USER [USER...]", "Unblock users."
19
- method_option :id, :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify input as Twitter user IDs instead of screen names."
20
- method_option :force, :aliases => "-f", :type => :boolean, :default => false
19
+ method_option "id", :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify input as Twitter user IDs instead of screen names."
20
+ method_option "force", :aliases => "-f", :type => :boolean, :default => false
21
21
  def block(user, *users)
22
22
  users.unshift(user)
23
23
  if options['id']
@@ -31,13 +31,13 @@ module T
31
31
  end
32
32
  end
33
33
  number = users.length
34
- say "@#{@rcfile.default_profile[0]} unblocked #{number} #{number == 1 ? 'user' : 'users'}."
34
+ say "@#{@rcfile.active_profile[0]} unblocked #{number} #{number == 1 ? 'user' : 'users'}."
35
35
  say
36
36
  say "Run `#{File.basename($0)} block #{users.map{|user| "@#{user.screen_name}"}.join(' ')}` to block."
37
37
  end
38
38
 
39
39
  desc "dm [DIRECT_MESSAGE_ID] [DIRECT_MESSAGE_ID...]", "Delete the last Direct Message sent."
40
- method_option :force, :aliases => "-f", :type => :boolean, :default => false
40
+ method_option "force", :aliases => "-f", :type => :boolean, :default => false
41
41
  def dm(direct_message_id, *direct_message_ids)
42
42
  direct_message_ids.unshift(direct_message_id)
43
43
  direct_message_ids.map!(&:strip_commas)
@@ -47,13 +47,13 @@ module T
47
47
  return unless yes? "Are you sure you want to permanently delete the direct message to @#{direct_message.recipient.screen_name}: \"#{direct_message.text}\"? [y/N]"
48
48
  end
49
49
  direct_message = client.direct_message_destroy(direct_message_id.to_i, :include_entities => false)
50
- say "@#{@rcfile.default_profile[0]} deleted the direct message sent to @#{direct_message.recipient.screen_name}: \"#{direct_message.text}\""
50
+ say "@#{@rcfile.active_profile[0]} deleted the direct message sent to @#{direct_message.recipient.screen_name}: \"#{direct_message.text}\""
51
51
  end
52
52
  end
53
53
  map %w(d m) => :dm
54
54
 
55
55
  desc "favorite STATUS_ID [STATUS_ID...]", "Delete favorites."
56
- method_option :force, :aliases => "-f", :type => :boolean, :default => false
56
+ method_option "force", :aliases => "-f", :type => :boolean, :default => false
57
57
  def favorite(status_id, *status_ids)
58
58
  status_ids.unshift(status_id)
59
59
  status_ids.map!(&:strip_commas)
@@ -63,14 +63,14 @@ module T
63
63
  return unless yes? "Are you sure you want to remove @#{status.user.screen_name}'s status: \"#{status.text}\" from your favorites? [y/N]"
64
64
  end
65
65
  status = client.unfavorite(status_id.to_i, :include_entities => false)
66
- say "@#{@rcfile.default_profile[0]} unfavorited @#{status.user.screen_name}'s status: \"#{status.text}\""
66
+ say "@#{@rcfile.active_profile[0]} unfavorited @#{status.user.screen_name}'s status: \"#{status.text}\""
67
67
  end
68
68
  end
69
69
  map %w(fave favourite) => :favorite
70
70
 
71
71
  desc "list LIST", "Delete a list."
72
- method_option :force, :aliases => "-f", :type => :boolean, :default => false
73
- method_option :id, :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify list via ID instead of slug."
72
+ method_option "force", :aliases => "-f", :type => :boolean, :default => false
73
+ method_option "id", :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify list via ID instead of slug."
74
74
  def list(list)
75
75
  list = list.to_i if options['id']
76
76
  list = client.list(list)
@@ -78,11 +78,11 @@ module T
78
78
  return unless yes? "Are you sure you want to permanently delete the list \"#{list.name}\"? [y/N]"
79
79
  end
80
80
  list = client.list_destroy(list.id)
81
- say "@#{@rcfile.default_profile[0]} deleted the list \"#{list.name}\"."
81
+ say "@#{@rcfile.active_profile[0]} deleted the list \"#{list.name}\"."
82
82
  end
83
83
 
84
84
  desc "status STATUS_ID [STATUS_ID...]", "Delete Tweets."
85
- method_option :force, :aliases => "-f", :type => :boolean, :default => false
85
+ method_option "force", :aliases => "-f", :type => :boolean, :default => false
86
86
  def status(status_id, *status_ids)
87
87
  status_ids.unshift(status_id)
88
88
  status_ids.map!(&:strip_commas)
@@ -92,7 +92,7 @@ module T
92
92
  return unless yes? "Are you sure you want to permanently delete @#{status.user.screen_name}'s status: \"#{status.text}\"? [y/N]"
93
93
  end
94
94
  status = client.status_destroy(status_id.to_i, :include_entities => false, :trim_user => true)
95
- say "@#{@rcfile.default_profile[0]} deleted the status: \"#{status.text}\""
95
+ say "@#{@rcfile.active_profile[0]} deleted the status: \"#{status.text}\""
96
96
  end
97
97
  end
98
98
  map %w(post tweet update) => :status
@@ -32,7 +32,7 @@ module T
32
32
  end
33
33
 
34
34
  desc "add LIST USER [USER...]", "Add members to a list."
35
- method_option :id, :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify input as Twitter user IDs instead of screen names."
35
+ method_option "id", :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify input as Twitter user IDs instead of screen names."
36
36
  def add(list, user, *users)
37
37
  users.unshift(user)
38
38
  if options['id']
@@ -46,7 +46,7 @@ module T
46
46
  end
47
47
  end
48
48
  number = users.length
49
- say "@#{@rcfile.default_profile[0]} added #{number} #{number == 1 ? 'member' : 'members'} to the list \"#{list}\"."
49
+ say "@#{@rcfile.active_profile[0]} added #{number} #{number == 1 ? 'member' : 'members'} to the list \"#{list}\"."
50
50
  say
51
51
  if options['id']
52
52
  say "Run `#{File.basename($0)} list remove --id #{list} #{users.join(' ')}` to undo."
@@ -56,21 +56,21 @@ module T
56
56
  end
57
57
 
58
58
  desc "create LIST [DESCRIPTION]", "Create a new list."
59
- method_option :private, :aliases => "-p", :type => :boolean
59
+ method_option "private", :aliases => "-p", :type => :boolean
60
60
  def create(list, description="")
61
61
  opts = description.blank? ? {} : {:description => description}
62
62
  opts.merge!(:mode => 'private') if options['private']
63
63
  client.list_create(list, opts)
64
- say "@#{@rcfile.default_profile[0]} created the list \"#{list}\"."
64
+ say "@#{@rcfile.active_profile[0]} created the list \"#{list}\"."
65
65
  end
66
66
 
67
67
  desc "information [USER/]LIST", "Retrieves detailed information about a Twitter list."
68
- method_option :csv, :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
68
+ method_option "csv", :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
69
69
  def information(list)
70
70
  owner, list = list.split('/')
71
71
  if list.nil?
72
72
  list = owner
73
- owner = @rcfile.default_profile[0]
73
+ owner = @rcfile.active_profile[0]
74
74
  else
75
75
  owner = if options['id']
76
76
  owner.to_i
@@ -102,22 +102,22 @@ module T
102
102
  map %w(detail) => :information
103
103
 
104
104
  desc "members [USER/]LIST", "Returns the members of a Twitter list."
105
- method_option :csv, :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
106
- method_option :favorites, :aliases => "-v", :type => :boolean, :default => false, :desc => "Sort by total number of favorites."
107
- method_option :followers, :aliases => "-f", :type => :boolean, :default => false, :desc => "Sort by total number of followers."
108
- method_option :friends, :aliases => "-e", :type => :boolean, :default => false, :desc => "Sort by total number of friends."
109
- method_option :id, :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
110
- method_option :listed, :aliases => "-s", :type => :boolean, :default => false, :desc => "Sort by number of list memberships."
111
- method_option :long, :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
112
- method_option :posted, :aliases => "-p", :type => :boolean, :default => false, :desc => "Sort by the time when Twitter account was posted."
113
- method_option :reverse, :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
114
- method_option :tweets, :aliases => "-t", :type => :boolean, :default => false, :desc => "Sort by total number of Tweets."
115
- method_option :unsorted, :aliases => "-u", :type => :boolean, :default => false, :desc => "Output is not sorted."
105
+ method_option "csv", :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
106
+ method_option "followers", :aliases => "-v", :type => :boolean, :default => false, :desc => "Sort by total number of favorites."
107
+ method_option "followers", :aliases => "-f", :type => :boolean, :default => false, :desc => "Sort by total number of followers."
108
+ method_option "friends", :aliases => "-e", :type => :boolean, :default => false, :desc => "Sort by total number of friends."
109
+ method_option "id", :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
110
+ method_option "listed", :aliases => "-s", :type => :boolean, :default => false, :desc => "Sort by number of list memberships."
111
+ method_option "long", :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
112
+ method_option "posted", :aliases => "-p", :type => :boolean, :default => false, :desc => "Sort by the time when Twitter account was posted."
113
+ method_option "reverse", :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
114
+ method_option "tweets", :aliases => "-t", :type => :boolean, :default => false, :desc => "Sort by total number of Tweets."
115
+ method_option "unsorted", :aliases => "-u", :type => :boolean, :default => false, :desc => "Output is not sorted."
116
116
  def members(list)
117
117
  owner, list = list.split('/')
118
118
  if list.nil?
119
119
  list = owner
120
- owner = @rcfile.default_profile[0]
120
+ owner = @rcfile.active_profile[0]
121
121
  else
122
122
  owner = if options['id']
123
123
  owner.to_i
@@ -132,7 +132,7 @@ module T
132
132
  end
133
133
 
134
134
  desc "remove LIST USER [USER...]", "Remove members from a list."
135
- method_option :id, :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify input as Twitter user IDs instead of screen names."
135
+ method_option "id", :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify input as Twitter user IDs instead of screen names."
136
136
  def remove(list, user, *users)
137
137
  users.unshift(user)
138
138
  if options['id']
@@ -146,7 +146,7 @@ module T
146
146
  end
147
147
  end
148
148
  number = users.length
149
- say "@#{@rcfile.default_profile[0]} removed #{number} #{number == 1 ? 'member' : 'members'} from the list \"#{list}\"."
149
+ say "@#{@rcfile.active_profile[0]} removed #{number} #{number == 1 ? 'member' : 'members'} from the list \"#{list}\"."
150
150
  say
151
151
  if options['id']
152
152
  say "Run `#{File.basename($0)} list add --id #{list} #{users.join(' ')}` to undo."
@@ -156,16 +156,16 @@ module T
156
156
  end
157
157
 
158
158
  desc "timeline [USER/]LIST", "Show tweet timeline for members of the specified list."
159
- method_option :csv, :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
160
- method_option :id, :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
161
- method_option :long, :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
162
- method_option :number, :aliases => "-n", :type => :numeric, :default => DEFAULT_NUM_RESULTS, :desc => "Limit the number of results."
163
- method_option :reverse, :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
159
+ method_option "csv", :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
160
+ method_option "id", :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
161
+ method_option "long", :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
162
+ method_option "number", :aliases => "-n", :type => :numeric, :default => DEFAULT_NUM_RESULTS, :desc => "Limit the number of results."
163
+ method_option "reverse", :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
164
164
  def timeline(list)
165
165
  owner, list = list.split('/')
166
166
  if list.nil?
167
167
  list = owner
168
- owner = @rcfile.default_profile[0]
168
+ owner = @rcfile.active_profile[0]
169
169
  else
170
170
  owner = if options['id']
171
171
  owner.to_i
@@ -3,6 +3,7 @@ require 'csv'
3
3
  # 'fastercsv' required on Ruby versions < 1.9
4
4
  require 'fastercsv' unless Array.new.respond_to?(:to_csv)
5
5
  require 'highline'
6
+ require 'thor/shell/color'
6
7
 
7
8
  module T
8
9
  module Printable
@@ -79,8 +80,17 @@ module T
79
80
  end
80
81
  print_table(array)
81
82
  else
82
- statuses.each do |status|
83
- say "#{status.user.screen_name.rjust(MAX_SCREEN_NAME_SIZE)}: #{status.text.gsub(/\n+/, ' ')} (#{time_ago_in_words(status.created_at)} ago)"
83
+ if STDOUT.tty? && !options['no-color']
84
+ statuses.each do |status|
85
+ say(" #{Thor::Shell::Color::BOLD}#{status.user.screen_name}", :yellow)
86
+ Thor::Shell::Basic.new.print_wrapped(status.text, :indent => 2)
87
+ say(" #{Thor::Shell::Color::BOLD}#{time_ago_in_words(status.created_at)} ago", :black)
88
+ say
89
+ end
90
+ else
91
+ statuses.each do |status|
92
+ say "#{status.user.screen_name.rjust(MAX_SCREEN_NAME_SIZE)}: #{status.text.gsub(/\n+/, ' ')} (#{time_ago_in_words(status.created_at)} ago)"
93
+ end
84
94
  end
85
95
  end
86
96
  end
@@ -26,29 +26,29 @@ class RCFile
26
26
  @data['configuration']
27
27
  end
28
28
 
29
- def default_consumer_key
30
- profiles[default_profile[0]][default_profile[1]]['consumer_key'] if default_profile && profiles[default_profile[0]] && profiles[default_profile[0]][default_profile[1]]
29
+ def active_consumer_key
30
+ profiles[active_profile[0]][active_profile[1]]['consumer_key'] if active_profile && profiles[active_profile[0]] && profiles[active_profile[0]][active_profile[1]]
31
31
  end
32
32
 
33
- def default_consumer_secret
34
- profiles[default_profile[0]][default_profile[1]]['consumer_secret'] if default_profile && profiles[default_profile[0]] && profiles[default_profile[0]][default_profile[1]]
33
+ def active_consumer_secret
34
+ profiles[active_profile[0]][active_profile[1]]['consumer_secret'] if active_profile && profiles[active_profile[0]] && profiles[active_profile[0]][active_profile[1]]
35
35
  end
36
36
 
37
- def default_profile
37
+ def active_profile
38
38
  configuration['default_profile']
39
39
  end
40
40
 
41
- def default_profile=(profile)
41
+ def active_profile=(profile)
42
42
  configuration['default_profile'] = [profile['username'], profile['consumer_key']]
43
43
  write
44
44
  end
45
45
 
46
- def default_secret
47
- profiles[default_profile[0]][default_profile[1]]['secret'] if default_profile && profiles[default_profile[0]] && profiles[default_profile[0]][default_profile[1]]
46
+ def active_secret
47
+ profiles[active_profile[0]][active_profile[1]]['secret'] if active_profile && profiles[active_profile[0]] && profiles[active_profile[0]][active_profile[1]]
48
48
  end
49
49
 
50
- def default_token
51
- profiles[default_profile[0]][default_profile[1]]['token'] if default_profile && profiles[default_profile[0]] && profiles[default_profile[0]][default_profile[1]]
50
+ def active_token
51
+ profiles[active_profile[0]][active_profile[1]]['token'] if active_profile && profiles[active_profile[0]] && profiles[active_profile[0]][active_profile[1]]
52
52
  end
53
53
 
54
54
  def delete
@@ -86,7 +86,7 @@ private
86
86
  end
87
87
 
88
88
  def write
89
- File.open(@path, 'w') do |rcfile|
89
+ File.open(@path, File::RDWR|File::CREAT, 0600) do |rcfile|
90
90
  rcfile.write @data.to_yaml
91
91
  end
92
92
  end
@@ -18,10 +18,10 @@ module T
18
18
  @rcfile.path = options['profile'] if options['profile']
19
19
  @client = Twitter::Client.new(
20
20
  :endpoint => base_url,
21
- :consumer_key => @rcfile.default_consumer_key,
22
- :consumer_secret => @rcfile.default_consumer_secret,
23
- :oauth_token => @rcfile.default_token,
24
- :oauth_token_secret => @rcfile.default_secret
21
+ :consumer_key => @rcfile.active_consumer_key,
22
+ :consumer_secret => @rcfile.active_consumer_secret,
23
+ :oauth_token => @rcfile.active_token,
24
+ :oauth_token_secret => @rcfile.active_secret
25
25
  )
26
26
  end
27
27
 
@@ -30,7 +30,7 @@ module T
30
30
  end
31
31
 
32
32
  def protocol
33
- options['no_ssl'] ? 'http' : DEFAULT_PROTOCOL
33
+ options['no-ssl'] ? 'http' : DEFAULT_PROTOCOL
34
34
  end
35
35
 
36
36
  end
@@ -28,9 +28,9 @@ module T
28
28
  end
29
29
 
30
30
  desc "all QUERY", "Returns the #{DEFAULT_NUM_RESULTS} most recent Tweets that match a specified query."
31
- method_option :csv, :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
32
- method_option :long, :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
33
- method_option :number, :aliases => "-n", :type => :numeric, :default => DEFAULT_NUM_RESULTS
31
+ method_option "csv", :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
32
+ method_option "long", :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
33
+ method_option "number", :aliases => "-n", :type => :numeric, :default => DEFAULT_NUM_RESULTS
34
34
  def all(query)
35
35
  rpp = options['number'] || DEFAULT_NUM_RESULTS
36
36
  statuses = client.search(query, :include_entities => false, :rpp => rpp)
@@ -57,8 +57,8 @@ module T
57
57
  end
58
58
 
59
59
  desc "favorites QUERY", "Returns Tweets you've favorited that mach a specified query."
60
- method_option :csv, :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
61
- method_option :long, :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
60
+ method_option "csv", :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
61
+ method_option "long", :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
62
62
  def favorites(query)
63
63
  statuses = 1.upto(MAX_PAGES).threaded_map do |page|
64
64
  retryable(:tries => 3, :on => Twitter::Error::ServerError, :sleep => 0) do
@@ -72,8 +72,8 @@ module T
72
72
  map %w(faves) => :favorites
73
73
 
74
74
  desc "mentions QUERY", "Returns Tweets mentioning you that mach a specified query."
75
- method_option :csv, :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
76
- method_option :long, :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
75
+ method_option "csv", :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
76
+ method_option "long", :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
77
77
  def mentions(query)
78
78
  statuses = 1.upto(MAX_PAGES).threaded_map do |page|
79
79
  retryable(:tries => 3, :on => Twitter::Error::ServerError, :sleep => 0) do
@@ -87,8 +87,8 @@ module T
87
87
  map %w(replies) => :mentions
88
88
 
89
89
  desc "retweets QUERY", "Returns Tweets you've retweeted that mach a specified query."
90
- method_option :csv, :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
91
- method_option :long, :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
90
+ method_option "csv", :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
91
+ method_option "long", :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
92
92
  def retweets(query)
93
93
  statuses = 1.upto(MAX_PAGES).threaded_map do |page|
94
94
  retryable(:tries => 3, :on => Twitter::Error::ServerError, :sleep => 0) do
@@ -102,8 +102,8 @@ module T
102
102
  map %w(rts) => :retweets
103
103
 
104
104
  desc "timeline QUERY", "Returns Tweets in your timeline that match a specified query."
105
- method_option :csv, :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
106
- method_option :long, :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
105
+ method_option "csv", :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
106
+ method_option "long", :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
107
107
  def timeline(query)
108
108
  statuses = 1.upto(MAX_PAGES).threaded_map do |page|
109
109
  retryable(:tries => 3, :on => Twitter::Error::ServerError, :sleep => 0) do
@@ -117,9 +117,9 @@ module T
117
117
  map %w(tl) => :timeline
118
118
 
119
119
  desc "user USER QUERY", "Returns Tweets in a user's timeline that match a specified query."
120
- method_option :csv, :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
121
- method_option :id, :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
122
- method_option :long, :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
120
+ method_option "csv", :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
121
+ method_option "id", :aliases => "-i", :type => "boolean", :default => false, :desc => "Specify user via ID instead of screen name."
122
+ method_option "long", :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
123
123
  def user(user, query)
124
124
  user = if options['id']
125
125
  user.to_i
@@ -14,43 +14,44 @@ module T
14
14
  @rcfile = RCFile.instance
15
15
  end
16
16
 
17
- desc "bio DESCRIPTION", "Edits your Bio information on your Twitter profile."
18
- def bio(description)
19
- client.update_profile(:description => description, :include_entities => false)
20
- say "@#{@rcfile.default_profile[0]}'s bio has been updated."
21
- end
22
-
23
- desc "default SCREEN_NAME [CONSUMER_KEY]", "Set your default account."
24
- def default(screen_name, consumer_key=nil)
17
+ desc "active SCREEN_NAME [CONSUMER_KEY]", "Set your active account."
18
+ def active(screen_name, consumer_key=nil)
25
19
  screen_name = screen_name.strip_ats
26
20
  @rcfile.path = options['profile'] if options['profile']
27
21
  consumer_key = @rcfile[screen_name].keys.last if consumer_key.nil?
28
- @rcfile.default_profile = {'username' => screen_name, 'consumer_key' => consumer_key}
29
- say "Default account has been updated."
22
+ @rcfile.active_profile = {'username' => screen_name, 'consumer_key' => consumer_key}
23
+ say "Active account has been updated."
24
+ end
25
+ map %w(default) => :active
26
+
27
+ desc "bio DESCRIPTION", "Edits your Bio information on your Twitter profile."
28
+ def bio(description)
29
+ client.update_profile(:description => description, :include_entities => false)
30
+ say "@#{@rcfile.active_profile[0]}'s bio has been updated."
30
31
  end
31
32
 
32
33
  desc "language LANGUAGE_NAME", "Selects the language you'd like to receive notifications in."
33
34
  def language(language_name)
34
35
  client.settings(:lang => language_name)
35
- say "@#{@rcfile.default_profile[0]}'s language has been updated."
36
+ say "@#{@rcfile.active_profile[0]}'s language has been updated."
36
37
  end
37
38
 
38
39
  desc "location PLACE_NAME", "Updates the location field in your profile."
39
40
  def location(place_name)
40
41
  client.update_profile(:location => place_name, :include_entities => false)
41
- say "@#{@rcfile.default_profile[0]}'s location has been updated."
42
+ say "@#{@rcfile.active_profile[0]}'s location has been updated."
42
43
  end
43
44
 
44
45
  desc "name NAME", "Sets the name field on your Twitter profile."
45
46
  def name(name)
46
47
  client.update_profile(:name => name, :include_entities => false)
47
- say "@#{@rcfile.default_profile[0]}'s name has been updated."
48
+ say "@#{@rcfile.active_profile[0]}'s name has been updated."
48
49
  end
49
50
 
50
51
  desc "url URL", "Sets the URL field on your profile."
51
52
  def url(url)
52
53
  client.update_profile(:url => url, :include_entities => false)
53
- say "@#{@rcfile.default_profile[0]}'s URL has been updated."
54
+ say "@#{@rcfile.active_profile[0]}'s URL has been updated."
54
55
  end
55
56
 
56
57
  end
@@ -8,7 +8,7 @@ module T
8
8
 
9
9
  # @return [Integer]
10
10
  def self.minor
11
- 7
11
+ 8
12
12
  end
13
13
 
14
14
  # @return [Integer]
@@ -22,20 +22,20 @@ describe T::CLI do
22
22
 
23
23
  describe "#account" do
24
24
  before do
25
- @cli.options = @cli.options.merge(:profile => fixture_path + "/.trc")
25
+ @cli.options = @cli.options.merge("profile" => fixture_path + "/.trc")
26
26
  end
27
27
  it "should have the correct output" do
28
28
  @cli.accounts
29
29
  $stdout.string.should == <<-eos
30
30
  testcli
31
- abc123 (default)
31
+ abc123 (active)
32
32
  eos
33
33
  end
34
34
  end
35
35
 
36
36
  describe "#authorize" do
37
37
  before do
38
- @cli.options = @cli.options.merge(:profile => project_path + "/tmp/trc", :consumer_key => "abc123", :consumer_secret => "asdfasd223sd2", :prompt => true, :display_url => true)
38
+ @cli.options = @cli.options.merge("profile" => project_path + "/tmp/trc", "consumer-key" => "abc123", "consumer-secret" => "asdfasd223sd2", "prompt" => true, "display-url" => true)
39
39
  stub_post("/oauth/request_token").
40
40
  to_return(:body => fixture("request_token"))
41
41
  stub_post("/oauth/access_token").
@@ -69,7 +69,7 @@ testcli
69
69
 
70
70
  describe "#block" do
71
71
  before do
72
- @cli.options = @cli.options.merge(:profile => fixture_path + "/.trc")
72
+ @cli.options = @cli.options.merge("profile" => fixture_path + "/.trc")
73
73
  stub_post("/1/blocks/create.json").
74
74
  with(:body => {:screen_name => "sferik", :include_entities => "false"}).
75
75
  to_return(:body => fixture("sferik.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -86,7 +86,7 @@ testcli
86
86
  end
87
87
  context "--id" do
88
88
  before do
89
- @cli.options = @cli.options.merge(:id => true)
89
+ @cli.options = @cli.options.merge("id" => true)
90
90
  stub_post("/1/blocks/create.json").
91
91
  with(:body => {:user_id => "7505382", :include_entities => "false"}).
92
92
  to_return(:body => fixture("sferik.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -129,7 +129,7 @@ testcli
129
129
  end
130
130
  context "--csv" do
131
131
  before do
132
- @cli.options = @cli.options.merge(:csv => true)
132
+ @cli.options = @cli.options.merge("csv" => true)
133
133
  end
134
134
  it "should output in CSV format" do
135
135
  @cli.direct_messages
@@ -150,7 +150,7 @@ ID,Posted at,Screen name,Text
150
150
  end
151
151
  context "--long" do
152
152
  before do
153
- @cli.options = @cli.options.merge(:long => true)
153
+ @cli.options = @cli.options.merge("long" => true)
154
154
  end
155
155
  it "should output in long format" do
156
156
  @cli.direct_messages
@@ -171,7 +171,7 @@ ID Posted at Screen name Text
171
171
  end
172
172
  context "--number" do
173
173
  before do
174
- @cli.options = @cli.options.merge(:number => 1)
174
+ @cli.options = @cli.options.merge("number" => 1)
175
175
  stub_get("/1/direct_messages.json").
176
176
  with(:query => {:count => "1", :include_entities => "false"}).
177
177
  to_return(:body => fixture("direct_messages.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -185,7 +185,7 @@ ID Posted at Screen name Text
185
185
  end
186
186
  context "--reverse" do
187
187
  before do
188
- @cli.options = @cli.options.merge(:reverse => true)
188
+ @cli.options = @cli.options.merge("reverse" => true)
189
189
  end
190
190
  it "should reverse the order of the sort" do
191
191
  @cli.direct_messages
@@ -234,7 +234,7 @@ ID Posted at Screen name Text
234
234
  end
235
235
  context "--csv" do
236
236
  before do
237
- @cli.options = @cli.options.merge(:csv => true)
237
+ @cli.options = @cli.options.merge("csv" => true)
238
238
  end
239
239
  it "should output in CSV format" do
240
240
  @cli.direct_messages_sent
@@ -255,7 +255,7 @@ ID,Posted at,Screen name,Text
255
255
  end
256
256
  context "--long" do
257
257
  before do
258
- @cli.options = @cli.options.merge(:long => true)
258
+ @cli.options = @cli.options.merge("long" => true)
259
259
  end
260
260
  it "should output in long format" do
261
261
  @cli.direct_messages_sent
@@ -276,7 +276,7 @@ ID Posted at Screen name Text
276
276
  end
277
277
  context "--number" do
278
278
  before do
279
- @cli.options = @cli.options.merge(:number => 1)
279
+ @cli.options = @cli.options.merge("number" => 1)
280
280
  stub_get("/1/direct_messages/sent.json").
281
281
  with(:query => {:count => "1", :include_entities => "false"}).
282
282
  to_return(:body => fixture("direct_messages.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -290,7 +290,7 @@ ID Posted at Screen name Text
290
290
  end
291
291
  context "--reverse" do
292
292
  before do
293
- @cli.options = @cli.options.merge(:reverse => true)
293
+ @cli.options = @cli.options.merge("reverse" => true)
294
294
  end
295
295
  it "should reverse the order of the sort" do
296
296
  @cli.direct_messages_sent
@@ -340,7 +340,7 @@ ID Posted at Screen name Text
340
340
  end
341
341
  context "--csv" do
342
342
  before do
343
- @cli.options = @cli.options.merge(:csv => true)
343
+ @cli.options = @cli.options.merge("csv" => true)
344
344
  end
345
345
  it "should output in CSV format" do
346
346
  @cli.disciples
@@ -353,7 +353,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
353
353
  end
354
354
  context "--favorites" do
355
355
  before do
356
- @cli.options = @cli.options.merge(:favorites => true)
356
+ @cli.options = @cli.options.merge("favorites" => true)
357
357
  end
358
358
  it "should sort by number of favorites" do
359
359
  @cli.disciples
@@ -362,7 +362,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
362
362
  end
363
363
  context "--followers" do
364
364
  before do
365
- @cli.options = @cli.options.merge(:followers => true)
365
+ @cli.options = @cli.options.merge("followers" => true)
366
366
  end
367
367
  it "should sort by number of followers" do
368
368
  @cli.disciples
@@ -371,7 +371,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
371
371
  end
372
372
  context "--friends" do
373
373
  before do
374
- @cli.options = @cli.options.merge(:friends => true)
374
+ @cli.options = @cli.options.merge("friends" => true)
375
375
  end
376
376
  it "should sort by number of friends" do
377
377
  @cli.disciples
@@ -380,7 +380,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
380
380
  end
381
381
  context "--listed" do
382
382
  before do
383
- @cli.options = @cli.options.merge(:listed => true)
383
+ @cli.options = @cli.options.merge("listed" => true)
384
384
  end
385
385
  it "should sort by number of list memberships" do
386
386
  @cli.disciples
@@ -389,7 +389,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
389
389
  end
390
390
  context "--long" do
391
391
  before do
392
- @cli.options = @cli.options.merge(:long => true)
392
+ @cli.options = @cli.options.merge("long" => true)
393
393
  end
394
394
  it "should output in long format" do
395
395
  @cli.disciples
@@ -402,7 +402,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
402
402
  end
403
403
  context "--posted" do
404
404
  before do
405
- @cli.options = @cli.options.merge(:posted => true)
405
+ @cli.options = @cli.options.merge("posted" => true)
406
406
  end
407
407
  it "should sort by the time when Twitter acount was created" do
408
408
  @cli.disciples
@@ -411,7 +411,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
411
411
  end
412
412
  context "--reverse" do
413
413
  before do
414
- @cli.options = @cli.options.merge(:reverse => true)
414
+ @cli.options = @cli.options.merge("reverse" => true)
415
415
  end
416
416
  it "should reverse the order of the sort" do
417
417
  @cli.disciples
@@ -420,7 +420,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
420
420
  end
421
421
  context "--tweets" do
422
422
  before do
423
- @cli.options = @cli.options.merge(:tweets => true)
423
+ @cli.options = @cli.options.merge("tweets" => true)
424
424
  end
425
425
  it "should sort by number of Tweets" do
426
426
  @cli.disciples
@@ -429,7 +429,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
429
429
  end
430
430
  context "--unsorted" do
431
431
  before do
432
- @cli.options = @cli.options.merge(:unsorted => true)
432
+ @cli.options = @cli.options.merge("unsorted" => true)
433
433
  end
434
434
  it "should not be sorted" do
435
435
  @cli.disciples
@@ -459,7 +459,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
459
459
  end
460
460
  context "--id" do
461
461
  before do
462
- @cli.options = @cli.options.merge(:id => true)
462
+ @cli.options = @cli.options.merge("id" => true)
463
463
  stub_get("/1/followers/ids.json").
464
464
  with(:query => {:cursor => "-1", :user_id => "7505382"}).
465
465
  to_return(:body => fixture("followers_ids.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -485,7 +485,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
485
485
 
486
486
  describe "#dm" do
487
487
  before do
488
- @cli.options = @cli.options.merge(:profile => fixture_path + "/.trc")
488
+ @cli.options = @cli.options.merge("profile" => fixture_path + "/.trc")
489
489
  stub_post("/1/direct_messages/new.json").
490
490
  with(:body => {:screen_name => "pengwynn", :text => "Creating a fixture for the Twitter gem", :include_entities => "false"}).
491
491
  to_return(:body => fixture("direct_message.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -502,7 +502,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
502
502
  end
503
503
  context "--id" do
504
504
  before do
505
- @cli.options = @cli.options.merge(:id => true)
505
+ @cli.options = @cli.options.merge("id" => true)
506
506
  stub_post("/1/direct_messages/new.json").
507
507
  with(:body => {:user_id => "14100886", :text => "Creating a fixture for the Twitter gem", :include_entities => "false"}).
508
508
  to_return(:body => fixture("direct_message.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -518,7 +518,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
518
518
 
519
519
  describe "#does_contain" do
520
520
  before do
521
- @cli.options = @cli.options.merge(:profile => fixture_path + "/.trc")
521
+ @cli.options = @cli.options.merge("profile" => fixture_path + "/.trc")
522
522
  stub_get("/1/lists/members/show.json").
523
523
  with(:query => {:owner_screen_name => "testcli", :screen_name => "testcli", :slug => "presidents"}).
524
524
  to_return(:body => fixture("list.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -535,7 +535,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
535
535
  end
536
536
  context "--id" do
537
537
  before do
538
- @cli.options = @cli.options.merge(:id => true)
538
+ @cli.options = @cli.options.merge("id" => true)
539
539
  stub_get("/1/users/show.json").
540
540
  with(:query => {:user_id => "7505382", :include_entities => "false"}).
541
541
  to_return(:body => fixture("sferik.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -560,7 +560,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
560
560
  end
561
561
  context "--id" do
562
562
  before do
563
- @cli.options = @cli.options.merge(:id => true)
563
+ @cli.options = @cli.options.merge("id" => true)
564
564
  stub_get("/1/users/show.json").
565
565
  with(:query => {:user_id => "7505382", :include_entities => "false"}).
566
566
  to_return(:body => fixture("sferik.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -604,7 +604,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
604
604
 
605
605
  describe "#does_follow" do
606
606
  before do
607
- @cli.options = @cli.options.merge(:profile => fixture_path + "/.trc")
607
+ @cli.options = @cli.options.merge("profile" => fixture_path + "/.trc")
608
608
  stub_get("/1/friendships/exists.json").
609
609
  with(:query => {:user_a => "ev", :user_b => "testcli"}).
610
610
  to_return(:body => fixture("true.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -621,7 +621,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
621
621
  end
622
622
  context "--id" do
623
623
  before do
624
- @cli.options = @cli.options.merge(:id => true)
624
+ @cli.options = @cli.options.merge("id" => true)
625
625
  stub_get("/1/users/show.json").
626
626
  with(:query => {:user_id => "20", :include_entities => "false"}).
627
627
  to_return(:body => fixture("sferik.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -646,7 +646,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
646
646
  end
647
647
  context "--id" do
648
648
  before do
649
- @cli.options = @cli.options.merge(:id => true)
649
+ @cli.options = @cli.options.merge("id" => true)
650
650
  stub_get("/1/users/show.json").
651
651
  with(:query => {:user_id => "20", :include_entities => "false"}).
652
652
  to_return(:body => fixture("sferik.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -690,7 +690,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
690
690
 
691
691
  describe "#favorite" do
692
692
  before do
693
- @cli.options = @cli.options.merge(:profile => fixture_path + "/.trc")
693
+ @cli.options = @cli.options.merge("profile" => fixture_path + "/.trc")
694
694
  stub_post("/1/favorites/create/26755176471724032.json").
695
695
  to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
696
696
  end
@@ -707,6 +707,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
707
707
 
708
708
  describe "#favorites" do
709
709
  before do
710
+ @cli.options = @cli.options.merge("no-color" => true)
710
711
  stub_get("/1/favorites.json").
711
712
  with(:query => {:count => "20", :include_entities => "false"}).
712
713
  to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -741,7 +742,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
741
742
  end
742
743
  context "--csv" do
743
744
  before do
744
- @cli.options = @cli.options.merge(:csv => true)
745
+ @cli.options = @cli.options.merge("csv" => true)
745
746
  end
746
747
  it "should output in CSV format" do
747
748
  @cli.favorites
@@ -769,7 +770,7 @@ ID,Posted at,Screen name,Text
769
770
  end
770
771
  context "--long" do
771
772
  before do
772
- @cli.options = @cli.options.merge(:long => true)
773
+ @cli.options = @cli.options.merge("long" => true)
773
774
  end
774
775
  it "should output in long format" do
775
776
  @cli.favorites
@@ -797,7 +798,7 @@ ID Posted at Screen name Text
797
798
  end
798
799
  context "--number" do
799
800
  before do
800
- @cli.options = @cli.options.merge(:number => 1)
801
+ @cli.options = @cli.options.merge("number" => 1)
801
802
  stub_get("/1/favorites.json").
802
803
  with(:query => {:count => "1", :include_entities => "false"}).
803
804
  to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -811,7 +812,7 @@ ID Posted at Screen name Text
811
812
  end
812
813
  context "--reverse" do
813
814
  before do
814
- @cli.options = @cli.options.merge(:reverse => true)
815
+ @cli.options = @cli.options.merge("reverse" => true)
815
816
  end
816
817
  it "should reverse the order of the sort" do
817
818
  @cli.favorites
@@ -850,7 +851,7 @@ ID Posted at Screen name Text
850
851
  end
851
852
  context "--id" do
852
853
  before do
853
- @cli.options = @cli.options.merge(:id => true)
854
+ @cli.options = @cli.options.merge("id" => true)
854
855
  stub_get("/1/favorites/7505382.json").
855
856
  with(:query => {:count => "20", :include_entities => "false"}).
856
857
  to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -867,7 +868,7 @@ ID Posted at Screen name Text
867
868
 
868
869
  describe "#follow" do
869
870
  before do
870
- @cli.options = @cli.options.merge(:profile => fixture_path + "/.trc")
871
+ @cli.options = @cli.options.merge("profile" => fixture_path + "/.trc")
871
872
  end
872
873
  context "one user" do
873
874
  it "should request the correct resource" do
@@ -888,7 +889,7 @@ ID Posted at Screen name Text
888
889
  end
889
890
  context "--id" do
890
891
  before do
891
- @cli.options = @cli.options.merge(:id => true)
892
+ @cli.options = @cli.options.merge("id" => true)
892
893
  stub_post("/1/friendships/create.json").
893
894
  with(:body => {:user_id => "7505382", :include_entities => "false"}).
894
895
  to_return(:body => fixture("sferik.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -940,7 +941,7 @@ ID Posted at Screen name Text
940
941
  end
941
942
  context "--csv" do
942
943
  before do
943
- @cli.options = @cli.options.merge(:csv => true)
944
+ @cli.options = @cli.options.merge("csv" => true)
944
945
  end
945
946
  it "should output in CSV format" do
946
947
  @cli.followings
@@ -953,7 +954,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
953
954
  end
954
955
  context "--favorites" do
955
956
  before do
956
- @cli.options = @cli.options.merge(:favorites => true)
957
+ @cli.options = @cli.options.merge("favorites" => true)
957
958
  end
958
959
  it "should sort by number of favorites" do
959
960
  @cli.followings
@@ -962,7 +963,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
962
963
  end
963
964
  context "--followers" do
964
965
  before do
965
- @cli.options = @cli.options.merge(:followers => true)
966
+ @cli.options = @cli.options.merge("followers" => true)
966
967
  end
967
968
  it "should sort by number of followers" do
968
969
  @cli.followings
@@ -971,7 +972,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
971
972
  end
972
973
  context "--friends" do
973
974
  before do
974
- @cli.options = @cli.options.merge(:friends => true)
975
+ @cli.options = @cli.options.merge("friends" => true)
975
976
  end
976
977
  it "should sort by number of friends" do
977
978
  @cli.followings
@@ -980,7 +981,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
980
981
  end
981
982
  context "--listed" do
982
983
  before do
983
- @cli.options = @cli.options.merge(:listed => true)
984
+ @cli.options = @cli.options.merge("listed" => true)
984
985
  end
985
986
  it "should sort by number of list memberships" do
986
987
  @cli.followings
@@ -989,7 +990,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
989
990
  end
990
991
  context "--long" do
991
992
  before do
992
- @cli.options = @cli.options.merge(:long => true)
993
+ @cli.options = @cli.options.merge("long" => true)
993
994
  end
994
995
  it "should output in long format" do
995
996
  @cli.followings
@@ -1002,7 +1003,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
1002
1003
  end
1003
1004
  context "--posted" do
1004
1005
  before do
1005
- @cli.options = @cli.options.merge(:posted => true)
1006
+ @cli.options = @cli.options.merge("posted" => true)
1006
1007
  end
1007
1008
  it "should sort by the time when Twitter acount was created" do
1008
1009
  @cli.followings
@@ -1011,7 +1012,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
1011
1012
  end
1012
1013
  context "--reverse" do
1013
1014
  before do
1014
- @cli.options = @cli.options.merge(:reverse => true)
1015
+ @cli.options = @cli.options.merge("reverse" => true)
1015
1016
  end
1016
1017
  it "should reverse the order of the sort" do
1017
1018
  @cli.followings
@@ -1020,7 +1021,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
1020
1021
  end
1021
1022
  context "--tweets" do
1022
1023
  before do
1023
- @cli.options = @cli.options.merge(:tweets => true)
1024
+ @cli.options = @cli.options.merge("tweets" => true)
1024
1025
  end
1025
1026
  it "should sort by number of Tweets" do
1026
1027
  @cli.followings
@@ -1029,7 +1030,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
1029
1030
  end
1030
1031
  context "--unsorted" do
1031
1032
  before do
1032
- @cli.options = @cli.options.merge(:unsorted => true)
1033
+ @cli.options = @cli.options.merge("unsorted" => true)
1033
1034
  end
1034
1035
  it "should not be sorted" do
1035
1036
  @cli.followings
@@ -1054,7 +1055,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
1054
1055
  end
1055
1056
  context "--id" do
1056
1057
  before do
1057
- @cli.options = @cli.options.merge(:id => true)
1058
+ @cli.options = @cli.options.merge("id" => true)
1058
1059
  stub_get("/1/friends/ids.json").
1059
1060
  with(:query => {:cursor => "-1", :user_id => "7505382"}).
1060
1061
  to_return(:body => fixture("friends_ids.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -1095,7 +1096,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
1095
1096
  end
1096
1097
  context "--csv" do
1097
1098
  before do
1098
- @cli.options = @cli.options.merge(:csv => true)
1099
+ @cli.options = @cli.options.merge("csv" => true)
1099
1100
  end
1100
1101
  it "should output in CSV format" do
1101
1102
  @cli.followers
@@ -1108,7 +1109,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
1108
1109
  end
1109
1110
  context "--favorites" do
1110
1111
  before do
1111
- @cli.options = @cli.options.merge(:favorites => true)
1112
+ @cli.options = @cli.options.merge("favorites" => true)
1112
1113
  end
1113
1114
  it "should sort by number of favorites" do
1114
1115
  @cli.followers
@@ -1117,7 +1118,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
1117
1118
  end
1118
1119
  context "--followers" do
1119
1120
  before do
1120
- @cli.options = @cli.options.merge(:followers => true)
1121
+ @cli.options = @cli.options.merge("followers" => true)
1121
1122
  end
1122
1123
  it "should sort by number of followers" do
1123
1124
  @cli.followers
@@ -1126,7 +1127,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
1126
1127
  end
1127
1128
  context "--friends" do
1128
1129
  before do
1129
- @cli.options = @cli.options.merge(:friends => true)
1130
+ @cli.options = @cli.options.merge("friends" => true)
1130
1131
  end
1131
1132
  it "should sort by number of friends" do
1132
1133
  @cli.followers
@@ -1135,7 +1136,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
1135
1136
  end
1136
1137
  context "--listed" do
1137
1138
  before do
1138
- @cli.options = @cli.options.merge(:listed => true)
1139
+ @cli.options = @cli.options.merge("listed" => true)
1139
1140
  end
1140
1141
  it "should sort by number of list memberships" do
1141
1142
  @cli.followers
@@ -1144,7 +1145,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
1144
1145
  end
1145
1146
  context "--long" do
1146
1147
  before do
1147
- @cli.options = @cli.options.merge(:long => true)
1148
+ @cli.options = @cli.options.merge("long" => true)
1148
1149
  end
1149
1150
  it "should output in long format" do
1150
1151
  @cli.followers
@@ -1157,7 +1158,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
1157
1158
  end
1158
1159
  context "--posted" do
1159
1160
  before do
1160
- @cli.options = @cli.options.merge(:posted => true)
1161
+ @cli.options = @cli.options.merge("posted" => true)
1161
1162
  end
1162
1163
  it "should sort by the time when Twitter acount was created" do
1163
1164
  @cli.followers
@@ -1166,7 +1167,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
1166
1167
  end
1167
1168
  context "--reverse" do
1168
1169
  before do
1169
- @cli.options = @cli.options.merge(:reverse => true)
1170
+ @cli.options = @cli.options.merge("reverse" => true)
1170
1171
  end
1171
1172
  it "should reverse the order of the sort" do
1172
1173
  @cli.followers
@@ -1175,7 +1176,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
1175
1176
  end
1176
1177
  context "--tweets" do
1177
1178
  before do
1178
- @cli.options = @cli.options.merge(:tweets => true)
1179
+ @cli.options = @cli.options.merge("tweets" => true)
1179
1180
  end
1180
1181
  it "should sort by number of Tweets" do
1181
1182
  @cli.followers
@@ -1184,7 +1185,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
1184
1185
  end
1185
1186
  context "--unsorted" do
1186
1187
  before do
1187
- @cli.options = @cli.options.merge(:unsorted => true)
1188
+ @cli.options = @cli.options.merge("unsorted" => true)
1188
1189
  end
1189
1190
  it "should not be sorted" do
1190
1191
  @cli.followers
@@ -1211,7 +1212,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
1211
1212
  end
1212
1213
  context "--id" do
1213
1214
  before do
1214
- @cli.options = @cli.options.merge(:id => true)
1215
+ @cli.options = @cli.options.merge("id" => true)
1215
1216
  stub_get("/1/followers/ids.json").
1216
1217
  with(:query => {:cursor => "-1", :user_id => "7505382"}).
1217
1218
  to_return(:body => fixture("friends_ids.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -1259,7 +1260,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
1259
1260
  end
1260
1261
  context "--csv" do
1261
1262
  before do
1262
- @cli.options = @cli.options.merge(:csv => true)
1263
+ @cli.options = @cli.options.merge("csv" => true)
1263
1264
  end
1264
1265
  it "should output in CSV format" do
1265
1266
  @cli.friends
@@ -1272,7 +1273,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
1272
1273
  end
1273
1274
  context "--favorites" do
1274
1275
  before do
1275
- @cli.options = @cli.options.merge(:favorites => true)
1276
+ @cli.options = @cli.options.merge("favorites" => true)
1276
1277
  end
1277
1278
  it "should sort by number of favorites" do
1278
1279
  @cli.friends
@@ -1281,7 +1282,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
1281
1282
  end
1282
1283
  context "--followers" do
1283
1284
  before do
1284
- @cli.options = @cli.options.merge(:followers => true)
1285
+ @cli.options = @cli.options.merge("followers" => true)
1285
1286
  end
1286
1287
  it "should sort by number of followers" do
1287
1288
  @cli.friends
@@ -1290,7 +1291,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
1290
1291
  end
1291
1292
  context "--friends" do
1292
1293
  before do
1293
- @cli.options = @cli.options.merge(:friends => true)
1294
+ @cli.options = @cli.options.merge("friends" => true)
1294
1295
  end
1295
1296
  it "should sort by number of friends" do
1296
1297
  @cli.friends
@@ -1299,7 +1300,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
1299
1300
  end
1300
1301
  context "--listed" do
1301
1302
  before do
1302
- @cli.options = @cli.options.merge(:listed => true)
1303
+ @cli.options = @cli.options.merge("listed" => true)
1303
1304
  end
1304
1305
  it "should sort by number of list memberships" do
1305
1306
  @cli.friends
@@ -1308,7 +1309,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
1308
1309
  end
1309
1310
  context "--long" do
1310
1311
  before do
1311
- @cli.options = @cli.options.merge(:long => true)
1312
+ @cli.options = @cli.options.merge("long" => true)
1312
1313
  end
1313
1314
  it "should output in long format" do
1314
1315
  @cli.friends
@@ -1321,7 +1322,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
1321
1322
  end
1322
1323
  context "--posted" do
1323
1324
  before do
1324
- @cli.options = @cli.options.merge(:posted => true)
1325
+ @cli.options = @cli.options.merge("posted" => true)
1325
1326
  end
1326
1327
  it "should sort by the time when Twitter acount was created" do
1327
1328
  @cli.friends
@@ -1330,7 +1331,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
1330
1331
  end
1331
1332
  context "--reverse" do
1332
1333
  before do
1333
- @cli.options = @cli.options.merge(:reverse => true)
1334
+ @cli.options = @cli.options.merge("reverse" => true)
1334
1335
  end
1335
1336
  it "should reverse the order of the sort" do
1336
1337
  @cli.friends
@@ -1339,7 +1340,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
1339
1340
  end
1340
1341
  context "--tweets" do
1341
1342
  before do
1342
- @cli.options = @cli.options.merge(:tweets => true)
1343
+ @cli.options = @cli.options.merge("tweets" => true)
1343
1344
  end
1344
1345
  it "should sort by number of Tweets" do
1345
1346
  @cli.friends
@@ -1348,7 +1349,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
1348
1349
  end
1349
1350
  context "--unsorted" do
1350
1351
  before do
1351
- @cli.options = @cli.options.merge(:unsorted => true)
1352
+ @cli.options = @cli.options.merge("unsorted" => true)
1352
1353
  end
1353
1354
  it "should not be sorted" do
1354
1355
  @cli.friends
@@ -1378,7 +1379,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
1378
1379
  end
1379
1380
  context "--id" do
1380
1381
  before do
1381
- @cli.options = @cli.options.merge(:id => true)
1382
+ @cli.options = @cli.options.merge("id" => true)
1382
1383
  stub_get("/1/friends/ids.json").
1383
1384
  with(:query => {:cursor => "-1", :user_id => "7505382"}).
1384
1385
  to_return(:body => fixture("friends_ids.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -1432,7 +1433,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
1432
1433
  end
1433
1434
  context "--csv" do
1434
1435
  before do
1435
- @cli.options = @cli.options.merge(:csv => true)
1436
+ @cli.options = @cli.options.merge("csv" => true)
1436
1437
  end
1437
1438
  it "should output in CSV format" do
1438
1439
  @cli.leaders
@@ -1445,7 +1446,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
1445
1446
  end
1446
1447
  context "--favorites" do
1447
1448
  before do
1448
- @cli.options = @cli.options.merge(:favorites => true)
1449
+ @cli.options = @cli.options.merge("favorites" => true)
1449
1450
  end
1450
1451
  it "should sort by number of favorites" do
1451
1452
  @cli.leaders
@@ -1454,7 +1455,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
1454
1455
  end
1455
1456
  context "--followers" do
1456
1457
  before do
1457
- @cli.options = @cli.options.merge(:followers => true)
1458
+ @cli.options = @cli.options.merge("followers" => true)
1458
1459
  end
1459
1460
  it "should sort by number of followers" do
1460
1461
  @cli.leaders
@@ -1463,7 +1464,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
1463
1464
  end
1464
1465
  context "--friends" do
1465
1466
  before do
1466
- @cli.options = @cli.options.merge(:friends => true)
1467
+ @cli.options = @cli.options.merge("friends" => true)
1467
1468
  end
1468
1469
  it "should sort by number of friends" do
1469
1470
  @cli.leaders
@@ -1472,7 +1473,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
1472
1473
  end
1473
1474
  context "--listed" do
1474
1475
  before do
1475
- @cli.options = @cli.options.merge(:listed => true)
1476
+ @cli.options = @cli.options.merge("listed" => true)
1476
1477
  end
1477
1478
  it "should sort by number of list memberships" do
1478
1479
  @cli.leaders
@@ -1481,7 +1482,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
1481
1482
  end
1482
1483
  context "--long" do
1483
1484
  before do
1484
- @cli.options = @cli.options.merge(:long => true)
1485
+ @cli.options = @cli.options.merge("long" => true)
1485
1486
  end
1486
1487
  it "should output in long format" do
1487
1488
  @cli.leaders
@@ -1494,7 +1495,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
1494
1495
  end
1495
1496
  context "--posted" do
1496
1497
  before do
1497
- @cli.options = @cli.options.merge(:posted => true)
1498
+ @cli.options = @cli.options.merge("posted" => true)
1498
1499
  end
1499
1500
  it "should sort by the time when Twitter acount was created" do
1500
1501
  @cli.leaders
@@ -1503,7 +1504,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
1503
1504
  end
1504
1505
  context "--reverse" do
1505
1506
  before do
1506
- @cli.options = @cli.options.merge(:reverse => true)
1507
+ @cli.options = @cli.options.merge("reverse" => true)
1507
1508
  end
1508
1509
  it "should reverse the order of the sort" do
1509
1510
  @cli.leaders
@@ -1512,7 +1513,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
1512
1513
  end
1513
1514
  context "--tweets" do
1514
1515
  before do
1515
- @cli.options = @cli.options.merge(:tweets => true)
1516
+ @cli.options = @cli.options.merge("tweets" => true)
1516
1517
  end
1517
1518
  it "should sort by number of Tweets" do
1518
1519
  @cli.leaders
@@ -1521,7 +1522,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
1521
1522
  end
1522
1523
  context "--unsorted" do
1523
1524
  before do
1524
- @cli.options = @cli.options.merge(:unsorted => true)
1525
+ @cli.options = @cli.options.merge("unsorted" => true)
1525
1526
  end
1526
1527
  it "should not be sorted" do
1527
1528
  @cli.leaders
@@ -1551,7 +1552,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
1551
1552
  end
1552
1553
  context "--id" do
1553
1554
  before do
1554
- @cli.options = @cli.options.merge(:id => true)
1555
+ @cli.options = @cli.options.merge("id" => true)
1555
1556
  stub_get("/1/friends/ids.json").
1556
1557
  with(:query => {:cursor => "-1", :user_id => "7505382"}).
1557
1558
  to_return(:body => fixture("friends_ids.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -1593,7 +1594,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
1593
1594
  end
1594
1595
  context "--csv" do
1595
1596
  before do
1596
- @cli.options = @cli.options.merge(:csv => true)
1597
+ @cli.options = @cli.options.merge("csv" => true)
1597
1598
  end
1598
1599
  it "should output in CSV format" do
1599
1600
  @cli.lists
@@ -1606,7 +1607,7 @@ ID,Created at,Screen name,Slug,Members,Subscribers,Mode,Description
1606
1607
  end
1607
1608
  context "--long" do
1608
1609
  before do
1609
- @cli.options = @cli.options.merge(:long => true)
1610
+ @cli.options = @cli.options.merge("long" => true)
1610
1611
  end
1611
1612
  it "should output in long format" do
1612
1613
  @cli.lists
@@ -1619,7 +1620,7 @@ ID Created at Slug Members Subscribers Mode
1619
1620
  end
1620
1621
  context "--members" do
1621
1622
  before do
1622
- @cli.options = @cli.options.merge(:members => true)
1623
+ @cli.options = @cli.options.merge("members" => true)
1623
1624
  end
1624
1625
  it "should sort by the time when Twitter acount was created" do
1625
1626
  @cli.lists
@@ -1628,7 +1629,7 @@ ID Created at Slug Members Subscribers Mode
1628
1629
  end
1629
1630
  context "--mode" do
1630
1631
  before do
1631
- @cli.options = @cli.options.merge(:mode => true)
1632
+ @cli.options = @cli.options.merge("mode" => true)
1632
1633
  end
1633
1634
  it "should sort by the time when Twitter acount was created" do
1634
1635
  @cli.lists
@@ -1637,7 +1638,7 @@ ID Created at Slug Members Subscribers Mode
1637
1638
  end
1638
1639
  context "--posted" do
1639
1640
  before do
1640
- @cli.options = @cli.options.merge(:posted => true)
1641
+ @cli.options = @cli.options.merge("posted" => true)
1641
1642
  end
1642
1643
  it "should sort by the time when Twitter acount was created" do
1643
1644
  @cli.lists
@@ -1646,7 +1647,7 @@ ID Created at Slug Members Subscribers Mode
1646
1647
  end
1647
1648
  context "--reverse" do
1648
1649
  before do
1649
- @cli.options = @cli.options.merge(:reverse => true)
1650
+ @cli.options = @cli.options.merge("reverse" => true)
1650
1651
  end
1651
1652
  it "should reverse the order of the sort" do
1652
1653
  @cli.lists
@@ -1655,7 +1656,7 @@ ID Created at Slug Members Subscribers Mode
1655
1656
  end
1656
1657
  context "--subscribers" do
1657
1658
  before do
1658
- @cli.options = @cli.options.merge(:subscribers => true)
1659
+ @cli.options = @cli.options.merge("subscribers" => true)
1659
1660
  end
1660
1661
  it "should sort by the time when Twitter acount was created" do
1661
1662
  @cli.lists
@@ -1664,7 +1665,7 @@ ID Created at Slug Members Subscribers Mode
1664
1665
  end
1665
1666
  context "--unsorted" do
1666
1667
  before do
1667
- @cli.options = @cli.options.merge(:unsorted => true)
1668
+ @cli.options = @cli.options.merge("unsorted" => true)
1668
1669
  end
1669
1670
  it "should not be sorted" do
1670
1671
  @cli.lists
@@ -1685,7 +1686,7 @@ ID Created at Slug Members Subscribers Mode
1685
1686
  end
1686
1687
  context "--id" do
1687
1688
  before do
1688
- @cli.options = @cli.options.merge(:id => true)
1689
+ @cli.options = @cli.options.merge("id" => true)
1689
1690
  stub_get("/1/lists.json").
1690
1691
  with(:query => {:cursor => "-1", :user_id => "7505382"}).
1691
1692
  to_return(:body => fixture("lists.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -1702,6 +1703,7 @@ ID Created at Slug Members Subscribers Mode
1702
1703
 
1703
1704
  describe "#mentions" do
1704
1705
  before do
1706
+ @cli.options = @cli.options.merge("no-color" => true)
1705
1707
  stub_get("/1/statuses/mentions.json").
1706
1708
  with(:query => {:count => "20", :include_entities => "false"}).
1707
1709
  to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -1736,7 +1738,7 @@ ID Created at Slug Members Subscribers Mode
1736
1738
  end
1737
1739
  context "--csv" do
1738
1740
  before do
1739
- @cli.options = @cli.options.merge(:csv => true)
1741
+ @cli.options = @cli.options.merge("csv" => true)
1740
1742
  end
1741
1743
  it "should output in CSV format" do
1742
1744
  @cli.mentions
@@ -1764,7 +1766,7 @@ ID,Posted at,Screen name,Text
1764
1766
  end
1765
1767
  context "--long" do
1766
1768
  before do
1767
- @cli.options = @cli.options.merge(:long => true)
1769
+ @cli.options = @cli.options.merge("long" => true)
1768
1770
  end
1769
1771
  it "should output in long format" do
1770
1772
  @cli.mentions
@@ -1792,7 +1794,7 @@ ID Posted at Screen name Text
1792
1794
  end
1793
1795
  context "--number" do
1794
1796
  before do
1795
- @cli.options = @cli.options.merge(:number => 1)
1797
+ @cli.options = @cli.options.merge("number" => 1)
1796
1798
  stub_get("/1/statuses/mentions.json").
1797
1799
  with(:query => {:count => "1", :include_entities => "false"}).
1798
1800
  to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -1806,7 +1808,7 @@ ID Posted at Screen name Text
1806
1808
  end
1807
1809
  context "--reverse" do
1808
1810
  before do
1809
- @cli.options = @cli.options.merge(:reverse => true)
1811
+ @cli.options = @cli.options.merge("reverse" => true)
1810
1812
  end
1811
1813
  it "should reverse the order of the sort" do
1812
1814
  @cli.mentions
@@ -1835,7 +1837,7 @@ ID Posted at Screen name Text
1835
1837
 
1836
1838
  describe "#open" do
1837
1839
  before do
1838
- @cli.options = @cli.options.merge(:display_url => true)
1840
+ @cli.options = @cli.options.merge("display-url" => true)
1839
1841
  end
1840
1842
  it "should have the correct output" do
1841
1843
  lambda do
@@ -1844,7 +1846,7 @@ ID Posted at Screen name Text
1844
1846
  end
1845
1847
  context "--id" do
1846
1848
  before do
1847
- @cli.options = @cli.options.merge(:id => true)
1849
+ @cli.options = @cli.options.merge("id" => true)
1848
1850
  stub_get("/1/users/show.json").
1849
1851
  with(:query => {:user_id => "420", :include_entities => "false"}).
1850
1852
  to_return(:body => fixture("sferik.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -1858,7 +1860,7 @@ ID Posted at Screen name Text
1858
1860
  end
1859
1861
  context "--status" do
1860
1862
  before do
1861
- @cli.options = @cli.options.merge(:status => true)
1863
+ @cli.options = @cli.options.merge("status" => true)
1862
1864
  stub_get("/1/statuses/show/55709764298092545.json").
1863
1865
  with(:query => {:include_entities => "false", :include_my_retweet => "false"}).
1864
1866
  to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -1879,7 +1881,7 @@ ID Posted at Screen name Text
1879
1881
 
1880
1882
  describe "#reply" do
1881
1883
  before do
1882
- @cli.options = @cli.options.merge(:profile => fixture_path + "/.trc", :location => true)
1884
+ @cli.options = @cli.options.merge("profile" => fixture_path + "/.trc", "location" => true)
1883
1885
  stub_get("/1/statuses/show/55709764298092545.json").
1884
1886
  with(:query => {:include_entities => "false", :include_my_retweet => "false"}).
1885
1887
  to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -1910,7 +1912,7 @@ ID Posted at Screen name Text
1910
1912
  end
1911
1913
  context "--all" do
1912
1914
  before do
1913
- @cli.options = @cli.options.merge(:all => true)
1915
+ @cli.options = @cli.options.merge("all" => true)
1914
1916
  end
1915
1917
  it "should request the correct resource" do
1916
1918
  @cli.reply("55709764298092545", "Testing")
@@ -1934,7 +1936,7 @@ ID Posted at Screen name Text
1934
1936
 
1935
1937
  describe "#report_spam" do
1936
1938
  before do
1937
- @cli.options = @cli.options.merge(:profile => fixture_path + "/.trc")
1939
+ @cli.options = @cli.options.merge("profile" => fixture_path + "/.trc")
1938
1940
  stub_post("/1/report_spam.json").
1939
1941
  with(:body => {:screen_name => "sferik", :include_entities => "false"}).
1940
1942
  to_return(:body => fixture("sferik.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -1951,7 +1953,7 @@ ID Posted at Screen name Text
1951
1953
  end
1952
1954
  context "--id" do
1953
1955
  before do
1954
- @cli.options = @cli.options.merge(:id => true)
1956
+ @cli.options = @cli.options.merge("id" => true)
1955
1957
  stub_post("/1/report_spam.json").
1956
1958
  with(:body => {:user_id => "7505382", :include_entities => "false"}).
1957
1959
  to_return(:body => fixture("sferik.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -1967,7 +1969,7 @@ ID Posted at Screen name Text
1967
1969
 
1968
1970
  describe "#retweet" do
1969
1971
  before do
1970
- @cli.options = @cli.options.merge(:profile => fixture_path + "/.trc")
1972
+ @cli.options = @cli.options.merge("profile" => fixture_path + "/.trc")
1971
1973
  stub_post("/1/statuses/retweet/26755176471724032.json").
1972
1974
  to_return(:body => fixture("retweet.json"), :headers => {:content_type => "application/json; charset=utf-8"})
1973
1975
  end
@@ -1984,6 +1986,7 @@ ID Posted at Screen name Text
1984
1986
 
1985
1987
  describe "#retweets" do
1986
1988
  before do
1989
+ @cli.options = @cli.options.merge("no-color" => true)
1987
1990
  stub_get("/1/statuses/retweeted_by_me.json").
1988
1991
  with(:query => {:count => "20", :include_entities => "false"}).
1989
1992
  to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -2020,7 +2023,7 @@ ID Posted at Screen name Text
2020
2023
  end
2021
2024
  context "--csv" do
2022
2025
  before do
2023
- @cli.options = @cli.options.merge(:csv => true)
2026
+ @cli.options = @cli.options.merge("csv" => true)
2024
2027
  end
2025
2028
  it "should output in CSV format" do
2026
2029
  @cli.retweets
@@ -2048,7 +2051,7 @@ ID,Posted at,Screen name,Text
2048
2051
  end
2049
2052
  context "--long" do
2050
2053
  before do
2051
- @cli.options = @cli.options.merge(:long => true)
2054
+ @cli.options = @cli.options.merge("long" => true)
2052
2055
  end
2053
2056
  it "should output in long format" do
2054
2057
  @cli.retweets
@@ -2076,7 +2079,7 @@ ID Posted at Screen name Text
2076
2079
  end
2077
2080
  context "--number" do
2078
2081
  before do
2079
- @cli.options = @cli.options.merge(:number => 1)
2082
+ @cli.options = @cli.options.merge("number" => 1)
2080
2083
  stub_get("/1/statuses/retweeted_by_me.json").
2081
2084
  with(:query => {:count => "1", :include_entities => "false"}).
2082
2085
  to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -2090,7 +2093,7 @@ ID Posted at Screen name Text
2090
2093
  end
2091
2094
  context "--reverse" do
2092
2095
  before do
2093
- @cli.options = @cli.options.merge(:reverse => true)
2096
+ @cli.options = @cli.options.merge("reverse" => true)
2094
2097
  end
2095
2098
  it "should reverse the order of the sort" do
2096
2099
  @cli.retweets
@@ -2129,7 +2132,7 @@ ID Posted at Screen name Text
2129
2132
  end
2130
2133
  context "--id" do
2131
2134
  before do
2132
- @cli.options = @cli.options.merge(:id => true)
2135
+ @cli.options = @cli.options.merge("id" => true)
2133
2136
  stub_get("/1/statuses/retweeted_by_user.json").
2134
2137
  with(:query => {:count => "20", :include_entities => "false", :user_id => "7505382"}).
2135
2138
  to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -2178,7 +2181,7 @@ URL https://twitter.com/sferik/status/55709764298092545
2178
2181
  end
2179
2182
  context "--csv" do
2180
2183
  before do
2181
- @cli.options = @cli.options.merge(:csv => true)
2184
+ @cli.options = @cli.options.merge("csv" => true)
2182
2185
  end
2183
2186
  it "should have the correct output" do
2184
2187
  @cli.status("55709764298092545")
@@ -2212,7 +2215,7 @@ ID,Text,Screen name,Posted at,Location,Retweets,Source,URL
2212
2215
  end
2213
2216
  context "--csv" do
2214
2217
  before do
2215
- @cli.options = @cli.options.merge(:csv => true)
2218
+ @cli.options = @cli.options.merge("csv" => true)
2216
2219
  end
2217
2220
  it "should output in CSV format" do
2218
2221
  @cli.suggest
@@ -2228,7 +2231,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
2228
2231
  end
2229
2232
  context "--favorites" do
2230
2233
  before do
2231
- @cli.options = @cli.options.merge(:favorites => true)
2234
+ @cli.options = @cli.options.merge("favorites" => true)
2232
2235
  end
2233
2236
  it "should sort by number of favorites" do
2234
2237
  @cli.suggest
@@ -2237,7 +2240,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
2237
2240
  end
2238
2241
  context "--followers" do
2239
2242
  before do
2240
- @cli.options = @cli.options.merge(:followers => true)
2243
+ @cli.options = @cli.options.merge("followers" => true)
2241
2244
  end
2242
2245
  it "should sort by number of followers" do
2243
2246
  @cli.suggest
@@ -2246,7 +2249,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
2246
2249
  end
2247
2250
  context "--friends" do
2248
2251
  before do
2249
- @cli.options = @cli.options.merge(:friends => true)
2252
+ @cli.options = @cli.options.merge("friends" => true)
2250
2253
  end
2251
2254
  it "should sort by number of friends" do
2252
2255
  @cli.suggest
@@ -2255,7 +2258,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
2255
2258
  end
2256
2259
  context "--listed" do
2257
2260
  before do
2258
- @cli.options = @cli.options.merge(:listed => true)
2261
+ @cli.options = @cli.options.merge("listed" => true)
2259
2262
  end
2260
2263
  it "should sort by number of list memberships" do
2261
2264
  @cli.suggest
@@ -2264,7 +2267,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
2264
2267
  end
2265
2268
  context "--long" do
2266
2269
  before do
2267
- @cli.options = @cli.options.merge(:long => true)
2270
+ @cli.options = @cli.options.merge("long" => true)
2268
2271
  end
2269
2272
  it "should output in long format" do
2270
2273
  @cli.suggest
@@ -2280,7 +2283,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
2280
2283
  end
2281
2284
  context "--number" do
2282
2285
  before do
2283
- @cli.options = @cli.options.merge(:number => 1)
2286
+ @cli.options = @cli.options.merge("number" => 1)
2284
2287
  stub_get("/1/users/recommendations.json").
2285
2288
  with(:query => {:limit => "1", :include_entities => "false", :screen_name => "sferik"}).
2286
2289
  to_return(:body => fixture("recommendations.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -2294,7 +2297,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
2294
2297
  end
2295
2298
  context "--posted" do
2296
2299
  before do
2297
- @cli.options = @cli.options.merge(:posted => true)
2300
+ @cli.options = @cli.options.merge("posted" => true)
2298
2301
  end
2299
2302
  it "should sort by the time when Twitter acount was created" do
2300
2303
  @cli.suggest
@@ -2303,7 +2306,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
2303
2306
  end
2304
2307
  context "--reverse" do
2305
2308
  before do
2306
- @cli.options = @cli.options.merge(:reverse => true)
2309
+ @cli.options = @cli.options.merge("reverse" => true)
2307
2310
  end
2308
2311
  it "should reverse the order of the sort" do
2309
2312
  @cli.suggest
@@ -2312,7 +2315,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
2312
2315
  end
2313
2316
  context "--tweets" do
2314
2317
  before do
2315
- @cli.options = @cli.options.merge(:tweets => true)
2318
+ @cli.options = @cli.options.merge("tweets" => true)
2316
2319
  end
2317
2320
  it "should sort by number of Tweets" do
2318
2321
  @cli.suggest
@@ -2321,7 +2324,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
2321
2324
  end
2322
2325
  context "--unsorted" do
2323
2326
  before do
2324
- @cli.options = @cli.options.merge(:unsorted => true)
2327
+ @cli.options = @cli.options.merge("unsorted" => true)
2325
2328
  end
2326
2329
  it "should not be sorted" do
2327
2330
  @cli.suggest
@@ -2341,7 +2344,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
2341
2344
  end
2342
2345
  context "--id" do
2343
2346
  before do
2344
- @cli.options = @cli.options.merge(:id => true)
2347
+ @cli.options = @cli.options.merge("id" => true)
2345
2348
  stub_get("/1/users/recommendations.json").
2346
2349
  with(:query => {:limit => "20", :include_entities => "false", :user_id => "7505382"}).
2347
2350
  to_return(:body => fixture("recommendations.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -2358,6 +2361,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
2358
2361
 
2359
2362
  describe "#timeline" do
2360
2363
  before do
2364
+ @cli.options = @cli.options.merge("no-color" => true)
2361
2365
  stub_get("/1/statuses/home_timeline.json").
2362
2366
  with(:query => {:count => "20", :include_entities => "false"}).
2363
2367
  to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -2394,7 +2398,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
2394
2398
  end
2395
2399
  context "--csv" do
2396
2400
  before do
2397
- @cli.options = @cli.options.merge(:csv => true)
2401
+ @cli.options = @cli.options.merge("csv" => true)
2398
2402
  end
2399
2403
  it "should output in CSV format" do
2400
2404
  @cli.timeline
@@ -2422,7 +2426,7 @@ ID,Posted at,Screen name,Text
2422
2426
  end
2423
2427
  context "--long" do
2424
2428
  before do
2425
- @cli.options = @cli.options.merge(:long => true)
2429
+ @cli.options = @cli.options.merge("long" => true)
2426
2430
  end
2427
2431
  it "should output in long format" do
2428
2432
  @cli.timeline
@@ -2450,7 +2454,7 @@ ID Posted at Screen name Text
2450
2454
  end
2451
2455
  context "--number" do
2452
2456
  before do
2453
- @cli.options = @cli.options.merge(:number => 1)
2457
+ @cli.options = @cli.options.merge("number" => 1)
2454
2458
  stub_get("/1/statuses/home_timeline.json").
2455
2459
  with(:query => {:count => "1", :include_entities => "false"}).
2456
2460
  to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -2464,7 +2468,7 @@ ID Posted at Screen name Text
2464
2468
  end
2465
2469
  context "--reverse" do
2466
2470
  before do
2467
- @cli.options = @cli.options.merge(:reverse => true)
2471
+ @cli.options = @cli.options.merge("reverse" => true)
2468
2472
  end
2469
2473
  it "should reverse the order of the sort" do
2470
2474
  @cli.timeline
@@ -2503,7 +2507,7 @@ ID Posted at Screen name Text
2503
2507
  end
2504
2508
  context "--id" do
2505
2509
  before do
2506
- @cli.options = @cli.options.merge(:id => true)
2510
+ @cli.options = @cli.options.merge("id" => true)
2507
2511
  stub_get("/1/statuses/user_timeline.json").
2508
2512
  with(:query => {:count => "20", :include_entities => "false", :user_id => "7505382"}).
2509
2513
  to_return(:body => fixture("statuses.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -2532,9 +2536,9 @@ ID Posted at Screen name Text
2532
2536
  @cli.trends
2533
2537
  $stdout.string.rstrip.should == "#sevenwordsaftersex Walkman Allen Iverson"
2534
2538
  end
2535
- context "--exclude_hashtags" do
2539
+ context "--exclude-hashtags" do
2536
2540
  before do
2537
- @cli.options = @cli.options.merge(:exclude_hashtags => true)
2541
+ @cli.options = @cli.options.merge("exclude-hashtags" => true)
2538
2542
  stub_get("/1/trends/1.json").
2539
2543
  with(:query => {:exclude => "hashtags"}).
2540
2544
  to_return(:body => fixture("trends.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -2583,7 +2587,7 @@ ID Posted at Screen name Text
2583
2587
  end
2584
2588
  context "--csv" do
2585
2589
  before do
2586
- @cli.options = @cli.options.merge(:csv => true)
2590
+ @cli.options = @cli.options.merge("csv" => true)
2587
2591
  end
2588
2592
  it "should output in CSV format" do
2589
2593
  @cli.trend_locations
@@ -2599,7 +2603,7 @@ WOEID,Parent ID,Type,Name,Country
2599
2603
  end
2600
2604
  context "--long" do
2601
2605
  before do
2602
- @cli.options = @cli.options.merge(:long => true)
2606
+ @cli.options = @cli.options.merge("long" => true)
2603
2607
  end
2604
2608
  it "should output in long format" do
2605
2609
  @cli.trend_locations
@@ -2615,7 +2619,7 @@ WOEID Parent ID Type Name Country
2615
2619
  end
2616
2620
  context "--reverse" do
2617
2621
  before do
2618
- @cli.options = @cli.options.merge(:reverse => true)
2622
+ @cli.options = @cli.options.merge("reverse" => true)
2619
2623
  end
2620
2624
  it "should reverse the order of the sort" do
2621
2625
  @cli.trend_locations
@@ -2624,7 +2628,7 @@ WOEID Parent ID Type Name Country
2624
2628
  end
2625
2629
  context "--unsorted" do
2626
2630
  before do
2627
- @cli.options = @cli.options.merge(:unsorted => true)
2631
+ @cli.options = @cli.options.merge("unsorted" => true)
2628
2632
  end
2629
2633
  it "should not be sorted" do
2630
2634
  @cli.trend_locations
@@ -2635,7 +2639,7 @@ WOEID Parent ID Type Name Country
2635
2639
 
2636
2640
  describe "#unfollow" do
2637
2641
  before do
2638
- @cli.options = @cli.options.merge(:profile => fixture_path + "/.trc")
2642
+ @cli.options = @cli.options.merge("profile" => fixture_path + "/.trc")
2639
2643
  end
2640
2644
  context "one user" do
2641
2645
  it "should request the correct resource" do
@@ -2656,7 +2660,7 @@ WOEID Parent ID Type Name Country
2656
2660
  end
2657
2661
  context "--id" do
2658
2662
  before do
2659
- @cli.options = @cli.options.merge(:id => true)
2663
+ @cli.options = @cli.options.merge("id" => true)
2660
2664
  stub_delete("/1/friendships/destroy.json").
2661
2665
  with(:query => {:user_id => "7505382", :include_entities => "false"}).
2662
2666
  to_return(:body => fixture("sferik.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -2686,7 +2690,7 @@ WOEID Parent ID Type Name Country
2686
2690
 
2687
2691
  describe "#update" do
2688
2692
  before do
2689
- @cli.options = @cli.options.merge(:profile => fixture_path + "/.trc", :location => true)
2693
+ @cli.options = @cli.options.merge("profile" => fixture_path + "/.trc", "location" => true)
2690
2694
  stub_post("/1/statuses/update.json").
2691
2695
  with(:body => {:status => "Testing", :lat => "37.76969909668", :long => "-122.39330291748", :include_entities => "false", :trim_user => "true"}).
2692
2696
  to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -2729,7 +2733,7 @@ WOEID Parent ID Type Name Country
2729
2733
  end
2730
2734
  context "--csv" do
2731
2735
  before do
2732
- @cli.options = @cli.options.merge(:csv => true)
2736
+ @cli.options = @cli.options.merge("csv" => true)
2733
2737
  end
2734
2738
  it "should output in CSV format" do
2735
2739
  @cli.users("sferik", "pengwynn")
@@ -2742,7 +2746,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
2742
2746
  end
2743
2747
  context "--favorites" do
2744
2748
  before do
2745
- @cli.options = @cli.options.merge(:favorites => true)
2749
+ @cli.options = @cli.options.merge("favorites" => true)
2746
2750
  end
2747
2751
  it "should sort by number of favorites" do
2748
2752
  @cli.users("sferik", "pengwynn")
@@ -2751,7 +2755,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
2751
2755
  end
2752
2756
  context "--followers" do
2753
2757
  before do
2754
- @cli.options = @cli.options.merge(:followers => true)
2758
+ @cli.options = @cli.options.merge("followers" => true)
2755
2759
  end
2756
2760
  it "should sort by number of followers" do
2757
2761
  @cli.users("sferik", "pengwynn")
@@ -2760,7 +2764,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
2760
2764
  end
2761
2765
  context "--friends" do
2762
2766
  before do
2763
- @cli.options = @cli.options.merge(:friends => true)
2767
+ @cli.options = @cli.options.merge("friends" => true)
2764
2768
  end
2765
2769
  it "should sort by number of friends" do
2766
2770
  @cli.users("sferik", "pengwynn")
@@ -2769,7 +2773,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
2769
2773
  end
2770
2774
  context "--id" do
2771
2775
  before do
2772
- @cli.options = @cli.options.merge(:id => true)
2776
+ @cli.options = @cli.options.merge("id" => true)
2773
2777
  stub_get("/1/users/lookup.json").
2774
2778
  with(:query => {:user_id => "7505382,14100886", :include_entities => "false"}).
2775
2779
  to_return(:body => fixture("users.json"), :headers => {:content_type => "application/json; charset=utf-8"})
@@ -2783,7 +2787,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
2783
2787
  end
2784
2788
  context "--listed" do
2785
2789
  before do
2786
- @cli.options = @cli.options.merge(:listed => true)
2790
+ @cli.options = @cli.options.merge("listed" => true)
2787
2791
  end
2788
2792
  it "should sort by number of list memberships" do
2789
2793
  @cli.users("sferik", "pengwynn")
@@ -2792,7 +2796,7 @@ ID,Since,Tweets,Favorites,Listed,Following,Followers,Screen name,Name
2792
2796
  end
2793
2797
  context "--long" do
2794
2798
  before do
2795
- @cli.options = @cli.options.merge(:long => true)
2799
+ @cli.options = @cli.options.merge("long" => true)
2796
2800
  end
2797
2801
  it "should output in long format" do
2798
2802
  @cli.users("sferik", "pengwynn")
@@ -2805,7 +2809,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
2805
2809
  end
2806
2810
  context "--posted" do
2807
2811
  before do
2808
- @cli.options = @cli.options.merge(:posted => true)
2812
+ @cli.options = @cli.options.merge("posted" => true)
2809
2813
  end
2810
2814
  it "should sort by the time when Twitter acount was created" do
2811
2815
  @cli.users("sferik", "pengwynn")
@@ -2814,7 +2818,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
2814
2818
  end
2815
2819
  context "--reverse" do
2816
2820
  before do
2817
- @cli.options = @cli.options.merge(:reverse => true)
2821
+ @cli.options = @cli.options.merge("reverse" => true)
2818
2822
  end
2819
2823
  it "should reverse the order of the sort" do
2820
2824
  @cli.users("sferik", "pengwynn")
@@ -2823,7 +2827,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
2823
2827
  end
2824
2828
  context "--tweets" do
2825
2829
  before do
2826
- @cli.options = @cli.options.merge(:tweets => true)
2830
+ @cli.options = @cli.options.merge("tweets" => true)
2827
2831
  end
2828
2832
  it "should sort by number of Tweets" do
2829
2833
  @cli.users("sferik", "pengwynn")
@@ -2832,7 +2836,7 @@ ID Since Tweets Favorites Listed Following Followers Screen
2832
2836
  end
2833
2837
  context "--unsorted" do
2834
2838
  before do
2835
- @cli.options = @cli.options.merge(:unsorted => true)
2839
+ @cli.options = @cli.options.merge("unsorted" => true)
2836
2840
  end
2837
2841
  it "should not be sorted" do
2838
2842
  @cli.users("sferik", "pengwynn")
@@ -2880,7 +2884,7 @@ URL https://github.com/sferik
2880
2884
  end
2881
2885
  context "--csv" do
2882
2886
  before do
2883
- @cli.options = @cli.options.merge(:csv => true)
2887
+ @cli.options = @cli.options.merge("csv" => true)
2884
2888
  end
2885
2889
  it "should have the correct output" do
2886
2890
  @cli.whois("sferik")
@@ -2892,7 +2896,7 @@ ID,Verified,Name,Screen name,Bio,Location,Following,Last update,Lasted updated a
2892
2896
  end
2893
2897
  context "--id" do
2894
2898
  before do
2895
- @cli.options = @cli.options.merge(:id => true)
2899
+ @cli.options = @cli.options.merge("id" => true)
2896
2900
  stub_get("/1/users/show.json").
2897
2901
  with(:query => {:user_id => "7505382", :include_entities => "false"}).
2898
2902
  to_return(:body => fixture("sferik.json"), :headers => {:content_type => "application/json; charset=utf-8"})