twterm 2.6.0 → 2.10.1

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.
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