vero 0.4.3 → 0.4.5
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 +3 -3
- data/lib/vero/api/base_api.rb +8 -0
- data/lib/vero/api/events/track_api.rb +1 -1
- data/lib/vero/api/users/edit_api.rb +1 -1
- data/lib/vero/api/users/edit_tags_api.rb +1 -1
- data/lib/vero/api/users/track_api.rb +1 -1
- data/lib/vero/sender.rb +16 -4
- data/lib/vero/utility/logger.rb +1 -1
- data/lib/vero/version.rb +1 -1
- data/spec/lib/api/events/track_api_spec.rb +44 -37
- data/spec/lib/api/users/edit_api_spec.rb +1 -1
- data/spec/lib/api/users/edit_tags_api_spec.rb +1 -1
- data/spec/lib/api/users/track_api_spec.rb +1 -1
- data/spec/lib/sender_spec.rb +46 -0
- data/spec/lib/trackable_spec.rb +15 -13
- data/spec/spec_helper.rb +0 -2
- data/vero.gemspec +2 -2
- metadata +9 -7
data/Gemfile.lock
CHANGED
@@ -1,9 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
vero (0.4.
|
5
|
-
delayed_job
|
6
|
-
delayed_job_active_record
|
4
|
+
vero (0.4.5)
|
7
5
|
girl_friday
|
8
6
|
rest-client
|
9
7
|
|
@@ -114,6 +112,8 @@ PLATFORMS
|
|
114
112
|
ruby
|
115
113
|
|
116
114
|
DEPENDENCIES
|
115
|
+
delayed_job
|
116
|
+
delayed_job_active_record
|
117
117
|
rails
|
118
118
|
rspec
|
119
119
|
vero!
|
data/lib/vero/api/base_api.rb
CHANGED
data/lib/vero/sender.rb
CHANGED
@@ -1,14 +1,26 @@
|
|
1
1
|
module Vero
|
2
|
+
class SenderHash < ::Hash
|
3
|
+
def [](key)
|
4
|
+
if self.has_key?(key)
|
5
|
+
super
|
6
|
+
else
|
7
|
+
klass_name = key.to_s.split("_").map(&:capitalize).join
|
8
|
+
eval("Vero::Senders::#{klass_name}")
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
2
13
|
class Sender
|
3
14
|
def self.senders
|
4
15
|
@senders ||= begin
|
5
|
-
t =
|
16
|
+
t = Vero::SenderHash.new
|
17
|
+
|
18
|
+
t.merge!({
|
6
19
|
true => Vero::Senders::Invalid,
|
7
20
|
false => Vero::Senders::Base,
|
8
21
|
:none => Vero::Senders::Base,
|
9
|
-
:thread => Vero::Senders::Invalid
|
10
|
-
|
11
|
-
}
|
22
|
+
:thread => Vero::Senders::Invalid
|
23
|
+
})
|
12
24
|
|
13
25
|
if RUBY_VERSION =~ /1\.9\./
|
14
26
|
t.merge!(
|
data/lib/vero/utility/logger.rb
CHANGED
data/lib/vero/version.rb
CHANGED
@@ -1,54 +1,61 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Vero::API::Events::TrackAPI do
|
4
|
-
subject { Vero::API::Events::TrackAPI.new('https://www.getvero.com', {}) }
|
5
|
-
it "should inherit from Vero::API::BaseCaller" do
|
6
|
-
subject.should be_a(Vero::API::BaseAPI)
|
7
|
-
end
|
8
|
-
|
9
|
-
it "should map to current version of Vero API" do
|
10
|
-
subject.send(:url).should == "https://www.getvero.com/api/v2/events/track.json"
|
11
|
-
end
|
12
4
|
|
13
|
-
|
14
|
-
|
15
|
-
it "should
|
16
|
-
|
17
|
-
subject.options = options
|
18
|
-
expect { subject.send(:validate!) }.to raise_error(ArgumentError)
|
19
|
-
|
20
|
-
options = {:auth_token => 'abcd', :identity => {:email => 'test@test.com'}, :event_name => 'test_event'}
|
21
|
-
subject.options = options
|
22
|
-
expect { subject.send(:validate!) }.to_not raise_error(ArgumentError)
|
5
|
+
context "request without properties" do
|
6
|
+
subject { Vero::API::Events::TrackAPI.new('https://www.getvero.com', {}) }
|
7
|
+
it "should inherit from Vero::API::BaseCaller" do
|
8
|
+
subject.should be_a(Vero::API::BaseAPI)
|
23
9
|
end
|
24
10
|
|
25
|
-
it "should
|
26
|
-
|
27
|
-
subject.options = options
|
28
|
-
expect { subject.send(:validate!) }.to raise_error(ArgumentError)
|
29
|
-
|
30
|
-
options = {:auth_token => 'abcd', :identity => {:email => 'test@test.com'}, :event_name => 'test_event', :data => nil}
|
31
|
-
subject.options = options
|
32
|
-
expect { subject.send(:validate!) }.to_not raise_error(ArgumentError)
|
33
|
-
|
34
|
-
options = {:auth_token => 'abcd', :identity => {:email => 'test@test.com'}, :event_name => 'test_event', :data => {}}
|
35
|
-
subject.options = options
|
36
|
-
expect { subject.send(:validate!) }.to_not raise_error(ArgumentError)
|
11
|
+
it "should map to current version of Vero API" do
|
12
|
+
subject.send(:url).should == "https://www.getvero.com/api/v2/events/track.json"
|
37
13
|
end
|
38
14
|
end
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
15
|
+
|
16
|
+
context "request with properties" do
|
17
|
+
subject { Vero::API::Events::TrackAPI.new('https://www.getvero.com', {:auth_token => 'abcd', :identity => {:email => 'test@test.com'}, :event_name => 'test_event'}) }
|
18
|
+
describe :validate! do
|
19
|
+
it "should raise an error if test_event is a blank String" do
|
20
|
+
options = {:auth_token => 'abcd', :identity => {:email => 'test@test.com'}, :event_name => nil}
|
21
|
+
subject.options = options
|
22
|
+
expect { subject.send(:validate!) }.to raise_error(ArgumentError)
|
23
|
+
|
24
|
+
options = {:auth_token => 'abcd', :identity => {:email => 'test@test.com'}, :event_name => 'test_event'}
|
25
|
+
subject.options = options
|
26
|
+
expect { subject.send(:validate!) }.to_not raise_error(ArgumentError)
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should raise an error if data is not either nil or a Hash" do
|
30
|
+
options = {:auth_token => 'abcd', :identity => {:email => 'test@test.com'}, :event_name => 'test_event', :data => []}
|
31
|
+
subject.options = options
|
32
|
+
expect { subject.send(:validate!) }.to raise_error(ArgumentError)
|
33
|
+
|
34
|
+
options = {:auth_token => 'abcd', :identity => {:email => 'test@test.com'}, :event_name => 'test_event', :data => nil}
|
35
|
+
subject.options = options
|
36
|
+
expect { subject.send(:validate!) }.to_not raise_error(ArgumentError)
|
37
|
+
|
38
|
+
options = {:auth_token => 'abcd', :identity => {:email => 'test@test.com'}, :event_name => 'test_event', :data => {}}
|
39
|
+
subject.options = options
|
40
|
+
expect { subject.send(:validate!) }.to_not raise_error(ArgumentError)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe :request do
|
45
|
+
it "should send a JSON request to the Vero API" do
|
46
|
+
RestClient.should_receive(:post).with("https://www.getvero.com/api/v2/events/track.json", {:auth_token => 'abcd', :identity => {:email => 'test@test.com'}, :event_name => 'test_event'}.to_json, {:content_type => :json, :accept => :json})
|
47
|
+
RestClient.stub(:post).and_return(200)
|
48
|
+
subject.send(:request)
|
49
|
+
end
|
45
50
|
end
|
46
51
|
end
|
47
52
|
|
48
53
|
describe "integration test" do
|
49
54
|
it "should not raise any errors" do
|
55
|
+
obj = Vero::API::Events::TrackAPI.new('https://www.getvero.com', {:auth_token => 'abcd', :identity => {:email => 'test@test.com'}, :event_name => 'test_event'})
|
56
|
+
|
50
57
|
RestClient.stub(:post).and_return(200)
|
51
|
-
expect {
|
58
|
+
expect { obj.perform }.to_not raise_error
|
52
59
|
end
|
53
60
|
end
|
54
61
|
end
|
@@ -16,7 +16,7 @@ describe Vero::API::Users::EditAPI do
|
|
16
16
|
|
17
17
|
describe :request do
|
18
18
|
it "should send a request to the Vero API" do
|
19
|
-
RestClient.should_receive(:put).with("https://www.getvero.com/api/v2/users/edit.json", {:auth_token => 'abcd', :email => 'test@test.com', :changes => { :email => 'test@test.com' }})
|
19
|
+
RestClient.should_receive(:put).with("https://www.getvero.com/api/v2/users/edit.json", {:auth_token => 'abcd', :email => 'test@test.com', :changes => { :email => 'test@test.com' }}.to_json, {:content_type => :json, :accept => :json})
|
20
20
|
RestClient.stub(:put).and_return(200)
|
21
21
|
subject.send(:request)
|
22
22
|
end
|
@@ -16,7 +16,7 @@ describe Vero::API::Users::EditTagsAPI do
|
|
16
16
|
|
17
17
|
describe :request do
|
18
18
|
it "should send a request to the Vero API" do
|
19
|
-
RestClient.should_receive(:put).with("https://www.getvero.com/api/v2/users/tags/edit.json", {:auth_token => 'abcd', :email => 'test@test.com', :add => ["test"]})
|
19
|
+
RestClient.should_receive(:put).with("https://www.getvero.com/api/v2/users/tags/edit.json", {:auth_token => 'abcd', :email => 'test@test.com', :add => ["test"]}.to_json, {:content_type => :json, :accept => :json})
|
20
20
|
RestClient.stub(:put).and_return(200)
|
21
21
|
subject.send(:request)
|
22
22
|
end
|
@@ -39,7 +39,7 @@ describe Vero::API::Users::TrackAPI do
|
|
39
39
|
|
40
40
|
describe :request do
|
41
41
|
it "should send a request to the Vero API" do
|
42
|
-
RestClient.should_receive(:post).with("https://www.getvero.com/api/v2/users/track.json", {:auth_token => 'abcd', :identity => {:email => 'test@test.com'}, :email => 'test@test.com'})
|
42
|
+
RestClient.should_receive(:post).with("https://www.getvero.com/api/v2/users/track.json", {:auth_token => 'abcd', :identity => {:email => 'test@test.com'}, :email => 'test@test.com'}.to_json, {:content_type => :json, :accept => :json})
|
43
43
|
RestClient.stub(:post).and_return(200)
|
44
44
|
subject.send(:request)
|
45
45
|
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Vero::Sender do
|
4
|
+
subject { Vero::Sender }
|
5
|
+
describe "self.senders" do
|
6
|
+
it "should be a Hash" do
|
7
|
+
subject.senders.should be_a(Hash)
|
8
|
+
end
|
9
|
+
|
10
|
+
# context "< Ruby 1.9" do
|
11
|
+
# before :all do
|
12
|
+
# Object.const_set :RUBY_VERSION, "1.8.7"
|
13
|
+
# end
|
14
|
+
|
15
|
+
# it "should have a default set of senders (true, false, none, thread)" do
|
16
|
+
# subject.senders.should == {
|
17
|
+
# true => Vero::Senders::Invalid,
|
18
|
+
# false => Vero::Senders::Base,
|
19
|
+
# :none => Vero::Senders::Base,
|
20
|
+
# :thread => Vero::Senders::Invalid,
|
21
|
+
# }
|
22
|
+
# end
|
23
|
+
# end
|
24
|
+
|
25
|
+
context "~> Ruby 1.9" do
|
26
|
+
# before :all do
|
27
|
+
# Object.const_set :RUBY_VERSION, "1.9.3"
|
28
|
+
# end
|
29
|
+
|
30
|
+
it "should have a default set of senders (true, false, none, thread)" do
|
31
|
+
subject.senders.should == {
|
32
|
+
true => Vero::Senders::Thread,
|
33
|
+
false => Vero::Senders::Base,
|
34
|
+
:none => Vero::Senders::Base,
|
35
|
+
:thread => Vero::Senders::Thread,
|
36
|
+
}
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should automatically find senders that are not defined" do
|
41
|
+
subject.senders[:delayed_job].should == Vero::Senders::DelayedJob
|
42
|
+
subject.senders[:invalid].should == Vero::Senders::Invalid
|
43
|
+
subject.senders[:none].should == Vero::Senders::Base
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
data/spec/lib/trackable_spec.rb
CHANGED
@@ -11,6 +11,8 @@ describe Vero::Trackable do
|
|
11
11
|
}
|
12
12
|
@url = "https://www.getvero.com/api/v1/track.json"
|
13
13
|
@user = User.new
|
14
|
+
|
15
|
+
@content_type_params = {:content_type => :json, :accept => :json}
|
14
16
|
end
|
15
17
|
|
16
18
|
context "the gem has not been configured" do
|
@@ -68,10 +70,10 @@ describe Vero::Trackable do
|
|
68
70
|
|
69
71
|
RestClient.stub(:post).and_return(200)
|
70
72
|
|
71
|
-
RestClient.should_receive(:post).with("https://www.getvero.com/api/v2/events/track.json", {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :data=>{:test=>1}, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20, :_user_type=>"User"}})
|
73
|
+
RestClient.should_receive(:post).with("https://www.getvero.com/api/v2/events/track.json", {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :data=>{:test=>1}, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20, :_user_type=>"User"}}.to_json, @content_type_params)
|
72
74
|
@user.track!(@request_params[:event_name], @request_params[:data]).should == 200
|
73
75
|
|
74
|
-
RestClient.should_receive(:post).with("https://www.getvero.com/api/v2/events/track.json", {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :data=>{}, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20, :_user_type=>"User"}})
|
76
|
+
RestClient.should_receive(:post).with("https://www.getvero.com/api/v2/events/track.json", {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :data=>{}, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20, :_user_type=>"User"}}.to_json, @content_type_params)
|
75
77
|
@user.track!(@request_params[:event_name]).should == 200
|
76
78
|
end
|
77
79
|
|
@@ -106,9 +108,9 @@ describe Vero::Trackable do
|
|
106
108
|
before do
|
107
109
|
@request_params = {
|
108
110
|
:auth_token => 'YWJjZDEyMzQ6ZWZnaDU2Nzg=',
|
109
|
-
:data => {:email => 'durkster@gmail.com', :age => 20, :_user_type => "User"},
|
110
111
|
:development_mode => true,
|
111
|
-
:email => 'durkster@gmail.com'
|
112
|
+
:email => 'durkster@gmail.com',
|
113
|
+
:data => {:email => 'durkster@gmail.com', :age => 20, :_user_type => "User"}
|
112
114
|
}
|
113
115
|
@url = "https://www.getvero.com/api/v2/users/track.json"
|
114
116
|
end
|
@@ -120,7 +122,7 @@ describe Vero::Trackable do
|
|
120
122
|
@user.stub(:with_vero_context).and_return(context)
|
121
123
|
|
122
124
|
RestClient.stub(:post).and_return(200)
|
123
|
-
RestClient.should_receive(:post).with(@url, @request_params)
|
125
|
+
RestClient.should_receive(:post).with(@url, @request_params.to_json, @content_type_params)
|
124
126
|
|
125
127
|
@user.identify!.should == 200
|
126
128
|
end
|
@@ -144,9 +146,9 @@ describe Vero::Trackable do
|
|
144
146
|
before do
|
145
147
|
@request_params = {
|
146
148
|
:auth_token => 'YWJjZDEyMzQ6ZWZnaDU2Nzg=',
|
147
|
-
:
|
149
|
+
:development_mode => true,
|
148
150
|
:email => 'durkster@gmail.com',
|
149
|
-
:
|
151
|
+
:changes => {:email => 'durkster@gmail.com', :age => 20, :_user_type => "User"}
|
150
152
|
}
|
151
153
|
@url = "https://www.getvero.com/api/v2/users/edit.json"
|
152
154
|
end
|
@@ -158,7 +160,7 @@ describe Vero::Trackable do
|
|
158
160
|
@user.stub(:with_vero_context).and_return(context)
|
159
161
|
|
160
162
|
RestClient.stub(:put).and_return(200)
|
161
|
-
RestClient.should_receive(:put).with(@url, @request_params.merge(:email => "durkster1@gmail.com"))
|
163
|
+
RestClient.should_receive(:put).with(@url, @request_params.merge(:email => "durkster1@gmail.com").to_json, @content_type_params)
|
162
164
|
|
163
165
|
@user.with_vero_context.update_user!("durkster1@gmail.com").should == 200
|
164
166
|
end
|
@@ -170,7 +172,7 @@ describe Vero::Trackable do
|
|
170
172
|
@user.stub(:with_vero_context).and_return(context)
|
171
173
|
|
172
174
|
RestClient.stub(:put).and_return(200)
|
173
|
-
RestClient.should_receive(:put).with(@url, @request_params)
|
175
|
+
RestClient.should_receive(:put).with(@url, @request_params.to_json, @content_type_params)
|
174
176
|
|
175
177
|
@user.with_vero_context.update_user!.should == 200
|
176
178
|
end
|
@@ -194,10 +196,10 @@ describe Vero::Trackable do
|
|
194
196
|
before do
|
195
197
|
@request_params = {
|
196
198
|
:auth_token => 'YWJjZDEyMzQ6ZWZnaDU2Nzg=',
|
197
|
-
:
|
198
|
-
:remove => [],
|
199
|
+
:development_mode => true,
|
199
200
|
:email => 'durkster@gmail.com',
|
200
|
-
:
|
201
|
+
:add => [],
|
202
|
+
:remove => []
|
201
203
|
}
|
202
204
|
@url = "https://www.getvero.com/api/v2/users/tags/edit.json"
|
203
205
|
end
|
@@ -210,7 +212,7 @@ describe Vero::Trackable do
|
|
210
212
|
@user.stub(:with_vero_context).and_return(context)
|
211
213
|
|
212
214
|
RestClient.stub(:put).and_return(200)
|
213
|
-
RestClient.should_receive(:put).with(@url, @request_params)
|
215
|
+
RestClient.should_receive(:put).with(@url, @request_params.to_json, @content_type_params)
|
214
216
|
|
215
217
|
@user.with_vero_context.update_user_tags!.should == 200
|
216
218
|
end
|
data/spec/spec_helper.rb
CHANGED
data/vero.gemspec
CHANGED
@@ -15,9 +15,9 @@ Gem::Specification.new do |s|
|
|
15
15
|
dependencies = [
|
16
16
|
[:development, 'rails'],
|
17
17
|
[:development, 'rspec'],
|
18
|
+
[:development, 'delayed_job'],
|
19
|
+
[:development, 'delayed_job_active_record'],
|
18
20
|
[:runtime, 'rest-client'],
|
19
|
-
[:runtime, 'delayed_job'],
|
20
|
-
[:runtime, 'delayed_job_active_record'],
|
21
21
|
[:runtime, 'girl_friday']
|
22
22
|
]
|
23
23
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vero
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-01-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: '0'
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
|
-
name:
|
47
|
+
name: delayed_job
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
49
49
|
none: false
|
50
50
|
requirements:
|
51
51
|
- - ! '>='
|
52
52
|
- !ruby/object:Gem::Version
|
53
53
|
version: '0'
|
54
|
-
type: :
|
54
|
+
type: :development
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
none: false
|
@@ -60,14 +60,14 @@ dependencies:
|
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
|
-
name:
|
63
|
+
name: delayed_job_active_record
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
65
65
|
none: false
|
66
66
|
requirements:
|
67
67
|
- - ! '>='
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '0'
|
70
|
-
type: :
|
70
|
+
type: :development
|
71
71
|
prerelease: false
|
72
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: '0'
|
78
78
|
- !ruby/object:Gem::Dependency
|
79
|
-
name:
|
79
|
+
name: rest-client
|
80
80
|
requirement: !ruby/object:Gem::Requirement
|
81
81
|
none: false
|
82
82
|
requirements:
|
@@ -149,6 +149,7 @@ files:
|
|
149
149
|
- spec/lib/app_spec.rb
|
150
150
|
- spec/lib/config_spec.rb
|
151
151
|
- spec/lib/context_spec.rb
|
152
|
+
- spec/lib/sender_spec.rb
|
152
153
|
- spec/lib/trackable_spec.rb
|
153
154
|
- spec/lib/view_helpers_spec.rb
|
154
155
|
- spec/spec_helper.rb
|
@@ -188,6 +189,7 @@ test_files:
|
|
188
189
|
- spec/lib/app_spec.rb
|
189
190
|
- spec/lib/config_spec.rb
|
190
191
|
- spec/lib/context_spec.rb
|
192
|
+
- spec/lib/sender_spec.rb
|
191
193
|
- spec/lib/trackable_spec.rb
|
192
194
|
- spec/lib/view_helpers_spec.rb
|
193
195
|
- spec/spec_helper.rb
|