vero 0.7.0 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGES.md +11 -8
  3. data/Gemfile +15 -1
  4. data/Gemfile.lock +142 -81
  5. data/README.markdown +148 -119
  6. data/lib/generators/vero_generator.rb +18 -19
  7. data/lib/vero.rb +10 -3
  8. data/lib/vero/api.rb +24 -8
  9. data/lib/vero/api/base_api.rb +12 -11
  10. data/lib/vero/api/events/track_api.rb +5 -3
  11. data/lib/vero/api/users/delete_api.rb +21 -0
  12. data/lib/vero/api/users/edit_api.rb +5 -3
  13. data/lib/vero/api/users/edit_tags_api.rb +7 -5
  14. data/lib/vero/api/users/reidentify_api.rb +5 -3
  15. data/lib/vero/api/users/resubscribe_api.rb +23 -0
  16. data/lib/vero/api/users/track_api.rb +5 -3
  17. data/lib/vero/api/users/unsubscribe_api.rb +3 -1
  18. data/lib/vero/app.rb +4 -2
  19. data/lib/vero/config.rb +14 -19
  20. data/lib/vero/context.rb +9 -11
  21. data/lib/vero/context/api.rb +9 -7
  22. data/lib/vero/dsl.rb +3 -1
  23. data/lib/vero/railtie.rb +5 -3
  24. data/lib/vero/sender.rb +12 -30
  25. data/lib/vero/senders/base.rb +3 -1
  26. data/lib/vero/senders/delayed_job.rb +7 -7
  27. data/lib/vero/senders/invalid.rb +5 -3
  28. data/lib/vero/senders/resque.rb +8 -8
  29. data/lib/vero/senders/sidekiq.rb +25 -0
  30. data/lib/vero/senders/{thread.rb → sucker_punch.rb} +5 -3
  31. data/lib/vero/trackable.rb +4 -2
  32. data/lib/vero/trackable/base.rb +10 -9
  33. data/lib/vero/trackable/interface.rb +3 -1
  34. data/lib/vero/utility/ext.rb +3 -1
  35. data/lib/vero/utility/logger.rb +4 -6
  36. data/lib/vero/version.rb +3 -1
  37. data/lib/vero/view_helpers/javascript.rb +20 -20
  38. data/spec/lib/api/base_api_spec.rb +11 -9
  39. data/spec/lib/api/events/track_api_spec.rb +30 -30
  40. data/spec/lib/api/users/delete_api_spec.rb +33 -0
  41. data/spec/lib/api/users/edit_api_spec.rb +14 -16
  42. data/spec/lib/api/users/edit_tags_api_spec.rb +28 -31
  43. data/spec/lib/api/users/reidentify_spec.rb +20 -22
  44. data/spec/lib/api/users/resubscribe_api_spec.rb +35 -0
  45. data/spec/lib/api/users/track_api_spec.rb +26 -28
  46. data/spec/lib/api/users/unsubscribe_api_spec.rb +14 -16
  47. data/spec/lib/api_spec.rb +59 -57
  48. data/spec/lib/app_spec.rb +21 -19
  49. data/spec/lib/config_spec.rb +77 -59
  50. data/spec/lib/context_spec.rb +27 -25
  51. data/spec/lib/dsl_spec.rb +4 -2
  52. data/spec/lib/sender_spec.rb +12 -23
  53. data/spec/lib/senders/sidekiq_spec.rb +32 -0
  54. data/spec/lib/trackable_spec.rb +125 -151
  55. data/spec/lib/view_helpers_spec.rb +13 -9
  56. data/spec/spec_helper.rb +10 -4
  57. data/spec/support/base_config_shared_examples.rb +11 -0
  58. data/spec/support/user_support.rb +15 -7
  59. data/spec/support/vero_user_support.rb +4 -2
  60. data/vero.gemspec +14 -29
  61. metadata +47 -138
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  require 'rails'
@@ -5,9 +7,11 @@ require 'action_view'
5
7
  require 'active_support'
6
8
  require 'vero/view_helpers/javascript'
7
9
 
10
+ # rubocop:disable Style/MixinUsage
8
11
  include Vero::ViewHelpers::Javascript
9
12
  include ActionView::Helpers
10
13
  include ActionView::Context
14
+ # rubocop:enable Style/MixinUsage
11
15
 
12
16
  describe Vero::ViewHelpers::Javascript do
13
17
  before do
@@ -16,17 +20,17 @@ describe Vero::ViewHelpers::Javascript do
16
20
 
17
21
  subject { Vero::ViewHelpers::Javascript }
18
22
  describe :vero_javascript_tag do
19
- it "should return an empty string if Vero::App is not properly configured" do
20
- subject.vero_javascript_tag.should == ""
23
+ it 'should return an empty string if Vero::App is not properly configured' do
24
+ expect(subject.vero_javascript_tag).to eq('')
21
25
 
22
26
  Vero::App.init {}
23
- subject.vero_javascript_tag.should == ""
27
+ expect(subject.vero_javascript_tag).to eq('')
24
28
  end
25
29
 
26
- context "Vero::App has been properly configured" do
30
+ context 'Vero::App has been properly configured' do
27
31
  before :each do
28
- @api_key = "abcd1234"
29
- @api_secret = "secret"
32
+ @api_key = 'abcd1234'
33
+ @api_secret = 'secret'
30
34
  @api_dev_mode = false
31
35
 
32
36
  Vero::App.init do |c|
@@ -36,10 +40,10 @@ describe Vero::ViewHelpers::Javascript do
36
40
  end
37
41
  end
38
42
 
39
- it "should return a properly formatted javascript snippet" do
43
+ it 'should return a properly formatted javascript snippet' do
40
44
  result = "<script type=\"text/javascript\">var _veroq = _veroq || [];setTimeout(function(){if(typeof window.Semblance==\"undefined\"){console.log(\"Vero did not load in time.\");for(var i=0;i<_veroq.length;i++){a=_veroq[i];if(a.length==3&&typeof a[2]==\"function\")a[2](null,false);}}},3000);_veroq.push(['init', {\"api_key\": \"#{@api_key}\", \"secret\": \"#{@api_secret}\"}]);(function() {var ve = document.createElement('script'); ve.type = 'text/javascript'; ve.async = true; ve.src = '//getvero.com/assets/m.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ve, s);})();</script>"
41
- subject.vero_javascript_tag.should == result
45
+ expect(subject.vero_javascript_tag).to eq(result)
42
46
  end
43
47
  end
44
48
  end
45
- end
49
+ end
@@ -1,18 +1,24 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rubygems'
2
4
  require 'bundler/setup'
3
5
  require 'vero'
4
6
  require 'json'
5
- require 'sucker_punch/testing/inline'
6
7
 
7
- Dir[::File.expand_path('../support/**/*.rb', __FILE__)].each { |f| require f }
8
+ Dir[::File.expand_path('support/**/*.rb', __dir__)].sort.each { |f| require f }
8
9
 
9
10
  RSpec.configure do |config|
11
+ config.expect_with :rspec do |expectations|
12
+ expectations.syntax = [:expect]
13
+ end
14
+
15
+ config.raise_errors_for_deprecations!
10
16
  end
11
17
 
12
18
  def stub_env(new_env, &block)
13
19
  original_env = Rails.env
14
- Rails.instance_variable_set("@_env", ActiveSupport::StringInquirer.new(new_env))
20
+ Rails.instance_variable_set('@_env', ActiveSupport::StringInquirer.new(new_env))
15
21
  block.call
16
22
  ensure
17
- Rails.instance_variable_set("@_env", ActiveSupport::StringInquirer.new(original_env))
23
+ Rails.instance_variable_set('@_env', ActiveSupport::StringInquirer.new(original_env))
18
24
  end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.shared_examples 'a Vero wrapper' do
4
+ it 'should inherit from Vero::Api::Workers::BaseCaller' do
5
+ expect(subject).to be_a(Vero::Api::Workers::BaseAPI)
6
+ end
7
+
8
+ it 'should map to current version of Vero API' do
9
+ expect(subject.send(:url)).to eq("https://api.getvero.com#{end_point}")
10
+ end
11
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'vero'
2
4
 
3
5
  class User
@@ -17,7 +19,9 @@ class UserWithoutEmail
17
19
  include Vero::Trackable
18
20
  trackable :email, :age
19
21
 
20
- def email; self.primary_contact; end
22
+ def email
23
+ primary_contact
24
+ end
21
25
 
22
26
  def primary_contact
23
27
  'durkster@gmail.com'
@@ -65,12 +69,15 @@ class UserWithNilAttributes
65
69
  def email_address
66
70
  'durkster@gmail.com'
67
71
  end
68
- def age; nil; end
72
+
73
+ def age
74
+ nil
75
+ end
69
76
  end
70
77
 
71
78
  class UserWithExtras
72
79
  include Vero::Trackable
73
- trackable :email, {:extras => :properties}
80
+ trackable :email, { extras: :properties }
74
81
 
75
82
  attr_accessor :properties
76
83
 
@@ -81,25 +88,26 @@ end
81
88
 
82
89
  class UserWithPrivateExtras
83
90
  include Vero::Trackable
84
- trackable :email, {:extras => :properties}
91
+ trackable :email, { extras: :properties }
85
92
 
86
93
  def email
87
94
  'durkster@gmail.com'
88
95
  end
89
96
 
90
97
  private
98
+
91
99
  def properties
92
- {:age => 26}
100
+ { age: 26 }
93
101
  end
94
102
  end
95
103
 
96
104
  class UserWithOnlyExtras
97
105
  include Vero::Trackable
98
- trackable({:extras => :properties})
106
+ trackable({ extras: :properties })
99
107
 
100
108
  attr_accessor :properties
101
109
 
102
110
  def email
103
111
  'durkster@gmail.com'
104
112
  end
105
- end
113
+ end
@@ -1,2 +1,4 @@
1
- class VeroUser < Struct.new(:api_key, :secret)
2
- end
1
+ # frozen_string_literal: true
2
+
3
+ VeroUser = Struct.new(:api_key, :secret) do
4
+ end
@@ -1,43 +1,28 @@
1
+ # frozen_string_literal: true
1
2
 
2
- # -*- encoding: utf-8 -*-
3
- $:.push('lib')
4
- require "vero/version"
3
+ $LOAD_PATH.push('lib')
4
+ require 'vero/version'
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = "vero"
7
+ s.name = 'vero'
8
8
  s.version = Vero::VERSION.dup
9
- s.date = Time.now.strftime("%Y-%m-%d")
10
- s.summary = "Ruby gem for Vero"
11
- s.email = "support@getvero.com"
12
- s.homepage = "http://www.getvero.com/"
9
+ s.date = Time.now.strftime('%Y-%m-%d')
10
+ s.summary = 'Ruby gem for Vero'
11
+ s.email = 'support@getvero.com'
12
+ s.homepage = 'http://www.getvero.com/'
13
13
  s.authors = ['James Lamont']
14
14
 
15
- dependencies = [
16
- [:development, 'rails', "~> 3.0"],
17
- [:development, 'rspec'],
18
- [:development, 'delayed_job'],
19
- [:development, 'delayed_job_active_record'],
20
- [:development, 'resque'],
21
- [:runtime, 'json'],
22
- [:runtime, 'rest-client'],
23
- [:runtime, 'sucker_punch', '~> 1.0']
24
- ]
15
+ s.add_runtime_dependency 'json'
16
+ s.add_runtime_dependency 'rest-client'
25
17
 
26
18
  s.files = Dir['**/*']
27
19
  s.test_files = Dir['test/**/*'] + Dir['spec/**/*']
28
20
  s.executables = Dir['bin/*'].map { |f| File.basename(f) }
29
- s.require_paths = ["lib"]
21
+ s.require_paths = ['lib']
30
22
 
31
23
  ## Make sure you can build the gem on older versions of RubyGems too:
32
- s.rubygems_version = "1.8.23"
33
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
24
+ s.rubygems_version = '1.8.23'
25
+ s.required_ruby_version = '>= 2.4.0'
26
+ s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to? :required_rubygems_version=
34
27
  s.specification_version = 3 if s.respond_to? :specification_version
35
-
36
- dependencies.each do |type, name, version|
37
- if s.respond_to?("add_#{type}_dependency")
38
- s.send("add_#{type}_dependency", name, version)
39
- else
40
- s.add_dependency(name, version)
41
- end
42
- end
43
28
  end
metadata CHANGED
@@ -1,145 +1,44 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vero
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
5
- prerelease:
4
+ version: 0.10.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - James Lamont
9
- autorequire:
8
+ autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-07-25 00:00:00.000000000 Z
11
+ date: 2020-12-23 00:00:00.000000000 Z
13
12
  dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: rails
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ~>
20
- - !ruby/object:Gem::Version
21
- version: '3.0'
22
- type: :development
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ~>
28
- - !ruby/object:Gem::Version
29
- version: '3.0'
30
- - !ruby/object:Gem::Dependency
31
- name: rspec
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ! '>='
36
- - !ruby/object:Gem::Version
37
- version: '0'
38
- type: :development
39
- prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
45
- version: '0'
46
- - !ruby/object:Gem::Dependency
47
- name: delayed_job
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: '0'
54
- type: :development
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- - !ruby/object:Gem::Dependency
63
- name: delayed_job_active_record
64
- requirement: !ruby/object:Gem::Requirement
65
- none: false
66
- requirements:
67
- - - ! '>='
68
- - !ruby/object:Gem::Version
69
- version: '0'
70
- type: :development
71
- prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ! '>='
76
- - !ruby/object:Gem::Version
77
- version: '0'
78
- - !ruby/object:Gem::Dependency
79
- name: resque
80
- requirement: !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
83
- - - ! '>='
84
- - !ruby/object:Gem::Version
85
- version: '0'
86
- type: :development
87
- prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
91
- - - ! '>='
92
- - !ruby/object:Gem::Version
93
- version: '0'
94
13
  - !ruby/object:Gem::Dependency
95
14
  name: json
96
15
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
16
  requirements:
99
- - - ! '>='
17
+ - - ">="
100
18
  - !ruby/object:Gem::Version
101
19
  version: '0'
102
20
  type: :runtime
103
21
  prerelease: false
104
22
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
23
  requirements:
107
- - - ! '>='
24
+ - - ">="
108
25
  - !ruby/object:Gem::Version
109
26
  version: '0'
110
27
  - !ruby/object:Gem::Dependency
111
28
  name: rest-client
112
29
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
30
  requirements:
115
- - - ! '>='
31
+ - - ">="
116
32
  - !ruby/object:Gem::Version
117
33
  version: '0'
118
34
  type: :runtime
119
35
  prerelease: false
120
36
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
37
  requirements:
123
- - - ! '>='
38
+ - - ">="
124
39
  - !ruby/object:Gem::Version
125
40
  version: '0'
126
- - !ruby/object:Gem::Dependency
127
- name: sucker_punch
128
- requirement: !ruby/object:Gem::Requirement
129
- none: false
130
- requirements:
131
- - - ~>
132
- - !ruby/object:Gem::Version
133
- version: '1.0'
134
- type: :runtime
135
- prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
- requirements:
139
- - - ~>
140
- - !ruby/object:Gem::Version
141
- version: '1.0'
142
- description:
41
+ description:
143
42
  email: support@getvero.com
144
43
  executables: []
145
44
  extensions: []
@@ -148,19 +47,23 @@ files:
148
47
  - CHANGES.md
149
48
  - Gemfile
150
49
  - Gemfile.lock
50
+ - README.markdown
151
51
  - lib/generators/vero_generator.rb
52
+ - lib/vero.rb
53
+ - lib/vero/api.rb
152
54
  - lib/vero/api/base_api.rb
153
55
  - lib/vero/api/events/track_api.rb
56
+ - lib/vero/api/users/delete_api.rb
154
57
  - lib/vero/api/users/edit_api.rb
155
58
  - lib/vero/api/users/edit_tags_api.rb
156
59
  - lib/vero/api/users/reidentify_api.rb
60
+ - lib/vero/api/users/resubscribe_api.rb
157
61
  - lib/vero/api/users/track_api.rb
158
62
  - lib/vero/api/users/unsubscribe_api.rb
159
- - lib/vero/api.rb
160
63
  - lib/vero/app.rb
161
64
  - lib/vero/config.rb
162
- - lib/vero/context/api.rb
163
65
  - lib/vero/context.rb
66
+ - lib/vero/context/api.rb
164
67
  - lib/vero/dsl.rb
165
68
  - lib/vero/railtie.rb
166
69
  - lib/vero/sender.rb
@@ -168,21 +71,22 @@ files:
168
71
  - lib/vero/senders/delayed_job.rb
169
72
  - lib/vero/senders/invalid.rb
170
73
  - lib/vero/senders/resque.rb
171
- - lib/vero/senders/thread.rb
74
+ - lib/vero/senders/sidekiq.rb
75
+ - lib/vero/senders/sucker_punch.rb
76
+ - lib/vero/trackable.rb
172
77
  - lib/vero/trackable/base.rb
173
78
  - lib/vero/trackable/interface.rb
174
- - lib/vero/trackable.rb
175
79
  - lib/vero/utility/ext.rb
176
80
  - lib/vero/utility/logger.rb
177
81
  - lib/vero/version.rb
178
82
  - lib/vero/view_helpers/javascript.rb
179
- - lib/vero.rb
180
- - README.markdown
181
83
  - spec/lib/api/base_api_spec.rb
182
84
  - spec/lib/api/events/track_api_spec.rb
85
+ - spec/lib/api/users/delete_api_spec.rb
183
86
  - spec/lib/api/users/edit_api_spec.rb
184
87
  - spec/lib/api/users/edit_tags_api_spec.rb
185
88
  - spec/lib/api/users/reidentify_spec.rb
89
+ - spec/lib/api/users/resubscribe_api_spec.rb
186
90
  - spec/lib/api/users/track_api_spec.rb
187
91
  - spec/lib/api/users/unsubscribe_api_spec.rb
188
92
  - spec/lib/api_spec.rb
@@ -191,52 +95,57 @@ files:
191
95
  - spec/lib/context_spec.rb
192
96
  - spec/lib/dsl_spec.rb
193
97
  - spec/lib/sender_spec.rb
98
+ - spec/lib/senders/sidekiq_spec.rb
194
99
  - spec/lib/trackable_spec.rb
195
100
  - spec/lib/view_helpers_spec.rb
196
101
  - spec/spec_helper.rb
102
+ - spec/support/base_config_shared_examples.rb
197
103
  - spec/support/user_support.rb
198
104
  - spec/support/vero_user_support.rb
199
105
  - vero.gemspec
200
106
  homepage: http://www.getvero.com/
201
107
  licenses: []
202
- post_install_message:
108
+ metadata: {}
109
+ post_install_message:
203
110
  rdoc_options: []
204
111
  require_paths:
205
112
  - lib
206
113
  required_ruby_version: !ruby/object:Gem::Requirement
207
- none: false
208
114
  requirements:
209
- - - ! '>='
115
+ - - ">="
210
116
  - !ruby/object:Gem::Version
211
- version: '0'
117
+ version: 2.4.0
212
118
  required_rubygems_version: !ruby/object:Gem::Requirement
213
- none: false
214
119
  requirements:
215
- - - ! '>='
120
+ - - ">="
216
121
  - !ruby/object:Gem::Version
217
122
  version: '0'
218
123
  requirements: []
219
- rubyforge_project:
220
- rubygems_version: 1.8.24
221
- signing_key:
124
+ rubyforge_project:
125
+ rubygems_version: 2.6.14.4
126
+ signing_key:
222
127
  specification_version: 3
223
128
  summary: Ruby gem for Vero
224
129
  test_files:
225
- - spec/lib/api/base_api_spec.rb
226
- - spec/lib/api/events/track_api_spec.rb
227
- - spec/lib/api/users/edit_api_spec.rb
228
- - spec/lib/api/users/edit_tags_api_spec.rb
229
- - spec/lib/api/users/reidentify_spec.rb
230
- - spec/lib/api/users/track_api_spec.rb
231
- - spec/lib/api/users/unsubscribe_api_spec.rb
232
- - spec/lib/api_spec.rb
233
- - spec/lib/app_spec.rb
130
+ - spec/spec_helper.rb
131
+ - spec/support/vero_user_support.rb
132
+ - spec/support/user_support.rb
133
+ - spec/support/base_config_shared_examples.rb
134
+ - spec/lib/sender_spec.rb
234
135
  - spec/lib/config_spec.rb
136
+ - spec/lib/api_spec.rb
137
+ - spec/lib/trackable_spec.rb
235
138
  - spec/lib/context_spec.rb
139
+ - spec/lib/senders/sidekiq_spec.rb
236
140
  - spec/lib/dsl_spec.rb
237
- - spec/lib/sender_spec.rb
238
- - spec/lib/trackable_spec.rb
239
141
  - spec/lib/view_helpers_spec.rb
240
- - spec/spec_helper.rb
241
- - spec/support/user_support.rb
242
- - spec/support/vero_user_support.rb
142
+ - spec/lib/api/base_api_spec.rb
143
+ - spec/lib/api/users/reidentify_spec.rb
144
+ - spec/lib/api/users/edit_tags_api_spec.rb
145
+ - spec/lib/api/users/delete_api_spec.rb
146
+ - spec/lib/api/users/unsubscribe_api_spec.rb
147
+ - spec/lib/api/users/track_api_spec.rb
148
+ - spec/lib/api/users/resubscribe_api_spec.rb
149
+ - spec/lib/api/users/edit_api_spec.rb
150
+ - spec/lib/api/events/track_api_spec.rb
151
+ - spec/lib/app_spec.rb