Class: Rox::Core::ImpressionInvoker
- Inherits:
-
Object
- Object
- Rox::Core::ImpressionInvoker
- Defined in:
- lib/rox/core/impression/impression_invoker.rb
Instance Method Summary collapse
-
#initialize(internal_flags, custom_property_repository, device_properties, analytics_client, is_roxy) ⇒ ImpressionInvoker
constructor
A new instance of ImpressionInvoker.
- #invoke(reporting_value, client_experiment, context) ⇒ Object
- #raise_impression_event(args) ⇒ Object
- #register_impression_handler(&block) ⇒ Object
Constructor Details
#initialize(internal_flags, custom_property_repository, device_properties, analytics_client, is_roxy) ⇒ ImpressionInvoker
Returns a new instance of ImpressionInvoker.
6 7 8 9 10 11 12 13 14 15 |
# File 'lib/rox/core/impression/impression_invoker.rb', line 6 def initialize(internal_flags, custom_property_repository, device_properties, analytics_client, is_roxy) @internal_flags = internal_flags @custom_property_repository = custom_property_repository @device_properties = device_properties @analytics_client = analytics_client @is_roxy = is_roxy @impression_handlers = [] @mutex = Mutex.new end |
Instance Method Details
#invoke(reporting_value, client_experiment, context) ⇒ Object
17 18 19 20 21 |
# File 'lib/rox/core/impression/impression_invoker.rb', line 17 def invoke(reporting_value, client_experiment, context) # TODO: Implement analytics logic raise_impression_event(ImpressionArgs.new(reporting_value, client_experiment, context)) end |
#raise_impression_event(args) ⇒ Object
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/rox/core/impression/impression_invoker.rb', line 29 def raise_impression_event(args) handlers = [] @mutex.synchronize do handlers = @impression_handlers.clone end handlers.each do |handler| handler.call(args) end end |
#register_impression_handler(&block) ⇒ Object
23 24 25 26 27 |
# File 'lib/rox/core/impression/impression_invoker.rb', line 23 def register_impression_handler(&block) @mutex.synchronize do @impression_handlers << block end end |