Je suis actuellement en train de paramétrer mixpanel pour notre service et tout fonctionne très bien, mais je veux passer mixpanel comme méthode_missing si dans l'environnement de développement/test.Passer à method_missing (mixpanel)
J'ai dans mon application_controller.rb:
before_filter :initialize_mixpanel
def initialize_mixpanel
if ENV.has_key?('MIXPANEL_PROJECT_TOKEN')
@tracker = Mixpanel::Tracker.new('MIXPANEL_PROJECT_TOKEN', request.env)
else
@tracker = DummyMixpanel.new
end
end
et dans mon mixpanel.rb:
unless ENV.has_key?('MIXPANEL_PROJECT_TOKEN')
class DummyMixpanel
def method_missing(m, *args, &block)
true
end
end
end
cela fonctionne pour un suivi normal comme @ tracker.track (.. mais en essayant de passer .set méthode, il retourne NoMethodError: TrueClass par exemple en utilisant ce code:: pour vrai `set » méthode non définie
@tracker.people.set(current_subscriber.id, {
'$name' => current_subscriber.name,
'$email' => current_subscriber.email,
'$hometown' => current_subscriber.hometown,
'$birth_year' => current_subscriber.birth_year,
}, ip=current_subscriber.ip);
Comment est-ce que je ferais mieux de gérer cela?
Tous les meilleurs,
Votre 'DummyMixpanel' n'a pas de méthode' people'. Il renvoie 'true' à la place (voir' method_missing'). 'true' n'a pas de méthode' set', donc il déclenche une erreur quand vous essayez d'appeler '@ tracker.people.set (...)'. –