t 2.0.1 → 2.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/lib/t/collectable.rb CHANGED
@@ -3,10 +3,9 @@ require 'retryable'
3
3
 
4
4
  module T
5
5
  module Collectable
6
-
7
6
  MAX_NUM_RESULTS = 200
8
7
 
9
- def collect_with_max_id(collection=[], max_id=nil, &block)
8
+ def collect_with_max_id(collection = [], max_id = nil, &block)
10
9
  tweets = retryable(:tries => 3, :on => Twitter::Error, :sleep => 0) do
11
10
  yield(max_id)
12
11
  end
@@ -29,7 +28,7 @@ module T
29
28
  end.flatten.compact
30
29
  end
31
30
 
32
- def collect_with_page(collection=[], page=1, &block)
31
+ def collect_with_page(collection = [], page = 1, &block)
33
32
  tweets = retryable(:tries => 3, :on => Twitter::Error, :sleep => 0) do
34
33
  yield page
35
34
  end
@@ -37,6 +36,5 @@ module T
37
36
  collection += tweets
38
37
  tweets.empty? ? collection.flatten.uniq : collect_with_page(collection, page + 1, &block)
39
38
  end
40
-
41
39
  end
42
40
  end
@@ -1,15 +1,13 @@
1
1
  module Kernel
2
-
3
- def Bignum(arg, base=0)
2
+ def Bignum(arg, base = 0) # rubocop:disable MethodName
4
3
  Integer(arg, base)
5
4
  end
6
5
 
7
- def Fixnum(arg, base=0)
6
+ def Fixnum(arg, base = 0) # rubocop:disable MethodName
8
7
  Integer(arg, base)
9
8
  end
10
9
 
11
- def NilClass(arg)
10
+ def NilClass(arg) # rubocop:disable MethodName
12
11
  nil
13
12
  end
14
-
15
13
  end
@@ -1,17 +1,15 @@
1
1
  class String
2
-
3
2
  def prepend_at
4
3
  "@#{self}"
5
4
  end
6
5
 
7
6
  def strip_ats
8
- self.tr('@', '')
7
+ tr('@', '')
9
8
  end
10
9
 
11
- alias old_to_i to_i
10
+ alias_method :old_to_i, :to_i
12
11
 
13
- def to_i(base=10)
14
- self.tr(',', '').old_to_i(base)
12
+ def to_i(base = 10)
13
+ tr(',', '').old_to_i(base)
15
14
  end
16
-
17
15
  end
data/lib/t/delete.rb CHANGED
@@ -16,43 +16,42 @@ module T
16
16
  super
17
17
  end
18
18
 
19
- desc "block USER [USER...]", "Unblock users."
20
- method_option "id", :aliases => "-i", :type => :boolean, :default => false, :desc => "Specify input as Twitter user IDs instead of screen names."
21
- method_option "force", :aliases => "-f", :type => :boolean, :default => false
19
+ desc 'block USER [USER...]', 'Unblock users.'
20
+ method_option 'id', :aliases => '-i', :type => :boolean, :default => false, :desc => 'Specify input as Twitter user IDs instead of screen names.'
21
+ method_option 'force', :aliases => '-f', :type => :boolean, :default => false
22
22
  def block(user, *users)
23
- users, number = fetch_users(users.unshift(user), options) do |users|
24
- client.unblock(users)
23
+ unblocked_users, number = fetch_users(users.unshift(user), options) do |users_to_unblock|
24
+ client.unblock(users_to_unblock)
25
25
  end
26
26
  say "@#{@rcfile.active_profile[0]} unblocked #{pluralize(number, 'user')}."
27
27
  say
28
- say "Run `#{File.basename($0)} block #{users.map{|user| "@#{user.screen_name}"}.join(' ')}` to block."
28
+ say "Run `#{File.basename($PROGRAM_NAME)} block #{unblocked_users.map { |unblocked_user| "@#{unblocked_user.screen_name}" }.join(' ')}` to block."
29
29
  end
30
30
 
31
- desc "dm [DIRECT_MESSAGE_ID] [DIRECT_MESSAGE_ID...]", "Delete the last Direct Message sent."
32
- method_option "force", :aliases => "-f", :type => :boolean, :default => false
31
+ desc 'dm [DIRECT_MESSAGE_ID] [DIRECT_MESSAGE_ID...]', 'Delete the last Direct Message sent.'
32
+ method_option 'force', :aliases => '-f', :type => :boolean, :default => false
33
33
  def dm(direct_message_id, *direct_message_ids)
34
34
  direct_message_ids.unshift(direct_message_id)
35
35
  require 't/core_ext/string'
36
36
  direct_message_ids.map!(&:to_i)
37
37
  if options['force']
38
- direct_messages = client.direct_message_destroy(direct_message_ids)
38
+ direct_messages = client.destroy_direct_message(direct_message_ids)
39
39
  direct_messages.each do |direct_message|
40
40
  say "@#{@rcfile.active_profile[0]} deleted the direct message sent to @#{direct_message.recipient.screen_name}: \"#{direct_message.text}\""
41
41
  end
42
42
  else
43
- direct_message_ids.each do |direct_message_id|
44
- direct_message = client.direct_message(direct_message_id)
43
+ direct_message_ids.each do |direct_message_id_to_delete|
44
+ direct_message = client.direct_message(direct_message_id_to_delete)
45
45
  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]"
46
- client.direct_message_destroy(direct_message_id)
46
+ client.destroy_direct_message(direct_message_id_to_delete)
47
47
  say "@#{@rcfile.active_profile[0]} deleted the direct message sent to @#{direct_message.recipient.screen_name}: \"#{direct_message.text}\""
48
48
  end
49
49
  end
50
-
51
50
  end
52
51
  map %w(d m) => :dm
53
52
 
54
- desc "favorite TWEET_ID [TWEET_ID...]", "Delete favorites."
55
- method_option "force", :aliases => "-f", :type => :boolean, :default => false
53
+ desc 'favorite TWEET_ID [TWEET_ID...]', 'Delete favorites.'
54
+ method_option 'force', :aliases => '-f', :type => :boolean, :default => false
56
55
  def favorite(status_id, *status_ids)
57
56
  status_ids.unshift(status_id)
58
57
  require 't/core_ext/string'
@@ -63,19 +62,19 @@ module T
63
62
  say "@#{@rcfile.active_profile[0]} unfavorited @#{status.user.screen_name}'s status: \"#{status.full_text}\""
64
63
  end
65
64
  else
66
- status_ids.each do |status_id|
67
- status = client.status(status_id, :include_my_retweet => false)
65
+ status_ids.each do |status_id_to_unfavorite|
66
+ status = client.status(status_id_to_unfavorite, :include_my_retweet => false)
68
67
  return unless yes? "Are you sure you want to remove @#{status.user.screen_name}'s status: \"#{status.full_text}\" from your favorites? [y/N]"
69
- client.unfavorite(status_id)
68
+ client.unfavorite(status_id_to_unfavorite)
70
69
  say "@#{@rcfile.active_profile[0]} unfavorited @#{status.user.screen_name}'s status: \"#{status.full_text}\""
71
70
  end
72
71
  end
73
72
  end
74
73
  map %w(fave favourite) => :favorite
75
74
 
76
- desc "list LIST", "Delete a list."
77
- method_option "force", :aliases => "-f", :type => :boolean, :default => false
78
- method_option "id", :aliases => "-i", :type => :boolean, :default => false, :desc => "Specify list via ID instead of slug."
75
+ desc 'list LIST', 'Delete a list.'
76
+ method_option 'force', :aliases => '-f', :type => :boolean, :default => false
77
+ method_option 'id', :aliases => '-i', :type => :boolean, :default => false, :desc => 'Specify list via ID instead of slug.'
79
78
  def list(list)
80
79
  if options['id']
81
80
  require 't/core_ext/string'
@@ -85,31 +84,30 @@ module T
85
84
  unless options['force']
86
85
  return unless yes? "Are you sure you want to permanently delete the list \"#{list.name}\"? [y/N]"
87
86
  end
88
- client.list_destroy(list)
87
+ client.destroy_list(list)
89
88
  say "@#{@rcfile.active_profile[0]} deleted the list \"#{list.name}\"."
90
89
  end
91
90
 
92
- desc "status TWEET_ID [TWEET_ID...]", "Delete Tweets."
93
- method_option "force", :aliases => "-f", :type => :boolean, :default => false
91
+ desc 'status TWEET_ID [TWEET_ID...]', 'Delete Tweets.'
92
+ method_option 'force', :aliases => '-f', :type => :boolean, :default => false
94
93
  def status(status_id, *status_ids)
95
94
  status_ids.unshift(status_id)
96
95
  require 't/core_ext/string'
97
96
  status_ids.map!(&:to_i)
98
97
  if options['force']
99
- tweets = client.status_destroy(status_ids, :trim_user => true)
98
+ tweets = client.destroy_status(status_ids, :trim_user => true)
100
99
  tweets.each do |status|
101
100
  say "@#{@rcfile.active_profile[0]} deleted the Tweet: \"#{status.full_text}\""
102
101
  end
103
102
  else
104
- status_ids.each do |status_id|
105
- status = client.status(status_id, :include_my_retweet => false)
103
+ status_ids.each do |status_id_to_delete|
104
+ status = client.status(status_id_to_delete, :include_my_retweet => false)
106
105
  return unless yes? "Are you sure you want to permanently delete @#{status.user.screen_name}'s status: \"#{status.full_text}\"? [y/N]"
107
- client.status_destroy(status_id, :trim_user => true)
106
+ client.destroy_status(status_id_to_delete, :trim_user => true)
108
107
  say "@#{@rcfile.active_profile[0]} deleted the Tweet: \"#{status.full_text}\""
109
108
  end
110
109
  end
111
110
  end
112
111
  map %w(post tweet update) => :status
113
-
114
112
  end
115
113
  end
data/lib/t/editor.rb CHANGED
@@ -4,7 +4,6 @@ require 'shellwords'
4
4
  module T
5
5
  class Editor
6
6
  class << self
7
-
8
7
  def gets
9
8
  file = tempfile
10
9
  edit(file.path)
@@ -15,7 +14,7 @@ module T
15
14
  end
16
15
 
17
16
  def tempfile
18
- Tempfile.new("TWEET_EDITMSG")
17
+ Tempfile.new('TWEET_EDITMSG')
19
18
  end
20
19
 
21
20
  def edit(path)
@@ -29,7 +28,6 @@ module T
29
28
  def system_editor
30
29
  RbConfig::CONFIG['host_os'] =~ /mswin|mingw/ ? 'notepad' : 'vi'
31
30
  end
32
-
33
31
  end
34
32
  end
35
33
  end
data/lib/t/list.rb CHANGED
@@ -24,92 +24,92 @@ module T
24
24
  super
25
25
  end
26
26
 
27
- desc "add LIST USER [USER...]", "Add members to a list."
28
- method_option "id", :aliases => "-i", :type => :boolean, :default => false, :desc => "Specify input as Twitter user IDs instead of screen names."
27
+ desc 'add LIST USER [USER...]', 'Add members to a list.'
28
+ method_option 'id', :aliases => '-i', :type => :boolean, :default => false, :desc => 'Specify input as Twitter user IDs instead of screen names.'
29
29
  def add(list, user, *users)
30
- users, number = fetch_users(users.unshift(user), options) do |users|
31
- client.list_add_members(list, users)
32
- users
30
+ added_users, number = fetch_users(users.unshift(user), options) do |users_to_add|
31
+ client.add_list_members(list, users_to_add)
32
+ users_to_add
33
33
  end
34
34
  say "@#{@rcfile.active_profile[0]} added #{pluralize(number, 'member')} to the list \"#{list}\"."
35
35
  say
36
36
  if options['id']
37
- say "Run `#{File.basename($0)} list remove --id #{list} #{users.join(' ')}` to undo."
37
+ say "Run `#{File.basename($PROGRAM_NAME)} list remove --id #{list} #{added_users.join(' ')}` to undo."
38
38
  else
39
- say "Run `#{File.basename($0)} list remove #{list} #{users.map{|user| "@#{user}"}.join(' ')}` to undo."
39
+ say "Run `#{File.basename($PROGRAM_NAME)} list remove #{list} #{added_users.map { |added_user| "@#{added_user}" }.join(' ')}` to undo."
40
40
  end
41
41
  end
42
42
 
43
- desc "create LIST [DESCRIPTION]", "Create a new list."
44
- method_option "private", :aliases => "-p", :type => :boolean
45
- def create(list, description=nil)
43
+ desc 'create LIST [DESCRIPTION]', 'Create a new list.'
44
+ method_option 'private', :aliases => '-p', :type => :boolean
45
+ def create(list, description = nil)
46
46
  opts = description ? {:description => description} : {}
47
47
  opts.merge!(:mode => 'private') if options['private']
48
- client.list_create(list, opts)
48
+ client.create_list(list, opts)
49
49
  say "@#{@rcfile.active_profile[0]} created the list \"#{list}\"."
50
50
  end
51
51
 
52
- desc "information [USER/]LIST", "Retrieves detailed information about a Twitter list."
53
- method_option "csv", :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
52
+ desc 'information [USER/]LIST', 'Retrieves detailed information about a Twitter list.'
53
+ method_option 'csv', :aliases => '-c', :type => :boolean, :default => false, :desc => 'Output in CSV format.'
54
54
  def information(list)
55
55
  owner, list = extract_owner(list, options)
56
56
  list = client.list(owner, list)
57
57
  if options['csv']
58
58
  require 'csv'
59
- say ["ID", "Description", "Slug", "Screen name", "Created at", "Members", "Subscribers", "Following", "Mode", "URL"].to_csv
59
+ say ['ID', 'Description', 'Slug', 'Screen name', 'Created at', 'Members', 'Subscribers', 'Following', 'Mode', 'URL'].to_csv
60
60
  say [list.id, list.description, list.slug, list.user.screen_name, csv_formatted_time(list), list.member_count, list.subscriber_count, list.following?, list.mode, list.uri].to_csv
61
61
  else
62
62
  array = []
63
- array << ["ID", list.id.to_s]
64
- array << ["Description", list.description] unless list.description.nil?
65
- array << ["Slug", list.slug]
66
- array << ["Screen name", "@#{list.user.screen_name}"]
67
- array << ["Created at", "#{ls_formatted_time(list)} (#{time_ago_in_words(list.created_at)} ago)"]
68
- array << ["Members", number_with_delimiter(list.member_count)]
69
- array << ["Subscribers", number_with_delimiter(list.subscriber_count)]
70
- array << ["Status", list.following ? "Following" : "Not following"]
71
- array << ["Mode", list.mode]
72
- array << ["URL", list.uri]
63
+ array << ['ID', list.id.to_s]
64
+ array << ['Description', list.description] unless list.description.nil?
65
+ array << ['Slug', list.slug]
66
+ array << ['Screen name', "@#{list.user.screen_name}"]
67
+ array << ['Created at', "#{ls_formatted_time(list)} (#{time_ago_in_words(list.created_at)} ago)"]
68
+ array << ['Members', number_with_delimiter(list.member_count)]
69
+ array << ['Subscribers', number_with_delimiter(list.subscriber_count)]
70
+ array << ['Status', list.following ? 'Following' : 'Not following']
71
+ array << ['Mode', list.mode]
72
+ array << ['URL', list.uri]
73
73
  print_table(array)
74
74
  end
75
75
  end
76
76
  map %w(details) => :information
77
77
 
78
- desc "members [USER/]LIST", "Returns the members of a Twitter list."
79
- method_option "csv", :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
80
- method_option "id", :aliases => "-i", :type => :boolean, :default => false, :desc => "Specify user via ID instead of screen name."
81
- method_option "long", :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
82
- method_option "reverse", :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
83
- method_option "sort", :aliases => "-s", :type => :string, :enum => %w(favorites followers friends listed screen_name since tweets tweeted), :default => "screen_name", :desc => "Specify the order of the results.", :banner => "ORDER"
84
- method_option "unsorted", :aliases => "-u", :type => :boolean, :default => false, :desc => "Output is not sorted."
78
+ desc 'members [USER/]LIST', 'Returns the members of a Twitter list.'
79
+ method_option 'csv', :aliases => '-c', :type => :boolean, :default => false, :desc => 'Output in CSV format.'
80
+ method_option 'id', :aliases => '-i', :type => :boolean, :default => false, :desc => 'Specify user via ID instead of screen name.'
81
+ method_option 'long', :aliases => '-l', :type => :boolean, :default => false, :desc => 'Output in long format.'
82
+ method_option 'reverse', :aliases => '-r', :type => :boolean, :default => false, :desc => 'Reverse the order of the sort.'
83
+ method_option 'sort', :aliases => '-s', :type => :string, :enum => %w(favorites followers friends listed screen_name since tweets tweeted), :default => 'screen_name', :desc => 'Specify the order of the results.', :banner => 'ORDER'
84
+ method_option 'unsorted', :aliases => '-u', :type => :boolean, :default => false, :desc => 'Output is not sorted.'
85
85
  def members(list)
86
86
  owner, list = extract_owner(list, options)
87
87
  users = client.list_members(owner, list).to_a
88
88
  print_users(users)
89
89
  end
90
90
 
91
- desc "remove LIST USER [USER...]", "Remove members from a list."
92
- method_option "id", :aliases => "-i", :type => :boolean, :default => false, :desc => "Specify input as Twitter user IDs instead of screen names."
91
+ desc 'remove LIST USER [USER...]', 'Remove members from a list.'
92
+ method_option 'id', :aliases => '-i', :type => :boolean, :default => false, :desc => 'Specify input as Twitter user IDs instead of screen names.'
93
93
  def remove(list, user, *users)
94
- users, number = fetch_users(users.unshift(user), options) do |users|
95
- client.list_remove_members(list, users)
96
- users
94
+ removed_users, number = fetch_users(users.unshift(user), options) do |users_to_remove|
95
+ client.remove_list_members(list, users_to_remove)
96
+ users_to_remove
97
97
  end
98
98
  say "@#{@rcfile.active_profile[0]} removed #{pluralize(number, 'member')} from the list \"#{list}\"."
99
99
  say
100
100
  if options['id']
101
- say "Run `#{File.basename($0)} list add --id #{list} #{users.join(' ')}` to undo."
101
+ say "Run `#{File.basename($PROGRAM_NAME)} list add --id #{list} #{removed_users.join(' ')}` to undo."
102
102
  else
103
- say "Run `#{File.basename($0)} list add #{list} #{users.map{|user| "@#{user}"}.join(' ')}` to undo."
103
+ say "Run `#{File.basename($PROGRAM_NAME)} list add #{list} #{removed_users.map { |removed_user| "@#{removed_user}" }.join(' ')}` to undo."
104
104
  end
105
105
  end
106
106
 
107
- desc "timeline [USER/]LIST", "Show tweet timeline for members of the specified list."
108
- method_option "csv", :aliases => "-c", :type => :boolean, :default => false, :desc => "Output in CSV format."
109
- method_option "id", :aliases => "-i", :type => :boolean, :default => false, :desc => "Specify user via ID instead of screen name."
110
- method_option "long", :aliases => "-l", :type => :boolean, :default => false, :desc => "Output in long format."
111
- method_option "number", :aliases => "-n", :type => :numeric, :default => DEFAULT_NUM_RESULTS, :desc => "Limit the number of results."
112
- method_option "reverse", :aliases => "-r", :type => :boolean, :default => false, :desc => "Reverse the order of the sort."
107
+ desc 'timeline [USER/]LIST', 'Show tweet timeline for members of the specified list.'
108
+ method_option 'csv', :aliases => '-c', :type => :boolean, :default => false, :desc => 'Output in CSV format.'
109
+ method_option 'id', :aliases => '-i', :type => :boolean, :default => false, :desc => 'Specify user via ID instead of screen name.'
110
+ method_option 'long', :aliases => '-l', :type => :boolean, :default => false, :desc => 'Output in long format.'
111
+ method_option 'number', :aliases => '-n', :type => :numeric, :default => DEFAULT_NUM_RESULTS, :desc => 'Limit the number of results.'
112
+ method_option 'reverse', :aliases => '-r', :type => :boolean, :default => false, :desc => 'Reverse the order of the sort.'
113
113
  def timeline(list)
114
114
  owner, list = extract_owner(list, options)
115
115
  count = options['number'] || DEFAULT_NUM_RESULTS
@@ -119,6 +119,5 @@ module T
119
119
  print_tweets(tweets)
120
120
  end
121
121
  map %w(tl) => :timeline
122
-
123
122
  end
124
123
  end
data/lib/t/printable.rb CHANGED
@@ -1,9 +1,9 @@
1
1
  module T
2
2
  module Printable
3
- LIST_HEADINGS = ["ID", "Created at", "Screen name", "Slug", "Members", "Subscribers", "Mode", "Description"]
4
- TWEET_HEADINGS = ["ID", "Posted at", "Screen name", "Text"]
5
- USER_HEADINGS = ["ID", "Since", "Last tweeted at", "Tweets", "Favorites", "Listed", "Following", "Followers", "Screen name", "Name", "Verified", "Protected", "Bio", "Status", "Location", "URL"]
6
- MONTH_IN_SECONDS = 2592000
3
+ LIST_HEADINGS = ['ID', 'Created at', 'Screen name', 'Slug', 'Members', 'Subscribers', 'Mode', 'Description']
4
+ TWEET_HEADINGS = ['ID', 'Posted at', 'Screen name', 'Text']
5
+ USER_HEADINGS = ['ID', 'Since', 'Last tweeted at', 'Tweets', 'Favorites', 'Listed', 'Following', 'Followers', 'Screen name', 'Name', 'Verified', 'Protected', 'Bio', 'Status', 'Location', 'URL']
6
+ MONTH_IN_SECONDS = 2_592_000
7
7
 
8
8
  private
9
9
 
@@ -16,22 +16,22 @@ module T
16
16
  end
17
17
 
18
18
  def build_long_user(user)
19
- [user.id, ls_formatted_time(user), ls_formatted_time(user.status), user.statuses_count, user.favorites_count, user.listed_count, user.friends_count, user.followers_count, "@#{user.screen_name}", user.name, user.verified? ? "Yes" : "No", user.protected? ? "Yes" : "No", user.description.gsub(/\n+/, ' '), user.status ? decode_full_text(user.status, options['decode_uris']).gsub(/\n+/, ' ') : nil, user.location, user.website.to_s]
19
+ [user.id, ls_formatted_time(user), ls_formatted_time(user.status), user.statuses_count, user.favorites_count, user.listed_count, user.friends_count, user.followers_count, "@#{user.screen_name}", user.name, user.verified? ? 'Yes' : 'No', user.protected? ? 'Yes' : 'No', user.description.gsub(/\n+/, ' '), user.status ? decode_full_text(user.status, options['decode_uris']).gsub(/\n+/, ' ') : nil, user.location, user.website.to_s]
20
20
  end
21
21
 
22
- def csv_formatted_time(object, key=:created_at)
22
+ def csv_formatted_time(object, key = :created_at)
23
23
  return nil if object.nil?
24
24
  time = object.send(key.to_sym).dup
25
- time.utc.strftime("%Y-%m-%d %H:%M:%S %z")
25
+ time.utc.strftime('%Y-%m-%d %H:%M:%S %z')
26
26
  end
27
27
 
28
- def ls_formatted_time(object, key=:created_at)
29
- return "" if object.nil?
28
+ def ls_formatted_time(object, key = :created_at)
29
+ return '' if object.nil?
30
30
  time = T.local_time(object.send(key.to_sym))
31
31
  if time > Time.now - MONTH_IN_SECONDS * 6
32
- time.strftime("%b %e %H:%M")
32
+ time.strftime('%b %e %H:%M')
33
33
  else
34
- time.strftime("%b %e %Y")
34
+ time.strftime('%b %e %Y')
35
35
  end
36
36
  end
37
37
 
@@ -53,17 +53,17 @@ module T
53
53
 
54
54
  def print_lists(lists)
55
55
  lists = case options['sort']
56
- when 'members'
57
- lists.sort_by{|user| user.member_count}
58
- when 'mode'
59
- lists.sort_by{|user| user.mode}
60
- when 'posted'
61
- lists.sort_by{|user| user.created_at}
62
- when 'subscribers'
63
- lists.sort_by{|user| user.subscriber_count}
64
- else
65
- lists.sort_by{|list| list.slug.downcase}
66
- end unless options['unsorted']
56
+ when 'members'
57
+ lists.sort_by { |user| user.member_count }
58
+ when 'mode'
59
+ lists.sort_by { |user| user.mode }
60
+ when 'since'
61
+ lists.sort_by { |user| user.created_at }
62
+ when 'subscribers'
63
+ lists.sort_by { |user| user.subscriber_count }
64
+ else
65
+ lists.sort_by { |list| list.slug.downcase }
66
+ end unless options['unsorted']
67
67
  lists.reverse! if options['reverse']
68
68
  if options['csv']
69
69
  require 'csv'
@@ -75,7 +75,7 @@ module T
75
75
  array = lists.map do |list|
76
76
  build_long_list(list)
77
77
  end
78
- format = options['format'] || LIST_HEADINGS.size.times.map{"%s"}
78
+ format = options['format'] || LIST_HEADINGS.size.times.map { '%s' }
79
79
  print_table_with_headings(array, LIST_HEADINGS, format)
80
80
  else
81
81
  print_attribute(lists, :full_name)
@@ -132,7 +132,7 @@ module T
132
132
  array = tweets.map do |tweet|
133
133
  build_long_tweet(tweet)
134
134
  end
135
- format = options['format'] || TWEET_HEADINGS.size.times.map{"%s"}
135
+ format = options['format'] || TWEET_HEADINGS.size.times.map { '%s' }
136
136
  print_table_with_headings(array, TWEET_HEADINGS, format)
137
137
  else
138
138
  tweets.each do |tweet|
@@ -141,25 +141,25 @@ module T
141
141
  end
142
142
  end
143
143
 
144
- def print_users(users)
144
+ def print_users(users) # rubocop:disable CyclomaticComplexity
145
145
  users = case options['sort']
146
- when 'favorites'
147
- users.sort_by{|user| user.favorites_count.to_i}
148
- when 'followers'
149
- users.sort_by{|user| user.followers_count.to_i}
150
- when 'friends'
151
- users.sort_by{|user| user.friends_count.to_i}
152
- when 'listed'
153
- users.sort_by{|user| user.listed_count.to_i}
154
- when 'since'
155
- users.sort_by{|user| user.created_at}
156
- when 'tweets'
157
- users.sort_by{|user| user.statuses_count.to_i}
158
- when 'tweeted'
159
- users.sort_by{|user| user.status? ? user.status.created_at : Time.at(0)}
160
- else
161
- users.sort_by{|user| user.screen_name.downcase}
162
- end unless options['unsorted']
146
+ when 'favorites'
147
+ users.sort_by { |user| user.favorites_count.to_i }
148
+ when 'followers'
149
+ users.sort_by { |user| user.followers_count.to_i }
150
+ when 'friends'
151
+ users.sort_by { |user| user.friends_count.to_i }
152
+ when 'listed'
153
+ users.sort_by { |user| user.listed_count.to_i }
154
+ when 'since'
155
+ users.sort_by { |user| user.created_at }
156
+ when 'tweets'
157
+ users.sort_by { |user| user.statuses_count.to_i }
158
+ when 'tweeted'
159
+ users.sort_by { |user| user.status? ? user.status.created_at : Time.at(0) }
160
+ else
161
+ users.sort_by { |user| user.screen_name.downcase }
162
+ end unless options['unsorted']
163
163
  users.reverse! if options['reverse']
164
164
  if options['csv']
165
165
  require 'csv'
@@ -171,12 +171,11 @@ module T
171
171
  array = users.map do |user|
172
172
  build_long_user(user)
173
173
  end
174
- format = options['format'] || USER_HEADINGS.size.times.map{"%s"}
174
+ format = options['format'] || USER_HEADINGS.size.times.map { '%s' }
175
175
  print_table_with_headings(array, USER_HEADINGS, format)
176
176
  else
177
177
  print_attribute(users, :screen_name)
178
178
  end
179
179
  end
180
-
181
180
  end
182
181
  end