ActiveRecord updates
Andrew Kane
committed Jun 15, 2014
commit fd2726a9c25f931d2dbbea6c0a9ebd0f1054d770
Showing 7
changed files with
26 additions
and 19 deletions
app/models/ahoy/event.rb
+0
-10
| @@ | @@ -1,10 +0,0 @@ |
| - | module Ahoy |
| - | class Event < ActiveRecord::Base |
| - | self.table_name = "ahoy_events" |
| - | |
| - | belongs_to :visit |
| - | belongs_to :user, polymorphic: true |
| - | |
| - | serialize :properties, JSON |
| - | end |
| - | end |
ahoy/controller.rb b/lib/ahoy/controller.rb
+1
-1
| @@ | @@ -21,8 +21,8 @@ module Ahoy |
| end | |
| def set_ahoy_cookies | |
| - | ahoy.set_visit_cookie |
| ahoy.set_visitor_cookie | |
| + | ahoy.set_visit_cookie |
| end | |
| end | |
ahoy/stores/active_record_store.rb b/lib/ahoy/stores/active_record_store.rb
+6
-1
| @@ | @@ -27,6 +27,7 @@ module Ahoy |
| def track_event(name, properties, options, &block) | |
| event = | |
| event_model.new do |e| | |
| + | e.id = options[:id] |
| e.visit_id = ahoy.visit_id | |
| e.user = user | |
| e.name = name | |
| @@ | @@ -36,7 +37,11 @@ module Ahoy |
| yield(event) if block_given? | |
| - | event.save! |
| + | begin |
| + | event.save! |
| + | rescue ActiveRecord::RecordNotUnique |
| + | # do nothing |
| + | end |
| end | |
| def current_visit | |
ahoy/tracker.rb b/lib/ahoy/tracker.rb
+2
-2
| @@ | @@ -64,7 +64,7 @@ module Ahoy |
| expires: 4.hours.from_now | |
| } | |
| cookie[:domain] = Ahoy.domain if Ahoy.domain | |
| - | controller.response.set_cookie(:ahoy_visit, cookie) |
| + | controller.response.set_cookie("ahoy_visit", cookie) |
| end | |
| end | |
| @@ | @@ -75,7 +75,7 @@ module Ahoy |
| expires: 2.years.from_now | |
| } | |
| cookie[:domain] = Ahoy.domain if Ahoy.domain | |
| - | controller.response.set_cookie(:ahoy_visitor, cookie) |
| + | controller.response.set_cookie("ahoy_visitor", cookie) |
| end | |
| end | |
generators/ahoy/stores/active_record_events_generator.rb b/lib/generators/ahoy/stores/active_record_events_generator.rb
+1
-1
| @@ | @@ -27,7 +27,7 @@ module Ahoy |
| end | |
| def generate_model | |
| - | template "../../../../../app/models/ahoy/event.rb", "app/models/ahoy/event.rb" |
| + | template "active_record_event_model.rb", "app/models/ahoy/event.rb" |
| end | |
| def create_initializer | |
generators/ahoy/stores/templates/active_record_event_model.rb b/lib/generators/ahoy/stores/templates/active_record_event_model.rb
+10
-0
| @@ | @@ -0,0 +1,10 @@ |
| + | module Ahoy |
| + | class Event < ActiveRecord::Base |
| + | self.table_name = "ahoy_events" |
| + | |
| + | belongs_to :visit |
| + | belongs_to :user |
| + | |
| + | # serialize :properties, JSON |
| + | end |
| + | end |
vendor/assets/javascripts/ahoy.js
+6
-4
| @@ | @@ -21,6 +21,8 @@ |
| var canStringify = typeof(JSON) !== "undefined" && typeof(JSON.stringify) !== "undefined"; | |
| var eventQueue = []; | |
| var page = ahoy.page || window.location.pathname; | |
| + | var visitsUrl = ahoy.visitsUrl || "/ahoy/visits" |
| + | var eventsUrl = ahoy.eventsUrl || "/ahoy/events" |
| // cookies | |
| @@ | @@ -102,7 +104,7 @@ |
| if (canStringify) { | |
| $.ajax({ | |
| type: "POST", | |
| - | url: "/ahoy/events", |
| + | url: eventsUrl, |
| data: JSON.stringify([event]), | |
| contentType: "application/json; charset=utf-8", | |
| dataType: "json", | |
| @@ | @@ -170,18 +172,18 @@ |
| log(data); | |
| - | $.post("/ahoy/visits", data, setReady, "json"); |
| + | $.post(visitsUrl, data, setReady, "json"); |
| } else { | |
| log("Cookies disabled"); | |
| setReady(); | |
| } | |
| } | |
| - | ahoy.getVisitToken = function () { |
| + | ahoy.getVisitId = function () { |
| return visitId; | |
| }; | |
| - | ahoy.getVisitorToken = function () { |
| + | ahoy.getVisitorId = function () { |
| return visitorId; | |
| }; | |