Class: REES46::Tracker
- Inherits:
-
Object
- Object
- REES46::Tracker
- Defined in:
- lib/rees46/tracker.rb
Constant Summary collapse
- EVENT_TYPES =
[:view, :cart, :remove_from_cart, :purchase, :rate]
- ITEM_ATTRIBUTES =
[:item_id, :price, :is_available, :category, :locations, :name, :description, :url, :image_url, :tags]
Class Method Summary collapse
Class Method Details
.normalize(arguments, event_type) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/rees46/tracker.rb', line 24 def normalize(arguments, event_type) result = arguments.dup result[:event] = event_type.to_s if result[:item].present? result[:item].each do |key, value| if value.is_a?(Array) result["#{key}[0]"] = value.join(',') else result["#{key}[0]"] = value end end result.delete(:item) end if result[:items].present? result[:items].each_with_index do |item, i| item.each do |key, value| if value.is_a?(Array) result["#{key}[#{i}]"] = value.join(',') else result["#{key}[#{i}]"] = value end end end result.delete(:items) end result end |
.track(event_type, arguments) ⇒ Object
13 14 15 16 17 18 19 20 21 22 |
# File 'lib/rees46/tracker.rb', line 13 def track(event_type, arguments) raise REES46::NotConfiguredError.new('REES46 should be configured first') unless REES46.configured? resp = REES46::Requester.push(normalize(arguments, event_type)) if resp.code == 500 puts "REES46: Oops, something gone wrong" else resp.parsed_response end end |