yandex_metrika 0.0.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/.document +5 -0
- data/.gitignore +5 -0
- data/LICENSE +20 -0
- data/README.rdoc +18 -0
- data/Rakefile +65 -0
- data/VERSION +1 -0
- data/lib/yandex.rb +2 -0
- data/lib/yandex/metrika.rb +81 -0
- data/rails/init.rb +3 -0
- data/test/test_helper.rb +7 -0
- data/test/yandex_metrika_test.rb +122 -0
- data/yandex_metrika.gemspec +60 -0
- metadata +90 -0
data/.document
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2009 Andrey "Zed" Zaikin
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
= yandex_metrika
|
2
|
+
|
3
|
+
Description goes here.
|
4
|
+
|
5
|
+
== Note on Patches/Pull Requests
|
6
|
+
|
7
|
+
* Fork the project.
|
8
|
+
* Make your feature addition or bug fix.
|
9
|
+
* Add tests for it. This is important so I don't break it in a
|
10
|
+
future version unintentionally.
|
11
|
+
* Commit, do not mess with rakefile, version, or history.
|
12
|
+
(if you want to have your own version, that is fine but
|
13
|
+
bump version in a commit by itself I can ignore when I pull)
|
14
|
+
* Send me a pull request. Bonus points for topic branches.
|
15
|
+
|
16
|
+
== Copyright
|
17
|
+
|
18
|
+
Copyright (c) 2009 Andrey "Zed" Zaikin. See LICENSE for details.
|
data/Rakefile
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'jeweler'
|
6
|
+
Jeweler::Tasks.new do |gem|
|
7
|
+
gem.name = "yandex_metrika"
|
8
|
+
gem.summary = "[Rails] Easily enable Yandex.Metrika support in your Rails application."
|
9
|
+
gem.description = 'By default this gem will output Yandex.Metrika code for ' +
|
10
|
+
"every page automagically, if it's configured correctly. " +
|
11
|
+
"This is done by adding:\n" +
|
12
|
+
"Yandex::Metrika.counter_id = '123456'\n" +
|
13
|
+
'to your `config/environment.rb`, inserting your own COUNTER_ID. ' +
|
14
|
+
'This can be discovered by looking at the value of "new Ya.Metrika(123456)" ' +
|
15
|
+
'in the Javascript code.'
|
16
|
+
|
17
|
+
gem.email = "zed.0xff@gmail.com"
|
18
|
+
gem.homepage = "http://github.com/zed-0xff/yandex_metrika"
|
19
|
+
gem.authors = ["Andrey \"Zed\" Zaikin"]
|
20
|
+
#gem.add_development_dependency "thoughtbot-shoulda"
|
21
|
+
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
22
|
+
gem.add_dependency 'actionpack', '>= 2.3.3'
|
23
|
+
gem.add_dependency 'activesupport', '>= 2.3.3'
|
24
|
+
end
|
25
|
+
rescue LoadError
|
26
|
+
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
27
|
+
end
|
28
|
+
|
29
|
+
require 'rake/testtask'
|
30
|
+
Rake::TestTask.new(:test) do |test|
|
31
|
+
test.libs << 'lib' << 'test'
|
32
|
+
test.pattern = 'test/**/*_test.rb'
|
33
|
+
test.verbose = true
|
34
|
+
end
|
35
|
+
|
36
|
+
begin
|
37
|
+
require 'rcov/rcovtask'
|
38
|
+
Rcov::RcovTask.new do |test|
|
39
|
+
test.libs << 'test'
|
40
|
+
test.pattern = 'test/**/*_test.rb'
|
41
|
+
test.verbose = true
|
42
|
+
end
|
43
|
+
rescue LoadError
|
44
|
+
task :rcov do
|
45
|
+
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
task :test => :check_dependencies
|
50
|
+
|
51
|
+
task :default => :test
|
52
|
+
|
53
|
+
require 'rake/rdoctask'
|
54
|
+
Rake::RDocTask.new do |rdoc|
|
55
|
+
if File.exist?('VERSION')
|
56
|
+
version = File.read('VERSION')
|
57
|
+
else
|
58
|
+
version = ""
|
59
|
+
end
|
60
|
+
|
61
|
+
rdoc.rdoc_dir = 'rdoc'
|
62
|
+
rdoc.title = "yandex_metrika #{version}"
|
63
|
+
rdoc.rdoc_files.include('README*')
|
64
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
65
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.0.0
|
data/lib/yandex.rb
ADDED
@@ -0,0 +1,81 @@
|
|
1
|
+
require 'active_support'
|
2
|
+
require 'action_pack'
|
3
|
+
require 'action_view'
|
4
|
+
|
5
|
+
module Yandex # :nodoc:
|
6
|
+
class Metrika
|
7
|
+
|
8
|
+
# This module gets mixed in to ActionController::Base
|
9
|
+
module Mixin
|
10
|
+
# The javascript code to enable Yandex.Metrika on the current page.
|
11
|
+
# Normally you won't need to call this directly; the +add_metrika_code+
|
12
|
+
# after filter will insert it for you.
|
13
|
+
def metrika_code
|
14
|
+
Metrika.code if Metrika.enabled?(request.format)
|
15
|
+
end
|
16
|
+
|
17
|
+
# An after_filter to automatically add the metrika code.
|
18
|
+
def add_metrika_code
|
19
|
+
if Metrika.defer_load
|
20
|
+
response.body.sub! /<\/[bB][oO][dD][yY]>/, "#{metrika_code}</body>" if response.body.respond_to?(:sub!)
|
21
|
+
else
|
22
|
+
response.body.sub! /(<[bB][oO][dD][yY][^>]*>)/, "\\1#{metrika_code}" if response.body.respond_to?(:sub!)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
class ConfigurationError < StandardError; end
|
28
|
+
|
29
|
+
@@counter_id = nil
|
30
|
+
##
|
31
|
+
# :singleton-method:
|
32
|
+
# Specify the Yandex.Metrika COUNTER_ID for this web site. This can be found
|
33
|
+
# as the value of "new Ya.Metrika(123456)", where 123456 is the actual ID.
|
34
|
+
cattr_accessor :counter_id
|
35
|
+
|
36
|
+
@@environments = ['production']
|
37
|
+
##
|
38
|
+
# :singleton-method:
|
39
|
+
# The environments in which to enable the Yandex.Metrika code. Defaults
|
40
|
+
# to 'production' only. Supply an array of environment names to change this.
|
41
|
+
cattr_accessor :environments
|
42
|
+
|
43
|
+
@@formats = [:html, :all]
|
44
|
+
##
|
45
|
+
# :singleton-method:
|
46
|
+
# The request formats where tracking code should be added. Defaults to +[:html, :all]+. The entry for
|
47
|
+
# +:all+ is necessary to make Yandex recognize that tracking is installed on a
|
48
|
+
# site; it is not the same as responding to all requests. Supply an array
|
49
|
+
# of formats to change this.
|
50
|
+
cattr_accessor :formats
|
51
|
+
|
52
|
+
@@defer_load = true
|
53
|
+
##
|
54
|
+
# :singleton-method:
|
55
|
+
# Set this to true (the default) if you want to load the Metrika javascript at
|
56
|
+
# the bottom of page. Set this to false if you want to load the Metrika
|
57
|
+
# javascript at the top of the page. The page will render faster if you set this to
|
58
|
+
# true.
|
59
|
+
cattr_accessor :defer_load
|
60
|
+
|
61
|
+
# Return true if the Yandex.Metrika system is enabled and configured
|
62
|
+
# correctly for the specified format
|
63
|
+
def self.enabled?(format)
|
64
|
+
raise ConfigurationError if counter_id.blank?
|
65
|
+
environments.include?(RAILS_ENV) && formats.include?(format.to_sym)
|
66
|
+
end
|
67
|
+
|
68
|
+
# Construct the javascript code to be inserted on the calling page.
|
69
|
+
def self.code
|
70
|
+
<<-EOHTML
|
71
|
+
<!-- Yandex.Metrika -->
|
72
|
+
<script src="//mc.yandex.ru/resource/watch.js" type="text/javascript"></script>
|
73
|
+
<script type="text/javascript">
|
74
|
+
try { var yaCounter#{counter_id} = new Ya.Metrika(#{counter_id}); } catch(e){}
|
75
|
+
</script>
|
76
|
+
<noscript><div style="position: absolute;"><img src="//mc.yandex.ru/watch/#{counter_id}" alt="" /></div></noscript>
|
77
|
+
<!-- /Yandex.Metrika -->
|
78
|
+
EOHTML
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
data/rails/init.rb
ADDED
data/test/test_helper.rb
ADDED
@@ -0,0 +1,122 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
2
|
+
require 'test/unit'
|
3
|
+
require 'rubygems'
|
4
|
+
require 'mocha'
|
5
|
+
RAILS_ENV = 'test'
|
6
|
+
|
7
|
+
class TestMixin
|
8
|
+
class MockRequest
|
9
|
+
attr_accessor :format
|
10
|
+
end
|
11
|
+
class MockResponse
|
12
|
+
attr_accessor :body
|
13
|
+
end
|
14
|
+
|
15
|
+
include Yandex::Metrika::Mixin
|
16
|
+
attr_accessor :request, :response
|
17
|
+
|
18
|
+
def initialize
|
19
|
+
self.request = MockRequest.new
|
20
|
+
self.response = MockResponse.new
|
21
|
+
end
|
22
|
+
|
23
|
+
# override the mixin's method
|
24
|
+
def metrika_code
|
25
|
+
"Sample Code"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
|
30
|
+
class MetrikaTest < Test::Unit::TestCase
|
31
|
+
def setup
|
32
|
+
@ga = Yandex::Metrika.new
|
33
|
+
@ga.counter_id = "the tracker id"
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_createable
|
37
|
+
assert_not_nil(@ga)
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_default_environments
|
41
|
+
assert_equal(false, @ga.environments.include?('test'))
|
42
|
+
assert_equal(false, @ga.environments.include?('development'))
|
43
|
+
assert_equal(true, @ga.environments.include?('production'))
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_default_formats
|
47
|
+
assert_equal(false, @ga.formats.include?(:xml))
|
48
|
+
assert_equal(true, @ga.formats.include?(:html))
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_defer_load_defaults_to_true
|
52
|
+
assert_equal(true, @ga.defer_load)
|
53
|
+
end
|
54
|
+
|
55
|
+
# test self.enabled
|
56
|
+
def test_enabled_requires_counter_id
|
57
|
+
Yandex::Metrika.stubs(:counter_id).returns(nil)
|
58
|
+
assert_raise(Yandex::Metrika::ConfigurationError) { Yandex::Metrika.enabled?(:html) }
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_enabled_returns_false_if_current_environment_not_enabled
|
62
|
+
Yandex::Metrika.stubs(:environments).returns(['production'])
|
63
|
+
assert_equal(false, Yandex::Metrika.enabled?(:html))
|
64
|
+
end
|
65
|
+
|
66
|
+
def test_enabled_with_default_format
|
67
|
+
Yandex::Metrika.stubs(:environments).returns(['test'])
|
68
|
+
assert_equal(true, Yandex::Metrika.enabled?(:html))
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_enabled_with_not_included_format
|
72
|
+
Yandex::Metrika.stubs(:environments).returns(['test'])
|
73
|
+
assert_equal(false, Yandex::Metrika.enabled?(:xml))
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_enabled_with_added_format
|
77
|
+
Yandex::Metrika.stubs(:environments).returns(['test'])
|
78
|
+
Yandex::Metrika.stubs(:formats).returns([:xml])
|
79
|
+
assert_equal(true, Yandex::Metrika.enabled?(:xml))
|
80
|
+
end
|
81
|
+
|
82
|
+
# Test the before_filter method does what we expect by subsituting the body tags and inserting
|
83
|
+
# some code for us automagically.
|
84
|
+
def test_add_metrika_code
|
85
|
+
# setup our test mixin
|
86
|
+
mixin = TestMixin.new
|
87
|
+
|
88
|
+
# bog standard body tag
|
89
|
+
Yandex::Metrika.defer_load = false
|
90
|
+
mixin.response.body = "<body><p>some text</p></body>"
|
91
|
+
mixin.add_metrika_code
|
92
|
+
assert_equal mixin.response.body, '<body>Sample Code<p>some text</p></body>'
|
93
|
+
|
94
|
+
Yandex::Metrika.defer_load = true
|
95
|
+
mixin.response.body = "<body><p>some text</p></body>"
|
96
|
+
mixin.add_metrika_code
|
97
|
+
assert_equal mixin.response.body, '<body><p>some text</p>Sample Code</body>'
|
98
|
+
|
99
|
+
# body tag upper cased (ignoring this is semantically incorrect)
|
100
|
+
Yandex::Metrika.defer_load = false
|
101
|
+
mixin.response.body = "<BODY><p>some text</p></BODY>"
|
102
|
+
mixin.add_metrika_code
|
103
|
+
assert_equal mixin.response.body, '<BODY>Sample Code<p>some text</p></BODY>'
|
104
|
+
|
105
|
+
Yandex::Metrika.defer_load = true
|
106
|
+
mixin.response.body = "<BODY><p>some text</p></BODY>"
|
107
|
+
mixin.add_metrika_code
|
108
|
+
assert_equal mixin.response.body, '<BODY><p>some text</p>Sample Code</body>'
|
109
|
+
|
110
|
+
# body tag has additional attributes
|
111
|
+
Yandex::Metrika.defer_load = false
|
112
|
+
mixin.response.body = '<body style="background-color:red"><p>some text</p></body>'
|
113
|
+
mixin.add_metrika_code
|
114
|
+
assert_equal mixin.response.body, '<body style="background-color:red">Sample Code<p>some text</p></body>'
|
115
|
+
|
116
|
+
Yandex::Metrika.defer_load = true
|
117
|
+
mixin.response.body = '<body style="background-color:red"><p>some text</p></body>'
|
118
|
+
mixin.add_metrika_code
|
119
|
+
assert_equal mixin.response.body, '<body style="background-color:red"><p>some text</p>Sample Code</body>'
|
120
|
+
end
|
121
|
+
|
122
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{yandex_metrika}
|
8
|
+
s.version = "0.0.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Andrey \"Zed\" Zaikin"]
|
12
|
+
s.date = %q{2009-10-12}
|
13
|
+
s.description = %q{By default this gem will output Yandex.Metrika code for every page automagically, if it's configured correctly. This is done by adding:
|
14
|
+
Yandex::Metrika.counter_id = '123456'
|
15
|
+
to your `config/environment.rb`, inserting your own COUNTER_ID. This can be discovered by looking at the value of "new Ya.Metrika(123456)" in the Javascript code.}
|
16
|
+
s.email = %q{zed.0xff@gmail.com}
|
17
|
+
s.extra_rdoc_files = [
|
18
|
+
"LICENSE",
|
19
|
+
"README.rdoc"
|
20
|
+
]
|
21
|
+
s.files = [
|
22
|
+
".document",
|
23
|
+
".gitignore",
|
24
|
+
"LICENSE",
|
25
|
+
"README.rdoc",
|
26
|
+
"Rakefile",
|
27
|
+
"VERSION",
|
28
|
+
"lib/yandex.rb",
|
29
|
+
"lib/yandex/metrika.rb",
|
30
|
+
"rails/init.rb",
|
31
|
+
"test/test_helper.rb",
|
32
|
+
"test/yandex_metrika_test.rb",
|
33
|
+
"yandex_metrika.gemspec"
|
34
|
+
]
|
35
|
+
s.homepage = %q{http://github.com/zed-0xff/yandex_metrika}
|
36
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
37
|
+
s.require_paths = ["lib"]
|
38
|
+
s.rubygems_version = %q{1.3.5}
|
39
|
+
s.summary = %q{[Rails] Easily enable Yandex.Metrika support in your Rails application.}
|
40
|
+
s.test_files = [
|
41
|
+
"test/yandex_metrika_test.rb",
|
42
|
+
"test/test_helper.rb"
|
43
|
+
]
|
44
|
+
|
45
|
+
if s.respond_to? :specification_version then
|
46
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
47
|
+
s.specification_version = 3
|
48
|
+
|
49
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
50
|
+
s.add_runtime_dependency(%q<actionpack>, [">= 2.3.3"])
|
51
|
+
s.add_runtime_dependency(%q<activesupport>, [">= 2.3.3"])
|
52
|
+
else
|
53
|
+
s.add_dependency(%q<actionpack>, [">= 2.3.3"])
|
54
|
+
s.add_dependency(%q<activesupport>, [">= 2.3.3"])
|
55
|
+
end
|
56
|
+
else
|
57
|
+
s.add_dependency(%q<actionpack>, [">= 2.3.3"])
|
58
|
+
s.add_dependency(%q<activesupport>, [">= 2.3.3"])
|
59
|
+
end
|
60
|
+
end
|
metadata
ADDED
@@ -0,0 +1,90 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: yandex_metrika
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Andrey "Zed" Zaikin
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-10-12 00:00:00 +06:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: actionpack
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 2.3.3
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: activesupport
|
27
|
+
type: :runtime
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 2.3.3
|
34
|
+
version:
|
35
|
+
description: |-
|
36
|
+
By default this gem will output Yandex.Metrika code for every page automagically, if it's configured correctly. This is done by adding:
|
37
|
+
Yandex::Metrika.counter_id = '123456'
|
38
|
+
to your `config/environment.rb`, inserting your own COUNTER_ID. This can be discovered by looking at the value of "new Ya.Metrika(123456)" in the Javascript code.
|
39
|
+
email: zed.0xff@gmail.com
|
40
|
+
executables: []
|
41
|
+
|
42
|
+
extensions: []
|
43
|
+
|
44
|
+
extra_rdoc_files:
|
45
|
+
- LICENSE
|
46
|
+
- README.rdoc
|
47
|
+
files:
|
48
|
+
- .document
|
49
|
+
- .gitignore
|
50
|
+
- LICENSE
|
51
|
+
- README.rdoc
|
52
|
+
- Rakefile
|
53
|
+
- VERSION
|
54
|
+
- lib/yandex.rb
|
55
|
+
- lib/yandex/metrika.rb
|
56
|
+
- rails/init.rb
|
57
|
+
- test/test_helper.rb
|
58
|
+
- test/yandex_metrika_test.rb
|
59
|
+
- yandex_metrika.gemspec
|
60
|
+
has_rdoc: true
|
61
|
+
homepage: http://github.com/zed-0xff/yandex_metrika
|
62
|
+
licenses: []
|
63
|
+
|
64
|
+
post_install_message:
|
65
|
+
rdoc_options:
|
66
|
+
- --charset=UTF-8
|
67
|
+
require_paths:
|
68
|
+
- lib
|
69
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: "0"
|
74
|
+
version:
|
75
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: "0"
|
80
|
+
version:
|
81
|
+
requirements: []
|
82
|
+
|
83
|
+
rubyforge_project:
|
84
|
+
rubygems_version: 1.3.5
|
85
|
+
signing_key:
|
86
|
+
specification_version: 3
|
87
|
+
summary: "[Rails] Easily enable Yandex.Metrika support in your Rails application."
|
88
|
+
test_files:
|
89
|
+
- test/yandex_metrika_test.rb
|
90
|
+
- test/test_helper.rb
|