class Mengpaneel::Strategy::ServerSide

Public Class Methods

new(all_calls, controller = nil, remote_ip = nil) click to toggle source
Calls superclass method Mengpaneel::Strategy::Base::new
# File lib/mengpaneel/strategy/server_side.rb, line 7
def initialize(all_calls, controller = nil, remote_ip = nil)
  super(all_calls, controller)

  @remote_ip = remote_ip || controller.try(:request).try(:remote_ip)
end

Public Instance Methods

run() click to toggle source
# File lib/mengpaneel/strategy/server_side.rb, line 13
def run
  return true if all_calls[:tracking].blank?

  perform_calls(:before_setup)
  perform_calls(:setup)
  perform_calls(:tracking)

  true
end

Private Instance Methods

perform_calls(mode) click to toggle source
# File lib/mengpaneel/strategy/server_side.rb, line 28
def perform_calls(mode)
  calls = all_calls[mode] || []

  calls.each do |method_names, args|
    method_name = method_names.pop

    object = method_names.inject(tracker) { |object, method_name| object.public_send(method_name) }

    object.public_send(method_name, *args)
  end
end
tracker() click to toggle source
# File lib/mengpaneel/strategy/server_side.rb, line 24
def tracker
  @tracker ||= Tracker.new(Mengpaneel.token, @remote_ip)
end