Class: Atig::Agent::List
- Inherits:
-
Object
- Object
- Atig::Agent::List
- Includes:
- Util
- Defined in:
- lib/atig/agent/list.rb
Direct Known Subclasses
Instance Method Summary collapse
- #full_update(t) ⇒ Object
-
#initialize(context, api, db) ⇒ List
constructor
A new instance of List.
Methods included from ExceptionUtil
Constructor Details
#initialize(context, api, db) ⇒ List
Returns a new instance of List.
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/atig/agent/list.rb', line 10 def initialize(context, api, db) @log = context.log @db = db log :info, "initialize" @db.lists.on_invalidated do |name| log :info, "invalidated #{name}" api.delay(0) do |t| if name == :all then full_update t else @db.lists[name].update t.page("lists/members", :users, {:owner_screen_name => @db.me.screen_name, :slug => name}) end end end api.repeat( interval ) do|t| self.full_update t end end |
Instance Method Details
#full_update(t) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/atig/agent/list.rb', line 30 def full_update(t) lists = entry_points.map{|entry| t.get(entry) }.flatten.compact users = {} lists.map do |list| name = if list.user.screen_name == @db.me.screen_name then "#{list.slug}" else "#{list.user.screen_name}^#{list.slug}" end begin users[name] = t.page("lists/members", :users, {:owner_screen_name => list.user.screen_name, :slug => list.slug}) rescue => e log :error, e.inspect users[name] = @db.lists.find_by_list_name(list.slug) end end @db.lists.update users end |