vero 0.1.3 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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