class ActivityEngine::ActivityBuilder

Attributes

activity_receiver[RW]
activity_type[RW]
configuration_proc[RW]
current_user[RW]
message[RW]
subject[RW]

Public Class Methods

new(activity_receiver, configuration_proc) click to toggle source
# File lib/activity_engine/activity_builder.rb, line 9
def initialize(activity_receiver, configuration_proc)
  unless activity_receiver.respond_to?(:call)
    raise RuntimeError, "Excpected :activity_receiver #{activity_receiver.inspect} to be callable"
  end
  unless configuration_proc.respond_to?(:call)
    raise RuntimeError, "Excpected :configuration_proc #{configuration_proc.inspect} to be callable"
  end
  self.activity_receiver = activity_receiver
  self.configuration_proc = configuration_proc
end

Public Instance Methods

call(context) click to toggle source
# File lib/activity_engine/activity_builder.rb, line 20
def call(context)
  configuration_proc.call(self, context)
  activity_receiver.call(self.to_activity_data_structure)
end
to_activity_data_structure() click to toggle source
# File lib/activity_engine/activity_builder.rb, line 25
def to_activity_data_structure
  ActivityDataStructure.new.tap {|ads|
    ads.subject = subject
    ads.current_user = current_user
    ads.message = message
    ads.activity_type = activity_type
  }
end