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 CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- vero (0.1.2)
4
+ vero (0.1.3)
5
5
  delayed_job
6
6
  delayed_job_active_record
7
7
  delayed_job_mongoid
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
@@ -12,4 +12,6 @@ end
12
12
 
13
13
  if defined? Mongoid
14
14
  require 'delayed_job_mongoid'
15
- end
15
+ end
16
+
17
+ require 'vero/railtie' if defined?(Rails)
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, :configured, :disabled
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
@@ -0,0 +1,8 @@
1
+ require 'vero/view_helpers'
2
+ module Vero
3
+ class Railtie < Rails::Railtie
4
+ initializer "vero.view_helpers" do
5
+ ActionView::Base.send :include, ViewHelpers
6
+ end
7
+ end
8
+ end
@@ -52,20 +52,19 @@ module Vero
52
52
  def post_now(url, params)
53
53
  begin
54
54
  execute_unless_disabled do
55
- job = Vero::Jobs::RestPostJob.new(url, params)
56
- job.perform
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
- Rails.logger.info "Vero: Error attempting to track event: #{params.to_s} error: #{e.message}" if defined? Rails && Rails.logger
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 job
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://bitbucket.org/semblance/vero/overview for more details."
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
@@ -1,3 +1,3 @@
1
1
  module Vero
2
- VERSION = '0.1.3'
2
+ VERSION = '0.2.0'
3
3
  end
@@ -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.1.3
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