vero 0.4 → 0.4.1
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.
- data/Gemfile.lock +0 -9
- data/README.markdown +6 -4
- data/lib/vero.rb +1 -8
- data/lib/vero/sender.rb +17 -8
- data/lib/vero/senders/delayed_job.rb +4 -0
- data/lib/vero/senders/invalid.rb +9 -0
- data/lib/vero/senders/thread.rb +1 -1
- data/lib/vero/version.rb +1 -1
- data/spec/lib/trackable_spec.rb +19 -6
- data/spec/spec_helper.rb +1 -1
- data/vero.gemspec +0 -1
- metadata +124 -133
data/Gemfile.lock
CHANGED
@@ -40,15 +40,7 @@ GEM
|
|
40
40
|
multi_json (~> 1.0)
|
41
41
|
arel (3.0.2)
|
42
42
|
builder (3.0.3)
|
43
|
-
columnize (0.3.6)
|
44
43
|
connection_pool (0.9.2)
|
45
|
-
debugger (1.2.0)
|
46
|
-
columnize (>= 0.3.1)
|
47
|
-
debugger-linecache (~> 1.1.1)
|
48
|
-
debugger-ruby_core_source (~> 1.1.3)
|
49
|
-
debugger-linecache (1.1.2)
|
50
|
-
debugger-ruby_core_source (>= 1.1.1)
|
51
|
-
debugger-ruby_core_source (1.1.3)
|
52
44
|
delayed_job (3.0.3)
|
53
45
|
activesupport (~> 3.0)
|
54
46
|
delayed_job_active_record (0.3.2)
|
@@ -129,7 +121,6 @@ PLATFORMS
|
|
129
121
|
ruby
|
130
122
|
|
131
123
|
DEPENDENCIES
|
132
|
-
debugger
|
133
124
|
rails
|
134
125
|
rspec
|
135
126
|
vero!
|
data/README.markdown
CHANGED
@@ -12,7 +12,7 @@ Include in your Gemfile:
|
|
12
12
|
|
13
13
|
Or install the gem:
|
14
14
|
|
15
|
-
gem install
|
15
|
+
gem install vero
|
16
16
|
|
17
17
|
Create a [Vero account](http://getvero.com). Create an initializer in your config/initializers folder called vero.rb with the following:
|
18
18
|
|
@@ -24,11 +24,13 @@ Create a [Vero account](http://getvero.com). Create an initializer in your confi
|
|
24
24
|
|
25
25
|
You will be able to find your API key and secret by logging into Vero and clicking the 'Account' button at the top of the page.
|
26
26
|
|
27
|
-
By default, events are sent asynchronously using
|
27
|
+
By default, events are sent asynchronously using a background thread. We do however offer a few alternatives:
|
28
28
|
|
29
29
|
config.async = :none # Synchronously
|
30
|
-
config.async = :thread # Background thread
|
31
|
-
config.async = :delayed_job # DelayedJob
|
30
|
+
config.async = :thread # Background thread (default)
|
31
|
+
config.async = :delayed_job # DelayedJob
|
32
|
+
|
33
|
+
**Note:** Background threads are not supported by Ruby 1.8.7 or earlier. You must explicitly set `config.async` to either :none or :delayed_job.
|
32
34
|
|
33
35
|
## Setup tracking
|
34
36
|
|
data/lib/vero.rb
CHANGED
@@ -29,17 +29,10 @@ module Vero
|
|
29
29
|
module Senders
|
30
30
|
autoload :Base, 'vero/senders/base'
|
31
31
|
autoload :DelayedJob, 'vero/senders/delayed_job'
|
32
|
+
autoload :Invalid, 'vero/senders/invalid'
|
32
33
|
autoload :Thread, 'vero/senders/thread'
|
33
34
|
end
|
34
35
|
autoload :Sender, 'vero/sender'
|
35
36
|
end
|
36
37
|
|
37
|
-
if defined? ActiveRecord
|
38
|
-
require 'delayed_job_active_record'
|
39
|
-
end
|
40
|
-
|
41
|
-
if defined? Mongoid
|
42
|
-
require 'delayed_job_mongoid'
|
43
|
-
end
|
44
|
-
|
45
38
|
require 'vero/railtie' if defined?(Rails)
|
data/lib/vero/sender.rb
CHANGED
@@ -1,13 +1,23 @@
|
|
1
1
|
module Vero
|
2
2
|
class Sender
|
3
3
|
def self.senders
|
4
|
-
@senders ||=
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
4
|
+
@senders ||= begin
|
5
|
+
t = {
|
6
|
+
true => Vero::Senders::Invalid,
|
7
|
+
false => Vero::Senders::Base,
|
8
|
+
:none => Vero::Senders::Base,
|
9
|
+
:thread => Vero::Senders::Invalid,
|
10
|
+
:delayed_job => Vero::Senders::DelayedJob
|
11
|
+
}
|
12
|
+
|
13
|
+
if RUBY_VERSION =~ /1\.9\./
|
14
|
+
t.merge!(
|
15
|
+
true => Vero::Senders::Thread,
|
16
|
+
:thread => Vero::Senders::Thread
|
17
|
+
)
|
18
|
+
end
|
19
|
+
t
|
20
|
+
end
|
11
21
|
end
|
12
22
|
|
13
23
|
def self.send(api_class, sender_strategy, domain, options)
|
@@ -17,6 +27,5 @@ module Vero
|
|
17
27
|
Vero::App.log(self.new, "method: #{api_class.name}, options: #{options.to_json}, error: #{e.message}")
|
18
28
|
raise e
|
19
29
|
end
|
20
|
-
|
21
30
|
end
|
22
31
|
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
module Vero
|
2
|
+
module Senders
|
3
|
+
class Invalid
|
4
|
+
def call(api_class, domain, options)
|
5
|
+
raise "Vero sender not supported by your version of Ruby. Please change `config.async` to a valid sender. See https://github.com/getvero/vero for more information."
|
6
|
+
end
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
data/lib/vero/senders/thread.rb
CHANGED
@@ -3,7 +3,7 @@ require 'girl_friday'
|
|
3
3
|
module Vero
|
4
4
|
module Senders
|
5
5
|
class Thread
|
6
|
-
VERO_SENDER_QUEUE
|
6
|
+
VERO_SENDER_QUEUE = ::GirlFriday::WorkQueue.new(:vero_queue, :size => 1) do |msg|
|
7
7
|
api_class = msg[:api_class]
|
8
8
|
domain = msg[:domain]
|
9
9
|
options = msg[:options]
|
data/lib/vero/version.rb
CHANGED
data/spec/lib/trackable_spec.rb
CHANGED
@@ -83,8 +83,13 @@ describe Vero::Trackable do
|
|
83
83
|
|
84
84
|
@user.stub(:with_vero_context).and_return(context)
|
85
85
|
|
86
|
-
|
87
|
-
|
86
|
+
if RUBY_VERSION =~ /1\.9\./
|
87
|
+
@user.track!(@request_params[:event_name], @request_params[:data]).should be_true
|
88
|
+
@user.track!(@request_params[:event_name]).should be_true
|
89
|
+
else
|
90
|
+
expect { @user.track!(@request_params[:event_name], @request_params[:data]) }.to raise_error
|
91
|
+
expect { @user.track!(@request_params[:event_name]) }.to raise_error
|
92
|
+
end
|
88
93
|
end
|
89
94
|
|
90
95
|
# it "should raise an error when async is set to false and the request times out" do
|
@@ -127,7 +132,11 @@ describe Vero::Trackable do
|
|
127
132
|
|
128
133
|
@user.stub(:with_vero_context).and_return(context)
|
129
134
|
|
130
|
-
|
135
|
+
if RUBY_VERSION =~ /1\.9\./
|
136
|
+
@user.identify!.should be_true
|
137
|
+
else
|
138
|
+
expect { @user.identify! }.to raise_error
|
139
|
+
end
|
131
140
|
end
|
132
141
|
end
|
133
142
|
|
@@ -173,7 +182,11 @@ describe Vero::Trackable do
|
|
173
182
|
|
174
183
|
@user.stub(:with_vero_context).and_return(context)
|
175
184
|
|
176
|
-
|
185
|
+
if RUBY_VERSION =~ /1\.9\./
|
186
|
+
@user.with_vero_context.update_user!.should be_true
|
187
|
+
else
|
188
|
+
expect { @user.with_vero_context.update_user! }.to raise_error
|
189
|
+
end
|
177
190
|
end
|
178
191
|
end
|
179
192
|
|
@@ -208,7 +221,7 @@ describe Vero::Trackable do
|
|
208
221
|
|
209
222
|
@user.stub(:with_vero_context).and_return(context)
|
210
223
|
|
211
|
-
@user.with_vero_context.update_user_tags
|
224
|
+
expect { @user.with_vero_context.update_user_tags! }.to raise_error
|
212
225
|
end
|
213
226
|
end
|
214
227
|
|
@@ -241,7 +254,7 @@ describe Vero::Trackable do
|
|
241
254
|
|
242
255
|
@user.stub(:with_vero_context).and_return(context)
|
243
256
|
|
244
|
-
@user.with_vero_context.unsubscribe
|
257
|
+
expect { @user.with_vero_context.unsubscribe! }.to raise_error
|
245
258
|
end
|
246
259
|
end
|
247
260
|
|
data/spec/spec_helper.rb
CHANGED
data/vero.gemspec
CHANGED
metadata
CHANGED
@@ -1,150 +1,130 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: vero
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 13
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 4
|
9
|
+
- 1
|
10
|
+
version: 0.4.1
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- James Lamont
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
17
|
+
|
18
|
+
date: 2012-11-11 00:00:00 +11:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
15
22
|
name: rails
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
|
-
requirements:
|
19
|
-
- - ! '>='
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: '0'
|
22
|
-
type: :development
|
23
23
|
prerelease: false
|
24
|
-
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
none: false
|
34
|
-
requirements:
|
35
|
-
- - ! '>='
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
version: '0'
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
version: "0"
|
38
33
|
type: :development
|
39
|
-
|
40
|
-
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - ! '>='
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: '0'
|
46
|
-
- !ruby/object:Gem::Dependency
|
34
|
+
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
47
36
|
name: rspec
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
|
-
requirements:
|
51
|
-
- - ! '>='
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '0'
|
54
|
-
type: :development
|
55
37
|
prerelease: false
|
56
|
-
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- -
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
|
62
|
-
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
hash: 3
|
44
|
+
segments:
|
45
|
+
- 0
|
46
|
+
version: "0"
|
47
|
+
type: :development
|
48
|
+
version_requirements: *id002
|
49
|
+
- !ruby/object:Gem::Dependency
|
63
50
|
name: rest-client
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
|
-
requirements:
|
67
|
-
- - ! '>='
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: '0'
|
70
|
-
type: :runtime
|
71
51
|
prerelease: false
|
72
|
-
|
73
|
-
none: false
|
74
|
-
requirements:
|
75
|
-
- -
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
none: false
|
82
|
-
requirements:
|
83
|
-
- - ! '>='
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
version: '0'
|
52
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
hash: 3
|
58
|
+
segments:
|
59
|
+
- 0
|
60
|
+
version: "0"
|
86
61
|
type: :runtime
|
62
|
+
version_requirements: *id003
|
63
|
+
- !ruby/object:Gem::Dependency
|
64
|
+
name: delayed_job
|
87
65
|
prerelease: false
|
88
|
-
|
89
|
-
none: false
|
90
|
-
requirements:
|
91
|
-
- -
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
none: false
|
98
|
-
requirements:
|
99
|
-
- - ! '>='
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
version: '0'
|
66
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
67
|
+
none: false
|
68
|
+
requirements:
|
69
|
+
- - ">="
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
hash: 3
|
72
|
+
segments:
|
73
|
+
- 0
|
74
|
+
version: "0"
|
102
75
|
type: :runtime
|
76
|
+
version_requirements: *id004
|
77
|
+
- !ruby/object:Gem::Dependency
|
78
|
+
name: delayed_job_active_record
|
103
79
|
prerelease: false
|
104
|
-
|
105
|
-
none: false
|
106
|
-
requirements:
|
107
|
-
- -
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
none: false
|
114
|
-
requirements:
|
115
|
-
- - ! '>='
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
80
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ">="
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
hash: 3
|
86
|
+
segments:
|
87
|
+
- 0
|
88
|
+
version: "0"
|
118
89
|
type: :runtime
|
90
|
+
version_requirements: *id005
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: delayed_job_mongoid
|
119
93
|
prerelease: false
|
120
|
-
|
121
|
-
none: false
|
122
|
-
requirements:
|
123
|
-
- -
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
none: false
|
130
|
-
requirements:
|
131
|
-
- - ! '>='
|
132
|
-
- !ruby/object:Gem::Version
|
133
|
-
version: '0'
|
94
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
95
|
+
none: false
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
hash: 3
|
100
|
+
segments:
|
101
|
+
- 0
|
102
|
+
version: "0"
|
134
103
|
type: :runtime
|
104
|
+
version_requirements: *id006
|
105
|
+
- !ruby/object:Gem::Dependency
|
106
|
+
name: girl_friday
|
135
107
|
prerelease: false
|
136
|
-
|
137
|
-
none: false
|
138
|
-
requirements:
|
139
|
-
- -
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
|
108
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
109
|
+
none: false
|
110
|
+
requirements:
|
111
|
+
- - ">="
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
hash: 3
|
114
|
+
segments:
|
115
|
+
- 0
|
116
|
+
version: "0"
|
117
|
+
type: :runtime
|
118
|
+
version_requirements: *id007
|
142
119
|
description:
|
143
120
|
email: support@getvero.com
|
144
121
|
executables: []
|
122
|
+
|
145
123
|
extensions: []
|
124
|
+
|
146
125
|
extra_rdoc_files: []
|
147
|
-
|
126
|
+
|
127
|
+
files:
|
148
128
|
- Gemfile
|
149
129
|
- Gemfile.lock
|
150
130
|
- info
|
@@ -163,6 +143,7 @@ files:
|
|
163
143
|
- lib/vero/sender.rb
|
164
144
|
- lib/vero/senders/base.rb
|
165
145
|
- lib/vero/senders/delayed_job.rb
|
146
|
+
- lib/vero/senders/invalid.rb
|
166
147
|
- lib/vero/senders/thread.rb
|
167
148
|
- lib/vero/trackable/base.rb
|
168
149
|
- lib/vero/trackable/interface.rb
|
@@ -186,31 +167,41 @@ files:
|
|
186
167
|
- spec/support/user_support.rb
|
187
168
|
- spec/support/vero_user_support.rb
|
188
169
|
- vero.gemspec
|
170
|
+
has_rdoc: true
|
189
171
|
homepage: http://www.getvero.com/
|
190
172
|
licenses: []
|
173
|
+
|
191
174
|
post_install_message:
|
192
175
|
rdoc_options: []
|
193
|
-
|
176
|
+
|
177
|
+
require_paths:
|
194
178
|
- lib
|
195
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
179
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
196
180
|
none: false
|
197
|
-
requirements:
|
198
|
-
- -
|
199
|
-
- !ruby/object:Gem::Version
|
200
|
-
|
201
|
-
|
181
|
+
requirements:
|
182
|
+
- - ">="
|
183
|
+
- !ruby/object:Gem::Version
|
184
|
+
hash: 3
|
185
|
+
segments:
|
186
|
+
- 0
|
187
|
+
version: "0"
|
188
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
202
189
|
none: false
|
203
|
-
requirements:
|
204
|
-
- -
|
205
|
-
- !ruby/object:Gem::Version
|
206
|
-
|
190
|
+
requirements:
|
191
|
+
- - ">="
|
192
|
+
- !ruby/object:Gem::Version
|
193
|
+
hash: 3
|
194
|
+
segments:
|
195
|
+
- 0
|
196
|
+
version: "0"
|
207
197
|
requirements: []
|
198
|
+
|
208
199
|
rubyforge_project:
|
209
|
-
rubygems_version: 1.
|
200
|
+
rubygems_version: 1.6.2
|
210
201
|
signing_key:
|
211
202
|
specification_version: 3
|
212
203
|
summary: Rails 3.x gem for Vero
|
213
|
-
test_files:
|
204
|
+
test_files:
|
214
205
|
- spec/lib/api/events/track_api_spec.rb
|
215
206
|
- spec/lib/api/users/edit_api_spec.rb
|
216
207
|
- spec/lib/api/users/edit_tags_api_spec.rb
|