event.rb 663B

1234567891011121314151617181920212223242526272829
  1. class Event < ActiveRecord::Base
  2. attr_accessible :lat, :lng, :payload, :user_id, :user, :expires_at
  3. acts_as_mappable
  4. serialize :payload
  5. belongs_to :user
  6. belongs_to :agent, :counter_cache => true
  7. before_save :symbolize_payload
  8. scope :recent, lambda { |timespan = 12.hours.ago|
  9. where("events.created_at > ?", timespan)
  10. }
  11. def symbolize_payload
  12. self.payload = payload.recursively_symbolize_keys if payload.is_a?(Hash)
  13. end
  14. def reemit!
  15. agent.create_event :payload => payload, :lat => lat, :lng => lng
  16. end
  17. def self.cleanup_expired!
  18. Event.where("expires_at IS NOT NULL AND expires_at < ?", Time.now).delete_all
  19. end
  20. end