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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: b500c9a9b23a831e8dbd4973b10e86420af64d70
4
- data.tar.gz: 75585569e42545281d0622a40c5f888f261d6622
2
+ SHA256:
3
+ metadata.gz: ed68e4edade34eeb6db1de9bfe4d644b5b22f30a7e81080eb57fd7609ea05222
4
+ data.tar.gz: d5152cfa55ca8e4068494037a108bc4a18b9053984ccc32dea09a0510f61a73c
5
5
  SHA512:
6
- metadata.gz: eecb6c11c4b4a893271f914db129724362ae6d74d5950ef79b5aa90e83939ea6c937af40122768b2e1f409640cef72587e19bfc3af05b1fda9dc33c4b46c3c20
7
- data.tar.gz: 98d0566c1c134ea9ab32c0968927019d0231532aeeb72a86e432aeef60a4314f54dd12450269d9dc0762a373feef0b15dfdba8a68b2ef387fe8ce29c9576ff39
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.0.0'
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
@@ -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('crm/api/track', params)
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('crm/api/identify', params)
60
+ request('api/identify', params)
61
61
  end
62
62
 
63
63
  private
64
-
64
+
65
65
  def build_params(params)
66
- 'data=' + Base64.encode64(JSON.generate(params)).gsub(/\n/,'')
66
+ "data=#{CGI.escape Base64.encode64(JSON.generate(params)).gsub(/\n/,'')}"
67
67
  end
68
-
68
+
69
69
  def request(path, params)
70
- url = @url + path + '?' + params
71
- open(url).read == '1' ? true : false
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.0.0
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
- rubyforge_project:
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