Sha256: 258c1a9eb6d26aa202a3c5008ff2318446bc975b5a4cbd20b2333f6d36adefa7

Contents?: true

Size: 839 Bytes

Versions: 3

Compression:

Stored size: 839 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 save
        raise 'user_id MUST be defined in the attributes' if user_id.blank?
      
        ActivityFeed.redis.zadd("#{ActivityFeed.namespace}:#{ActivityFeed.key}:#{self.user_id}", DateTime.now.to_i, @attributes.to_json)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
activity_feed-1.1.1 lib/activity_feed/memory/item.rb
activity_feed-1.1.0 lib/activity_feed/memory/item.rb
activity_feed-1.0.0 lib/activity_feed/memory/item.rb