Sha256: e48533e906b15b7402dfab2ecef4b13c1a29a963f9c4d201dfc98e9c41c8a982
Contents?: true
Size: 1.97 KB
Versions: 3
Compression:
Stored size: 1.97 KB
Contents
module TrakioClient class Track < EndPoint def run p = {} event = p[:event] distinct_id = p[:distinct_id] || self.distinct_id company_id = p[:company_id] || self.company_id channel = p[:channel] || self.channel properties = p[:properties] || {} check_parameters event, distinct_id, company_id, properties params = { event: event } params[:time] = process_time p[:time] params[:channel] = channel if channel params[:properties] = properties if properties && !properties.empty? params[:company_id] = company_id if company_id params[:distinct_id] = distinct_id if distinct_id send_request('track', params) end def page_view p args = { event: 'Page view' } distinct_id = p[:distinct_id] || self.distinct_id url = p[:url] title = p[:title] check_page_view_parameters url properties = { url: url, } properties[:title] = title if title args[:properties] = properties args[:distinct_id] = distinct_id if distinct_id run args # right now page_view is an alias of track end def process_time time if time if !time.is_a? String time.iso8601 else time end else DateTime.now.iso8601 end end def check_parameters event, distinct_id, company_id, properties unless event raise Exceptions::MissingParameter.new("The `event` parameter must be provided.") end unless distinct_id || company_id raise Exceptions::MissingParameter.new('Either a `company_id` or `distinct_id` parameter must be provided.') end unless properties.is_a?(Hash) raise Exceptions::InvalidParameter.new("The `properties` parameter must be a hash.") end end def check_page_view_parameters url unless url raise Exceptions::InvalidParameter.new("The `url` parameter must be provided.") end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
trakio-ruby-0.2.3 | lib/trakio_client/track.rb |
trakio-ruby-0.2.2 | lib/trakio_client/track.rb |
trakio-ruby-0.2.1 | lib/trakio_client/track.rb |