snogmetrics 0.1.9 → 0.2.1
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.
- checksums.yaml +7 -0
- data/.gitignore +23 -0
- data/.rubocop.yml +1 -0
- data/.rubocop_todo.yml +203 -0
- data/Gemfile.lock +128 -25
- data/README.mdown +11 -6
- data/Rakefile +5 -12
- data/lib/snogmetrics.rb +18 -130
- data/lib/snogmetrics/kissmetrics_api.rb +112 -0
- data/lib/snogmetrics/railtie.rb +0 -1
- data/snogmetrics.gemspec +18 -12
- metadata +100 -130
- data/example/snoggy/.gitignore +0 -1
- data/example/snoggy/README.mdown +0 -7
- data/example/snoggy/Rakefile +0 -10
- data/example/snoggy/app/controllers/application_controller.rb +0 -2
- data/example/snoggy/app/controllers/snogs_controller.rb +0 -9
- data/example/snoggy/app/views/layouts/application.html.erb +0 -12
- data/example/snoggy/app/views/snogs/new.html.erb +0 -11
- data/example/snoggy/app/views/snogs/thank_you.html.erb +0 -1
- data/example/snoggy/config/boot.rb +0 -110
- data/example/snoggy/config/environment.rb +0 -13
- data/example/snoggy/config/environments/development.rb +0 -6
- data/example/snoggy/config/environments/production.rb +0 -4
- data/example/snoggy/config/environments/test.rb +0 -6
- data/example/snoggy/config/initializers/snogmetrics.rb +0 -14
- data/example/snoggy/config/routes.rb +0 -4
- data/example/snoggy/script/about +0 -4
- data/example/snoggy/script/console +0 -3
- data/example/snoggy/script/dbconsole +0 -3
- data/example/snoggy/script/destroy +0 -3
- data/example/snoggy/script/generate +0 -3
- data/example/snoggy/script/performance/benchmarker +0 -3
- data/example/snoggy/script/performance/profiler +0 -3
- data/example/snoggy/script/plugin +0 -3
- data/example/snoggy/script/runner +0 -3
- data/example/snoggy/script/server +0 -3
- data/example/snoggy/vendor/plugins/snogmetrics/init.rb +0 -4
- data/rails/init.rb +0 -4
- data/spec/snogmetrics_spec.rb +0 -224
- data/spec/spec.opts +0 -2
- data/spec/spec_helper.rb +0 -15
data/lib/snogmetrics.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
require 'snogmetrics/railtie' if defined? Rails::Railtie
|
2
|
+
require 'snogmetrics/kissmetrics_api'
|
2
3
|
|
3
|
-
# If SNOGmetrics is used as a Rails plugin, this module is automatically mixed
|
4
|
-
# into ActionController::Base, so that it's #km method is available in
|
4
|
+
# If SNOGmetrics is used as a Rails plugin, this module is automatically mixed
|
5
|
+
# into ActionController::Base, so that it's #km method is available in
|
5
6
|
# controllers and in views.
|
6
7
|
#
|
7
8
|
# If not used as a Rails plugin, make sure that the context where Snogmetrics
|
@@ -16,21 +17,20 @@ require 'snogmetrics/railtie' if defined? Rails::Railtie
|
|
16
17
|
# The array output strategy simply logs all events in the _kmq variable.
|
17
18
|
# The live output strategy sends calls to the async KISSmetrics JS API.
|
18
19
|
#
|
19
|
-
# The default implementation outputs the real API only when
|
20
|
+
# The default implementation outputs the real API only when
|
20
21
|
# `Rails.env.production?` is true, and otherwise uses console.log
|
21
22
|
module Snogmetrics
|
22
|
-
VERSION = '0.1.
|
23
|
+
VERSION = '0.2.1'.freeze
|
24
|
+
|
25
|
+
class << self
|
26
|
+
attr_accessor :kissmetrics_api_key, :output_strategy
|
27
|
+
end
|
23
28
|
|
24
29
|
# Returns an instance of KissmetricsApi, which is an interface to the
|
25
30
|
# KISSmetrics API. It has the methods #record and #identify, which work just
|
26
31
|
# like the corresponding methods in the JavaScript API.
|
27
32
|
def km
|
28
|
-
@km_api ||= KissmetricsApi.new(kissmetrics_api_key, session, output_strategy)
|
29
|
-
end
|
30
|
-
|
31
|
-
# Override this method to set the KISSmetrics API key
|
32
|
-
def kissmetrics_api_key
|
33
|
-
''
|
33
|
+
@km_api ||= KissmetricsApi.new(Snogmetrics.kissmetrics_api_key, session, output_strategy)
|
34
34
|
end
|
35
35
|
|
36
36
|
# Override this method to set the output strategy.
|
@@ -40,135 +40,23 @@ module Snogmetrics
|
|
40
40
|
# :array store events pushed to KISSmetrics on _kmq
|
41
41
|
# :live send events to KISSmetrics via the async JS API
|
42
42
|
def output_strategy
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
43
|
+
Snogmetrics.output_strategy ||
|
44
|
+
if use_fake_kissmetrics_api?
|
45
|
+
:console_log
|
46
|
+
else
|
47
|
+
:live
|
48
|
+
end
|
48
49
|
end
|
49
|
-
|
50
|
+
|
50
51
|
# Deprecated: Prefer overriding #output_strategy to control the output strategy.
|
51
52
|
#
|
52
53
|
# Override this method to customize when the real API and when the stub API
|
53
54
|
# will be outputted.
|
54
55
|
def use_fake_kissmetrics_api?
|
55
56
|
if defined? Rails
|
56
|
-
!
|
57
|
+
!Rails.env.production?
|
57
58
|
else
|
58
59
|
false
|
59
60
|
end
|
60
61
|
end
|
61
|
-
|
62
|
-
|
63
|
-
private
|
64
|
-
|
65
|
-
class KissmetricsApi
|
66
|
-
# Do not instantiate KissmetricsApi yourself, instead mix in Snogmetrics
|
67
|
-
# and use it's #km method to get an instance of KissmetricsApi.
|
68
|
-
def initialize(api_key, session, output_strategy)
|
69
|
-
@session = session
|
70
|
-
@api_key = api_key
|
71
|
-
@output_strategy = output_strategy
|
72
|
-
end
|
73
|
-
|
74
|
-
# The equivalent of the `KM.record` method of the JavaScript API. You can
|
75
|
-
# pass either an event name, an event name and a hash of properties, or only
|
76
|
-
# a hash of properties.
|
77
|
-
def record(*args)
|
78
|
-
raise 'Not enough arguments' if args.size == 0
|
79
|
-
raise 'Too many arguments' if args.size > 2
|
80
|
-
|
81
|
-
queue << ['record', *args]
|
82
|
-
end
|
83
|
-
|
84
|
-
# The equivalent of the `KM.identify` method of the JavaScript API.
|
85
|
-
def identify(identity)
|
86
|
-
unless @session[:km_identity] == identity
|
87
|
-
queue.delete_if { |e| e.first == 'identify' }
|
88
|
-
queue << ['identify', identity]
|
89
|
-
@session[:km_identity] = identity
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
# The equivalent of the `KM.trackClick` method of the JavaScript API. The first
|
94
|
-
# argument should be a selector (a tag id or class name). Furthermore you can
|
95
|
-
# pass either an event name, an event name and a hash of properties, or only
|
96
|
-
# a hash of properties.
|
97
|
-
def trackClick(selector, *args)
|
98
|
-
raise 'Not enough arguments' if args.size == 0
|
99
|
-
raise 'Too many arguments' if args.size > 2
|
100
|
-
|
101
|
-
queue << ['trackClick', selector, *args]
|
102
|
-
end
|
103
|
-
|
104
|
-
# Register which variant the user saw in an A/B test.
|
105
|
-
def set(experiment, variant)
|
106
|
-
queue << ['set', { experiment => variant }]
|
107
|
-
end
|
108
|
-
|
109
|
-
# Equivalent to `js(:reset => true)`, i.e. returns the JavaScript code
|
110
|
-
# needed to load the KISSmetrics API and send the current state, and reset
|
111
|
-
# the state afterwards.
|
112
|
-
def js!
|
113
|
-
js(:reset => true)
|
114
|
-
end
|
115
|
-
|
116
|
-
# In most situations you want the #js! method instead of this one.
|
117
|
-
#
|
118
|
-
# Returns the JavaScript needed to send the current state to KISSmetrics.
|
119
|
-
# This includes the a JavaScript tag that loads the API code (or a fake API
|
120
|
-
# that sends events to the console or a global array if the `output_strategy`
|
121
|
-
# parameter to #initialize is :console_log or :array), as well as statements
|
122
|
-
# that push the current state onto the `_kmq` array.
|
123
|
-
#
|
124
|
-
# You can pass the option `:reset` to reset the state, this makes sure that
|
125
|
-
# subsequent calls to #js will not send events that have already been sent.
|
126
|
-
def js(options={})
|
127
|
-
options = {:reset => false}.merge(options)
|
128
|
-
|
129
|
-
buffer = queue.map { |item| %(_kmq.push(#{item.to_json});) }
|
130
|
-
|
131
|
-
queue.clear if options[:reset]
|
132
|
-
|
133
|
-
<<-JAVASCRIPT
|
134
|
-
<script type="text/javascript">
|
135
|
-
var _kmq = _kmq || [];
|
136
|
-
#{api_js}
|
137
|
-
#{buffer.join("\n")}
|
138
|
-
</script>
|
139
|
-
JAVASCRIPT
|
140
|
-
end
|
141
|
-
|
142
|
-
private
|
143
|
-
|
144
|
-
def queue
|
145
|
-
@session[:km_queue] ||= []
|
146
|
-
end
|
147
|
-
|
148
|
-
def api_js
|
149
|
-
if @output_strategy == :console_log
|
150
|
-
<<-JS
|
151
|
-
if (window.console) {
|
152
|
-
_kmq = (function(queue) {
|
153
|
-
var printCall = function() {
|
154
|
-
console.dir(arguments);
|
155
|
-
}
|
156
|
-
|
157
|
-
for (var i = 0; i < queue.length; i++) {
|
158
|
-
printCall.apply(null, queue[i]);
|
159
|
-
}
|
160
|
-
|
161
|
-
return {push: printCall};
|
162
|
-
})(_kmq);
|
163
|
-
}
|
164
|
-
JS
|
165
|
-
elsif @output_strategy == :live
|
166
|
-
%((function(){function _kms(u,d){if(navigator.appName.indexOf("Microsoft")==0 && d)document.write("<scr"+"ipt defer='defer' async='true' src='"+u+"'></scr"+"ipt>");else{var s=document.createElement('script');s.type='text/javascript';s.async=true;s.src=u;(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(s);}}_kms('https://i.kissmetrics.com/i.js');_kms('http'+('https:'==document.location.protocol ? 's://s3.amazonaws.com/' : '://')+'scripts.kissmetrics.com/#{@api_key}.1.js',1);})();)
|
167
|
-
elsif @output_strategy == :array
|
168
|
-
""
|
169
|
-
else
|
170
|
-
raise "Unknown KISSmetrics output strategy: #{@output_strategy}"
|
171
|
-
end
|
172
|
-
end
|
173
|
-
end
|
174
62
|
end
|
@@ -0,0 +1,112 @@
|
|
1
|
+
module Snogmetrics
|
2
|
+
class KissmetricsApi
|
3
|
+
# Do not instantiate KissmetricsApi yourself, instead mix in Snogmetrics
|
4
|
+
# and use it's #km method to get an instance of KissmetricsApi.
|
5
|
+
def initialize(api_key, session, output_strategy)
|
6
|
+
@session = session
|
7
|
+
@api_key = api_key
|
8
|
+
@output_strategy = output_strategy
|
9
|
+
end
|
10
|
+
|
11
|
+
# The equivalent of the `KM.record` method of the JavaScript API. You can
|
12
|
+
# pass either an event name, an event name and a hash of properties, or only
|
13
|
+
# a hash of properties.
|
14
|
+
def record(*args)
|
15
|
+
raise 'Not enough arguments' if args.empty?
|
16
|
+
raise 'Too many arguments' if args.size > 2
|
17
|
+
|
18
|
+
queue << ['record', *args]
|
19
|
+
end
|
20
|
+
|
21
|
+
# The equivalent of the `KM.identify` method of the JavaScript API.
|
22
|
+
def identify(identity)
|
23
|
+
unless @session[:km_identity] == identity
|
24
|
+
queue.delete_if { |e| e.first == 'identify' }
|
25
|
+
queue << ['identify', identity]
|
26
|
+
@session[:km_identity] = identity
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# The equivalent of the `KM.trackClick` method of the JavaScript API. The first
|
31
|
+
# argument should be a selector (a tag id or class name). Furthermore you can
|
32
|
+
# pass either an event name, an event name and a hash of properties, or only
|
33
|
+
# a hash of properties.
|
34
|
+
def trackClick(selector, *args)
|
35
|
+
raise 'Not enough arguments' if args.empty?
|
36
|
+
raise 'Too many arguments' if args.size > 2
|
37
|
+
|
38
|
+
queue << ['trackClick', selector, *args]
|
39
|
+
end
|
40
|
+
|
41
|
+
# Register which variant the user saw in an A/B test.
|
42
|
+
def set(experiment, variant)
|
43
|
+
queue << ['set', { experiment => variant }]
|
44
|
+
end
|
45
|
+
|
46
|
+
# Equivalent to `js(:reset => true)`, i.e. returns the JavaScript code
|
47
|
+
# needed to load the KISSmetrics API and send the current state, and reset
|
48
|
+
# the state afterwards.
|
49
|
+
def js!
|
50
|
+
js(reset: true)
|
51
|
+
end
|
52
|
+
|
53
|
+
# In most situations you want the #js! method instead of this one.
|
54
|
+
#
|
55
|
+
# Returns the JavaScript needed to send the current state to KISSmetrics.
|
56
|
+
# This includes the a JavaScript tag that loads the API code (or a fake API
|
57
|
+
# that sends events to the console or a global array if the `output_strategy`
|
58
|
+
# parameter to #initialize is :console_log or :array), as well as statements
|
59
|
+
# that push the current state onto the `_kmq` array.
|
60
|
+
#
|
61
|
+
# You can pass the option `:reset` to reset the state, this makes sure that
|
62
|
+
# subsequent calls to #js will not send events that have already been sent.
|
63
|
+
def js(options = {})
|
64
|
+
options = { reset: false }.merge(options)
|
65
|
+
|
66
|
+
buffer = queue.map { |item| %(_kmq.push(#{item.to_json});) }
|
67
|
+
|
68
|
+
queue.clear if options[:reset]
|
69
|
+
|
70
|
+
<<-JAVASCRIPT
|
71
|
+
<script type="text/javascript">
|
72
|
+
var _kmq = _kmq || [];
|
73
|
+
#{api_js}
|
74
|
+
#{buffer.join("\n")}
|
75
|
+
</script>
|
76
|
+
JAVASCRIPT
|
77
|
+
end
|
78
|
+
|
79
|
+
private
|
80
|
+
|
81
|
+
def queue
|
82
|
+
@session[:km_queue] ||= []
|
83
|
+
end
|
84
|
+
|
85
|
+
def api_js
|
86
|
+
case @output_strategy
|
87
|
+
when :console_log
|
88
|
+
<<-JS
|
89
|
+
if (window.console) {
|
90
|
+
_kmq = (function(queue) {
|
91
|
+
var printCall = function() {
|
92
|
+
console.dir(arguments);
|
93
|
+
}
|
94
|
+
|
95
|
+
for (var i = 0; i < queue.length; i++) {
|
96
|
+
printCall.apply(null, queue[i]);
|
97
|
+
}
|
98
|
+
|
99
|
+
return {push: printCall};
|
100
|
+
})(_kmq);
|
101
|
+
}
|
102
|
+
JS
|
103
|
+
when :live
|
104
|
+
%(function _kms(e){setTimeout(function(){var s=document,t=s.getElementsByTagName("script")[0],c=s.createElement("script");c.type="text/javascript",c.async=!0,c.src=e,t.parentNode.insertBefore(c,t)},1)}_kms("//i.kissmetrics.com/i.js"),_kms("//scripts.kissmetrics.com/#{@api_key}.2.js");)
|
105
|
+
when :array
|
106
|
+
''
|
107
|
+
else
|
108
|
+
raise "Unknown KISSmetrics output strategy: #{@output_strategy}"
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
data/lib/snogmetrics/railtie.rb
CHANGED
data/snogmetrics.gemspec
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
|
2
|
+
|
3
|
+
lib = File.expand_path('../lib', __FILE__)
|
4
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
|
+
|
6
|
+
require 'snogmetrics'
|
3
7
|
|
4
8
|
Gem::Specification.new do |s|
|
5
9
|
s.name = 'snogmetrics'
|
@@ -10,19 +14,21 @@ Gem::Specification.new do |s|
|
|
10
14
|
s.homepage = 'http://github.org/iconara/snogmetrics'
|
11
15
|
s.summary = 'SNOGmetrics is a KISSmetrics helper for Rails'
|
12
16
|
s.description = 'SNOGmetrics gives you the best of both worlds: access to KISSmetrics\' JavaScript API through Ruby'
|
17
|
+
s.license = 'MIT'
|
13
18
|
|
14
19
|
s.required_rubygems_version = '>= 1.3.6'
|
15
|
-
s.rubyforge_project = 'snogmetrics'
|
16
20
|
|
17
|
-
s.
|
18
|
-
|
19
|
-
|
20
|
-
s.
|
21
|
-
s.
|
22
|
-
s.
|
23
|
-
s.add_development_dependency 'rcov'
|
21
|
+
s.files = `git ls-files -z`.split("\x0").reject do |f|
|
22
|
+
f.match(%r{^(test|spec|features|example)/})
|
23
|
+
end
|
24
|
+
s.bindir = 'bin'
|
25
|
+
s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
26
|
+
s.require_paths = ['lib']
|
24
27
|
|
25
|
-
s.
|
26
|
-
s.
|
27
|
-
s.
|
28
|
+
s.add_development_dependency 'bundler', '~> 1.14'
|
29
|
+
s.add_development_dependency 'rake', '~> 12.0'
|
30
|
+
s.add_development_dependency 'yard', '~> 0.9'
|
31
|
+
s.add_development_dependency 'rails', '~> 4.2'
|
32
|
+
s.add_development_dependency 'rspec', '~> 3.6'
|
33
|
+
s.add_development_dependency 'rubocop', '~> 0.49'
|
28
34
|
end
|
metadata
CHANGED
@@ -1,173 +1,143 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: snogmetrics
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
version: 0.1.9
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.1
|
6
5
|
platform: ruby
|
7
|
-
authors:
|
6
|
+
authors:
|
8
7
|
- Theo Hultberg
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
dependencies:
|
16
|
-
- !ruby/object:Gem::Dependency
|
11
|
+
date: 2017-07-14 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
17
14
|
name: bundler
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
- !ruby/object:Gem::Version
|
24
|
-
version: 1.0.0
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.14'
|
25
20
|
type: :development
|
26
|
-
version_requirements: *id001
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: rake
|
29
21
|
prerelease: false
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.14'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '12.0'
|
36
34
|
type: :development
|
37
|
-
version_requirements: *id002
|
38
|
-
- !ruby/object:Gem::Dependency
|
39
|
-
name: yard
|
40
35
|
prerelease: false
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '12.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: yard
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0.9'
|
47
48
|
type: :development
|
48
|
-
version_requirements: *id003
|
49
|
-
- !ruby/object:Gem::Dependency
|
50
|
-
name: BlueCloth
|
51
49
|
prerelease: false
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
type: :development
|
59
|
-
version_requirements: *id004
|
60
|
-
- !ruby/object:Gem::Dependency
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.9'
|
55
|
+
- !ruby/object:Gem::Dependency
|
61
56
|
name: rails
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: "0"
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '4.2'
|
69
62
|
type: :development
|
70
|
-
version_requirements: *id005
|
71
|
-
- !ruby/object:Gem::Dependency
|
72
|
-
name: rspec
|
73
63
|
prerelease: false
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '4.2'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '3.6'
|
80
76
|
type: :development
|
81
|
-
version_requirements: *id006
|
82
|
-
- !ruby/object:Gem::Dependency
|
83
|
-
name: rcov
|
84
77
|
prerelease: false
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '3.6'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rubocop
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0.49'
|
91
90
|
type: :development
|
92
|
-
|
93
|
-
|
94
|
-
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0.49'
|
97
|
+
description: 'SNOGmetrics gives you the best of both worlds: access to KISSmetrics''
|
98
|
+
JavaScript API through Ruby'
|
99
|
+
email:
|
95
100
|
- theo@iconara.net
|
96
101
|
executables: []
|
97
|
-
|
98
102
|
extensions: []
|
99
|
-
|
100
103
|
extra_rdoc_files: []
|
101
|
-
|
102
|
-
|
103
|
-
- .
|
104
|
-
- .
|
104
|
+
files:
|
105
|
+
- ".document"
|
106
|
+
- ".gitignore"
|
107
|
+
- ".rubocop.yml"
|
108
|
+
- ".rubocop_todo.yml"
|
105
109
|
- CHANGELOG.mdown
|
106
110
|
- Gemfile
|
107
111
|
- Gemfile.lock
|
108
112
|
- LICENSE
|
109
113
|
- README.mdown
|
110
114
|
- Rakefile
|
111
|
-
- example/snoggy/.gitignore
|
112
|
-
- example/snoggy/README.mdown
|
113
|
-
- example/snoggy/Rakefile
|
114
|
-
- example/snoggy/app/controllers/application_controller.rb
|
115
|
-
- example/snoggy/app/controllers/snogs_controller.rb
|
116
|
-
- example/snoggy/app/views/layouts/application.html.erb
|
117
|
-
- example/snoggy/app/views/snogs/new.html.erb
|
118
|
-
- example/snoggy/app/views/snogs/thank_you.html.erb
|
119
|
-
- example/snoggy/config/boot.rb
|
120
|
-
- example/snoggy/config/environment.rb
|
121
|
-
- example/snoggy/config/environments/development.rb
|
122
|
-
- example/snoggy/config/environments/production.rb
|
123
|
-
- example/snoggy/config/environments/test.rb
|
124
|
-
- example/snoggy/config/initializers/snogmetrics.rb
|
125
|
-
- example/snoggy/config/routes.rb
|
126
|
-
- example/snoggy/script/about
|
127
|
-
- example/snoggy/script/console
|
128
|
-
- example/snoggy/script/dbconsole
|
129
|
-
- example/snoggy/script/destroy
|
130
|
-
- example/snoggy/script/generate
|
131
|
-
- example/snoggy/script/performance/benchmarker
|
132
|
-
- example/snoggy/script/performance/profiler
|
133
|
-
- example/snoggy/script/plugin
|
134
|
-
- example/snoggy/script/runner
|
135
|
-
- example/snoggy/script/server
|
136
|
-
- example/snoggy/vendor/plugins/snogmetrics/init.rb
|
137
115
|
- lib/snogmetrics.rb
|
116
|
+
- lib/snogmetrics/kissmetrics_api.rb
|
138
117
|
- lib/snogmetrics/railtie.rb
|
139
|
-
- rails/init.rb
|
140
118
|
- snogmetrics.gemspec
|
141
|
-
- spec/snogmetrics_spec.rb
|
142
|
-
- spec/spec.opts
|
143
|
-
- spec/spec_helper.rb
|
144
|
-
has_rdoc: true
|
145
119
|
homepage: http://github.org/iconara/snogmetrics
|
146
|
-
licenses:
|
147
|
-
|
120
|
+
licenses:
|
121
|
+
- MIT
|
122
|
+
metadata: {}
|
148
123
|
post_install_message:
|
149
124
|
rdoc_options: []
|
150
|
-
|
151
|
-
require_paths:
|
125
|
+
require_paths:
|
152
126
|
- lib
|
153
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
154
|
-
|
155
|
-
requirements:
|
127
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
156
129
|
- - ">="
|
157
|
-
- !ruby/object:Gem::Version
|
158
|
-
version:
|
159
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
160
|
-
|
161
|
-
requirements:
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
133
|
+
requirements:
|
162
134
|
- - ">="
|
163
|
-
- !ruby/object:Gem::Version
|
135
|
+
- !ruby/object:Gem::Version
|
164
136
|
version: 1.3.6
|
165
137
|
requirements: []
|
166
|
-
|
167
|
-
|
168
|
-
rubygems_version: 1.5.2
|
138
|
+
rubyforge_project:
|
139
|
+
rubygems_version: 2.5.1
|
169
140
|
signing_key:
|
170
|
-
specification_version:
|
141
|
+
specification_version: 4
|
171
142
|
summary: SNOGmetrics is a KISSmetrics helper for Rails
|
172
143
|
test_files: []
|
173
|
-
|