lib/t/list.rb in t-3.1.0 vs lib/t/list.rb in t-4.0.0
- old
+ new
@@ -1,12 +1,12 @@
-require 'thor'
-require 'twitter'
-require 't/collectable'
-require 't/printable'
-require 't/rcfile'
-require 't/requestable'
-require 't/utils'
+require "thor"
+require "twitter"
+require "t/collectable"
+require "t/printable"
+require "t/rcfile"
+require "t/requestable"
+require "t/utils"
module T
class List < Thor
include T::Collectable
include T::Printable
@@ -20,106 +20,106 @@
def initialize(*)
@rcfile = T::RCFile.instance
super
end
- desc 'add LIST USER [USER...]', 'Add members to a list.'
- method_option 'id', aliases: '-i', type: :boolean, desc: 'Specify input as Twitter user IDs instead of screen names.'
+ desc "add LIST USER [USER...]", "Add members to a list."
+ method_option "id", aliases: "-i", type: :boolean, desc: "Specify input as Twitter user IDs instead of screen names."
def add(list_name, user, *users)
added_users, number = fetch_users(users.unshift(user), options) do |users_to_add|
client.add_list_members(list_name, users_to_add)
users_to_add
end
say "@#{@rcfile.active_profile[0]} added #{pluralize(number, 'member')} to the list \"#{list_name}\"."
say
- if options['id']
+ if options["id"]
say "Run `#{File.basename($PROGRAM_NAME)} list remove --id #{list_name} #{added_users.join(' ')}` to undo."
else
say "Run `#{File.basename($PROGRAM_NAME)} list remove #{list_name} #{added_users.collect { |added_user| "@#{added_user}" }.join(' ')}` to undo."
end
end
- desc 'create LIST [DESCRIPTION]', 'Create a new list.'
- method_option 'private', aliases: '-p', type: :boolean
+ desc "create LIST [DESCRIPTION]", "Create a new list."
+ method_option "private", aliases: "-p", type: :boolean
def create(list_name, description = nil)
opts = description ? {description: description} : {}
- opts[:mode] = 'private' if options['private']
+ opts[:mode] = "private" if options["private"]
client.create_list(list_name, opts)
say "@#{@rcfile.active_profile[0]} created the list \"#{list_name}\"."
end
- desc 'information [USER/]LIST', 'Retrieves detailed information about a Twitter list.'
- method_option 'csv', aliases: '-c', type: :boolean, desc: 'Output in CSV format.'
+ desc "information [USER/]LIST", "Retrieves detailed information about a Twitter list."
+ method_option "csv", aliases: "-c", type: :boolean, desc: "Output in CSV format."
def information(user_list)
owner, list_name = extract_owner(user_list, options)
list = client.list(owner, list_name)
- if options['csv']
- require 'csv'
- say ['ID', 'Description', 'Slug', 'Screen name', 'Created at', 'Members', 'Subscribers', 'Following', 'Mode', 'URL'].to_csv
+ if options["csv"]
+ require "csv"
+ say ["ID", "Description", "Slug", "Screen name", "Created at", "Members", "Subscribers", "Following", "Mode", "URL"].to_csv
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
else
array = []
- array << ['ID', list.id.to_s]
- array << ['Description', list.description] unless list.description.nil?
- array << ['Slug', list.slug]
- array << ['Screen name', "@#{list.user.screen_name}"]
- array << ['Created at', "#{ls_formatted_time(list, :created_at, false)} (#{time_ago_in_words(list.created_at)} ago)"]
- array << ['Members', number_with_delimiter(list.member_count)]
- array << ['Subscribers', number_with_delimiter(list.subscriber_count)]
- array << ['Status', list.following? ? 'Following' : 'Not following']
- array << ['Mode', list.mode]
- array << ['URL', list.uri]
+ array << ["ID", list.id.to_s]
+ array << ["Description", list.description] unless list.description.nil?
+ array << ["Slug", list.slug]
+ array << ["Screen name", "@#{list.user.screen_name}"]
+ array << ["Created at", "#{ls_formatted_time(list, :created_at, false)} (#{time_ago_in_words(list.created_at)} ago)"]
+ array << ["Members", number_with_delimiter(list.member_count)]
+ array << ["Subscribers", number_with_delimiter(list.subscriber_count)]
+ array << ["Status", list.following? ? "Following" : "Not following"]
+ array << ["Mode", list.mode]
+ array << ["URL", list.uri]
print_table(array)
end
end
- map %w(details) => :information
+ map %w[details] => :information
- desc 'members [USER/]LIST', 'Returns the members of a Twitter list.'
- method_option 'csv', aliases: '-c', type: :boolean, desc: 'Output in CSV format.'
- method_option 'id', aliases: '-i', type: :boolean, desc: 'Specify user via ID instead of screen name.'
- method_option 'long', aliases: '-l', type: :boolean, desc: 'Output in long format.'
- method_option 'reverse', aliases: '-r', type: :boolean, desc: 'Reverse the order of the sort.'
- 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'
- method_option 'unsorted', aliases: '-u', type: :boolean, desc: 'Output is not sorted.'
+ desc "members [USER/]LIST", "Returns the members of a Twitter list."
+ method_option "csv", aliases: "-c", type: :boolean, desc: "Output in CSV format."
+ method_option "id", aliases: "-i", type: :boolean, desc: "Specify user via ID instead of screen name."
+ method_option "long", aliases: "-l", type: :boolean, desc: "Output in long format."
+ method_option "reverse", aliases: "-r", type: :boolean, desc: "Reverse the order of the sort."
+ 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"
+ method_option "unsorted", aliases: "-u", type: :boolean, desc: "Output is not sorted."
def members(user_list)
owner, list_name = extract_owner(user_list, options)
users = client.list_members(owner, list_name).to_a
print_users(users)
end
- desc 'remove LIST USER [USER...]', 'Remove members from a list.'
- method_option 'id', aliases: '-i', type: :boolean, desc: 'Specify input as Twitter user IDs instead of screen names.'
+ desc "remove LIST USER [USER...]", "Remove members from a list."
+ method_option "id", aliases: "-i", type: :boolean, desc: "Specify input as Twitter user IDs instead of screen names."
def remove(list_name, user, *users)
removed_users, number = fetch_users(users.unshift(user), options) do |users_to_remove|
client.remove_list_members(list_name, users_to_remove)
users_to_remove
end
say "@#{@rcfile.active_profile[0]} removed #{pluralize(number, 'member')} from the list \"#{list_name}\"."
say
- if options['id']
+ if options["id"]
say "Run `#{File.basename($PROGRAM_NAME)} list add --id #{list_name} #{removed_users.join(' ')}` to undo."
else
say "Run `#{File.basename($PROGRAM_NAME)} list add #{list_name} #{removed_users.collect { |removed_user| "@#{removed_user}" }.join(' ')}` to undo."
end
end
- desc 'timeline [USER/]LIST', 'Show tweet timeline for members of the specified list.'
- method_option 'csv', aliases: '-c', type: :boolean, desc: 'Output in CSV format.'
- method_option 'decode_uris', aliases: '-d', type: :boolean, desc: 'Decodes t.co URLs into their original form.'
- method_option 'id', aliases: '-i', type: :boolean, desc: 'Specify user via ID instead of screen name.'
- method_option 'long', aliases: '-l', type: :boolean, desc: 'Output in long format.'
- method_option 'number', aliases: '-n', type: :numeric, default: DEFAULT_NUM_RESULTS, desc: 'Limit the number of results.'
- method_option 'relative_dates', aliases: '-a', type: :boolean, desc: 'Show relative dates.'
- method_option 'reverse', aliases: '-r', type: :boolean, desc: 'Reverse the order of the sort.'
+ desc "timeline [USER/]LIST", "Show tweet timeline for members of the specified list."
+ method_option "csv", aliases: "-c", type: :boolean, desc: "Output in CSV format."
+ method_option "decode_uris", aliases: "-d", type: :boolean, desc: "Decodes t.co URLs into their original form."
+ method_option "id", aliases: "-i", type: :boolean, desc: "Specify user via ID instead of screen name."
+ method_option "long", aliases: "-l", type: :boolean, desc: "Output in long format."
+ method_option "number", aliases: "-n", type: :numeric, default: DEFAULT_NUM_RESULTS, desc: "Limit the number of results."
+ method_option "relative_dates", aliases: "-a", type: :boolean, desc: "Show relative dates."
+ method_option "reverse", aliases: "-r", type: :boolean, desc: "Reverse the order of the sort."
def timeline(user_list)
owner, list_name = extract_owner(user_list, options)
- count = options['number'] || DEFAULT_NUM_RESULTS
+ count = options["number"] || DEFAULT_NUM_RESULTS
opts = {}
- opts[:include_entities] = !!options['decode_uris']
+ opts[:include_entities] = !!options["decode_uris"]
tweets = collect_with_count(count) do |count_opts|
client.list_timeline(owner, list_name, count_opts.merge(opts))
end
print_tweets(tweets)
end
- map %w(tl) => :timeline
+ map %w[tl] => :timeline
end
end