twterm 2.0.0.beta4 → 2.0.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/README.md +1 -3
- data/lib/twterm/repository/abstract_expirable_entity_repository.rb +8 -2
- data/lib/twterm/repository/status_repository.rb +22 -0
- data/lib/twterm/repository/user_repository.rb +4 -0
- data/lib/twterm/tab/base.rb +0 -7
- data/lib/twterm/tab/new/search.rb +0 -2
- data/lib/twterm/tab/statuses/base.rb +13 -1
- 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: d44d4efd89253159a5b3999aab7c1600c455f446
|
4
|
+
data.tar.gz: 05db8e2c2a8d665dad0c256113ba479f9d471d36
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9cf75c3584cf79a4028434df82525b17a7df990a7bada78ec925e140e5f3ff2f5ced14ab0f373d5f45accb2ae8f232abef31e797e39cb2beb08b7392f52d6634
|
7
|
+
data.tar.gz: b15698fad09a15ab42d11b03400883c5165bac3e290348f3b926145ef4bf7882a5e2f8734bd9bed50174a4d7b10dd6eba60e9fca955afd90813f0ae081af204b
|
data/README.md
CHANGED
@@ -19,8 +19,10 @@ module Twterm
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def find(id)
|
22
|
-
|
23
|
-
|
22
|
+
instance = super
|
23
|
+
touch(id) if !instance.nil? && should_keep?(instance)
|
24
|
+
|
25
|
+
instance
|
24
26
|
end
|
25
27
|
|
26
28
|
def expire(threshold)
|
@@ -38,6 +40,10 @@ module Twterm
|
|
38
40
|
raise NotImplementedError, '`garbage_collection_event_class` must be implemented'
|
39
41
|
end
|
40
42
|
|
43
|
+
def should_keep?(instance)
|
44
|
+
raise NotImplementedError, '`should_keep?` method must be implemented'
|
45
|
+
end
|
46
|
+
|
41
47
|
def touch(id)
|
42
48
|
@touched_at[id] = Time.now
|
43
49
|
end
|
@@ -31,6 +31,20 @@ module Twterm
|
|
31
31
|
repository.values.select { |s| s.in_reply_to_status_id == id }
|
32
32
|
end
|
33
33
|
|
34
|
+
def expire(threshold)
|
35
|
+
now = Time.now
|
36
|
+
ids = repository
|
37
|
+
.to_a
|
38
|
+
.sort_by { |_, status| status.created_at }
|
39
|
+
.reverse
|
40
|
+
.drop(keep_minimum)
|
41
|
+
.select { |id, _| !@touched_at[id] || @touched_at[id] + threshold < now }
|
42
|
+
|
43
|
+
ids.each { |id| publish(garbage_collection_event_class.new(id)) }
|
44
|
+
|
45
|
+
repository.delete_if { |id, _| ids.include?(id) }
|
46
|
+
end
|
47
|
+
|
34
48
|
def ids
|
35
49
|
repository.keys
|
36
50
|
end
|
@@ -41,6 +55,14 @@ module Twterm
|
|
41
55
|
Event::StatusGarbageCollected
|
42
56
|
end
|
43
57
|
|
58
|
+
def keep_minimum
|
59
|
+
1000
|
60
|
+
end
|
61
|
+
|
62
|
+
def should_keep?(status)
|
63
|
+
Time.now - status.created_at > 86400
|
64
|
+
end
|
65
|
+
|
44
66
|
def type
|
45
67
|
Status
|
46
68
|
end
|
data/lib/twterm/tab/base.rb
CHANGED
@@ -32,6 +32,7 @@ module Twterm
|
|
32
32
|
|
33
33
|
def delete(status_id)
|
34
34
|
app.status_repository.delete(status_id)
|
35
|
+
@status_ids.delete(status_id)
|
35
36
|
render
|
36
37
|
end
|
37
38
|
|
@@ -188,7 +189,7 @@ module Twterm
|
|
188
189
|
end
|
189
190
|
|
190
191
|
def total_item_count
|
191
|
-
|
192
|
+
statuses.count
|
192
193
|
end
|
193
194
|
|
194
195
|
private
|
@@ -235,11 +236,22 @@ module Twterm
|
|
235
236
|
.reduce(Image.empty, :|)
|
236
237
|
end
|
237
238
|
|
239
|
+
def reload
|
240
|
+
fetch.then do |statuses|
|
241
|
+
statuses.each { |s| append(s) }
|
242
|
+
sort
|
243
|
+
end
|
244
|
+
end
|
245
|
+
|
238
246
|
def sort
|
239
247
|
return if items.empty? || scroller.current_item.nil?
|
240
248
|
|
241
249
|
formerly_selected_status_id = scroller.current_item.id
|
242
250
|
|
251
|
+
repo = app.status_repository
|
252
|
+
|
253
|
+
@status_ids.sort_by! { |status_id| repo.find(status_id).created_at }.reverse!
|
254
|
+
|
243
255
|
unless formerly_selected_status_id.nil?
|
244
256
|
new_index = @status_ids.index(formerly_selected_status_id)
|
245
257
|
scroller.move_to(new_index) unless new_index.nil?
|
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: 2.0.0
|
4
|
+
version: 2.0.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: 2017-09-
|
11
|
+
date: 2017-09-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: curses
|
@@ -329,9 +329,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
329
329
|
version: 2.1.0
|
330
330
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
331
331
|
requirements:
|
332
|
-
- - "
|
332
|
+
- - ">="
|
333
333
|
- !ruby/object:Gem::Version
|
334
|
-
version:
|
334
|
+
version: '0'
|
335
335
|
requirements: []
|
336
336
|
rubyforge_project:
|
337
337
|
rubygems_version: 2.6.11
|