Class: Twterm::Repository::StatusRepository
Instance Method Summary
collapse
#initialize
Methods included from Publisher
#publish
Methods included from Utils
check_type
#all
#after_create, #before_create, #initialize
Instance Method Details
#create(tweet, is_referred_status = false) ⇒ Object
8
9
10
11
12
|
# File 'lib/twterm/repository/status_repository.rb', line 8
def create(, is_referred_status = false)
create(.quoted_status, true) unless .quoted_status.is_a?(Twitter::NullObject)
create(., true) unless ..is_a?(Twitter::NullObject)
super
end
|
#delete(id) ⇒ Object
14
15
16
17
|
# File 'lib/twterm/repository/status_repository.rb', line 14
def delete(id)
@touched_at.delete(id)
repository.delete(id)
end
|
#expire(threshold) ⇒ Object
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/twterm/repository/status_repository.rb', line 36
def expire(threshold)
now = Time.now
ids = repository
.to_a
.sort_by { |_, status| status.created_at }
.reverse
.drop(keep_minimum)
.select { |id, _| !@touched_at[id] || @touched_at[id] + threshold < now }
ids.each { |id| publish(garbage_collection_event_class.new(id)) }
repository.delete_if { |id, _| ids.include?(id) }
end
|
#find(id) ⇒ Object
19
20
21
22
23
24
25
26
|
# File 'lib/twterm/repository/status_repository.rb', line 19
def find(id)
status = super
touch(status.) if !status.nil? && status.
touch(status.quoted_status_id) if !status.nil? && status.quote?
status
end
|
#find_quotes_for(id) ⇒ Object
28
29
30
|
# File 'lib/twterm/repository/status_repository.rb', line 28
def find_quotes_for(id)
repository.values.select { |s| s.quoted_status_id == id }
end
|
#find_replies_for(id) ⇒ Object
32
33
34
|
# File 'lib/twterm/repository/status_repository.rb', line 32
def find_replies_for(id)
repository.values.select { |s| s.in_reply_to_status_id == id }
end
|
#ids ⇒ Object
50
51
52
|
# File 'lib/twterm/repository/status_repository.rb', line 50
def ids
repository.keys
end
|