Class: TestTrack::Analytics::SafeWrapper

Inherits:
Object
  • Object
show all
Defined in:
app/models/test_track/analytics/safe_wrapper.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(underlying) ⇒ SafeWrapper

Returns a new instance of SafeWrapper.



5
6
7
# File 'app/models/test_track/analytics/safe_wrapper.rb', line 5

def initialize(underlying)
  @underlying = underlying
end

Instance Attribute Details

#underlyingObject (readonly)

Returns the value of attribute underlying.



3
4
5
# File 'app/models/test_track/analytics/safe_wrapper.rb', line 3

def underlying
  @underlying
end

Instance Method Details

#error_handler=(handler) ⇒ Object

Raises:

  • (ArgumentError)


9
10
11
12
13
14
# File 'app/models/test_track/analytics/safe_wrapper.rb', line 9

def error_handler=(handler)
  raise ArgumentError, "error_handler must be a lambda" unless handler.lambda?
  raise ArgumentError, "error_handler must accept 1 argument" unless handler.arity == 1

  @error_handler = handler
end

#sign_up!(visitor_id) ⇒ Object



20
21
22
# File 'app/models/test_track/analytics/safe_wrapper.rb', line 20

def sign_up!(visitor_id)
  safe_action { underlying.sign_up!(visitor_id) } if underlying.respond_to?(:sign_up!)
end

#track(analytics_event) ⇒ Object



16
17
18
# File 'app/models/test_track/analytics/safe_wrapper.rb', line 16

def track(analytics_event)
  safe_action { underlying.track(analytics_event) }
end