Module: Twterm::Tab::Users::Base
Instance Attribute Summary collapse
Attributes included from Scrollable
#scroller
Attributes included from Base
#window
Instance Method Summary
collapse
Methods included from Scrollable
#total_item_count
#filter, #filter_query, #reset_filter
Methods included from Base
#==, #refresh, #resize
Instance Attribute Details
#user_ids ⇒ Object
Returns the value of attribute user_ids.
9
10
11
|
# File 'lib/twterm/tab/users/base.rb', line 9
def user_ids
@user_ids
end
|
Instance Method Details
#close ⇒ Object
15
16
17
18
|
# File 'lib/twterm/tab/users/base.rb', line 15
def close
@instance_keeper.kill
super
end
|
#drawable_item_count ⇒ Object
11
12
13
|
# File 'lib/twterm/tab/users/base.rb', line 11
def drawable_item_count
(window.maxy - 6).div(3)
end
|
#fetch ⇒ Object
20
|
# File 'lib/twterm/tab/users/base.rb', line 20
def fetch; end
|
#initialize ⇒ Object
22
23
24
25
26
27
|
# File 'lib/twterm/tab/users/base.rb', line 22
def initialize
super()
@user_ids = []
@instance_keeper = Scheduler.new(300) { items.each(&:touch!) }
end
|
#items ⇒ Object
29
30
31
32
|
# File 'lib/twterm/tab/users/base.rb', line 29
def items
users = user_ids.map { |id| User.find(id) }.reject(&:nil?)
filter_query.empty? ? users : users.select { |user| user.matches?(filter_query) }
end
|
#respond_to_key(key) ⇒ Object
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
# File 'lib/twterm/tab/users/base.rb', line 34
def respond_to_key(key)
return true if scroller.respond_to_key(key)
case key
when 10, ?U
show_user
when 18
fetch
when ?q
reset_filter
when ?/
filter
else
return false
end
true
end
|
#title ⇒ Object
53
54
55
|
# File 'lib/twterm/tab/users/base.rb', line 53
def title
'User list'
end
|