thisdata 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +7 -0
- data/CHANGELOG +5 -0
- data/README.md +4 -2
- data/lib/generators/this_data/install_generator.rb +7 -0
- data/lib/this_data/client.rb +4 -0
- data/lib/this_data/configuration.rb +10 -1
- data/lib/this_data/track_request.rb +14 -1
- data/lib/this_data/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cc2ec4099c581d83cd5e0841bd29312ff6951c3d
|
4
|
+
data.tar.gz: 8373e836057db6ba6ff8ccb785c3df73e7bc49a5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 613abc4d3418e3e8b09a1b11d6b2ab78636d260ca090bbf822c4141ff37c0f8f4bfb6db2879a6f86a3e28fc62486bbd3746d22389fe9bb90ec975cb80ade9597
|
7
|
+
data.tar.gz: 3fb27a19aabd7750898285e206496d8a9207a52340fa63580821a89a98a265ed4c542da32797e7737d59303430f5e2fe5399f3c321bfa4837469d9fb63e04ff9
|
data/.travis.yml
ADDED
data/CHANGELOG
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# ThisData Ruby
|
1
|
+
# ThisData Ruby [![Build Status](https://travis-ci.org/thisdata/thisdata-ruby.png?branch=master)](https://travis-ci.org/thisdata/thisdata-ruby)
|
2
2
|
|
3
3
|
This gem allows you to use the ThisData Login Intelligence API.
|
4
4
|
|
@@ -93,7 +93,9 @@ that's the place to do it!
|
|
93
93
|
`ThisData.track`.**
|
94
94
|
|
95
95
|
However, we do provide a `ThisData::TrackRequest` module which, when included in
|
96
|
-
an ActionController, gives you a simple way to track requests.
|
96
|
+
an ActionController, gives you a simple way to track requests. The advantage
|
97
|
+
is that this module knows how to get request details automagically, like the IP,
|
98
|
+
user agent, and ThisData's tracking cookie value (if you've turned that on).
|
97
99
|
|
98
100
|
You include the module, then call `thisdata_track`. Easy!
|
99
101
|
|
@@ -53,6 +53,13 @@ ThisData.setup do |config|
|
|
53
53
|
# Default: :mobile
|
54
54
|
# config.user_mobile_method = :mobile
|
55
55
|
|
56
|
+
|
57
|
+
# ThisData's JS library (optional) adds a cookie.
|
58
|
+
# If you're using the library, set this to true, so that we know to expect
|
59
|
+
# a cookie value
|
60
|
+
# Default: false
|
61
|
+
# config.expect_js_cookie = true
|
62
|
+
|
56
63
|
end
|
57
64
|
EOS
|
58
65
|
end
|
data/lib/this_data/client.rb
CHANGED
@@ -36,6 +36,10 @@ module ThisData
|
|
36
36
|
# *email and/or mobile MUST be passed if you want ThisData
|
37
37
|
# to send 'Was This You?' notifications via email and/or SMS
|
38
38
|
# - name (Optional: String) the user's name, used in notifications
|
39
|
+
# - session (Optional: Hash) details about the user's session
|
40
|
+
# - td_cookie_expected (Optional: Boolean) whether you expect a JS cookie
|
41
|
+
# to be present
|
42
|
+
# - td_cookie_id (Optional: String) the value of the JS cookie
|
39
43
|
def track(event)
|
40
44
|
post_event(event)
|
41
45
|
end
|
@@ -3,6 +3,9 @@ require "ostruct"
|
|
3
3
|
module ThisData
|
4
4
|
class Configuration
|
5
5
|
|
6
|
+
# ThisData's JS library (optional) adds a cookie with this name
|
7
|
+
JS_COOKIE_NAME = '__tdli'
|
8
|
+
|
6
9
|
# Programatically create attr accessors for config_option
|
7
10
|
def self.config_option(name)
|
8
11
|
define_method(name) do
|
@@ -26,6 +29,11 @@ module ThisData
|
|
26
29
|
# Log the events sent
|
27
30
|
config_option :logger
|
28
31
|
|
32
|
+
# ThisData's JS library (optional) adds a cookie.
|
33
|
+
# If you're using the library, set this to true, so that we know to expect
|
34
|
+
# a cookie value
|
35
|
+
config_option :expect_js_cookie
|
36
|
+
|
29
37
|
# TrackRequest config options
|
30
38
|
# We will attempt to call this method on a Controller to get the user record
|
31
39
|
# Default: :current_user
|
@@ -51,7 +59,8 @@ module ThisData
|
|
51
59
|
user_id_method: :id,
|
52
60
|
user_name_method: :name,
|
53
61
|
user_email_method: :email,
|
54
|
-
user_mobile_method: :mobile
|
62
|
+
user_mobile_method: :mobile,
|
63
|
+
expect_js_cookie: false
|
55
64
|
})
|
56
65
|
end
|
57
66
|
|
@@ -27,11 +27,16 @@ module ThisData
|
|
27
27
|
user = send(ThisData.configuration.user_method)
|
28
28
|
end
|
29
29
|
|
30
|
+
|
30
31
|
event = {
|
31
32
|
verb: verb,
|
32
33
|
ip: request.remote_ip,
|
33
34
|
user_agent: request.user_agent,
|
34
|
-
user: user_details(user)
|
35
|
+
user: user_details(user),
|
36
|
+
session: {
|
37
|
+
td_cookie_expected: ThisData.configuration.expect_js_cookie,
|
38
|
+
td_cookie_id: td_cookie_value,
|
39
|
+
}
|
35
40
|
}
|
36
41
|
|
37
42
|
ThisData.track(event)
|
@@ -68,5 +73,13 @@ module ThisData
|
|
68
73
|
end
|
69
74
|
end
|
70
75
|
|
76
|
+
# When using the optional JavaScript library, a cookie is placed which
|
77
|
+
# helps us track devices.
|
78
|
+
# If the cookie is nil, then either you aren't using the JS library, or
|
79
|
+
# the user likely has an ad-blocker.
|
80
|
+
def td_cookie_value
|
81
|
+
cookies[ThisData::Configuration::JS_COOKIE_NAME] rescue nil
|
82
|
+
end
|
83
|
+
|
71
84
|
end
|
72
85
|
end
|
data/lib/this_data/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: thisdata
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ThisData Ltd
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-07-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: httparty
|
@@ -119,6 +119,7 @@ extensions: []
|
|
119
119
|
extra_rdoc_files: []
|
120
120
|
files:
|
121
121
|
- ".gitignore"
|
122
|
+
- ".travis.yml"
|
122
123
|
- CHANGELOG
|
123
124
|
- Gemfile
|
124
125
|
- LICENSE.md
|