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.
Files changed (42) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +23 -0
  3. data/.rubocop.yml +1 -0
  4. data/.rubocop_todo.yml +203 -0
  5. data/Gemfile.lock +128 -25
  6. data/README.mdown +11 -6
  7. data/Rakefile +5 -12
  8. data/lib/snogmetrics.rb +18 -130
  9. data/lib/snogmetrics/kissmetrics_api.rb +112 -0
  10. data/lib/snogmetrics/railtie.rb +0 -1
  11. data/snogmetrics.gemspec +18 -12
  12. metadata +100 -130
  13. data/example/snoggy/.gitignore +0 -1
  14. data/example/snoggy/README.mdown +0 -7
  15. data/example/snoggy/Rakefile +0 -10
  16. data/example/snoggy/app/controllers/application_controller.rb +0 -2
  17. data/example/snoggy/app/controllers/snogs_controller.rb +0 -9
  18. data/example/snoggy/app/views/layouts/application.html.erb +0 -12
  19. data/example/snoggy/app/views/snogs/new.html.erb +0 -11
  20. data/example/snoggy/app/views/snogs/thank_you.html.erb +0 -1
  21. data/example/snoggy/config/boot.rb +0 -110
  22. data/example/snoggy/config/environment.rb +0 -13
  23. data/example/snoggy/config/environments/development.rb +0 -6
  24. data/example/snoggy/config/environments/production.rb +0 -4
  25. data/example/snoggy/config/environments/test.rb +0 -6
  26. data/example/snoggy/config/initializers/snogmetrics.rb +0 -14
  27. data/example/snoggy/config/routes.rb +0 -4
  28. data/example/snoggy/script/about +0 -4
  29. data/example/snoggy/script/console +0 -3
  30. data/example/snoggy/script/dbconsole +0 -3
  31. data/example/snoggy/script/destroy +0 -3
  32. data/example/snoggy/script/generate +0 -3
  33. data/example/snoggy/script/performance/benchmarker +0 -3
  34. data/example/snoggy/script/performance/profiler +0 -3
  35. data/example/snoggy/script/plugin +0 -3
  36. data/example/snoggy/script/runner +0 -3
  37. data/example/snoggy/script/server +0 -3
  38. data/example/snoggy/vendor/plugins/snogmetrics/init.rb +0 -4
  39. data/rails/init.rb +0 -4
  40. data/spec/snogmetrics_spec.rb +0 -224
  41. data/spec/spec.opts +0 -2
  42. data/spec/spec_helper.rb +0 -15
@@ -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.9'
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
- if use_fake_kissmetrics_api?
44
- :console_log
45
- else
46
- :live
47
- end
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
- ! Rails.env.production?
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
@@ -1,7 +1,6 @@
1
1
  require 'snogmetrics'
2
2
  require 'rails'
3
3
 
4
-
5
4
  module Snogmetrics
6
5
  class Railtie < Rails::Railtie
7
6
  config.after_initialize do
@@ -1,5 +1,9 @@
1
1
  # -*- encoding: utf-8 -*-
2
- require File.expand_path('../lib/snogmetrics', __FILE__)
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.add_development_dependency 'bundler', '~> 1.0.0'
18
- s.add_development_dependency 'rake', '~> 0.8.7'
19
- s.add_development_dependency 'yard'
20
- s.add_development_dependency 'BlueCloth'
21
- s.add_development_dependency 'rails'
22
- s.add_development_dependency 'rspec'
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.files = `git ls-files`.split("\n")
26
- s.executables = `git ls-files`.split("\n").map{|f| f =~ /^bin\/(.*)/ ? $1 : nil}.compact
27
- s.require_path = 'lib'
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
- prerelease:
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
- date: 2011-08-30 00:00:00 +02:00
14
- default_executable:
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
- prerelease: false
19
- requirement: &id001 !ruby/object:Gem::Requirement
20
- none: false
21
- requirements:
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
- requirement: &id002 !ruby/object:Gem::Requirement
31
- none: false
32
- requirements:
33
- - - ~>
34
- - !ruby/object:Gem::Version
35
- version: 0.8.7
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
- requirement: &id003 !ruby/object:Gem::Requirement
42
- none: false
43
- requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: "0"
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
- requirement: &id004 !ruby/object:Gem::Requirement
53
- none: false
54
- requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
57
- version: "0"
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
- prerelease: false
63
- requirement: &id005 !ruby/object:Gem::Requirement
64
- none: false
65
- requirements:
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
- requirement: &id006 !ruby/object:Gem::Requirement
75
- none: false
76
- requirements:
77
- - - ">="
78
- - !ruby/object:Gem::Version
79
- version: "0"
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
- requirement: &id007 !ruby/object:Gem::Requirement
86
- none: false
87
- requirements:
88
- - - ">="
89
- - !ruby/object:Gem::Version
90
- version: "0"
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
- version_requirements: *id007
93
- description: "SNOGmetrics gives you the best of both worlds: access to KISSmetrics' JavaScript API through Ruby"
94
- email:
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
- files:
103
- - .document
104
- - .gitignore
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
- none: false
155
- requirements:
127
+ required_ruby_version: !ruby/object:Gem::Requirement
128
+ requirements:
156
129
  - - ">="
157
- - !ruby/object:Gem::Version
158
- version: "0"
159
- required_rubygems_version: !ruby/object:Gem::Requirement
160
- none: false
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
- rubyforge_project: snogmetrics
168
- rubygems_version: 1.5.2
138
+ rubyforge_project:
139
+ rubygems_version: 2.5.1
169
140
  signing_key:
170
- specification_version: 3
141
+ specification_version: 4
171
142
  summary: SNOGmetrics is a KISSmetrics helper for Rails
172
143
  test_files: []
173
-