Module: ActivitiesFeed::Feedable::ClassMethods

Defined in:
lib/activities_feed/feedable.rb

Instance Method Summary collapse

Instance Method Details

#feedable(args = {}) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/activities_feed/feedable.rb', line 10

def feedable args={}

  has_many :activities, as: :feedable

  define_method :feeder_options do
    args
  end

  define_method :create_activity do |activity|
    namespace = feeder_options.fetch(:namespace, nil)
    name = namespace ? "#{namespace}.#{activity}" : activity
    self.activities.create name: name
  end

  define_method :feed do |args={}|
    order = args.fetch(:order, 'created_at DESC')
    self.activities.order(order)
  end

end