rail_stat_generator 0.1.4 → 2.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.
@@ -1,7 +1,7 @@
1
1
  == Installation
2
2
 
3
3
  1. Create database
4
- 2. Create the database schema using rake migrate
4
+ 2. Create the database schema using rake db:migrate
5
5
  3. Download the IP-to-Country database from http://ip-to-country.webhosting.info/ :
6
6
 
7
7
  wget http://ip-to-country.webhosting.info/downloads/ip-to-country.csv.zip
@@ -12,8 +12,8 @@ class RailStatController < ApplicationController
12
12
  def path
13
13
  @ordered_resources, @orarr = RailStat.get_ordered40resources(@subdomain)
14
14
 
15
- @number_hits = (@params['nh'] or not @params['nh'].nil?) ? @params['nh'].to_i : 50
16
- @include_search_engines = ((@params['ise'] == '' or @params['ise'] == "1") ? 1 : 0)
15
+ @number_hits = (params['nh'] or not params['nh'].nil?) ? params['nh'].to_i : 50
16
+ @include_search_engines = ((params['ise'] == '' or params['ise'] == "1") ? 1 : 0)
17
17
 
18
18
  @count_totals = RailStat.resource_count_totals
19
19
  @paths = RailStat.find_all_by_flag(@include_search_engines == 0, @number_hits, @subdomain)
@@ -74,7 +74,7 @@ class RailStatController < ApplicationController
74
74
  end
75
75
 
76
76
  def tracker_js
77
- if @request.env['HTTP_REFERER'] and @request.env['HTTP_REFERER'].include?(request.host)
77
+ if request.env['HTTP_REFERER'] and request.env['HTTP_REFERER'].include?(request.host)
78
78
  str = <<-JSDATA
79
79
  c=0;
80
80
  s=0;
@@ -102,24 +102,24 @@ class RailStatController < ApplicationController
102
102
  else
103
103
  str = ""
104
104
  end
105
- render_text(str)
105
+ render :text => str
106
106
  end
107
107
 
108
108
  def track
109
109
  track_path
110
- @response.headers['Pragma'] = ' '
111
- @response.headers['Cache-Control'] = ' '
112
- @response.headers['Content-Length'] = 68
113
- @response.headers['Accept-Ranges'] = 'bytes'
114
- @response.headers['Content-type'] = 'image/gif'
115
- @response.headers['Content-Disposition'] = 'inline'
110
+ response.headers['Pragma'] = ' '
111
+ response.headers['Cache-Control'] = ' '
112
+ response.headers['Content-Length'] = 68
113
+ response.headers['Accept-Ranges'] = 'bytes'
114
+ response.headers['Content-type'] = 'image/gif'
115
+ response.headers['Content-Disposition'] = 'inline'
116
116
  File.open("#{RAILS_ROOT}/public/images/railstat/1pxtr.gif", 'rb') { |file| render :text => file.read }
117
117
  end
118
118
 
119
119
 
120
120
  private
121
121
  def extract_subdomain
122
- @subdomain = ((@request.subdomains and @request.subdomains.first) ? @request.subdomains.first : nil)
122
+ @subdomain = ((request.subdomains and request.subdomains.first) ? request.subdomains.first : nil)
123
123
  end
124
124
 
125
125
  end
@@ -163,7 +163,7 @@ module RailStatHelper
163
163
  end
164
164
 
165
165
  def get_time(t)
166
- ts = Time.at(t)
166
+ ts = Time.parse(t.to_s)
167
167
  tn = Time.now
168
168
  if ts.day == tn.day and tn.year == ts.year and tn.month == ts.month
169
169
  # ts.strftime("%I:%M&nbsp;%p")
@@ -62,7 +62,7 @@ class RailStat < ActiveRecord::Base
62
62
  end
63
63
 
64
64
  def datetime
65
- Time.at(self.created_at)
65
+ Time.parse(self.created_at.to_s)
66
66
  end
67
67
 
68
68
  ####
@@ -27,12 +27,13 @@
27
27
  <td><%%=day['unique_hits']%></td>
28
28
  </tr>
29
29
  <%% end -%>
30
+ <%% unless @first_hit.blank? %>
30
31
  <tr class='<%%= alternator %>'>
31
32
  <td>Since <%%= @first_hit.datetime %></td>
32
33
  <td><%%= @total_hits %></td>
33
34
  <td><%%= @unique_hits %></td>
34
35
  </tr>
35
-
36
+ <%% end %>
36
37
  </table>
37
38
  </div>
38
39
  </div>
@@ -29,7 +29,7 @@
29
29
  <%% for country in @countries %>
30
30
  <tr class="<%%= alternator %>">
31
31
  <td><%%= country.country %></td>
32
- <td><%%= sprintf("%000.2f", (language.total.to_f/@total_hits)*100) %>%</td>
32
+ <td><%%= sprintf("%000.2f", (country.total.to_f/@total_hits)*100) %>%</td>
33
33
  <td><%%= country.total %></td>
34
34
  </tr>
35
35
  <%% end %>
@@ -31,8 +31,8 @@ class Railstat < ActiveRecord::Migration
31
31
  add_index :search_terms, :subdomain
32
32
 
33
33
  create_table :iptocs do |t|
34
- t.column :ip_from, :integer, :null => false
35
- t.column :ip_to, :integer, :null => false
34
+ t.column :ip_from, :bigint, :null => false
35
+ t.column :ip_to, :bigint, :null => false
36
36
  t.column :country_code2, :string, :null => false
37
37
  t.column :country_code3, :string, :null => false
38
38
  t.column :country_name, :string, :null => false
@@ -45,4 +45,4 @@ class Railstat < ActiveRecord::Migration
45
45
  drop_table :search_terms
46
46
  drop_table :iptocs
47
47
  end
48
- end
48
+ end
@@ -6,21 +6,21 @@ module PathTracker
6
6
 
7
7
  def track_path
8
8
  begin
9
- referer = @params['referer'] # env['HTTP_REFERER']
10
- req_uri = @params['doc'] # env['REQUEST_URI']
9
+ referer = params['referer'] # env['HTTP_REFERER']
10
+ req_uri = params['doc'] # env['REQUEST_URI']
11
11
 
12
- req_uri = @request.env['HTTP_REFERER'] if req_uri.nil?
12
+ req_uri = request.env['HTTP_REFERER'] if req_uri.nil?
13
13
 
14
14
  req_uri = get_doc_url(req_uri)
15
15
 
16
- size = @params['size']
17
- colors = @params['colors']
18
- java = @params['java']
19
- je = @params['je']
20
- flash = @params['flash']
16
+ size = params['size']
17
+ colors = params['colors']
18
+ java = params['java']
19
+ je = params['je']
20
+ flash = params['flash']
21
21
 
22
- env = @request.env.nil? ? {'HTTP_USER_AGENT' => nil, 'HTTP_REFERER' => nil,
23
- 'REMOTE_ADDR' => nil, 'HTTP_ACCEPT_LANGUAGE' => nil, 'REQUEST_URI' => nil} : @request.env
22
+ env = request.env.nil? ? {'HTTP_USER_AGENT' => nil, 'HTTP_REFERER' => nil,
23
+ 'REMOTE_ADDR' => nil, 'HTTP_ACCEPT_LANGUAGE' => nil, 'REQUEST_URI' => nil} : request.env
24
24
  br = parse_user_agent(env['HTTP_USER_AGENT'])
25
25
  subdomain = detect_subdomain
26
26
  domain = get_urls_host(referer)
@@ -30,13 +30,18 @@ module PathTracker
30
30
  remote_ip = env['HTTP_X_FORWARDED_FOR'] || env['REMOTE_ADDR']
31
31
 
32
32
  if remote_ip == "127.0.0.1"
33
- client_country = "localhost"
33
+ country_name = "LOCALHOST"
34
34
  else
35
- client_country = Iptoc.find_by_ip_address(remote_ip)
35
+ country = Iptoc.find_by_ip_address(remote_ip)
36
+ unless country == nil
37
+ country_name = country.country_name
38
+ else
39
+ country_name = "UNKNOWN"
40
+ end
36
41
  end
37
42
 
38
43
  RailStat.create("remote_ip" => remote_ip,
39
- "country" => client_country,
44
+ "country" => country_name,
40
45
  "language" => determine_lang(env['HTTP_ACCEPT_LANGUAGE']),
41
46
  "domain" => domain,
42
47
  "subdomain" => subdomain,
@@ -321,7 +326,7 @@ module PathTracker
321
326
  def detect_subdomain
322
327
  subd = ''
323
328
  begin
324
- subd = ((@request.subdomains and @request.subdomains.first) ? @request.subdomains.first : nil)
329
+ subd = ((request.subdomains and request.subdomains.first) ? request.subdomains.first : nil)
325
330
  rescue Exception => e
326
331
  logger.error("Error on subdomain parse #{e.backtrace.join('\n')}" )
327
332
  end
metadata CHANGED
@@ -1,126 +1,134 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.8.11
3
- specification_version: 1
4
2
  name: rail_stat_generator
5
3
  version: !ruby/object:Gem::Version
6
- version: 0.1.4
7
- date: 2006-10-31 00:00:00 +02:00
8
- summary: RailStat is a real-time web site statistics package which uses Ruby on Rails web application framework.
9
- require_paths:
10
- - lib
11
- email: lubo_AT_manolov.org
12
- homepage: http://www.railstat.com
13
- rubyforge_project: railstat
14
- description: "RailStat generator creates a real-time web site statistics system. Features: - Page views paths on each session - Number of total hits / unique hits - Operating system and browser - Countries and languages - Referrers and search strings - Flash / JavaVM / Javascript / ScreenWidth / ColorDepth"
15
- autorequire: rail_stat_generator
16
- default_executable:
17
- bindir: bin
18
- has_rdoc: false
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
20
- requirements:
21
- - - ">"
22
- - !ruby/object:Gem::Version
23
- version: 0.0.0
24
- version:
4
+ version: 2.0.0
25
5
  platform: ruby
26
- signing_key:
27
- cert_chain:
28
6
  authors:
29
7
  - Luben Manolov
30
8
  - Nick Penkov
31
9
  - Jeff Casimir
10
+ autorequire: rail_stat_generator
11
+ bindir: bin
12
+ cert_chain: []
13
+
14
+ date: 2008-10-20 00:00:00 +03:00
15
+ default_executable:
16
+ dependencies: []
17
+
18
+ description: "RailStat generator creates a real-time web site statistics system. Features: - Page views paths on each session - Number of total hits / unique hits - Operating system and browser - Countries and languages - Referrers and search strings - Flash / JavaVM / Javascript / ScreenWidth / ColorDepth"
19
+ email: lubo_AT_manolov.org
20
+ executables: []
21
+
22
+ extensions: []
23
+
24
+ extra_rdoc_files: []
25
+
32
26
  files:
33
- - templates/app
34
- - templates/db
35
- - templates/lib
36
27
  - templates/public
37
- - templates/README
38
- - templates/app/helpers
39
- - templates/app/models
40
- - templates/app/controllers
41
- - templates/app/views
42
- - templates/app/helpers/rail_stat_helper.rb
43
- - templates/app/models/iptoc.rb
44
- - templates/app/models/rail_stat.rb
45
- - templates/app/models/search_term.rb
46
- - templates/app/controllers/rail_stat_controller.rb
47
- - templates/app/views/layouts
48
- - templates/app/views/rail_stat
49
- - templates/app/views/layouts/rail_stat.rhtml
50
- - templates/app/views/rail_stat/path.rhtml
51
- - templates/app/views/rail_stat/refs.rhtml
52
- - templates/app/views/rail_stat/lang.rhtml
53
- - templates/app/views/rail_stat/other.rhtml
54
- - templates/app/views/rail_stat/_menu.rhtml
55
- - templates/app/views/rail_stat/platform.rhtml
56
- - templates/app/views/rail_stat/hits.rhtml
57
- - templates/db/railstat.rb
58
- - templates/db/ip-to-country.mysql.sql
59
- - templates/lib/path_tracker.rb
60
- - templates/public/images
61
- - templates/public/javascripts
62
28
  - templates/public/stylesheets
29
+ - templates/public/stylesheets/tabs.css
30
+ - templates/public/stylesheets/railstat.css
31
+ - templates/public/javascripts
32
+ - templates/public/javascripts/railstat.js
33
+ - templates/public/images
63
34
  - templates/public/images/railstat
64
- - templates/public/images/railstat/1pxtr.gif
65
- - templates/public/images/railstat/10.gif
66
- - templates/public/images/railstat/11.gif
67
- - templates/public/images/railstat/other.gif
68
- - templates/public/images/railstat/30.gif
69
- - templates/public/images/railstat/12.gif
70
- - templates/public/images/railstat/31.gif
71
- - templates/public/images/railstat/13.gif
72
35
  - templates/public/images/railstat/32.gif
73
- - templates/public/images/railstat/14.gif
74
- - templates/public/images/railstat/33.gif
75
- - templates/public/images/railstat/15.gif
76
36
  - templates/public/images/railstat/34.gif
77
- - templates/public/images/railstat/16.gif
78
- - templates/public/images/railstat/35.gif
79
- - templates/public/images/railstat/17.gif
80
- - templates/public/images/railstat/36.gif
81
- - templates/public/images/railstat/18.gif
37
+ - templates/public/images/railstat/2.gif
38
+ - templates/public/images/railstat/12.gif
82
39
  - templates/public/images/railstat/37.gif
83
- - templates/public/images/railstat/19.gif
84
- - templates/public/images/railstat/38.gif
85
- - templates/public/images/railstat/39.gif
40
+ - templates/public/images/railstat/29.gif
41
+ - templates/public/images/railstat/other.gif
42
+ - templates/public/images/railstat/1.gif
43
+ - templates/public/images/railstat/27.gif
44
+ - templates/public/images/railstat/11.gif
86
45
  - templates/public/images/railstat/20.gif
87
- - templates/public/images/railstat/21.gif
46
+ - templates/public/images/railstat/17.gif
47
+ - templates/public/images/railstat/26.gif
48
+ - templates/public/images/railstat/19.gif
88
49
  - templates/public/images/railstat/22.gif
89
- - templates/public/images/railstat/40.gif
50
+ - templates/public/images/railstat/18.gif
51
+ - templates/public/images/railstat/10.gif
90
52
  - templates/public/images/railstat/23.gif
53
+ - templates/public/images/railstat/38.gif
54
+ - templates/public/images/railstat/36.gif
55
+ - templates/public/images/railstat/7.gif
56
+ - templates/public/images/railstat/35.gif
91
57
  - templates/public/images/railstat/24.gif
92
- - templates/public/images/railstat/25.gif
93
- - templates/public/images/railstat/26.gif
94
- - templates/public/images/railstat/27.gif
95
- - templates/public/images/railstat/28.gif
96
- - templates/public/images/railstat/29.gif
97
- - templates/public/images/railstat/1.gif
98
- - templates/public/images/railstat/2.gif
99
- - templates/public/images/railstat/3.gif
100
58
  - templates/public/images/railstat/4.gif
101
- - templates/public/images/railstat/5.gif
102
59
  - templates/public/images/railstat/6.gif
103
- - templates/public/images/railstat/7.gif
104
- - templates/public/images/railstat/8.gif
60
+ - templates/public/images/railstat/15.gif
61
+ - templates/public/images/railstat/5.gif
62
+ - templates/public/images/railstat/28.gif
63
+ - templates/public/images/railstat/25.gif
64
+ - templates/public/images/railstat/21.gif
65
+ - templates/public/images/railstat/14.gif
66
+ - templates/public/images/railstat/40.gif
67
+ - templates/public/images/railstat/1pxtr.gif
105
68
  - templates/public/images/railstat/9.gif
106
- - templates/public/javascripts/railstat.js
107
- - templates/public/stylesheets/tabs.css
108
- - templates/public/stylesheets/railstat.css
69
+ - templates/public/images/railstat/33.gif
70
+ - templates/public/images/railstat/16.gif
71
+ - templates/public/images/railstat/31.gif
72
+ - templates/public/images/railstat/30.gif
73
+ - templates/public/images/railstat/8.gif
74
+ - templates/public/images/railstat/39.gif
75
+ - templates/public/images/railstat/3.gif
76
+ - templates/public/images/railstat/13.gif
77
+ - templates/lib
78
+ - templates/lib/path_tracker.rb
79
+ - templates/db
80
+ - templates/db/ip-to-country.mysql.sql
81
+ - templates/db/railstat.rb
82
+ - templates/app
83
+ - templates/app/models
84
+ - templates/app/models/search_term.rb
85
+ - templates/app/models/rail_stat.rb
86
+ - templates/app/models/iptoc.rb
87
+ - templates/app/controllers
88
+ - templates/app/controllers/rail_stat_controller.rb
89
+ - templates/app/helpers
90
+ - templates/app/helpers/rail_stat_helper.rb
91
+ - templates/app/views
92
+ - templates/app/views/rail_stat
93
+ - templates/app/views/rail_stat/platform.rhtml
94
+ - templates/app/views/rail_stat/lang.rhtml
95
+ - templates/app/views/rail_stat/other.rhtml
96
+ - templates/app/views/rail_stat/_menu.rhtml
97
+ - templates/app/views/rail_stat/hits.rhtml
98
+ - templates/app/views/rail_stat/path.rhtml
99
+ - templates/app/views/rail_stat/refs.rhtml
100
+ - templates/app/views/layouts
101
+ - templates/app/views/layouts/rail_stat.rhtml
102
+ - templates/README
109
103
  - rail_stat_generator.rb
110
104
  - USAGE
111
105
  - MIT-LICENSE
112
106
  - LICENSE-IP2C
113
- test_files: []
114
-
107
+ has_rdoc: false
108
+ homepage: http://www.railstat.com
109
+ post_install_message:
115
110
  rdoc_options: []
116
111
 
117
- extra_rdoc_files: []
118
-
119
- executables: []
120
-
121
- extensions: []
122
-
112
+ require_paths:
113
+ - lib
114
+ required_ruby_version: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: "0"
119
+ version:
120
+ required_rubygems_version: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: "0"
125
+ version:
123
126
  requirements: []
124
127
 
125
- dependencies: []
128
+ rubyforge_project: railstat
129
+ rubygems_version: 1.2.0
130
+ signing_key:
131
+ specification_version: 2
132
+ summary: RailStat is a real-time web site statistics package which uses Ruby on Rails web application framework.
133
+ test_files: []
126
134