vero 0.1.3 → 0.2.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.
- data/Gemfile.lock +1 -1
- data/info +30 -0
- data/lib/vero.rb +3 -1
- data/lib/vero/app.rb +22 -1
- data/lib/vero/config.rb +10 -2
- data/lib/vero/jobs/rest_post_job.rb +12 -0
- data/lib/vero/railtie.rb +8 -0
- data/lib/vero/trackable.rb +6 -7
- data/lib/vero/version.rb +1 -1
- data/lib/vero/view_helpers.rb +39 -0
- data/spec/lib/view_helpers_spec.rb +41 -0
- metadata +5 -2
- data/vero-0.1.2.gem +0 -0
data/Gemfile.lock
CHANGED
data/info
CHANGED
|
@@ -8,3 +8,33 @@ Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=",
|
|
|
8
8
|
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
9
9
|
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
10
10
|
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
11
|
+
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
12
|
+
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
13
|
+
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
14
|
+
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
15
|
+
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
16
|
+
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
17
|
+
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
18
|
+
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
19
|
+
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
20
|
+
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
21
|
+
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
22
|
+
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
23
|
+
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
24
|
+
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
25
|
+
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
26
|
+
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
27
|
+
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
28
|
+
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
29
|
+
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
30
|
+
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
31
|
+
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
32
|
+
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
33
|
+
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
34
|
+
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
35
|
+
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
36
|
+
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
37
|
+
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
38
|
+
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
39
|
+
Vero: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
|
40
|
+
User: Error attempting to track event: {:auth_token=>"YWJjZDEyMzQ6ZWZnaDU2Nzg=", :development_mode=>true, :event_name=>"test_event", :identity=>{:email=>"durkster@gmail.com", :age=>20}, :data=>{:test=>1}} error: Connection refused - connect(2)
|
data/lib/vero.rb
CHANGED
data/lib/vero/app.rb
CHANGED
|
@@ -7,7 +7,6 @@ module Vero
|
|
|
7
7
|
|
|
8
8
|
if block_given?
|
|
9
9
|
block.call(self.config)
|
|
10
|
-
@@config.configured = true
|
|
11
10
|
end
|
|
12
11
|
end
|
|
13
12
|
|
|
@@ -26,5 +25,27 @@ module Vero
|
|
|
26
25
|
def self.configured?
|
|
27
26
|
self.config && self.config.configured
|
|
28
27
|
end
|
|
28
|
+
|
|
29
|
+
def self.log(object, message)
|
|
30
|
+
return unless config.logging
|
|
31
|
+
|
|
32
|
+
logger = self.logger
|
|
33
|
+
message = "#{object.class.name}: #{message}"
|
|
34
|
+
|
|
35
|
+
if logger
|
|
36
|
+
logger.info message
|
|
37
|
+
else
|
|
38
|
+
puts message
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def self.logger
|
|
43
|
+
return nil unless config.logging
|
|
44
|
+
if defined?(Rails) && Rails.logger
|
|
45
|
+
Rails.logger
|
|
46
|
+
else
|
|
47
|
+
nil
|
|
48
|
+
end
|
|
49
|
+
end
|
|
29
50
|
end
|
|
30
51
|
end
|
data/lib/vero/config.rb
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
module Vero
|
|
2
2
|
class Config
|
|
3
3
|
attr_writer :domain
|
|
4
|
-
attr_accessor :api_key, :secret, :development_mode, :async, :
|
|
4
|
+
attr_accessor :api_key, :secret, :development_mode, :async, :disabled, :logging
|
|
5
5
|
|
|
6
6
|
def initialize
|
|
7
7
|
self.disabled = false
|
|
8
|
-
self.configured = false
|
|
9
8
|
self.development_mode = !Rails.env.production?
|
|
10
9
|
self.async = true
|
|
10
|
+
self.logging = false
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def config_params
|
|
14
|
+
options = {api_key: self.api_key, secret: self.secret}
|
|
11
15
|
end
|
|
12
16
|
|
|
13
17
|
def request_params
|
|
@@ -27,5 +31,9 @@ module Vero
|
|
|
27
31
|
return if api_key.blank? || secret.blank?
|
|
28
32
|
Base64::encode64("#{api_key}:#{secret}").gsub(/[\n ]/, '')
|
|
29
33
|
end
|
|
34
|
+
|
|
35
|
+
def configured
|
|
36
|
+
!api_key.blank? && !secret.blank?
|
|
37
|
+
end
|
|
30
38
|
end
|
|
31
39
|
end
|
|
@@ -4,8 +4,20 @@ module Vero
|
|
|
4
4
|
module Jobs
|
|
5
5
|
class RestPostJob < Struct.new(:url, :params)
|
|
6
6
|
def perform
|
|
7
|
+
setup_logging
|
|
7
8
|
RestClient.post(url, params)
|
|
8
9
|
end
|
|
10
|
+
|
|
11
|
+
private
|
|
12
|
+
def setup_logging
|
|
13
|
+
return unless Vero::App.logger
|
|
14
|
+
RestClient.log = Object.new.tap do |proxy|
|
|
15
|
+
def proxy.<<(message)
|
|
16
|
+
Vero::App.logger.info message
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
9
21
|
end
|
|
10
22
|
end
|
|
11
23
|
end
|
data/lib/vero/railtie.rb
ADDED
data/lib/vero/trackable.rb
CHANGED
|
@@ -52,20 +52,19 @@ module Vero
|
|
|
52
52
|
def post_now(url, params)
|
|
53
53
|
begin
|
|
54
54
|
execute_unless_disabled do
|
|
55
|
-
|
|
56
|
-
job
|
|
55
|
+
Vero::Jobs::RestPostJob.new(url, params).perform
|
|
56
|
+
Vero::App.log(self, "method: track, params: #{params.to_json}, response: job performed")
|
|
57
57
|
end
|
|
58
58
|
rescue => e
|
|
59
|
-
|
|
59
|
+
Vero::App.log(self, "method: track, params: #{params.to_json} error: #{e.message}")
|
|
60
60
|
end
|
|
61
61
|
end
|
|
62
62
|
|
|
63
63
|
def post_later(url, params)
|
|
64
|
-
job = Vero::Jobs::RestPostJob.new(url, params)
|
|
65
|
-
|
|
66
64
|
begin
|
|
67
65
|
execute_unless_disabled do
|
|
68
|
-
::Delayed::Job.enqueue
|
|
66
|
+
::Delayed::Job.enqueue Vero::Jobs::RestPostJob.new(url, params)
|
|
67
|
+
Vero::App.log(self, "method: track, params: #{params.to_json}, response: delayed job queued")
|
|
69
68
|
end
|
|
70
69
|
rescue ActiveRecord::StatementInvalid => e
|
|
71
70
|
if e.message == "Could not find table 'delayed_jobs'"
|
|
@@ -79,7 +78,7 @@ module Vero
|
|
|
79
78
|
|
|
80
79
|
def validate_configured!
|
|
81
80
|
unless Vero::App.configured?
|
|
82
|
-
raise "You must configure the 'vero' gem. Visit https://
|
|
81
|
+
raise "You must configure the 'vero' gem. Visit https://github.com/semblancesystems/vero for more details."
|
|
83
82
|
end
|
|
84
83
|
end
|
|
85
84
|
|
data/lib/vero/version.rb
CHANGED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
module Vero
|
|
2
|
+
module ViewHelpers
|
|
3
|
+
def vero_javascript_tag(method = :default)
|
|
4
|
+
return "" unless Vero::App.configured?
|
|
5
|
+
|
|
6
|
+
unless [:default, :mixpanel, :kissmetrics].include?(method)
|
|
7
|
+
method = :default
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
method_name = method.to_s + "_vero_javascript_tag"
|
|
11
|
+
self.send(method_name.to_sym, Vero::App.config.config_params)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
private
|
|
15
|
+
def default_vero_javascript_tag(options = {})
|
|
16
|
+
content_tag :script, {type: "text/javascript"} do
|
|
17
|
+
result = "var _veroq = _veroq || [];" +
|
|
18
|
+
"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);" +
|
|
19
|
+
"_veroq.push(['init', {" +
|
|
20
|
+
options_to_string(options) +
|
|
21
|
+
"}]);" +
|
|
22
|
+
"(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);})();"
|
|
23
|
+
result.html_safe
|
|
24
|
+
end.html_safe
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def mixpanel_vero_javascript_tag(options = {})
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def kissmetrics_vero_javascript_tag(options = {})
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def options_to_string(options)
|
|
34
|
+
options = {} unless options.kind_of?(Hash)
|
|
35
|
+
result = options.keys.collect { |k| "#{k}: \"#{options[k]}\"" }
|
|
36
|
+
result.join(", ")
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
require 'action_view'
|
|
3
|
+
require 'active_support'
|
|
4
|
+
|
|
5
|
+
include Vero::ViewHelpers
|
|
6
|
+
include ActionView::Helpers
|
|
7
|
+
include ActionView::Context
|
|
8
|
+
|
|
9
|
+
describe Vero::ViewHelpers do
|
|
10
|
+
before :each do
|
|
11
|
+
Vero::App.reset!
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
describe :vero_javascript_tag do
|
|
15
|
+
it "should return an empty string if Vero::App is not properly configured" do
|
|
16
|
+
Vero::ViewHelpers.vero_javascript_tag.should == ""
|
|
17
|
+
|
|
18
|
+
Vero::App.init {}
|
|
19
|
+
Vero::ViewHelpers.vero_javascript_tag.should == ""
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
context "Vero::App has been properly configured" do
|
|
23
|
+
before :each do
|
|
24
|
+
@api_key = "abcd1234"
|
|
25
|
+
@api_secret = "secret"
|
|
26
|
+
@api_dev_mode = false
|
|
27
|
+
|
|
28
|
+
Vero::App.init do |c|
|
|
29
|
+
c.api_key = @api_key
|
|
30
|
+
c.secret = @api_secret
|
|
31
|
+
c.development_mode = @api_dev_mode
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it "should return a properly formatted javascript snippet" do
|
|
36
|
+
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>"
|
|
37
|
+
Vero::ViewHelpers.vero_javascript_tag.should == result
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
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
|
+
version: 0.2.0
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -88,16 +88,18 @@ files:
|
|
|
88
88
|
- lib/vero/app.rb
|
|
89
89
|
- lib/vero/config.rb
|
|
90
90
|
- lib/vero/jobs/rest_post_job.rb
|
|
91
|
+
- lib/vero/railtie.rb
|
|
91
92
|
- lib/vero/trackable.rb
|
|
92
93
|
- lib/vero/version.rb
|
|
94
|
+
- lib/vero/view_helpers.rb
|
|
93
95
|
- lib/vero.rb
|
|
94
96
|
- README.markdown
|
|
95
97
|
- spec/lib/app_spec.rb
|
|
96
98
|
- spec/lib/config_spec.rb
|
|
97
99
|
- spec/lib/trackable_spec.rb
|
|
100
|
+
- spec/lib/view_helpers_spec.rb
|
|
98
101
|
- spec/spec_helper.rb
|
|
99
102
|
- spec/support/user_support.rb
|
|
100
|
-
- vero-0.1.2.gem
|
|
101
103
|
- vero.gemspec
|
|
102
104
|
homepage: http://getvero.com/
|
|
103
105
|
licenses: []
|
|
@@ -127,5 +129,6 @@ test_files:
|
|
|
127
129
|
- spec/lib/app_spec.rb
|
|
128
130
|
- spec/lib/config_spec.rb
|
|
129
131
|
- spec/lib/trackable_spec.rb
|
|
132
|
+
- spec/lib/view_helpers_spec.rb
|
|
130
133
|
- spec/spec_helper.rb
|
|
131
134
|
- spec/support/user_support.rb
|
data/vero-0.1.2.gem
DELETED
|
Binary file
|