hobostove 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/hobostove/panel.rb +13 -1
- data/lib/hobostove/window.rb +8 -8
- metadata +1 -1
data/lib/hobostove/panel.rb
CHANGED
@@ -20,7 +20,9 @@ module Hobostove
|
|
20
20
|
if wrap_lines?
|
21
21
|
@strings << string.first(width - 4)
|
22
22
|
else
|
23
|
-
|
23
|
+
word_wrap(string, width - 5).each do |line|
|
24
|
+
@strings << line
|
25
|
+
end
|
24
26
|
end
|
25
27
|
|
26
28
|
Ncurses.werase(@win)
|
@@ -35,5 +37,15 @@ module Hobostove
|
|
35
37
|
Ncurses.doupdate
|
36
38
|
Ncurses.refresh
|
37
39
|
end
|
40
|
+
|
41
|
+
def word_wrap(text, line_width)
|
42
|
+
text.scan(/.{1,#{line_width}}/).each_with_index.map do |line, index|
|
43
|
+
if index > 0
|
44
|
+
" #{line}"
|
45
|
+
else
|
46
|
+
line
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
38
50
|
end
|
39
51
|
end
|
data/lib/hobostove/window.rb
CHANGED
@@ -5,7 +5,7 @@ module Hobostove
|
|
5
5
|
def connect
|
6
6
|
@current_message = ""
|
7
7
|
@running = true
|
8
|
-
@
|
8
|
+
@user_names = []
|
9
9
|
@messages = []
|
10
10
|
|
11
11
|
start_ncurses
|
@@ -27,7 +27,7 @@ module Hobostove
|
|
27
27
|
when 127 # backspace
|
28
28
|
@current_message = @current_message.first(@current_message.size - 1)
|
29
29
|
when 9 # tab
|
30
|
-
@current_message = "#{@
|
30
|
+
@current_message = "#{@user_names.find { |user| user =~ /^#@current_message/ }}: "
|
31
31
|
else
|
32
32
|
@current_message << ch.chr
|
33
33
|
end
|
@@ -50,16 +50,16 @@ module Hobostove
|
|
50
50
|
def stream
|
51
51
|
Thread.new do
|
52
52
|
while true do
|
53
|
-
|
54
|
-
|
55
|
-
next unless message[:
|
53
|
+
recent = room.recent(10)
|
54
|
+
recent.each do |message|
|
55
|
+
next unless message[:body]
|
56
56
|
next if messages.include?(message[:id])
|
57
57
|
messages << message[:id]
|
58
|
-
message = "#{user(message[:user_id])[:name]}: #{message[:
|
58
|
+
message = "#{user(message[:user_id])[:name]}: #{message[:body]}"
|
59
59
|
@messages_panel << message
|
60
60
|
end
|
61
61
|
|
62
|
-
sleep
|
62
|
+
sleep 1
|
63
63
|
end
|
64
64
|
end
|
65
65
|
end
|
@@ -94,7 +94,7 @@ module Hobostove
|
|
94
94
|
|
95
95
|
def load_users
|
96
96
|
room.users.each do |user|
|
97
|
-
@
|
97
|
+
@user_names << user["name"]
|
98
98
|
@users_panel << user["name"]
|
99
99
|
end
|
100
100
|
end
|