Module: Twterm::FilterableList

Extended by:
Forwardable
Includes:
Publisher
Included in:
Tab::DirectMessage::Conversation, Tab::DirectMessage::ConversationList, Tab::New::List, Tab::New::Search, Tab::Statuses::Base, Tab::Users::Base
Defined in:
lib/twterm/filterable_list.rb

Instance Method Summary collapse

Methods included from Publisher

#publish

Methods included from Utils

check_type

Instance Method Details

#filterObject



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/twterm/filterable_list.rb', line 10

def filter
  @filter_query = FilterQueryWindow.instance.input

  if filter_query.empty?
    reset_filter
  elsif items.count == 0
    query = filter_query
    reset_filter
    publish(Event::Notification.new(:error, "No matches found: \"#{query}\""))
  else
    Notifier.instance.show_message "#{total_item_count} items found: \"#{filter_query}\""
    scroller.move_to_top
  end

  refresh
end

#filter_queryObject



27
28
29
# File 'lib/twterm/filterable_list.rb', line 27

def filter_query
  @filter_query ||= ''
end

#itemsObject



31
32
33
# File 'lib/twterm/filterable_list.rb', line 31

def items
  fail NotImplementedError, 'items method must be implemented'
end

#reset_filterObject



35
36
37
38
39
# File 'lib/twterm/filterable_list.rb', line 35

def reset_filter
  FilterQueryWindow.instance.clear
  @filter_query = ''
  refresh
end