exvo_helpers 0.3.0 → 0.4.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/CHANGELOG.md +7 -0
- data/README.md +21 -1
- data/lib/exvo_helpers/helpers.rb +5 -4
- data/lib/exvo_helpers/version.rb +1 -1
- data/lib/exvo_helpers/view_helpers.rb +31 -3
- data/spec/exvo_helpers/helpers_spec.rb +9 -3
- data/spec/exvo_helpers/view_helpers_spec.rb +14 -0
- metadata +52 -17
data/CHANGELOG.md
CHANGED
@@ -2,10 +2,17 @@
|
|
2
2
|
|
3
3
|
Note, that only significant changes are listed.
|
4
4
|
|
5
|
+
## 0.4.0 (2012-05-15)
|
6
|
+
|
7
|
+
* support for Sinatra apps (use `ENV["RACK_ENV"]` to set environment)
|
8
|
+
* `kissmetrics` view helper
|
9
|
+
|
10
|
+
|
5
11
|
## 0.3.0 (2012-04-18)
|
6
12
|
|
7
13
|
* different syntax for `google_analytics` view helper
|
8
14
|
|
15
|
+
|
9
16
|
## 0.2.2 (2012-01-30)
|
10
17
|
|
11
18
|
* `google_analytics` view helper
|
data/README.md
CHANGED
@@ -147,7 +147,7 @@ Note, that this helper does not support full API of Rails' `stylesheet_link_tag`
|
|
147
147
|
|
148
148
|
### google_analytics(account, opts = {})
|
149
149
|
|
150
|
-
|
150
|
+
Asynchronous Google Analytics javascript snippet to track page views. Note, that it will output the javascript analytics snippet only in production environment.
|
151
151
|
|
152
152
|
```ruby
|
153
153
|
= google_analytics('UA-2491324-1', :domain => 'none', :track_hash_changes => true)
|
@@ -162,5 +162,25 @@ New, asynchronous Google Analytics javascript snippet to track page views. Note,
|
|
162
162
|
```
|
163
163
|
|
164
164
|
|
165
|
+
### kissmetrics
|
166
|
+
|
167
|
+
KISSmetrics javascript snippet to track users. Note, that you need to have `ENV["KISSMETRICS_KEY"]` key set.
|
168
|
+
|
169
|
+
```ruby
|
170
|
+
= kissmetrics
|
171
|
+
```
|
172
|
+
|
173
|
+
=>
|
174
|
+
|
175
|
+
```html
|
176
|
+
<script type="text/javascript">
|
177
|
+
var _kmq = _kmq || [];
|
178
|
+
function _kms(u) {
|
179
|
+
setTimeout(function() {
|
180
|
+
...
|
181
|
+
```
|
182
|
+
|
183
|
+
|
184
|
+
|
165
185
|
|
166
186
|
Copyright © 2011-2012 Exvo.com Development BV, released under the MIT license
|
data/lib/exvo_helpers/helpers.rb
CHANGED
@@ -117,6 +117,7 @@ module Exvo
|
|
117
117
|
def self.env
|
118
118
|
@@env ||= Rails.env if defined?(Rails)
|
119
119
|
@@env ||= Merb.env if defined?(Merb)
|
120
|
+
@@env ||= ENV["RACK_ENV"] if ENV["RACK_ENV"]
|
120
121
|
@@env ||= 'production'
|
121
122
|
end
|
122
123
|
|
@@ -153,10 +154,10 @@ module Exvo
|
|
153
154
|
:desktop_host => 'www.exvo.co',
|
154
155
|
:themes_host => 'staging.themes.exvo.com',
|
155
156
|
:blog_host => 'staging.blog.exvo.com',
|
156
|
-
:contacts_host => '
|
157
|
-
:inbox_host => '
|
158
|
-
:music_host => '
|
159
|
-
:pics_host => '
|
157
|
+
:contacts_host => 'staging.contacts.exvo.com',
|
158
|
+
:inbox_host => 'staging.inbox.exvo.com',
|
159
|
+
:music_host => 'staging.music.exvo.com',
|
160
|
+
:pics_host => 'staging.pics.exvo.com',
|
160
161
|
:preview_host => 'staging.preview.exvo.com'
|
161
162
|
},
|
162
163
|
:development => {
|
data/lib/exvo_helpers/version.rb
CHANGED
@@ -5,9 +5,7 @@ module Exvo
|
|
5
5
|
# Returns `javascript_include_tag` with link to js bundles (based on env)
|
6
6
|
def javascript_bundle_include_tag(bundle)
|
7
7
|
case Exvo::Helpers.env.to_sym
|
8
|
-
when :production
|
9
|
-
javascript_include_tag "#{Exvo::Helpers.cdn_uri}/javascripts/#{bundle}.js"
|
10
|
-
when :staging
|
8
|
+
when :production, :staging
|
11
9
|
javascript_include_tag "#{Exvo::Helpers.cdn_uri}/javascripts/#{bundle}.js"
|
12
10
|
else
|
13
11
|
javascript_include_tag "#{Exvo::Helpers.cdn_uri}/javascripts/bundles/#{bundle}.js"
|
@@ -77,6 +75,36 @@ END
|
|
77
75
|
end
|
78
76
|
end
|
79
77
|
|
78
|
+
def kissmetrics
|
79
|
+
out = <<END
|
80
|
+
<script type="text/javascript">
|
81
|
+
var _kmq = _kmq || [];
|
82
|
+
function _kms(u) {
|
83
|
+
setTimeout(function() {
|
84
|
+
var s = document.createElement('script');
|
85
|
+
var f = document.getElementsByTagName('script')[0];
|
86
|
+
s.type = 'text/javascript';
|
87
|
+
s.async = true;
|
88
|
+
s.src = u;
|
89
|
+
f.parentNode.insertBefore(s, f);
|
90
|
+
}, 1);
|
91
|
+
}
|
92
|
+
_kms('//i.kissmetrics.com/i.js');
|
93
|
+
_kms('//doug1izaerwt3.cloudfront.net/#{ENV['KISSMETRICS_KEY']}.1.js');
|
94
|
+
END
|
95
|
+
if current_user && current_user.email
|
96
|
+
out += <<END
|
97
|
+
_kmq.push(['identify', '#{current_user.email}']);
|
98
|
+
END
|
99
|
+
end
|
100
|
+
|
101
|
+
out += <<END
|
102
|
+
</script>
|
103
|
+
END
|
104
|
+
|
105
|
+
out.respond_to?(:html_safe) ? out.html_safe : out
|
106
|
+
end
|
107
|
+
|
80
108
|
end
|
81
109
|
|
82
110
|
end
|
@@ -7,13 +7,19 @@ describe Exvo::Helpers do
|
|
7
7
|
Exvo::Helpers.env.should eql('production')
|
8
8
|
end
|
9
9
|
|
10
|
-
it "returns '
|
10
|
+
it "returns 'staging' when Rails.env is set to 'staging'" do
|
11
11
|
Kernel.const_set(:Rails, Module)
|
12
|
-
Rails.should_receive(:env).and_return('
|
13
|
-
Exvo::Helpers.env.should eql('
|
12
|
+
Rails.should_receive(:env).and_return('staging')
|
13
|
+
Exvo::Helpers.env.should eql('staging')
|
14
14
|
Kernel.send(:remove_const, :Rails)
|
15
15
|
end
|
16
16
|
|
17
|
+
it "returns 'staging' when RACK_ENV is set to 'staging'" do
|
18
|
+
ENV["RACK_ENV"] = 'staging'
|
19
|
+
Exvo::Helpers.env.should eql('staging')
|
20
|
+
ENV.delete("RACK_ENV")
|
21
|
+
end
|
22
|
+
|
17
23
|
it "allows setting env" do
|
18
24
|
Exvo::Helpers.env = 'test'
|
19
25
|
Exvo::Helpers.env.should eql('test')
|
@@ -38,4 +38,18 @@ describe Exvo::ViewHelpers do
|
|
38
38
|
specify { snippet.should match(/window.location.hash/) }
|
39
39
|
end
|
40
40
|
|
41
|
+
describe "#kissmetrics" do
|
42
|
+
let(:snippet) { view_helper.kissmetrics }
|
43
|
+
let(:email) { "me@me.com" }
|
44
|
+
let(:current_user) { Struct.new(:email).new(email) }
|
45
|
+
|
46
|
+
before do
|
47
|
+
view_helper.should_receive(:current_user).at_least(1).times.and_return(current_user)
|
48
|
+
end
|
49
|
+
|
50
|
+
specify { snippet.should match(/<script type="text\/javascript">/) }
|
51
|
+
specify { snippet.should match(/kissmetrics\.com/) }
|
52
|
+
specify { snippet.should match(%r(identify.+#{email})) }
|
53
|
+
end
|
54
|
+
|
41
55
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: exvo_helpers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-05-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: '2.8'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '2.8'
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: guard
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: 0.10.0
|
33
38
|
type: :development
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 0.10.0
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: guard-rspec
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ! '>='
|
@@ -43,10 +53,15 @@ dependencies:
|
|
43
53
|
version: 0.6.0
|
44
54
|
type: :development
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.6.0
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: rb-fsevent
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ! '>='
|
@@ -54,10 +69,15 @@ dependencies:
|
|
54
69
|
version: '0'
|
55
70
|
type: :development
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
58
78
|
- !ruby/object:Gem::Dependency
|
59
79
|
name: rb-inotify
|
60
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
61
81
|
none: false
|
62
82
|
requirements:
|
63
83
|
- - ! '>='
|
@@ -65,10 +85,15 @@ dependencies:
|
|
65
85
|
version: '0'
|
66
86
|
type: :development
|
67
87
|
prerelease: false
|
68
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
69
94
|
- !ruby/object:Gem::Dependency
|
70
95
|
name: simplecov
|
71
|
-
requirement:
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
72
97
|
none: false
|
73
98
|
requirements:
|
74
99
|
- - ! '>='
|
@@ -76,10 +101,15 @@ dependencies:
|
|
76
101
|
version: '0'
|
77
102
|
type: :development
|
78
103
|
prerelease: false
|
79
|
-
version_requirements:
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
80
110
|
- !ruby/object:Gem::Dependency
|
81
111
|
name: simplecov-rcov
|
82
|
-
requirement:
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
83
113
|
none: false
|
84
114
|
requirements:
|
85
115
|
- - ! '>='
|
@@ -87,7 +117,12 @@ dependencies:
|
|
87
117
|
version: '0'
|
88
118
|
type: :development
|
89
119
|
prerelease: false
|
90
|
-
version_requirements:
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
91
126
|
description: Ruby gem providing various helper methods, like auth_host, auth_uri,
|
92
127
|
auth_require_ssl, cdn_host, etc.
|
93
128
|
email:
|
@@ -131,7 +166,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
131
166
|
version: '0'
|
132
167
|
requirements: []
|
133
168
|
rubyforge_project:
|
134
|
-
rubygems_version: 1.8.
|
169
|
+
rubygems_version: 1.8.24
|
135
170
|
signing_key:
|
136
171
|
specification_version: 3
|
137
172
|
summary: Collection of helper methods for various Exvo related apps/services
|