Class: T::CLI::List

Inherits:
Thor
  • Object
show all
Includes:
ActionView::Helpers::DateHelper, Pager, Requestable
Defined in:
lib/t/cli/list.rb,
lib/t/cli/list/add.rb,
lib/t/cli/list/remove.rb

Defined Under Namespace

Classes: Add, Remove

Constant Summary collapse

DEFAULT_NUM_RESULTS =
20
MAX_SCREEN_NAME_SIZE =
20

Constants included from Requestable

Requestable::DEFAULT_HOST, Requestable::DEFAULT_PROTOCOL

Instance Method Summary collapse

Methods included from Requestable

#base_url, #client, #host, included, #protocol

Constructor Details

#initializeList

Returns a new instance of List.



19
20
21
22
# File 'lib/t/cli/list.rb', line 19

def initialize(*)
  super
  @rcfile = RCFile.instance
end

Instance Method Details

#create(list_name, description = "") ⇒ Object



26
27
28
29
30
31
# File 'lib/t/cli/list.rb', line 26

def create(list_name, description="")
  defaults = description.blank? ? {} : {:description => description}
  defaults.merge!(:mode => 'private') if options['private']
  client.list_create(list_name, defaults)
  say "@#{@rcfile.default_profile[0]} created the list \"#{list_name}\"."
end

#timeline(list_name) ⇒ Object



36
37
38
39
40
41
42
43
44
45
# File 'lib/t/cli/list.rb', line 36

def timeline(list_name)
  defaults = {:include_entities => false}
  defaults.merge!(:per_page => options['number']) if options['number']
  timeline = client.list_timeline(list_name, defaults)
  timeline.reverse! if options['reverse']
  page unless T.env.test?
  timeline.each do |status|
    say "#{status.user.screen_name.rjust(MAX_SCREEN_NAME_SIZE)}: #{status.text} (#{time_ago_in_words(status.created_at)} ago)"
  end
end