klaviyo 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/klaviyo.gemspec +2 -2
- data/lib/klaviyo/client.rb +16 -16
- data/lib/klaviyo.rb +1 -1
- data/lib/rack/klaviyo.rb +0 -1
- metadata +11 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: ed68e4edade34eeb6db1de9bfe4d644b5b22f30a7e81080eb57fd7609ea05222
|
4
|
+
data.tar.gz: d5152cfa55ca8e4068494037a108bc4a18b9053984ccc32dea09a0510f61a73c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 25e22b0c53b0a0d8b7ec4f5c7f2441d093628c098e100a8426b2c7edb48a4f1e4113dede538c8a1883cc49c0a73fc22bc4422c612d6d1ccb635a7ff266c7071b
|
7
|
+
data.tar.gz: 9be13c509823d4d8c503de3b90c80c516163d0fcbd61d606da5dcc6d2db4818f202a82d924482dcf9a95bc9039bce231a75b6830129f7e694f4ee2d1876a4e87
|
data/klaviyo.gemspec
CHANGED
@@ -2,7 +2,7 @@ files = ['klaviyo.gemspec', '{lib}/**/*'].map {|f| Dir[f]}.flatten
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = 'klaviyo'
|
5
|
-
s.version = '1.
|
5
|
+
s.version = '1.1.0'
|
6
6
|
s.date = '2014-09-06'
|
7
7
|
s.summary = 'You heard us, a Ruby wrapper for the Klaviyo API'
|
8
8
|
s.description = 'Ruby wrapper for the Klaviyo API'
|
@@ -15,4 +15,4 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.add_dependency 'json'
|
16
16
|
s.add_dependency 'rack'
|
17
17
|
s.add_dependency 'escape'
|
18
|
-
end
|
18
|
+
end
|
data/lib/klaviyo/client.rb
CHANGED
@@ -4,21 +4,21 @@ require 'json'
|
|
4
4
|
|
5
5
|
module Klaviyo
|
6
6
|
class KlaviyoError < StandardError; end
|
7
|
-
|
7
|
+
|
8
8
|
class Client
|
9
9
|
def initialize(api_key, url = 'http://a.klaviyo.com/')
|
10
10
|
@api_key = api_key
|
11
11
|
@url = url
|
12
12
|
end
|
13
|
-
|
13
|
+
|
14
14
|
def track(event, kwargs = {})
|
15
15
|
defaults = {:id => nil, :email => nil, :properties => {}, :customer_properties => {}, :time => nil}
|
16
16
|
kwargs = defaults.merge(kwargs)
|
17
|
-
|
17
|
+
|
18
18
|
if kwargs[:email].to_s.empty? and kwargs[:id].to_s.empty?
|
19
19
|
raise KlaviyoError.new('You must identify a user by email or ID')
|
20
20
|
end
|
21
|
-
|
21
|
+
|
22
22
|
customer_properties = kwargs[:customer_properties]
|
23
23
|
customer_properties[:email] = kwargs[:email] unless kwargs[:email].to_s.empty?
|
24
24
|
customer_properties[:id] = kwargs[:id] unless kwargs[:id].to_s.empty?
|
@@ -31,24 +31,24 @@ module Klaviyo
|
|
31
31
|
:ip => ''
|
32
32
|
}
|
33
33
|
params[:time] = kwargs[:time].to_time.to_i if kwargs[:time]
|
34
|
-
|
34
|
+
|
35
35
|
params = build_params(params)
|
36
|
-
request('
|
36
|
+
request('api/track', params)
|
37
37
|
end
|
38
|
-
|
38
|
+
|
39
39
|
def track_once(event, opts = {})
|
40
40
|
opts.update('__track_once__' => true)
|
41
41
|
track(event, opts)
|
42
42
|
end
|
43
|
-
|
43
|
+
|
44
44
|
def identify(kwargs = {})
|
45
45
|
defaults = {:id => nil, :email => nil, :properties => {}}
|
46
46
|
kwargs = defaults.merge(kwargs)
|
47
|
-
|
47
|
+
|
48
48
|
if kwargs[:email].to_s.empty? and kwargs[:id].to_s.empty?
|
49
49
|
raise KlaviyoError.new('You must identify a user by email or ID')
|
50
50
|
end
|
51
|
-
|
51
|
+
|
52
52
|
properties = kwargs[:properties]
|
53
53
|
properties[:email] = kwargs[:email] unless kwargs[:email].to_s.empty?
|
54
54
|
properties[:id] = kwargs[:id] unless kwargs[:id].to_s.empty?
|
@@ -57,18 +57,18 @@ module Klaviyo
|
|
57
57
|
:token => @api_key,
|
58
58
|
:properties => properties
|
59
59
|
})
|
60
|
-
request('
|
60
|
+
request('api/identify', params)
|
61
61
|
end
|
62
62
|
|
63
63
|
private
|
64
|
-
|
64
|
+
|
65
65
|
def build_params(params)
|
66
|
-
|
66
|
+
"data=#{CGI.escape Base64.encode64(JSON.generate(params)).gsub(/\n/,'')}"
|
67
67
|
end
|
68
|
-
|
68
|
+
|
69
69
|
def request(path, params)
|
70
|
-
|
71
|
-
|
70
|
+
url = "#{@url}#{path}?#{params}"
|
71
|
+
open(url).read == '1'
|
72
72
|
end
|
73
73
|
end
|
74
74
|
end
|
data/lib/klaviyo.rb
CHANGED
@@ -1 +1 @@
|
|
1
|
-
require 'klaviyo/client'
|
1
|
+
require 'klaviyo/client'
|
data/lib/rack/klaviyo.rb
CHANGED
@@ -55,7 +55,6 @@ module Rack
|
|
55
55
|
<script text="text/javascript">
|
56
56
|
var _learnq = _learnq || [];
|
57
57
|
_learnq.push(['account', '#{@api_key}']);
|
58
|
-
|
59
58
|
(function () {
|
60
59
|
var b = document.createElement('script'); b.type = 'text/javascript'; b.async = true;
|
61
60
|
b.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'a.klaviyo.com/media/js/analytics/analytics.js';
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: klaviyo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Klaviyo Team
|
@@ -14,42 +14,42 @@ dependencies:
|
|
14
14
|
name: json
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rack
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: escape
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
description: Ruby wrapper for the Klaviyo API
|
@@ -59,8 +59,8 @@ extensions: []
|
|
59
59
|
extra_rdoc_files: []
|
60
60
|
files:
|
61
61
|
- klaviyo.gemspec
|
62
|
-
- lib/klaviyo/client.rb
|
63
62
|
- lib/klaviyo.rb
|
63
|
+
- lib/klaviyo/client.rb
|
64
64
|
- lib/rack/klaviyo.rb
|
65
65
|
homepage: https://www.klaviyo.com/
|
66
66
|
licenses: []
|
@@ -71,17 +71,16 @@ require_paths:
|
|
71
71
|
- lib
|
72
72
|
required_ruby_version: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
|
-
- -
|
74
|
+
- - ">="
|
75
75
|
- !ruby/object:Gem::Version
|
76
76
|
version: '0'
|
77
77
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
78
78
|
requirements:
|
79
|
-
- -
|
79
|
+
- - ">="
|
80
80
|
- !ruby/object:Gem::Version
|
81
81
|
version: '0'
|
82
82
|
requirements: []
|
83
|
-
|
84
|
-
rubygems_version: 2.0.14
|
83
|
+
rubygems_version: 3.0.3
|
85
84
|
signing_key:
|
86
85
|
specification_version: 4
|
87
86
|
summary: You heard us, a Ruby wrapper for the Klaviyo API
|