Sha256: c5a8352bb2f13b6cde5c4a3817d335d0f5320def01013465374f7be3b9ebbc1f

Contents?: true

Size: 874 Bytes

Versions: 3

Compression:

Stored size: 874 Bytes

Contents

require 'ohm'
require 'ohm/contrib'

module ActivityFeed
  module Ohm
    class Item < ::Ohm::Model
      include ::Ohm::Callbacks
      include ::Ohm::Timestamping
      
      attribute :user_id
      attribute :nickname
      attribute :type
      attribute :title
      attribute :text
      attribute :url
      attribute :icon
      attribute :sticky      
      
      after :save, :update_redis
      
      def to_hash
        super.merge(
          :user_id => user_id,
          :nickname => nickname,
          :type => type,
          :title => title,
          :text => text,
          :url => url,
          :icon => icon,
          :sticky => sticky
        )
      end
      
      private

      def update_redis
        ActivityFeed.redis.zadd(ActivityFeed.feed_key(self.user_id), DateTime.parse(self.created_at).to_i, self.id)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
activity_feed-1.4.0 lib/activity_feed/ohm/item.rb
activity_feed-1.3.0 lib/activity_feed/ohm/item.rb
activity_feed-1.2.1 lib/activity_feed/ohm/item.rb