klaviyo 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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