Sha256: 5fa01d0581221d81f81d0e7b13a15d96662dd3a7375ad4741270f91cd9479cd3

Contents?: true

Size: 869 Bytes

Versions: 4

Compression:

Stored size: 869 Bytes

Contents

require 'active_support/core_ext/object/blank'
require 'active_support/core_ext/date_time/conversions'
require 'json'

module ActivityFeed
  module Memory
    class Item
      attr_accessor :user_id
      attr_accessor :nickname
      attr_accessor :type
      attr_accessor :title
      attr_accessor :text
      attr_accessor :url
      attr_accessor :icon
      attr_accessor :sticky

      def initialize(attributes = {})
        @attributes = attributes
      
        attributes.each do |key,value|
          self.send("#{key}=", value)
        end      
      end
      
      def attributes
        @attributes
      end
    
      def save
        raise 'user_id MUST be defined in the attributes' if user_id.blank?
      
        ActivityFeed.redis.zadd(ActivityFeed.feed_key(self.user_id), DateTime.now.to_i, @attributes.to_json)
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

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