ahoy_matey 1.5.3 → 1.5.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/README.md +27 -2
- data/lib/ahoy/properties.rb +3 -3
- data/lib/ahoy/version.rb +1 -1
- data/vendor/assets/javascripts/ahoy.js +26 -14
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 78e1ff8eb75ded92834b341ed0319b37d784f5bd
|
4
|
+
data.tar.gz: ac76baab29e95a2f7fe69d9505b2dc08ab31cfe5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 87fecfd6cf70712efc9e7bde3e64587b86ab3f85f41b3fe68165e85a5fe37f67bff8f9d590bcf46a1b0ca6fe2312aa3253131790a2bde92acb766fbccdf39b9a
|
7
|
+
data.tar.gz: fc2abee96f713a6b072290b53b64b2dfa164f0764404b1c8d0fff708e0e1d18f586790ff65eaf1f5b6834958144fbd4b5b3f25050f7722ac28d0ef3124fb4ebf
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
## 1.5.4
|
2
|
+
|
3
|
+
- Fixed issue with duplicate events
|
4
|
+
- Added support for PostGIS for `where_properties`
|
5
|
+
|
1
6
|
## 1.5.3
|
2
7
|
|
3
8
|
- Fixed error with Rails 5 and Mongoid 6
|
@@ -36,6 +41,7 @@
|
|
36
41
|
- Detect database for `rails g ahoy:stores:active_record` for easier installation
|
37
42
|
- Use `safely` as default exception handler
|
38
43
|
- Fixed issue with log silencer
|
44
|
+
- Use multi-column indexes on `ahoy_events` table creation
|
39
45
|
|
40
46
|
## 1.3.1
|
41
47
|
|
data/README.md
CHANGED
@@ -6,6 +6,8 @@ Ahoy provides a solid foundation to track visits and events in Ruby, JavaScript,
|
|
6
6
|
|
7
7
|
:postbox: To track emails, check out [Ahoy Email](https://github.com/ankane/ahoy_email).
|
8
8
|
|
9
|
+
:maple_leaf: For A/B testing, check out [Field Test](https://github.com/ankane/field_test).
|
10
|
+
|
9
11
|
## Installation
|
10
12
|
|
11
13
|
Add this line to your application’s Gemfile:
|
@@ -303,7 +305,7 @@ class ApplicationController < ActionController::Base
|
|
303
305
|
protected
|
304
306
|
|
305
307
|
def track_action
|
306
|
-
ahoy.track "
|
308
|
+
ahoy.track "Viewed #{controller_name}##{action_name}"
|
307
309
|
end
|
308
310
|
end
|
309
311
|
```
|
@@ -510,6 +512,22 @@ module Ahoy
|
|
510
512
|
end
|
511
513
|
```
|
512
514
|
|
515
|
+
### Throttling
|
516
|
+
|
517
|
+
By default, Ahoy uses [rack-attack](https://github.com/kickstarter/rack-attack) to throttle requests to Ahoy endpoints. Turn this off with:
|
518
|
+
|
519
|
+
```ruby
|
520
|
+
Ahoy.throttle = false
|
521
|
+
```
|
522
|
+
|
523
|
+
The default limit is 20 requests per minute. This can be overridden with:
|
524
|
+
|
525
|
+
```ruby
|
526
|
+
# limit number of requests to 100 requests every 5 minutes
|
527
|
+
Ahoy.throttle_limit = 100
|
528
|
+
Ahoy.throttle_period = 5.minutes
|
529
|
+
```
|
530
|
+
|
513
531
|
## Native Apps
|
514
532
|
|
515
533
|
### Visits
|
@@ -553,7 +571,14 @@ Ahoy.mount = false
|
|
553
571
|
|
554
572
|
### 1.4.0
|
555
573
|
|
556
|
-
There’s nothing to do, but it’s worth noting the default store was changed from `ActiveRecordStore` to `ActiveRecordTokenStore` for new installations. `ActiveRecordStore` will continue to be supported.
|
574
|
+
There’s nothing mandatory to do, but it’s worth noting the default store was changed from `ActiveRecordStore` to `ActiveRecordTokenStore` for new installations. `ActiveRecordStore` will continue to be supported.
|
575
|
+
|
576
|
+
**Optional** Consider migrating `ahoy_events` table to have the following multi-column index as this *may* benefit
|
577
|
+
query performance depending on your usage:
|
578
|
+
|
579
|
+
```ruby
|
580
|
+
add_index :ahoy_events, [:name, :time]
|
581
|
+
```
|
557
582
|
|
558
583
|
### json -> jsonb
|
559
584
|
|
data/lib/ahoy/properties.rb
CHANGED
@@ -21,10 +21,10 @@ module Ahoy
|
|
21
21
|
end
|
22
22
|
else
|
23
23
|
properties.each do |k, v|
|
24
|
-
relation = relation.where("properties REGEXP ?", "[{,]#{{k.to_s => v}.to_json.sub(/\A\{/, "").sub(/\}\z/, "")}[,}]")
|
24
|
+
relation = relation.where("properties REGEXP ?", "[{,]#{{k.to_s => v}.to_json.sub(/\A\{/, "").sub(/\}\z/, "").gsub("+", "\\\\+")}[,}]")
|
25
25
|
end
|
26
26
|
end
|
27
|
-
when /postgres/
|
27
|
+
when /postgres|postgis/
|
28
28
|
if column_type == :jsonb || column_type == :json
|
29
29
|
properties.each do |k, v|
|
30
30
|
relation =
|
@@ -45,7 +45,7 @@ module Ahoy
|
|
45
45
|
end
|
46
46
|
else
|
47
47
|
properties.each do |k, v|
|
48
|
-
relation = relation.where("properties SIMILAR TO ?", "%[{,]#{{k.to_s => v}.to_json.sub(/\A\{/, "").sub(/\}\z/, "")}[,}]%")
|
48
|
+
relation = relation.where("properties SIMILAR TO ?", "%[{,]#{{k.to_s => v}.to_json.sub(/\A\{/, "").sub(/\}\z/, "").gsub("+", "\\\\+")}[,}]%")
|
49
49
|
end
|
50
50
|
end
|
51
51
|
else
|
data/lib/ahoy/version.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
* Ahoy.js
|
3
3
|
* Simple, powerful JavaScript analytics
|
4
4
|
* https://github.com/ankane/ahoy.js
|
5
|
-
* v0.1
|
5
|
+
* v0.2.1
|
6
6
|
* MIT License
|
7
7
|
*/
|
8
8
|
|
@@ -327,12 +327,20 @@
|
|
327
327
|
});
|
328
328
|
};
|
329
329
|
|
330
|
-
ahoy.trackView = function () {
|
330
|
+
ahoy.trackView = function (additionalProperties) {
|
331
331
|
var properties = {
|
332
332
|
url: window.location.href,
|
333
333
|
title: document.title,
|
334
334
|
page: page()
|
335
335
|
};
|
336
|
+
|
337
|
+
if (additionalProperties) {
|
338
|
+
for(var propName in additionalProperties) {
|
339
|
+
if (additionalProperties.hasOwnProperty(propName)) {
|
340
|
+
properties[propName] = additionalProperties[propName];
|
341
|
+
}
|
342
|
+
}
|
343
|
+
}
|
336
344
|
ahoy.track("$view", properties);
|
337
345
|
};
|
338
346
|
|
@@ -367,24 +375,28 @@
|
|
367
375
|
ahoy.trackChanges();
|
368
376
|
};
|
369
377
|
|
370
|
-
|
371
|
-
|
378
|
+
// push events from queue
|
379
|
+
try {
|
380
|
+
eventQueue = JSON.parse(getCookie("ahoy_events") || "[]");
|
381
|
+
} catch (e) {
|
382
|
+
// do nothing
|
383
|
+
}
|
372
384
|
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
} catch (e) {
|
377
|
-
// do nothing
|
378
|
-
}
|
385
|
+
for (var i = 0; i < eventQueue.length; i++) {
|
386
|
+
trackEvent(eventQueue[i]);
|
387
|
+
}
|
379
388
|
|
380
|
-
|
381
|
-
|
382
|
-
}
|
389
|
+
ahoy.start = function () {
|
390
|
+
createVisit();
|
383
391
|
|
384
392
|
ahoy.start = function () {};
|
385
393
|
};
|
386
394
|
|
387
|
-
|
395
|
+
$( function () {
|
396
|
+
if (config.startOnReady) {
|
397
|
+
ahoy.start();
|
398
|
+
}
|
399
|
+
});
|
388
400
|
|
389
401
|
window.ahoy = ahoy;
|
390
402
|
}(window));
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ahoy_matey
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.
|
4
|
+
version: 1.5.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Kane
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -335,7 +335,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
335
335
|
version: '0'
|
336
336
|
requirements: []
|
337
337
|
rubyforge_project:
|
338
|
-
rubygems_version: 2.
|
338
|
+
rubygems_version: 2.6.8
|
339
339
|
signing_key:
|
340
340
|
specification_version: 4
|
341
341
|
summary: Simple, powerful visit tracking for Rails
|