vero 0.7.0 → 0.10.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.
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