Class: Mengpaneel::Manager
- Inherits:
-
Object
- Object
- Mengpaneel::Manager
- Defined in:
- lib/mengpaneel/manager.rb
Constant Summary collapse
- MODES =
%w(before_setup setup tracking).map(&:to_sym).freeze
Instance Attribute Summary collapse
-
#controller ⇒ Object
readonly
Returns the value of attribute controller.
-
#flushing_strategy ⇒ Object
Returns the value of attribute flushing_strategy.
-
#mode ⇒ Object
readonly
Returns the value of attribute mode.
Instance Method Summary collapse
- #all_calls ⇒ Object
- #before_setup(&block) ⇒ Object
- #call_proxy ⇒ Object (also: #mixpanel)
- #clear_calls(mode = @mode) ⇒ Object
- #flush_calls ⇒ Object
-
#initialize(controller = nil, &block) ⇒ Manager
constructor
A new instance of Manager.
- #replay_delayed_calls ⇒ Object
- #setup(&block) ⇒ Object
- #setup? ⇒ Boolean
- #tracking(&block) ⇒ Object
- #with_mode(mode, &block) ⇒ Object
- #wrap(&block) ⇒ Object
Constructor Details
#initialize(controller = nil, &block) ⇒ Manager
Returns a new instance of Manager.
14 15 16 17 18 19 20 |
# File 'lib/mengpaneel/manager.rb', line 14 def initialize(controller = nil, &block) @controller = controller @mode = :tracking wrap(&block) if block end |
Instance Attribute Details
#controller ⇒ Object (readonly)
Returns the value of attribute controller.
9 10 11 |
# File 'lib/mengpaneel/manager.rb', line 9 def controller @controller end |
#flushing_strategy ⇒ Object
Returns the value of attribute flushing_strategy.
12 13 14 |
# File 'lib/mengpaneel/manager.rb', line 12 def flushing_strategy @flushing_strategy end |
#mode ⇒ Object (readonly)
Returns the value of attribute mode.
10 11 12 |
# File 'lib/mengpaneel/manager.rb', line 10 def mode @mode end |
Instance Method Details
#all_calls ⇒ Object
43 44 45 |
# File 'lib/mengpaneel/manager.rb', line 43 def all_calls Hash[call_proxies.map { |mode, call_proxy| [mode, call_proxy.all_calls] }] end |
#before_setup(&block) ⇒ Object
62 63 64 |
# File 'lib/mengpaneel/manager.rb', line 62 def before_setup(&block) with_mode(:before_setup, &block) end |
#call_proxy ⇒ Object Also known as: mixpanel
34 35 36 |
# File 'lib/mengpaneel/manager.rb', line 34 def call_proxy call_proxies[@mode] end |
#clear_calls(mode = @mode) ⇒ Object
39 40 41 |
# File 'lib/mengpaneel/manager.rb', line 39 def clear_calls(mode = @mode) call_proxies.delete(mode) end |
#flush_calls ⇒ Object
83 84 85 |
# File 'lib/mengpaneel/manager.rb', line 83 def flush_calls Flusher.new(self).run end |
#replay_delayed_calls ⇒ Object
79 80 81 |
# File 'lib/mengpaneel/manager.rb', line 79 def replay_delayed_calls Replayer.new(self).run end |
#setup(&block) ⇒ Object
66 67 68 69 |
# File 'lib/mengpaneel/manager.rb', line 66 def setup(&block) clear_calls(:setup) with_mode(:setup, &block) end |
#setup? ⇒ Boolean
75 76 77 |
# File 'lib/mengpaneel/manager.rb', line 75 def setup? call_proxies[:setup].all_calls.length > 0 end |
#tracking(&block) ⇒ Object
71 72 73 |
# File 'lib/mengpaneel/manager.rb', line 71 def tracking(&block) with_mode(:tracking, &block) end |
#with_mode(mode, &block) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/mengpaneel/manager.rb', line 47 def with_mode(mode, &block) original_mode = @mode @mode = mode begin if block.arity == 1 yield(mixpanel) else yield end ensure @mode = original_mode end end |
#wrap(&block) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/mengpaneel/manager.rb', line 22 def wrap(&block) replay_delayed_calls if block.arity == 1 yield(self) else yield end ensure flush_calls end |