Module: CustomStreams::Streamer::ClassMethods

Defined in:
lib/custom_streams/streamer.rb

Instance Method Summary collapse

Instance Method Details

#streamer(args = {}) ⇒ Object



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

def streamer args={}

  has_many :activities, as: :streamable

  define_method :streamer_options do
    args
  end

  define_method :create_activity do |activity|
    namespace = streamer_options.fetch(:namespace, nil)
    name = namespace ? "#{namespace}.#{activity}" : activity
    Activity.create streamable_id: self.id, streamable_type: self.class.to_s, name: name
  end

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

end