twterm 2.6.0 → 2.10.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +62 -0
  3. data/.gitignore +1 -0
  4. data/Gemfile +7 -0
  5. data/Makefile +21 -0
  6. data/README.md +52 -6
  7. data/bin/twterm +1 -3
  8. data/default.nix +21 -0
  9. data/gemset.nix +5130 -0
  10. data/lib/twterm/app.rb +13 -24
  11. data/lib/twterm/client.rb +1 -4
  12. data/lib/twterm/color_manager.rb +8 -9
  13. data/lib/twterm/image.rb +31 -0
  14. data/lib/twterm/image/attr.rb +42 -0
  15. data/lib/twterm/image/bold.rb +7 -21
  16. data/lib/twterm/image/color.rb +9 -15
  17. data/lib/twterm/image/dim.rb +13 -0
  18. data/lib/twterm/image/underlined.rb +17 -0
  19. data/lib/twterm/image_builder/user_name_image_builder.rb +1 -0
  20. data/lib/twterm/key_mapper.rb +6 -8
  21. data/lib/twterm/key_mapper/abstract_key_mapper.rb +2 -2
  22. data/lib/twterm/list.rb +36 -1
  23. data/lib/twterm/message_window.rb +4 -13
  24. data/lib/twterm/persistable_configuration_proxy.rb +6 -6
  25. data/lib/twterm/preferences.rb +8 -1
  26. data/lib/twterm/rest_client.rb +0 -33
  27. data/lib/twterm/screen.rb +103 -25
  28. data/lib/twterm/search_query_window.rb +5 -13
  29. data/lib/twterm/status.rb +10 -0
  30. data/lib/twterm/tab/abstract_tab.rb +30 -16
  31. data/lib/twterm/tab/new/index.rb +0 -10
  32. data/lib/twterm/tab/new/search.rb +2 -2
  33. data/lib/twterm/tab/new/user.rb +2 -2
  34. data/lib/twterm/tab/preferences/control.rb +77 -0
  35. data/lib/twterm/tab/preferences/index.rb +6 -0
  36. data/lib/twterm/tab/scrollable.rb +1 -1
  37. data/lib/twterm/tab/searchable.rb +6 -4
  38. data/lib/twterm/tab/status_tab.rb +10 -0
  39. data/lib/twterm/tab/statuses/abstract_statuses_tab.rb +11 -6
  40. data/lib/twterm/tab/user_tab.rb +0 -9
  41. data/lib/twterm/tab_manager.rb +77 -10
  42. data/lib/twterm/tweetbox.rb +2 -3
  43. data/lib/twterm/user.rb +1 -0
  44. data/lib/twterm/version.rb +1 -1
  45. data/nix/Gemfile +3 -0
  46. data/nix/Gemfile.lock +77 -0
  47. data/nix/gemset.nix +325 -0
  48. data/shell.nix +40 -0
  49. data/spec/twterm/image/bold_spec.rb +30 -0
  50. data/spec/twterm/image/color_spec.rb +16 -0
  51. data/spec/twterm/image/dim_spec.rb +30 -0
  52. data/twterm.gemspec +7 -14
  53. metadata +31 -113
  54. data/.travis.yml +0 -12
  55. data/lib/twterm/direct_message.rb +0 -60
  56. data/lib/twterm/direct_message_composer.rb +0 -80
  57. data/lib/twterm/direct_message_manager.rb +0 -51
  58. data/lib/twterm/event/direct_message/fetched.rb +0 -10
  59. data/lib/twterm/event/notification/direct_message.rb +0 -30
  60. data/lib/twterm/event/screen/resize.rb +0 -13
  61. data/lib/twterm/repository/direct_message_repository.rb +0 -14
  62. data/lib/twterm/tab/direct_message/conversation.rb +0 -104
  63. data/lib/twterm/tab/direct_message/conversation_list.rb +0 -100
  64. data/spec/twterm/event/screen/resize_spec.rb +0 -11
@@ -0,0 +1,30 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe Twterm::Image::Bold do
4
+ let(:string_image) { Twterm::Image::StringImage.new(str) }
5
+ let(:str) { 'Hello' }
6
+
7
+ describe '#height' do
8
+ subject { image.height }
9
+
10
+ let(:image) { described_class.new(string_image) }
11
+
12
+ it { is_expected.to eq string_image.height }
13
+ end
14
+
15
+ describe '#to_s' do
16
+ subject { image.to_s }
17
+
18
+ let(:image) { described_class.new(string_image) }
19
+
20
+ it { is_expected.to eq "\e[1mHello\e[0m" }
21
+ end
22
+
23
+ describe '#width' do
24
+ subject { image.width }
25
+
26
+ let(:image) { described_class.new(string_image) }
27
+
28
+ it { is_expected.to eq string_image.width }
29
+ end
30
+ end
@@ -4,6 +4,14 @@ RSpec.describe Twterm::Image::Color do
4
4
  let(:string_image) { Twterm::Image::StringImage.new(str) }
5
5
  let(:str) { 'Hello' }
6
6
 
7
+ describe '#height' do
8
+ subject { image.height }
9
+
10
+ let(:image) { described_class.new(string_image, :red) }
11
+
12
+ it { is_expected.to eq string_image.height }
13
+ end
14
+
7
15
  describe '#to_s' do
8
16
  subject { image.to_s }
9
17
 
@@ -19,4 +27,12 @@ RSpec.describe Twterm::Image::Color do
19
27
  it { is_expected.to eq "\e[47m\e[31mHello\e[0m" }
20
28
  end
21
29
  end
30
+
31
+ describe '#width' do
32
+ subject { image.width }
33
+
34
+ let(:image) { described_class.new(string_image, :red) }
35
+
36
+ it { is_expected.to eq string_image.width }
37
+ end
22
38
  end
@@ -0,0 +1,30 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe Twterm::Image::Dim do
4
+ let(:string_image) { Twterm::Image::StringImage.new(str) }
5
+ let(:str) { 'Hello' }
6
+
7
+ describe '#height' do
8
+ subject { image.height }
9
+
10
+ let(:image) { described_class.new(string_image) }
11
+
12
+ it { is_expected.to eq string_image.height }
13
+ end
14
+
15
+ describe '#to_s' do
16
+ subject { image.to_s }
17
+
18
+ let(:image) { described_class.new(string_image) }
19
+
20
+ it { is_expected.to eq "\e[2mHello\e[0m" }
21
+ end
22
+
23
+ describe '#width' do
24
+ subject { image.width }
25
+
26
+ let(:image) { described_class.new(string_image) }
27
+
28
+ it { is_expected.to eq string_image.width }
29
+ end
30
+ end
data/twterm.gemspec CHANGED
@@ -16,21 +16,14 @@ Gem::Specification.new do |spec|
16
16
  spec.files = `git ls-files -z`.split("\x0").reject { |i| i == 'Gemfile.lock' }
17
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
18
  spec.require_paths = ['lib']
19
- spec.required_ruby_version = '>= 2.1.0'
19
+ spec.required_ruby_version = spec.required_ruby_version = Gem::Requirement.new('~> 2.5')
20
20
 
21
- spec.add_dependency 'curses', '~> 1.2.2'
22
- spec.add_dependency 'concurrent-ruby', '~> 1.0.5'
23
- spec.add_dependency 'launchy', '~> 2.4.3'
21
+ spec.add_dependency 'curses', '~> 1.4.0'
22
+ spec.add_dependency 'concurrent-ruby', '~> 1.1.7'
23
+ spec.add_dependency 'launchy', '~> 2.5.0'
24
24
  spec.add_dependency 'oauth', '~> 0.5.1'
25
25
  spec.add_dependency 'terminal-notifier', '~> 2.0.0'
26
- spec.add_dependency 'toml-rb', '~> 0.3.14'
27
- spec.add_dependency 'twitter', '~> 6.2.0'
28
- spec.add_dependency 'twitter-text', '~> 2.1.0'
29
-
30
- spec.add_development_dependency 'bundler', '~> 1.8'
31
- spec.add_development_dependency 'hashie', '~> 3.5.6'
32
- spec.add_development_dependency 'rake', '~> 12.0'
33
- spec.add_development_dependency 'rspec', '~> 3.7.0'
34
- spec.add_development_dependency 'rubocop', '~> 0.51.0'
35
- spec.add_development_dependency 'yard', '~> 0.9.12'
26
+ spec.add_dependency 'toml-rb', '~> 2.0.1'
27
+ spec.add_dependency 'twitter', '~> 7.0.0'
28
+ spec.add_dependency 'twitter-text', '~> 3.1.0'
36
29
  end
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: 2.6.0
4
+ version: 2.10.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryota Kameoka
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-08-15 00:00:00.000000000 Z
11
+ date: 1980-01-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: curses
@@ -16,42 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.2.2
19
+ version: 1.4.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.2.2
26
+ version: 1.4.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: concurrent-ruby
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.0.5
33
+ version: 1.1.7
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 1.0.5
40
+ version: 1.1.7
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: launchy
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 2.4.3
47
+ version: 2.5.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 2.4.3
54
+ version: 2.5.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: oauth
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -86,126 +86,42 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 0.3.14
89
+ version: 2.0.1
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 0.3.14
96
+ version: 2.0.1
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: twitter
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 6.2.0
103
+ version: 7.0.0
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 6.2.0
110
+ version: 7.0.0
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: twitter-text
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 2.1.0
117
+ version: 3.1.0
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 2.1.0
125
- - !ruby/object:Gem::Dependency
126
- name: bundler
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: '1.8'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: '1.8'
139
- - !ruby/object:Gem::Dependency
140
- name: hashie
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - "~>"
144
- - !ruby/object:Gem::Version
145
- version: 3.5.6
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - "~>"
151
- - !ruby/object:Gem::Version
152
- version: 3.5.6
153
- - !ruby/object:Gem::Dependency
154
- name: rake
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - "~>"
158
- - !ruby/object:Gem::Version
159
- version: '12.0'
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - "~>"
165
- - !ruby/object:Gem::Version
166
- version: '12.0'
167
- - !ruby/object:Gem::Dependency
168
- name: rspec
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - "~>"
172
- - !ruby/object:Gem::Version
173
- version: 3.7.0
174
- type: :development
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - "~>"
179
- - !ruby/object:Gem::Version
180
- version: 3.7.0
181
- - !ruby/object:Gem::Dependency
182
- name: rubocop
183
- requirement: !ruby/object:Gem::Requirement
184
- requirements:
185
- - - "~>"
186
- - !ruby/object:Gem::Version
187
- version: 0.51.0
188
- type: :development
189
- prerelease: false
190
- version_requirements: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - "~>"
193
- - !ruby/object:Gem::Version
194
- version: 0.51.0
195
- - !ruby/object:Gem::Dependency
196
- name: yard
197
- requirement: !ruby/object:Gem::Requirement
198
- requirements:
199
- - - "~>"
200
- - !ruby/object:Gem::Version
201
- version: 0.9.12
202
- type: :development
203
- prerelease: false
204
- version_requirements: !ruby/object:Gem::Requirement
205
- requirements:
206
- - - "~>"
207
- - !ruby/object:Gem::Version
208
- version: 0.9.12
124
+ version: 3.1.0
209
125
  description: A full-featured TUI Twitter client
210
126
  email:
211
127
  - kameoka.ryota@gmail.com
@@ -214,14 +130,17 @@ executables:
214
130
  extensions: []
215
131
  extra_rdoc_files: []
216
132
  files:
133
+ - ".circleci/config.yml"
217
134
  - ".gitignore"
218
135
  - ".rspec"
219
- - ".travis.yml"
220
136
  - Gemfile
221
137
  - LICENSE
138
+ - Makefile
222
139
  - README.md
223
140
  - Rakefile
224
141
  - bin/twterm
142
+ - default.nix
143
+ - gemset.nix
225
144
  - lib/twterm.rb
226
145
  - lib/twterm/abstract_persistable_configuration.rb
227
146
  - lib/twterm/app.rb
@@ -234,19 +153,14 @@ files:
234
153
  - lib/twterm/completer/search_query_completer.rb
235
154
  - lib/twterm/completion_manager.rb
236
155
  - lib/twterm/config.rb
237
- - lib/twterm/direct_message.rb
238
- - lib/twterm/direct_message_composer.rb
239
- - lib/twterm/direct_message_manager.rb
240
156
  - lib/twterm/environment.rb
241
157
  - lib/twterm/event/abstract_event.rb
242
- - lib/twterm/event/direct_message/fetched.rb
243
158
  - lib/twterm/event/message/abstract_message.rb
244
159
  - lib/twterm/event/message/error.rb
245
160
  - lib/twterm/event/message/info.rb
246
161
  - lib/twterm/event/message/success.rb
247
162
  - lib/twterm/event/message/warning.rb
248
163
  - lib/twterm/event/notification/abstract_notification.rb
249
- - lib/twterm/event/notification/direct_message.rb
250
164
  - lib/twterm/event/notification/favorite.rb
251
165
  - lib/twterm/event/notification/follow.rb
252
166
  - lib/twterm/event/notification/list_member_added.rb
@@ -256,7 +170,6 @@ files:
256
170
  - lib/twterm/event/open_photo.rb
257
171
  - lib/twterm/event/open_uri.rb
258
172
  - lib/twterm/event/screen/refresh.rb
259
- - lib/twterm/event/screen/resize.rb
260
173
  - lib/twterm/event/status/abstract_status_event.rb
261
174
  - lib/twterm/event/status/mention.rb
262
175
  - lib/twterm/event/status_deleted.rb
@@ -270,15 +183,18 @@ files:
270
183
  - lib/twterm/friendship.rb
271
184
  - lib/twterm/hashtag.rb
272
185
  - lib/twterm/image.rb
186
+ - lib/twterm/image/attr.rb
273
187
  - lib/twterm/image/between.rb
274
188
  - lib/twterm/image/blank_line.rb
275
189
  - lib/twterm/image/bold.rb
276
190
  - lib/twterm/image/brackets.rb
277
191
  - lib/twterm/image/color.rb
192
+ - lib/twterm/image/dim.rb
278
193
  - lib/twterm/image/empty.rb
279
194
  - lib/twterm/image/horizontal_sequential_image.rb
280
195
  - lib/twterm/image/parens.rb
281
196
  - lib/twterm/image/string_image.rb
197
+ - lib/twterm/image/underlined.rb
282
198
  - lib/twterm/image/vertical_sequential_image.rb
283
199
  - lib/twterm/image_builder/user_name_image_builder.rb
284
200
  - lib/twterm/key_mapper.rb
@@ -308,7 +224,6 @@ files:
308
224
  - lib/twterm/repository/abstract_entity_repository.rb
309
225
  - lib/twterm/repository/abstract_expirable_entity_repository.rb
310
226
  - lib/twterm/repository/abstract_repository.rb
311
- - lib/twterm/repository/direct_message_repository.rb
312
227
  - lib/twterm/repository/friendship_repository.rb
313
228
  - lib/twterm/repository/hashtag_repository.rb
314
229
  - lib/twterm/repository/list_repository.rb
@@ -321,8 +236,6 @@ files:
321
236
  - lib/twterm/status.rb
322
237
  - lib/twterm/subscriber.rb
323
238
  - lib/twterm/tab/abstract_tab.rb
324
- - lib/twterm/tab/direct_message/conversation.rb
325
- - lib/twterm/tab/direct_message/conversation_list.rb
326
239
  - lib/twterm/tab/dumpable.rb
327
240
  - lib/twterm/tab/exceptions.rb
328
241
  - lib/twterm/tab/key_assignments_cheatsheet.rb
@@ -331,6 +244,7 @@ files:
331
244
  - lib/twterm/tab/new/list.rb
332
245
  - lib/twterm/tab/new/search.rb
333
246
  - lib/twterm/tab/new/user.rb
247
+ - lib/twterm/tab/preferences/control.rb
334
248
  - lib/twterm/tab/preferences/index.rb
335
249
  - lib/twterm/tab/preferences/notification_backend.rb
336
250
  - lib/twterm/tab/preferences/photo_viewer_backend.rb
@@ -359,6 +273,10 @@ files:
359
273
  - lib/twterm/utils.rb
360
274
  - lib/twterm/version.rb
361
275
  - lib/twterm/view.rb
276
+ - nix/Gemfile
277
+ - nix/Gemfile.lock
278
+ - nix/gemset.nix
279
+ - shell.nix
362
280
  - spec/fixtures/list.json
363
281
  - spec/fixtures/status.json
364
282
  - spec/fixtures/user.json
@@ -367,13 +285,14 @@ files:
367
285
  - spec/supports/shared_examples/abstract_key_mapper.rb
368
286
  - spec/twterm/completer/search_query_completer_spec.rb
369
287
  - spec/twterm/config_spec.rb
370
- - spec/twterm/event/screen/resize_spec.rb
371
288
  - spec/twterm/event_dispatcher_spec.rb
372
289
  - spec/twterm/extension/enumerator/lazy_spec.rb
373
290
  - spec/twterm/friendship_spec.rb
374
291
  - spec/twterm/image/blank_line_spec.rb
292
+ - spec/twterm/image/bold_spec.rb
375
293
  - spec/twterm/image/brackets_spec.rb
376
294
  - spec/twterm/image/color_spec.rb
295
+ - spec/twterm/image/dim_spec.rb
377
296
  - spec/twterm/image/empry_spec.rb
378
297
  - spec/twterm/image/horizontal_sequential_image_spec.rb
379
298
  - spec/twterm/image/parens_spec.rb
@@ -399,17 +318,16 @@ require_paths:
399
318
  - lib
400
319
  required_ruby_version: !ruby/object:Gem::Requirement
401
320
  requirements:
402
- - - ">="
321
+ - - "~>"
403
322
  - !ruby/object:Gem::Version
404
- version: 2.1.0
323
+ version: '2.5'
405
324
  required_rubygems_version: !ruby/object:Gem::Requirement
406
325
  requirements:
407
326
  - - ">="
408
327
  - !ruby/object:Gem::Version
409
328
  version: '0'
410
329
  requirements: []
411
- rubyforge_project:
412
- rubygems_version: 2.7.6
330
+ rubygems_version: 3.0.3
413
331
  signing_key:
414
332
  specification_version: 4
415
333
  summary: A full-featured TUI Twitter client