class T::List
Constants
- DEFAULT_NUM_RESULTS
Public Class Methods
new(*)
click to toggle source
Calls superclass method
# File lib/t/list.rb, line 20 def initialize(*) @rcfile = T::RCFile.instance super end
Public Instance Methods
add(list_name, user, *users)
click to toggle source
# File lib/t/list.rb, line 27 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'] 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
create(list_name, description = nil)
click to toggle source
# File lib/t/list.rb, line 43 def create(list_name, description = nil) opts = description ? {description: description} : {} opts[:mode] = 'private' if options['private'] client.create_list(list_name, opts) say "@#{@rcfile.active_profile[0]} created the list \"#{list_name}\"." end
information(user_list)
click to toggle source
# File lib/t/list.rb, line 52 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 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] print_table(array) end end
members(user_list)
click to toggle source
# File lib/t/list.rb, line 83 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
remove(list_name, user, *users)
click to toggle source
# File lib/t/list.rb, line 91 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'] 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
timeline(user_list)
click to toggle source
# File lib/t/list.rb, line 113 def timeline(user_list) owner, list_name = extract_owner(user_list, options) count = options['number'] || DEFAULT_NUM_RESULTS opts = {} 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