twterm 1.1.0.beta1 → 1.1.0
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.
- checksums.yaml +4 -4
- data/lib/twterm/filter_query_window.rb +53 -5
- data/lib/twterm/tab/key_assignments_cheatsheet.rb +13 -12
- data/lib/twterm/tab/scrollable.rb +6 -6
- data/lib/twterm/tab/statuses/base.rb +2 -0
- data/lib/twterm/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6899ab95b0be06317c390cbb3a0a8638f73b1ead
|
4
|
+
data.tar.gz: 5414fbb91b92079b03f2f4f001ac49e9379357ad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b0b7bfcaa4aea696889614b2c7e804fb873c5abd25ab288093005dfcbd8e1037a05b2bb0137c26bda64fcefa60cb647c38ab6f9276e172a755345025ee9a8be7
|
7
|
+
data.tar.gz: b47ef4cb13b9c371d15287e328e7c5b1701dc10446ffd9e054af8aa8d90878d8e5b33506f7abc465d8458ba92128d16e0f24ce03b9fb100d420591e20203c75b
|
@@ -9,15 +9,63 @@ module Twterm
|
|
9
9
|
|
10
10
|
def input
|
11
11
|
clear
|
12
|
-
|
13
|
-
echo
|
14
12
|
stdscr.setpos(stdscr.maxy - 1, 0)
|
15
13
|
stdscr.addch '/'
|
16
14
|
|
17
|
-
|
18
|
-
|
15
|
+
Curses.timeout = 10
|
16
|
+
raw
|
17
|
+
|
18
|
+
chars = []
|
19
|
+
str = ''
|
20
|
+
|
21
|
+
loop do
|
22
|
+
char = getch
|
23
|
+
|
24
|
+
if char.nil?
|
25
|
+
case chars.first
|
26
|
+
when 3, 27 # cancel with <C-c> / Esc
|
27
|
+
str = ''
|
28
|
+
clear
|
29
|
+
break
|
30
|
+
when 4 # cancel with <C-d> when query is empty
|
31
|
+
if str.empty?
|
32
|
+
clear
|
33
|
+
break
|
34
|
+
end
|
35
|
+
when 10 # submit with <C-j>
|
36
|
+
break
|
37
|
+
when 127 # backspace
|
38
|
+
if str.empty?
|
39
|
+
clear
|
40
|
+
break
|
41
|
+
end
|
42
|
+
|
43
|
+
str.chop!
|
44
|
+
chars = []
|
45
|
+
clear
|
46
|
+
stdscr.setpos(stdscr.maxy - 1, 0)
|
47
|
+
stdscr.addstr("/#{str}")
|
48
|
+
when 0..31
|
49
|
+
# ignore control codes (\x00 - \x1f)
|
50
|
+
else
|
51
|
+
str << chars
|
52
|
+
.map { |x| x.is_a?(String) ? x.ord : x }
|
53
|
+
.pack('c*')
|
54
|
+
.force_encoding('utf-8')
|
55
|
+
chars = []
|
56
|
+
end
|
57
|
+
else
|
58
|
+
chars << char
|
59
|
+
end
|
60
|
+
|
61
|
+
stdscr.setpos(stdscr.maxy - 1, 1)
|
62
|
+
stdscr.addstr(str)
|
63
|
+
end
|
64
|
+
|
65
|
+
Curses.timeout = 0
|
66
|
+
cbreak
|
19
67
|
|
20
|
-
|
68
|
+
str
|
21
69
|
end
|
22
70
|
|
23
71
|
def clear
|
@@ -19,26 +19,27 @@ module Twterm
|
|
19
19
|
'[Q]' => 'Quit twterm'
|
20
20
|
},
|
21
21
|
'Tabs' => {
|
22
|
-
'[h] [C-b] [LEFT]' => '
|
23
|
-
'[l] [C-f] [RIGHT]' => '
|
24
|
-
'[N]' => '
|
22
|
+
'[h] [C-b] [LEFT]' => 'Previous tab',
|
23
|
+
'[l] [C-f] [RIGHT]' => 'Next tab',
|
24
|
+
'[N]' => 'New tab',
|
25
25
|
'[C-R]' => 'Reload',
|
26
26
|
'[w]' => 'Close tab',
|
27
|
-
'[q]' => 'Quit
|
28
|
-
'[/]' => 'Filter
|
27
|
+
'[q]' => 'Quit filter mode',
|
28
|
+
'[/]' => 'Filter mode'
|
29
29
|
},
|
30
30
|
'Tweets' => {
|
31
|
-
'[
|
31
|
+
'[c]' => 'Conversation',
|
32
|
+
'[D]' => 'Delete',
|
32
33
|
'[F]' => 'Add to favorite',
|
33
|
-
'[n]' => '
|
34
|
-
'[o]' => 'Open URLs
|
34
|
+
'[n]' => 'New tweet',
|
35
|
+
'[o]' => 'Open URLs',
|
35
36
|
'[r]' => 'Reply',
|
36
37
|
'[R]' => 'Retweet',
|
37
|
-
'[U]' => '
|
38
|
+
'[U]' => 'User'
|
38
39
|
},
|
39
40
|
'Others' => {
|
40
|
-
'[P]' => '
|
41
|
-
'[?]' => '
|
41
|
+
'[P]' => 'My profile',
|
42
|
+
'[?]' => 'Key assignments cheatsheet'
|
42
43
|
}
|
43
44
|
}
|
44
45
|
|
@@ -48,7 +49,7 @@ module Twterm
|
|
48
49
|
|
49
50
|
def initialize
|
50
51
|
super
|
51
|
-
scroller.
|
52
|
+
scroller.set_no_cursor_mode!
|
52
53
|
end
|
53
54
|
|
54
55
|
def respond_to_key(key)
|
@@ -43,14 +43,14 @@ module Twterm
|
|
43
43
|
index == offset + i
|
44
44
|
end
|
45
45
|
|
46
|
-
def
|
47
|
-
!!@
|
46
|
+
def no_cursor_mode?
|
47
|
+
!!@no_cursor_mode
|
48
48
|
end
|
49
49
|
|
50
50
|
def initialize
|
51
51
|
@index = 0
|
52
52
|
@offset = 0
|
53
|
-
@
|
53
|
+
@no_cursor_mode = false
|
54
54
|
end
|
55
55
|
|
56
56
|
def drawable_items
|
@@ -73,7 +73,7 @@ module Twterm
|
|
73
73
|
# return when there are no items or cursor is at the bottom
|
74
74
|
|
75
75
|
@index += 1
|
76
|
-
@offset += 1 if (
|
76
|
+
@offset += 1 if (no_cursor_mode? || cursor_on_the_downside?) && !last_item_shown?
|
77
77
|
|
78
78
|
hook :after_move
|
79
79
|
end
|
@@ -132,8 +132,8 @@ module Twterm
|
|
132
132
|
true
|
133
133
|
end
|
134
134
|
|
135
|
-
def
|
136
|
-
@
|
135
|
+
def set_no_cursor_mode!
|
136
|
+
@no_cursor_mode = true
|
137
137
|
end
|
138
138
|
|
139
139
|
private
|
@@ -69,6 +69,8 @@ module Twterm
|
|
69
69
|
status = highlighted_status
|
70
70
|
urls = status.urls.map(&:expanded_url) + status.media.map(&:expanded_url)
|
71
71
|
urls.each(&Launchy.method(:open))
|
72
|
+
rescue Launchy::CommandNotFoundError
|
73
|
+
Notifier.instance.show_error 'Cannot find web browser'
|
72
74
|
end
|
73
75
|
|
74
76
|
def prepend(status)
|
data/lib/twterm/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: twterm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryota Kameoka
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-09-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: curses
|
@@ -223,9 +223,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
223
223
|
version: 2.1.0
|
224
224
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
225
225
|
requirements:
|
226
|
-
- - "
|
226
|
+
- - ">="
|
227
227
|
- !ruby/object:Gem::Version
|
228
|
-
version:
|
228
|
+
version: '0'
|
229
229
|
requirements: []
|
230
230
|
rubyforge_project:
|
231
231
|
rubygems_version: 2.4.7
|