class SimpleFeed::Feed

Attributes

batch_size[RW]
data_key_transformer[RW]
max_size[RW]
meta_key_transformer[RW]
name[R]
namespace[RW]
per_page[RW]

Public Class Methods

new(name) click to toggle source
# File lib/simplefeed/feed.rb, line 22
def initialize(name)
  @name = name
  @name = name.underscore.to_sym unless name.is_a?(Symbol)
  # set the defaults if not passed in
  @meta = {}
  @namespace = nil
  @per_page ||= 50
  @max_size ||= 1000
  @batch_size ||= 10
  @meta_key_transformer = nil
  @data_key_transformer = nil
  @proxy = nil
end

Public Instance Methods

activity(one_or_more_users) click to toggle source

Depending on the argument returns either SingleUserActivity or MultiUserActivity

# File lib/simplefeed/feed.rb, line 59
def activity(one_or_more_users)
  one_or_more_users.is_a?(Array) ?
    users_activity(one_or_more_users) :
    user_activity(one_or_more_users)
end
class_attrs() click to toggle source
# File lib/simplefeed/feed.rb, line 86
def class_attrs
  SimpleFeed.class_attributes(self.class)
end
configure(hash = {}) { |self| ... } click to toggle source
# File lib/simplefeed/feed.rb, line 65
def configure(hash = {})
  SimpleFeed.symbolize!(hash)
  class_attrs.each do |attr|
    send("#{attr}=", hash[attr]) if hash.key?(attr)
  end
  yield self if block_given?
end
eql?(other) click to toggle source
# File lib/simplefeed/feed.rb, line 80
def eql?(other)
  other.class == self.class &&
    %i(per_page max_size name namespace data_key_transformer meta_key_transformer).all? { |m| send(m).equal?(other.send(m)) } &&
    provider.provider.class == other.provider.provider.class
end
key(user_id) click to toggle source
# File lib/simplefeed/feed.rb, line 73
def key(user_id)
  SimpleFeed::Providers::Key.new(user_id,
                                 namespace:            namespace,
                                 data_key_transformer: data_key_transformer,
                                 meta_key_transformer: meta_key_transformer)
end
provider() click to toggle source
# File lib/simplefeed/feed.rb, line 42
def provider
  @proxy
end
provider=(definition) click to toggle source
# File lib/simplefeed/feed.rb, line 36
def provider=(definition)
  @proxy = Providers::Proxy.from(definition)
  @proxy.feed = self
  @proxy
end
provider_type() click to toggle source
# File lib/simplefeed/feed.rb, line 46
def provider_type
  SimpleFeed::Providers::Base::Provider.class_to_registry(@proxy.provider.class)
end
user_activity(user_id) click to toggle source
# File lib/simplefeed/feed.rb, line 50
def user_activity(user_id)
  Activity::SingleUser.new(user_id: user_id, feed: self)
end
users_activity(user_ids) click to toggle source
# File lib/simplefeed/feed.rb, line 54
def users_activity(user_ids)
  Activity::MultiUser.new(user_ids: user_ids, feed: self)
end

Private Instance Methods

key_template() click to toggle source
# File lib/simplefeed/feed.rb, line 92
def key_template
  SimpleFeed::Key::Template.new(namespace)
end