t 2.0.1 → 2.0.2

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.
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