gricer 0.0.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.
- data/MIT-LICENSE +20 -0
- data/README.rdoc +84 -0
- data/Rakefile +49 -0
- data/app/assets/images/gricer/fluid/breadcrumb.png +0 -0
- data/app/assets/javascripts/gricer.js.coffee +85 -0
- data/app/assets/javascripts/gricer_backend_jquery.js.coffee +352 -0
- data/app/assets/javascripts/jquery.flot.js +2599 -0
- data/app/assets/javascripts/jquery.flot.pie.js +750 -0
- data/app/assets/javascripts/jquery.flot.resize.js +60 -0
- data/app/assets/javascripts/jquery.flot.symbol.js +70 -0
- data/app/assets/javascripts/worldmap.js +146 -0
- data/app/assets/stylesheets/gricer/fluid-jquery-ui.css.scss +1298 -0
- data/app/assets/stylesheets/gricer/fluid.css.scss +240 -0
- data/app/assets/stylesheets/gricer/helpers/css3.css.scss +21 -0
- data/app/controllers/gricer/base_controller.rb +141 -0
- data/app/controllers/gricer/capture_controller.rb +42 -0
- data/app/controllers/gricer/dashboard_controller.rb +18 -0
- data/app/controllers/gricer/requests_controller.rb +42 -0
- data/app/controllers/gricer/sessions_controller.rb +24 -0
- data/app/helpers/gricer/base_helper.rb +22 -0
- data/app/models/gricer/agent.rb +789 -0
- data/app/models/gricer/request.rb +239 -0
- data/app/models/gricer/session.rb +433 -0
- data/app/views/gricer/capture/index.html.erb +1 -0
- data/app/views/gricer/dashboard/_menu.html.erb +10 -0
- data/app/views/gricer/dashboard/_overview.html.erb +33 -0
- data/app/views/gricer/dashboard/index.html.erb +19 -0
- data/config/routes.rb +51 -0
- data/lib/gricer.rb +36 -0
- data/lib/gricer/action_controller/base.rb +28 -0
- data/lib/gricer/action_controller/track.rb +132 -0
- data/lib/gricer/active_model/statistics.rb +167 -0
- data/lib/gricer/config.rb +125 -0
- data/lib/gricer/engine.rb +9 -0
- data/lib/gricer/localization.rb +3 -0
- data/lib/tasks/gricer_tasks.rake +92 -0
- data/spec/controllers/gricer/base_controller_spec.rb +207 -0
- data/spec/controllers/gricer/capture_controller_spec.rb +44 -0
- data/spec/controllers/gricer/dashboard_controller_spec.rb +44 -0
- data/spec/controllers/gricer/requests_controller_spec.rb +36 -0
- data/spec/controllers/gricer/sessions_controller_spec.rb +37 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/assets/javascripts/application.js +9 -0
- data/spec/dummy/app/assets/stylesheets/application.css +13 -0
- data/spec/dummy/app/assets/stylesheets/dashboard.css +4 -0
- data/spec/dummy/app/assets/stylesheets/scaffold.css +56 -0
- data/spec/dummy/app/assets/stylesheets/sessions.css +4 -0
- data/spec/dummy/app/controllers/application_controller.rb +23 -0
- data/spec/dummy/app/controllers/dashboard_controller.rb +19 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/helpers/dashboard_helper.rb +2 -0
- data/spec/dummy/app/views/dashboard/index.html.erb +236 -0
- data/spec/dummy/app/views/layouts/application.html.erb +16 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +48 -0
- data/spec/dummy/config/boot.rb +10 -0
- data/spec/dummy/config/cucumber.yml +9 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +27 -0
- data/spec/dummy/config/environments/production.rb +51 -0
- data/spec/dummy/config/environments/test.rb +39 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/inflections.rb +10 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +7 -0
- data/spec/dummy/config/initializers/session_store.rb +8 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +12 -0
- data/spec/dummy/config/locales/en.yml +5 -0
- data/spec/dummy/config/routes.rb +11 -0
- data/spec/dummy/db/schema.rb +241 -0
- data/spec/dummy/log/development.log +0 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +26 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/helpers/gricer/base_helper_spec.rb +28 -0
- data/spec/lib/gricer/action_controller/track_spec.rb +63 -0
- data/spec/models/gricer/agent_spec.rb +829 -0
- data/spec/models/gricer/request_spec.rb +145 -0
- data/spec/models/gricer/session_spec.rb +209 -0
- data/spec/routing/capture_routes_spec.rb +6 -0
- data/spec/routing/dashboard_routes_spec.rb +9 -0
- data/spec/routing/requests_routes_spec.rb +90 -0
- data/spec/routing/sessions_routes_spec.rb +115 -0
- data/spec/spec_helper.rb +23 -0
- metadata +185 -0
@@ -0,0 +1,145 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Gricer::Request do
|
4
|
+
context 'set ip_address' do
|
5
|
+
it 'should set an ip address' do
|
6
|
+
subject.ip_address = '127.0.0.1'
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
context 'Locale' do
|
11
|
+
it 'should parse simple locale' do
|
12
|
+
subject.locale = 'de'
|
13
|
+
subject.locale_major.should == 'de'
|
14
|
+
subject.locale_minor.should == nil
|
15
|
+
subject.locale.should == 'de'
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'should parse complex locale' do
|
19
|
+
subject.locale = 'de-at'
|
20
|
+
subject.locale_major.should == 'de'
|
21
|
+
subject.locale_minor.should == 'at'
|
22
|
+
subject.locale.should == 'de-at'
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'should parse complex locale with upcase minor' do
|
26
|
+
subject.locale = 'de-AT'
|
27
|
+
subject.locale_major.should == 'de'
|
28
|
+
subject.locale_minor.should == 'at'
|
29
|
+
subject.locale.should == 'de-at'
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'should parse not given locale' do
|
33
|
+
subject.locale = nil
|
34
|
+
subject.locale_major.should == nil
|
35
|
+
subject.locale_minor.should == nil
|
36
|
+
subject.locale.should == nil
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
context 'Referer' do
|
41
|
+
it 'should get protocol, host, path, and params' do
|
42
|
+
subject.referer = 'http://my.domain:1234/test/path?param=1&value=true'
|
43
|
+
subject.referer_protocol.should == 'HTTP'
|
44
|
+
subject.referer_host.should == 'my.domain:1234'
|
45
|
+
subject.referer_path.should == '/test/path'
|
46
|
+
subject.referer_params.should == 'param=1&value=true'
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'should get protocol, host, and path if no params given' do
|
50
|
+
subject.referer = 'https://my.domain:1234/test/path'
|
51
|
+
subject.referer_protocol.should == 'HTTPS'
|
52
|
+
subject.referer_host.should == 'my.domain:1234'
|
53
|
+
subject.referer_path.should == '/test/path'
|
54
|
+
subject.referer_params.should be_nil
|
55
|
+
end
|
56
|
+
|
57
|
+
it 'should get protocol and host if no path and params given' do
|
58
|
+
subject.referer = 'http://my.domain:1234'
|
59
|
+
subject.referer_protocol.should == 'HTTP'
|
60
|
+
subject.referer_host.should == 'my.domain:1234'
|
61
|
+
subject.referer_path.should == '/'
|
62
|
+
subject.referer_params.should be_nil
|
63
|
+
end
|
64
|
+
|
65
|
+
it 'should normalise hosts' do
|
66
|
+
subject.referer = 'http://My.Domain/'
|
67
|
+
subject.referer_host.should == 'my.domain'
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
71
|
+
|
72
|
+
context 'Search Engines' do
|
73
|
+
it 'should detect Google as Search Engine' do
|
74
|
+
subject.referer = 'http://www.google.com/search?q=test%20this&ie=utf-8&oe=utf-8'
|
75
|
+
subject.search_engine.should == 'Google'
|
76
|
+
subject.search_query.should == 'test this'
|
77
|
+
end
|
78
|
+
|
79
|
+
it 'should detect Google (UK) as Search Engine' do
|
80
|
+
subject.referer = 'http://www.google.co.uk/search?q=test%20this&ie=utf-8&oe=utf-8'
|
81
|
+
subject.search_engine.should == 'Google'
|
82
|
+
subject.search_query.should == 'test this'
|
83
|
+
end
|
84
|
+
|
85
|
+
it 'should detect Google (FR) as Search Engine' do
|
86
|
+
subject.referer = 'http://www.google.fr/search?q=test%20this&ie=utf-8&oe=utf-8'
|
87
|
+
subject.search_engine.should == 'Google'
|
88
|
+
subject.search_query.should == 'test this'
|
89
|
+
end
|
90
|
+
|
91
|
+
it 'should not detect Google subdomain as Search Engine' do
|
92
|
+
subject.referer = 'http://www.google.gmah.net/search?q=test%20this&ie=utf-8&oe=utf-8'
|
93
|
+
subject.search_engine.should == nil
|
94
|
+
subject.search_query.should == nil
|
95
|
+
end
|
96
|
+
|
97
|
+
it 'should detect Bing as Search Engine' do
|
98
|
+
subject.referer = 'http://www.bing.com/search?q=test+this&go=&qs=n&sk=&form=QBLH&filt=all'
|
99
|
+
subject.search_engine.should == 'Bing'
|
100
|
+
subject.search_query.should == 'test this'
|
101
|
+
end
|
102
|
+
|
103
|
+
it 'should detect Yahoo as Search Engine' do
|
104
|
+
subject.referer = 'http://de.search.yahoo.com/search;_ylt=AqQWGFQKyJoto6Bia_HjzYsqrK5_;_ylc=X1MDMjE0MjE1Mzc3MARfcgMyBGZyA3lmcC10LTcwOARuX2dwcwMwBG9yaWdpbgNkZS55YWhvby5jb20EcXVlcnkDdGVzdCB0aGlzBHNhbwMx?vc=&vl=&fl=&p=test+this&toggle=1&cop=mss&ei=UTF-8&fr=yfp-t-708'
|
105
|
+
subject.search_engine.should == 'Yahoo'
|
106
|
+
subject.search_query.should == 'test this'
|
107
|
+
end
|
108
|
+
|
109
|
+
it 'should detect Altavista (Yahoo) as Search Engine' do
|
110
|
+
subject.referer = 'http://us.yhs4.search.yahoo.com/yhs/search;_ylt=A0oG7qWPGiROv2UA_w6l87UF;_ylc=X1MDMjE0MjQ3ODk0OARfcgMyBGZyA2FsdGF2aXN0YQRuX2dwcwMxMARvcmlnaW4Dc3ljBHF1ZXJ5A3Rlc3QgdGhpcwRzYW8DMw--?p=test+this&fr=altavista&fr2=sfp&iscqry='
|
111
|
+
subject.search_engine.should == 'Yahoo'
|
112
|
+
subject.search_query.should == 'test this'
|
113
|
+
end
|
114
|
+
|
115
|
+
it 'should detect Baidu as Search Engine' do
|
116
|
+
subject.referer = 'http://www.baidu.com/s?wd=test+this&rsv_bp=0&inputT=1928'
|
117
|
+
subject.search_engine.should == 'Baidu'
|
118
|
+
subject.search_query.should == 'test this'
|
119
|
+
end
|
120
|
+
|
121
|
+
it 'should detect Ask as Search Engine' do
|
122
|
+
subject.referer = 'http://de.ask.com/web?q=test+this&qsrc=0&o=312&l=dir'
|
123
|
+
subject.search_engine.should == 'Ask'
|
124
|
+
subject.search_query.should == 'test this'
|
125
|
+
end
|
126
|
+
|
127
|
+
it 'should detect AOL as Search Engine' do
|
128
|
+
subject.referer = 'http://search.aol.com/aol/search?enabled_terms=&s_it=comsearch50&q=test+this'
|
129
|
+
subject.search_engine.should == 'AOL'
|
130
|
+
subject.search_query.should == 'test this'
|
131
|
+
end
|
132
|
+
|
133
|
+
it 'should detect MetaCrawler as Search Engine' do
|
134
|
+
subject.referer = 'http://www.metacrawler.com/info.metac.test.c1/search/web?fcoid=417&fcop=topnav&fpid=27&q=test+this'
|
135
|
+
subject.search_engine.should == 'MetaCrawler'
|
136
|
+
subject.search_query.should == 'test this'
|
137
|
+
end
|
138
|
+
|
139
|
+
it 'should detect Dogpile as Search Engine' do
|
140
|
+
subject.referer = 'http://www.dogpile.com/dogpile/ws/results/Web/test%20this/1/417/TopNavigation/Relevance/iq=true/zoom=off/_iceUrlFlag=7?_IceUrl=true'
|
141
|
+
subject.search_engine.should == 'Dogpile'
|
142
|
+
subject.search_query.should == 'test this'
|
143
|
+
end
|
144
|
+
end
|
145
|
+
end
|
@@ -0,0 +1,209 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Gricer::Session do
|
4
|
+
|
5
|
+
context 'IP' do
|
6
|
+
it 'should fill ip address hash' do
|
7
|
+
subject.ip_address = '127.0.0.1'
|
8
|
+
|
9
|
+
subject.ip_address_hash.should == '4b84b15bff6ee5796152495a230e45e3d7e947d9'
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'should fill anonyminized domain' do
|
13
|
+
Resolv.should_receive(:getname).with('127.0.0.1') { 'some.real.host.gmah.net' }
|
14
|
+
|
15
|
+
subject.ip_address = '127.0.0.1'
|
16
|
+
|
17
|
+
subject.domain.should == 'gmah.net'
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should fill anonyminized domain in uk' do
|
21
|
+
Resolv.should_receive(:getname).with('127.0.0.1') { 'some.real.host.the-queen.co.uk' }
|
22
|
+
|
23
|
+
subject.ip_address = '127.0.0.1'
|
24
|
+
|
25
|
+
subject.domain.should == 'the-queen.co.uk'
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'should fill IP if resolve fails' do
|
29
|
+
Resolv.should_receive(:getname).with('127.0.0.1') { throw 'IP not found' }
|
30
|
+
|
31
|
+
subject.ip_address = '127.0.0.1'
|
32
|
+
|
33
|
+
subject.domain.should == '127.0.x.x'
|
34
|
+
end
|
35
|
+
|
36
|
+
context 'No GeoIP' do
|
37
|
+
it 'should not fill country' do
|
38
|
+
subject.ip_address = '127.0.0.1'
|
39
|
+
subject.country.should be_nil
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'should not fill region' do
|
43
|
+
subject.ip_address = '127.0.0.1'
|
44
|
+
subject.region.should be_nil
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'should not fill city' do
|
48
|
+
subject.ip_address = '127.0.0.1'
|
49
|
+
subject.city.should be_nil
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'should not fill postal code' do
|
53
|
+
subject.ip_address = '127.0.0.1'
|
54
|
+
subject.postal_code.should be_nil
|
55
|
+
end
|
56
|
+
|
57
|
+
it 'should not fill longitude' do
|
58
|
+
subject.ip_address = '127.0.0.1'
|
59
|
+
subject.longitude.should be_nil
|
60
|
+
end
|
61
|
+
|
62
|
+
it 'should not fill latitude' do
|
63
|
+
subject.ip_address = '127.0.0.1'
|
64
|
+
subject.latitude.should be_nil
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
context 'GeoIP City' do
|
69
|
+
before do
|
70
|
+
Gricer.config.geoip_db = mock(:GeoIP)
|
71
|
+
Gricer.config.geoip_db.stub(:look_up).with('127.0.0.1') { {:country_code=>"DE", :country_code3=>"DEU", :country_name=>"Germany", :region=>"16", :city=>"Berlin", :postal_code=>"10115", :latitude=>52.516700744628906, :longitude=>13.399999618530273} }
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'should fill country' do
|
75
|
+
subject.ip_address = '127.0.0.1'
|
76
|
+
subject.country.should == 'de'
|
77
|
+
end
|
78
|
+
|
79
|
+
it 'should fill region' do
|
80
|
+
subject.ip_address = '127.0.0.1'
|
81
|
+
subject.region.should == '16'
|
82
|
+
end
|
83
|
+
|
84
|
+
it 'should fill city' do
|
85
|
+
subject.ip_address = '127.0.0.1'
|
86
|
+
subject.city.should == 'Berlin'
|
87
|
+
end
|
88
|
+
|
89
|
+
it 'should fill postal code' do
|
90
|
+
subject.ip_address = '127.0.0.1'
|
91
|
+
subject.postal_code.should == '10115'
|
92
|
+
end
|
93
|
+
|
94
|
+
it 'should fill longitude' do
|
95
|
+
subject.ip_address = '127.0.0.1'
|
96
|
+
subject.longitude.should == 13.399999618530273
|
97
|
+
end
|
98
|
+
|
99
|
+
it 'should fill latitude' do
|
100
|
+
subject.ip_address = '127.0.0.1'
|
101
|
+
subject.latitude.should == 52.516700744628906
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
context 'GeoIP Country' do
|
106
|
+
before do
|
107
|
+
Gricer.config.geoip_db = mock(:GeoIP)
|
108
|
+
Gricer.config.geoip_db.stub(:look_up).with('127.0.0.1') { {:country_code=>"DE", :country_code3=>"DEU", :country_name=>"Germany", :latitude=>51.0, :longitude=>9.0} }
|
109
|
+
end
|
110
|
+
|
111
|
+
it 'should fill country' do
|
112
|
+
subject.ip_address = '127.0.0.1'
|
113
|
+
subject.country.should == 'de'
|
114
|
+
end
|
115
|
+
|
116
|
+
it 'should not fill region' do
|
117
|
+
subject.ip_address = '127.0.0.1'
|
118
|
+
subject.region.should be_nil
|
119
|
+
end
|
120
|
+
|
121
|
+
it 'should not fill city' do
|
122
|
+
subject.ip_address = '127.0.0.1'
|
123
|
+
subject.city.should be_nil
|
124
|
+
end
|
125
|
+
|
126
|
+
it 'should not fill postal code' do
|
127
|
+
subject.ip_address = '127.0.0.1'
|
128
|
+
subject.postal_code.should be_nil
|
129
|
+
end
|
130
|
+
|
131
|
+
it 'should fill longitude' do
|
132
|
+
subject.ip_address = '127.0.0.1'
|
133
|
+
subject.longitude.should == 9.0
|
134
|
+
end
|
135
|
+
|
136
|
+
it 'should fill latitude' do
|
137
|
+
subject.ip_address = '127.0.0.1'
|
138
|
+
subject.latitude.should == 51.0
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
context 'GeoIP unknown address' do
|
143
|
+
before do
|
144
|
+
Gricer.config.geoip_db = mock(:GeoIP)
|
145
|
+
Gricer.config.geoip_db.stub(:look_up).with('127.0.0.1') { nil }
|
146
|
+
end
|
147
|
+
|
148
|
+
it 'should not fill country' do
|
149
|
+
subject.ip_address = '127.0.0.1'
|
150
|
+
subject.country.should be_nil
|
151
|
+
end
|
152
|
+
|
153
|
+
it 'should not fill region' do
|
154
|
+
subject.ip_address = '127.0.0.1'
|
155
|
+
subject.region.should be_nil
|
156
|
+
end
|
157
|
+
|
158
|
+
it 'should not fill city' do
|
159
|
+
subject.ip_address = '127.0.0.1'
|
160
|
+
subject.city.should be_nil
|
161
|
+
end
|
162
|
+
|
163
|
+
it 'should not fill postal code' do
|
164
|
+
subject.ip_address = '127.0.0.1'
|
165
|
+
subject.postal_code.should be_nil
|
166
|
+
end
|
167
|
+
|
168
|
+
it 'should not fill longitude' do
|
169
|
+
subject.ip_address = '127.0.0.1'
|
170
|
+
subject.longitude.should be_nil
|
171
|
+
end
|
172
|
+
|
173
|
+
it 'should not fill latitude' do
|
174
|
+
subject.ip_address = '127.0.0.1'
|
175
|
+
subject.latitude.should be_nil
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
179
|
+
context 'Requested Locale' do
|
180
|
+
it 'should parse simple locale' do
|
181
|
+
subject.requested_locale = 'de'
|
182
|
+
subject.requested_locale_major.should == 'de'
|
183
|
+
subject.requested_locale_minor.should == nil
|
184
|
+
subject.requested_locale.should == 'de'
|
185
|
+
end
|
186
|
+
|
187
|
+
it 'should parse complex locale' do
|
188
|
+
subject.requested_locale = 'de-at'
|
189
|
+
subject.requested_locale_major.should == 'de'
|
190
|
+
subject.requested_locale_minor.should == 'at'
|
191
|
+
subject.requested_locale.should == 'de-at'
|
192
|
+
end
|
193
|
+
|
194
|
+
it 'should parse complex locale with upcase minor' do
|
195
|
+
subject.requested_locale = 'de-AT'
|
196
|
+
subject.requested_locale_major.should == 'de'
|
197
|
+
subject.requested_locale_minor.should == 'at'
|
198
|
+
subject.requested_locale.should == 'de-at'
|
199
|
+
end
|
200
|
+
|
201
|
+
it 'should parse not given locale' do
|
202
|
+
subject.requested_locale = nil
|
203
|
+
subject.requested_locale_major.should == nil
|
204
|
+
subject.requested_locale_minor.should == nil
|
205
|
+
subject.requested_locale.should == nil
|
206
|
+
end
|
207
|
+
end
|
208
|
+
end
|
209
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'routes for admin dashboard' do
|
4
|
+
it { gricer_root_path.should == '/gricer' }
|
5
|
+
it { { get: '/gricer'}.should route_to(controller: 'gricer/dashboard', action: 'index') }
|
6
|
+
|
7
|
+
it { gricer_overview_path.should == '/gricer/overview' }
|
8
|
+
it { { post: '/gricer/overview'}.should route_to(controller: 'gricer/dashboard', action: 'overview') }
|
9
|
+
end
|
@@ -0,0 +1,90 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'routes for request stats' do
|
4
|
+
it { gricer_requests_agent_name_process_path.should == '/gricer/requests/agent_name_process' }
|
5
|
+
it { { get: '/gricer/requests/agent_name_process'}.should route_to(controller: 'gricer/requests', action: 'process_stats', field: 'agent.name') }
|
6
|
+
it { gricer_requests_agent_name_spread_path.should == '/gricer/requests/agent_name_spread' }
|
7
|
+
it { { get: '/gricer/requests/agent_name_spread'}.should route_to(controller: 'gricer/requests', action: 'spread_stats', field: 'agent.name') }
|
8
|
+
|
9
|
+
it { gricer_requests_agent_os_process_path.should == '/gricer/requests/agent_os_process' }
|
10
|
+
it { { get: '/gricer/requests/agent_os_process'}.should route_to(controller: 'gricer/requests', action: 'process_stats', field: 'agent.os') }
|
11
|
+
it { gricer_requests_agent_os_spread_path.should == '/gricer/requests/agent_os_spread' }
|
12
|
+
it { { get: '/gricer/requests/agent_os_spread'}.should route_to(controller: 'gricer/requests', action: 'spread_stats', field: 'agent.os') }
|
13
|
+
|
14
|
+
it { gricer_requests_agent_full_version_process_path.should == '/gricer/requests/agent_full_version_process' }
|
15
|
+
it { { get: '/gricer/requests/agent_full_version_process'}.should route_to(controller: 'gricer/requests', action: 'process_stats', field: 'agent.full_version') }
|
16
|
+
it { gricer_requests_agent_full_version_spread_path.should == '/gricer/requests/agent_full_version_spread' }
|
17
|
+
it { { get: '/gricer/requests/agent_full_version_spread'}.should route_to(controller: 'gricer/requests', action: 'spread_stats', field: 'agent.full_version') }
|
18
|
+
|
19
|
+
it { gricer_requests_agent_major_version_process_path.should == '/gricer/requests/agent_major_version_process' }
|
20
|
+
it { { get: '/gricer/requests/agent_major_version_process'}.should route_to(controller: 'gricer/requests', action: 'process_stats', field: 'agent.major_version') }
|
21
|
+
it { gricer_requests_agent_major_version_spread_path.should == '/gricer/requests/agent_major_version_spread' }
|
22
|
+
it { { get: '/gricer/requests/agent_major_version_spread'}.should route_to(controller: 'gricer/requests', action: 'spread_stats', field: 'agent.major_version') }
|
23
|
+
|
24
|
+
it { gricer_requests_agent_engine_name_process_path.should == '/gricer/requests/agent_engine_name_process' }
|
25
|
+
it { { get: '/gricer/requests/agent_engine_name_process'}.should route_to(controller: 'gricer/requests', action: 'process_stats', field: 'agent.engine_name') }
|
26
|
+
it { gricer_requests_agent_engine_name_spread_path.should == '/gricer/requests/agent_engine_name_spread' }
|
27
|
+
it { { get: '/gricer/requests/agent_engine_name_spread'}.should route_to(controller: 'gricer/requests', action: 'spread_stats', field: 'agent.engine_name') }
|
28
|
+
|
29
|
+
it { gricer_requests_agent_engine_version_process_path.should == '/gricer/requests/agent_engine_version_process' }
|
30
|
+
it { { get: '/gricer/requests/agent_engine_version_process'}.should route_to(controller: 'gricer/requests', action: 'process_stats', field: 'agent.engine_version') }
|
31
|
+
it { gricer_requests_agent_engine_version_spread_path.should == '/gricer/requests/agent_engine_version_spread' }
|
32
|
+
it { { get: '/gricer/requests/agent_engine_version_spread'}.should route_to(controller: 'gricer/requests', action: 'spread_stats', field: 'agent.engine_version') }
|
33
|
+
|
34
|
+
it { gricer_requests_host_process_path.should == '/gricer/requests/host_process' }
|
35
|
+
it { { get: '/gricer/requests/host_process'}.should route_to(controller: 'gricer/requests', action: 'process_stats', field: 'host') }
|
36
|
+
it { gricer_requests_host_spread_path.should == '/gricer/requests/host_spread' }
|
37
|
+
it { { get: '/gricer/requests/host_spread'}.should route_to(controller: 'gricer/requests', action: 'spread_stats', field: 'host') }
|
38
|
+
|
39
|
+
it { gricer_requests_path_process_path.should == '/gricer/requests/path_process' }
|
40
|
+
it { { get: '/gricer/requests/path_process'}.should route_to(controller: 'gricer/requests', action: 'process_stats', field: 'path') }
|
41
|
+
it { gricer_requests_path_spread_path.should == '/gricer/requests/path_spread' }
|
42
|
+
it { { get: '/gricer/requests/path_spread'}.should route_to(controller: 'gricer/requests', action: 'spread_stats', field: 'path') }
|
43
|
+
|
44
|
+
it { gricer_requests_method_process_path.should == '/gricer/requests/method_process' }
|
45
|
+
it { { get: '/gricer/requests/method_process'}.should route_to(controller: 'gricer/requests', action: 'process_stats', field: 'method') }
|
46
|
+
it { gricer_requests_method_spread_path.should == '/gricer/requests/method_spread' }
|
47
|
+
it { { get: '/gricer/requests/method_spread'}.should route_to(controller: 'gricer/requests', action: 'spread_stats', field: 'method') }
|
48
|
+
|
49
|
+
it { gricer_requests_protocol_process_path.should == '/gricer/requests/protocol_process' }
|
50
|
+
it { { get: '/gricer/requests/protocol_process'}.should route_to(controller: 'gricer/requests', action: 'process_stats', field: 'protocol') }
|
51
|
+
it { gricer_requests_protocol_spread_path.should == '/gricer/requests/protocol_spread' }
|
52
|
+
it { { get: '/gricer/requests/protocol_spread'}.should route_to(controller: 'gricer/requests', action: 'spread_stats', field: 'protocol') }
|
53
|
+
|
54
|
+
it { gricer_requests_entry_path_process_path.should == '/gricer/requests/entry_path_process' }
|
55
|
+
it { { get: '/gricer/requests/entry_path_process'}.should route_to(controller: 'gricer/requests', action: 'process_stats', field: 'entry_path') }
|
56
|
+
it { gricer_requests_entry_path_spread_path.should == '/gricer/requests/entry_path_spread' }
|
57
|
+
it { { get: '/gricer/requests/entry_path_spread'}.should route_to(controller: 'gricer/requests', action: 'spread_stats', field: 'entry_path') }
|
58
|
+
|
59
|
+
it { gricer_requests_referer_protocol_process_path.should == '/gricer/requests/referer_protocol_process' }
|
60
|
+
it { { get: '/gricer/requests/referer_protocol_process'}.should route_to(controller: 'gricer/requests', action: 'process_stats', field: 'referer_protocol') }
|
61
|
+
it { gricer_requests_referer_protocol_spread_path.should == '/gricer/requests/referer_protocol_spread' }
|
62
|
+
it { { get: '/gricer/requests/referer_protocol_spread'}.should route_to(controller: 'gricer/requests', action: 'spread_stats', field: 'referer_protocol') }
|
63
|
+
|
64
|
+
it { gricer_requests_referer_host_process_path.should == '/gricer/requests/referer_host_process' }
|
65
|
+
it { { get: '/gricer/requests/referer_host_process'}.should route_to(controller: 'gricer/requests', action: 'process_stats', field: 'referer_host') }
|
66
|
+
it { gricer_requests_referer_host_spread_path.should == '/gricer/requests/referer_host_spread' }
|
67
|
+
it { { get: '/gricer/requests/referer_host_spread'}.should route_to(controller: 'gricer/requests', action: 'spread_stats', field: 'referer_host') }
|
68
|
+
|
69
|
+
it { gricer_requests_referer_path_process_path.should == '/gricer/requests/referer_path_process' }
|
70
|
+
it { { get: '/gricer/requests/referer_path_process'}.should route_to(controller: 'gricer/requests', action: 'process_stats', field: 'referer_path') }
|
71
|
+
it { gricer_requests_referer_path_spread_path.should == '/gricer/requests/referer_path_spread' }
|
72
|
+
it { { get: '/gricer/requests/referer_path_spread'}.should route_to(controller: 'gricer/requests', action: 'spread_stats', field: 'referer_path') }
|
73
|
+
|
74
|
+
it { gricer_requests_referer_params_process_path.should == '/gricer/requests/referer_params_process' }
|
75
|
+
it { { get: '/gricer/requests/referer_params_process'}.should route_to(controller: 'gricer/requests', action: 'process_stats', field: 'referer_params') }
|
76
|
+
it { gricer_requests_referer_params_spread_path.should == '/gricer/requests/referer_params_spread' }
|
77
|
+
it { { get: '/gricer/requests/referer_params_spread'}.should route_to(controller: 'gricer/requests', action: 'spread_stats', field: 'referer_params') }
|
78
|
+
|
79
|
+
it { gricer_requests_search_engine_process_path.should == '/gricer/requests/search_engine_process' }
|
80
|
+
it { { get: '/gricer/requests/search_engine_process'}.should route_to(controller: 'gricer/requests', action: 'process_stats', field: 'search_engine') }
|
81
|
+
it { gricer_requests_search_engine_spread_path.should == '/gricer/requests/search_engine_spread' }
|
82
|
+
it { { get: '/gricer/requests/search_engine_spread'}.should route_to(controller: 'gricer/requests', action: 'spread_stats', field: 'search_engine') }
|
83
|
+
|
84
|
+
it { gricer_requests_search_query_process_path.should == '/gricer/requests/search_query_process' }
|
85
|
+
it { { get: '/gricer/requests/search_query_process'}.should route_to(controller: 'gricer/requests', action: 'process_stats', field: 'search_query') }
|
86
|
+
it { gricer_requests_search_query_spread_path.should == '/gricer/requests/search_query_spread' }
|
87
|
+
it { { get: '/gricer/requests/search_query_spread'}.should route_to(controller: 'gricer/requests', action: 'spread_stats', field: 'search_query') }
|
88
|
+
|
89
|
+
|
90
|
+
end
|