Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

count this

  • Loading branch information...
commit 9dd900574c6306ff13c92dbb4abcc7db4fdf51a1 0 parents
@pjhyett authored
Showing with 2,435 additions and 0 deletions.
  1. +10 −0 Rakefile
  2. +40 −0 app/.svn/entries
  3. +1 −0  app/.svn/format
  4. +52 −0 app/controllers/.svn/entries
  5. +1 −0  app/controllers/.svn/format
  6. +3 −0  app/controllers/.svn/text-base/application.rb.svn-base
  7. +33 −0 app/controllers/.svn/text-base/sites_controller.rb.svn-base
  8. +3 −0  app/controllers/application.rb
  9. +33 −0 app/controllers/sites_controller.rb
  10. +40 −0 app/helpers/.svn/entries
  11. +1 −0  app/helpers/.svn/format
  12. +2 −0  app/helpers/.svn/text-base/application_helper.rb.svn-base
  13. +2 −0  app/helpers/application_helper.rb
  14. +40 −0 app/models/.svn/entries
  15. +1 −0  app/models/.svn/format
  16. +6 −0 app/models/.svn/text-base/site.rb.svn-base
  17. +6 −0 app/models/site.rb
  18. +34 −0 app/views/.svn/entries
  19. +1 −0  app/views/.svn/format
  20. +40 −0 app/views/layouts/.svn/entries
  21. +1 −0  app/views/layouts/.svn/format
  22. +16 −0 app/views/layouts/.svn/text-base/application.rhtml.svn-base
  23. +16 −0 app/views/layouts/application.rhtml
  24. +64 −0 app/views/sites/.svn/entries
  25. +1 −0  app/views/sites/.svn/format
  26. +13 −0 app/views/sites/.svn/text-base/index.rhtml.svn-base
  27. +15 −0 app/views/sites/.svn/text-base/new.rhtml.svn-base
  28. +9 −0 app/views/sites/.svn/text-base/show.rhtml.svn-base
  29. +13 −0 app/views/sites/index.rhtml
  30. +15 −0 app/views/sites/new.rhtml
  31. +9 −0 app/views/sites/show.rhtml
  32. +91 −0 config/.svn/entries
  33. +1 −0  config/.svn/format
  34. +45 −0 config/.svn/text-base/boot.rb.svn-base
  35. +17 −0 config/.svn/text-base/database.yml.svn-base
  36. +5 −0 config/.svn/text-base/environment.rb.svn-base
  37. +5 −0 config/.svn/text-base/mongrel_cluster.yml.svn-base
  38. +4 −0 config/.svn/text-base/routes.rb.svn-base
  39. +45 −0 config/boot.rb
  40. +17 −0 config/database.yml
  41. +5 −0 config/environment.rb
  42. +64 −0 config/environments/.svn/entries
  43. +1 −0  config/environments/.svn/format
  44. +21 −0 config/environments/.svn/text-base/development.rb.svn-base
  45. +18 −0 config/environments/.svn/text-base/production.rb.svn-base
  46. +19 −0 config/environments/.svn/text-base/test.rb.svn-base
  47. +21 −0 config/environments/development.rb
  48. +18 −0 config/environments/production.rb
  49. +19 −0 config/environments/test.rb
  50. +5 −0 config/mongrel_cluster.yml
  51. +4 −0 config/routes.rb
  52. +29 −0 counter.rb
  53. +43 −0 db/.svn/entries
  54. +1 −0  db/.svn/format
  55. +12 −0 db/.svn/text-base/schema.rb.svn-base
  56. +40 −0 db/migrate/.svn/entries
  57. +1 −0  db/migrate/.svn/format
  58. +12 −0 db/migrate/.svn/text-base/001_start_counting.rb.svn-base
  59. +12 −0 db/migrate/001_start_counting.rb
  60. +12 −0 db/schema.rb
  61. +31 −0 lib/.svn/entries
  62. +1 −0  lib/.svn/format
  63. +28 −0 lib/tasks/.svn/entries
  64. +1 −0  lib/tasks/.svn/format
  65. +6 −0 log/.svn/dir-prop-base
  66. +28 −0 log/.svn/entries
  67. +1 −0  log/.svn/format
  68. +40 −0 public/.htaccess
  69. +94 −0 public/.svn/entries
  70. +1 −0  public/.svn/format
  71. +40 −0 public/.svn/text-base/.htaccess.svn-base
  72. +30 −0 public/.svn/text-base/404.html.svn-base
  73. +30 −0 public/.svn/text-base/500.html.svn-base
  74. 0  public/.svn/text-base/favicon.ico.svn-base
  75. +1 −0  public/.svn/text-base/robots.txt.svn-base
  76. +30 −0 public/404.html
  77. +30 −0 public/500.html
  78. 0  public/favicon.ico
  79. +41 −0 public/images/.svn/entries
  80. +1 −0  public/images/.svn/format
  81. +5 −0 public/images/.svn/prop-base/counter.png.svn-base
  82. BIN  public/images/.svn/text-base/counter.png.svn-base
  83. BIN  public/images/counter.png
  84. +1 −0  public/robots.txt
  85. +40 −0 public/stylesheets/.svn/entries
  86. +1 −0  public/stylesheets/.svn/format
  87. +12 −0 public/stylesheets/.svn/text-base/screen.css.svn-base
  88. +12 −0 public/stylesheets/screen.css
  89. +138 −0 script/.svn/entries
  90. +1 −0  script/.svn/format
  91. +5 −0 script/.svn/prop-base/about.svn-base
  92. +5 −0 script/.svn/prop-base/breakpointer.svn-base
  93. +5 −0 script/.svn/prop-base/console.svn-base
  94. +5 −0 script/.svn/prop-base/destroy.svn-base
  95. +5 −0 script/.svn/prop-base/generate.svn-base
  96. +5 −0 script/.svn/prop-base/plugin.svn-base
  97. +5 −0 script/.svn/prop-base/runner.svn-base
  98. +5 −0 script/.svn/prop-base/server.svn-base
  99. +3 −0  script/.svn/text-base/about.svn-base
  100. +3 −0  script/.svn/text-base/breakpointer.svn-base
  101. +3 −0  script/.svn/text-base/console.svn-base
  102. +3 −0  script/.svn/text-base/destroy.svn-base
  103. +3 −0  script/.svn/text-base/generate.svn-base
  104. +3 −0  script/.svn/text-base/plugin.svn-base
  105. +3 −0  script/.svn/text-base/runner.svn-base
  106. +3 −0  script/.svn/text-base/server.svn-base
  107. +3 −0  script/about
  108. +3 −0  script/breakpointer
  109. +3 −0  script/console
  110. +3 −0  script/destroy
  111. +3 −0  script/generate
  112. +54 −0 script/performance/.svn/entries
  113. +1 −0  script/performance/.svn/format
  114. +5 −0 script/performance/.svn/prop-base/benchmarker.svn-base
  115. +5 −0 script/performance/.svn/prop-base/profiler.svn-base
  116. +3 −0  script/performance/.svn/text-base/benchmarker.svn-base
  117. +3 −0  script/performance/.svn/text-base/profiler.svn-base
  118. +3 −0  script/performance/benchmarker
  119. +3 −0  script/performance/profiler
  120. +3 −0  script/plugin
  121. +67 −0 script/process/.svn/entries
  122. +1 −0  script/process/.svn/format
  123. +5 −0 script/process/.svn/prop-base/inspector.svn-base
  124. +5 −0 script/process/.svn/prop-base/reaper.svn-base
  125. +5 −0 script/process/.svn/prop-base/spawner.svn-base
  126. +3 −0  script/process/.svn/text-base/inspector.svn-base
  127. +3 −0  script/process/.svn/text-base/reaper.svn-base
  128. +3 −0  script/process/.svn/text-base/spawner.svn-base
  129. +3 −0  script/process/inspector
  130. +3 −0  script/process/reaper
  131. +3 −0  script/process/spawner
  132. +3 −0  script/runner
  133. +3 −0  script/server
  134. +55 −0 test/.svn/entries
  135. +1 −0  test/.svn/format
  136. +28 −0 test/.svn/text-base/test_helper.rb.svn-base
  137. +28 −0 test/fixtures/.svn/entries
  138. +1 −0  test/fixtures/.svn/format
  139. +28 −0 test/functional/.svn/entries
  140. +1 −0  test/functional/.svn/format
  141. +28 −0 test/integration/.svn/entries
  142. +1 −0  test/integration/.svn/format
  143. +34 −0 test/mocks/.svn/entries
  144. +1 −0  test/mocks/.svn/format
  145. +28 −0 test/mocks/development/.svn/entries
  146. +1 −0  test/mocks/development/.svn/format
  147. +28 −0 test/mocks/test/.svn/entries
  148. +1 −0  test/mocks/test/.svn/format
  149. +28 −0 test/test_helper.rb
  150. +28 −0 test/unit/.svn/entries
  151. +1 −0  test/unit/.svn/format
  152. +6 −0 tmp/.svn/dir-prop-base
  153. +28 −0 tmp/.svn/entries
  154. +1 −0  tmp/.svn/format
  155. +31 −0 vendor/.svn/entries
  156. +1 −0  vendor/.svn/format
  157. +28 −0 vendor/plugins/.svn/entries
  158. +1 −0  vendor/plugins/.svn/format
10 Rakefile
@@ -0,0 +1,10 @@
+# Add your own tasks in files placed in lib/tasks ending in .rake,
+# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
+
+require(File.join(File.dirname(__FILE__), 'config', 'boot'))
+
+require 'rake'
+require 'rake/testtask'
+require 'rake/rdoctask'
+
+require 'tasks/rails'
40 app/.svn/entries
@@ -0,0 +1,40 @@
+8
+
+dir
+365
+svn://errtheblog.com/svn/projects/counter/app
+svn://errtheblog.com/svn/projects
+
+
+
+2007-06-20T21:23:52.510167Z
+177
+pj
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+cf301c5b-d72e-0410-996c-ed4829982077
+
+helpers
+dir
+
+models
+dir
+
+controllers
+dir
+
+views
+dir
+
1  app/.svn/format
@@ -0,0 +1 @@
+8
52 app/controllers/.svn/entries
@@ -0,0 +1,52 @@
+8
+
+dir
+365
+svn://errtheblog.com/svn/projects/counter/app/controllers
+svn://errtheblog.com/svn/projects
+
+
+
+2007-06-20T21:04:19.042538Z
+176
+pj
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+cf301c5b-d72e-0410-996c-ed4829982077
+
+application.rb
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+ddeef0afed8a42a883e767f0afc2266e
+2007-06-18T20:19:38.886950Z
+147
+pj
+
+sites_controller.rb
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+e813f046881395b55611729dbee5fe72
+2007-06-20T21:04:19.042538Z
+176
+pj
+
1  app/controllers/.svn/format
@@ -0,0 +1 @@
+8
3  app/controllers/.svn/text-base/application.rb.svn-base
@@ -0,0 +1,3 @@
+class ApplicationController < ActionController::Base
+ session :off
+end
33 app/controllers/.svn/text-base/sites_controller.rb.svn-base
@@ -0,0 +1,33 @@
+class SitesController < ApplicationController
+ def index
+ @sites = Site.find_active
+ respond_to do |wants|
+ wants.html
+ wants.json { render :json => @sites.to_json }
+ wants.xml { render :xml => @sites.to_xml }
+ end
+ end
+
+ def show
+ @site = Site.find(params[:id])
+ respond_to do |wants|
+ wants.html
+ wants.json { render :json => @site.to_json }
+ wants.xml { render :xml => @site.to_xml }
+ end
+ end
+
+ def create
+ url = sanitize(params[:url])
+ @site = Site.find_by_url(url)
+ @site = Site.create!(:url => url) unless @site
+ redirect_to site_path(@site)
+ rescue
+ redirect_to '/'
+ end
+
+private
+ def sanitize(url)
+ url.gsub(/^www\./, '').gsub(/\/$/, '')
+ end
+end
3  app/controllers/application.rb
@@ -0,0 +1,3 @@
+class ApplicationController < ActionController::Base
+ session :off
+end
33 app/controllers/sites_controller.rb
@@ -0,0 +1,33 @@
+class SitesController < ApplicationController
+ def index
+ @sites = Site.find_active
+ respond_to do |wants|
+ wants.html
+ wants.json { render :json => @sites.to_json }
+ wants.xml { render :xml => @sites.to_xml }
+ end
+ end
+
+ def show
+ @site = Site.find(params[:id])
+ respond_to do |wants|
+ wants.html
+ wants.json { render :json => @site.to_json }
+ wants.xml { render :xml => @site.to_xml }
+ end
+ end
+
+ def create
+ url = sanitize(params[:url])
+ @site = Site.find_by_url(url)
+ @site = Site.create!(:url => url) unless @site
+ redirect_to site_path(@site)
+ rescue
+ redirect_to '/'
+ end
+
+private
+ def sanitize(url)
+ url.gsub(/^www\./, '').gsub(/\/$/, '')
+ end
+end
40 app/helpers/.svn/entries
@@ -0,0 +1,40 @@
+8
+
+dir
+365
+svn://errtheblog.com/svn/projects/counter/app/helpers
+svn://errtheblog.com/svn/projects
+
+
+
+2007-06-18T20:34:01.236006Z
+150
+pj
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+cf301c5b-d72e-0410-996c-ed4829982077
+
+application_helper.rb
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+7b9ebb8b67ebd491bc8e091b4d757357
+2007-06-18T20:34:01.236006Z
+150
+pj
+
1  app/helpers/.svn/format
@@ -0,0 +1 @@
+8
2  app/helpers/.svn/text-base/application_helper.rb.svn-base
@@ -0,0 +1,2 @@
+module ApplicationHelper
+end
2  app/helpers/application_helper.rb
@@ -0,0 +1,2 @@
+module ApplicationHelper
+end
40 app/models/.svn/entries
@@ -0,0 +1,40 @@
+8
+
+dir
+365
+svn://errtheblog.com/svn/projects/counter/app/models
+svn://errtheblog.com/svn/projects
+
+
+
+2007-06-20T21:23:52.510167Z
+177
+pj
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+cf301c5b-d72e-0410-996c-ed4829982077
+
+site.rb
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+77b6b78938b314e742abc743f865538f
+2007-06-20T21:23:52.510167Z
+177
+pj
+
1  app/models/.svn/format
@@ -0,0 +1 @@
+8
6 app/models/.svn/text-base/site.rb.svn-base
@@ -0,0 +1,6 @@
+class Site < ActiveRecord::Base
+ validates_format_of :url, :with => /^\w+\.[a-z0-9.:]+$/i
+ def self.find_active
+ find(:all, :conditions => 'hits > 0', :order => 'hits desc')
+ end
+end
6 app/models/site.rb
@@ -0,0 +1,6 @@
+class Site < ActiveRecord::Base
+ validates_format_of :url, :with => /^\w+\.[a-z0-9.:]+$/i
+ def self.find_active
+ find(:all, :conditions => 'hits > 0', :order => 'hits desc')
+ end
+end
34 app/views/.svn/entries
@@ -0,0 +1,34 @@
+8
+
+dir
+365
+svn://errtheblog.com/svn/projects/counter/app/views
+svn://errtheblog.com/svn/projects
+
+
+
+2007-06-20T21:04:19.042538Z
+176
+pj
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+cf301c5b-d72e-0410-996c-ed4829982077
+
+layouts
+dir
+
+sites
+dir
+
1  app/views/.svn/format
@@ -0,0 +1 @@
+8
40 app/views/layouts/.svn/entries
@@ -0,0 +1,40 @@
+8
+
+dir
+365
+svn://errtheblog.com/svn/projects/counter/app/views/layouts
+svn://errtheblog.com/svn/projects
+
+
+
+2007-06-20T21:04:19.042538Z
+176
+pj
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+cf301c5b-d72e-0410-996c-ed4829982077
+
+application.rhtml
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+4b4de96b435e8a0731569345f1224965
+2007-06-20T21:04:19.042538Z
+176
+pj
+
1  app/views/layouts/.svn/format
@@ -0,0 +1 @@
+8
16 app/views/layouts/.svn/text-base/application.rhtml.svn-base
@@ -0,0 +1,16 @@
+<html>
+<head>
+ <title>ErrCount</title>
+ <%= stylesheet_link_tag 'screen' %>
+</head>
+<body>
+ <h1><%= link_to 'ErrCount' ,'/' %></h1>
+ <h2>keeping you honest. <span class="tight"><%= link_to 'look here', sites_path %>.</span></h2>
+
+ <%= yield %>
+
+ <div id="footer">
+ an <span class="tight"><%= link_to 'Err the Blog', 'http://errtheblog.com' %></span> production.
+ </div>
+</body>
+</html>
16 app/views/layouts/application.rhtml
@@ -0,0 +1,16 @@
+<html>
+<head>
+ <title>ErrCount</title>
+ <%= stylesheet_link_tag 'screen' %>
+</head>
+<body>
+ <h1><%= link_to 'ErrCount' ,'/' %></h1>
+ <h2>keeping you honest. <span class="tight"><%= link_to 'look here', sites_path %>.</span></h2>
+
+ <%= yield %>
+
+ <div id="footer">
+ an <span class="tight"><%= link_to 'Err the Blog', 'http://errtheblog.com' %></span> production.
+ </div>
+</body>
+</html>
64 app/views/sites/.svn/entries
@@ -0,0 +1,64 @@
+8
+
+dir
+365
+svn://errtheblog.com/svn/projects/counter/app/views/sites
+svn://errtheblog.com/svn/projects
+
+
+
+2007-06-20T21:04:19.042538Z
+176
+pj
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+cf301c5b-d72e-0410-996c-ed4829982077
+
+show.rhtml
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+3a894495ba4aa0f12fa402357bfab552
+2007-06-20T21:04:19.042538Z
+176
+pj
+
+index.rhtml
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+37afc0c0e3926ad9dbe06d790edb066b
+2007-06-20T21:04:19.042538Z
+176
+pj
+
+new.rhtml
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+1e0ecde095ed029734701ad1e671a164
+2007-06-20T21:04:19.042538Z
+176
+pj
+
1  app/views/sites/.svn/format
@@ -0,0 +1 @@
+8
13 app/views/sites/.svn/text-base/index.rhtml.svn-base
@@ -0,0 +1,13 @@
+<p>the straight dope:</p>
+
+<table>
+ <tr><th>Site</th><th>Hits</th></tr>
+ <% @sites.each do |site| -%>
+ <tr style="background:#<%= cycle('eee', 'fff') %>">
+ <td><%= link_to h(site.url), "http://#{site.url}", :rel => :nofollow %></td>
+ <td><%= site.hits %></td>
+ </tr>
+ <% end -%>
+</table>
+
+<p class="small">*sites with zero hits removed</p>
15 app/views/sites/.svn/text-base/new.rhtml.svn-base
@@ -0,0 +1,15 @@
+<p>What site are you installing the counter on?</p>
+<form method="post" action="/sites">
+ http:// <input type="text" name="url" value="www.foobar.com" onclick="rock(this)" style="color:#ccc" />
+ <input type="submit" value="Generate Counter" />
+</form>
+
+<%= javascript_tag <<-JS
+ function rock(input) {
+ if(input.value == "www.foobar.com") {
+ input.value = "";
+ input.style.color = "#000";
+ }
+ }
+ JS
+%>
9 app/views/sites/.svn/text-base/show.rhtml.svn-base
@@ -0,0 +1,9 @@
+<p>Copy <span class="amp">&amp;</span> Paste the following on <strong><%=h @site.url %></strong></p>
+
+<textarea rows="2" cols="50" onclick="this.select()"><script src="http://<%= request.env['HTTP_HOST'] %>/ctr/<%= @site.id %>.js"></script></textarea>
+
+<p>
+ It'll look like this:
+ <script src="http://<%= request.env['HTTP_HOST'] %>/ctr/<%= @site.id %>.js"></script>
+ <div style="clear:left"></div>
+</p>
13 app/views/sites/index.rhtml
@@ -0,0 +1,13 @@
+<p>the straight dope:</p>
+
+<table>
+ <tr><th>Site</th><th>Hits</th></tr>
+ <% @sites.each do |site| -%>
+ <tr style="background:#<%= cycle('eee', 'fff') %>">
+ <td><%= link_to h(site.url), "http://#{site.url}", :rel => :nofollow %></td>
+ <td><%= site.hits %></td>
+ </tr>
+ <% end -%>
+</table>
+
+<p class="small">*sites with zero hits removed</p>
15 app/views/sites/new.rhtml
@@ -0,0 +1,15 @@
+<p>What site are you installing the counter on?</p>
+<form method="post" action="/sites">
+ http:// <input type="text" name="url" value="www.foobar.com" onclick="rock(this)" style="color:#ccc" />
+ <input type="submit" value="Generate Counter" />
+</form>
+
+<%= javascript_tag <<-JS
+ function rock(input) {
+ if(input.value == "www.foobar.com") {
+ input.value = "";
+ input.style.color = "#000";
+ }
+ }
+ JS
+%>
9 app/views/sites/show.rhtml
@@ -0,0 +1,9 @@
+<p>Copy <span class="amp">&amp;</span> Paste the following on <strong><%=h @site.url %></strong></p>
+
+<textarea rows="2" cols="50" onclick="this.select()"><script src="http://<%= request.env['HTTP_HOST'] %>/ctr/<%= @site.id %>.js"></script></textarea>
+
+<p>
+ It'll look like this:
+ <script src="http://<%= request.env['HTTP_HOST'] %>/ctr/<%= @site.id %>.js"></script>
+ <div style="clear:left"></div>
+</p>
91 config/.svn/entries
@@ -0,0 +1,91 @@
+8
+
+dir
+365
+svn://errtheblog.com/svn/projects/counter/config
+svn://errtheblog.com/svn/projects
+
+
+
+2007-06-20T21:04:19.042538Z
+176
+pj
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+cf301c5b-d72e-0410-996c-ed4829982077
+
+routes.rb
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+947c488141cce3bd89d7a98d69f1fc5a
+2007-06-20T21:04:19.042538Z
+176
+pj
+
+database.yml
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+99920698c797fd45e6cdf58c3adf1d20
+2007-06-18T20:19:38.886950Z
+147
+pj
+
+mongrel_cluster.yml
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+94d918f5f32c637e11fcecc7a7e11ffd
+2007-06-19T22:10:43.555352Z
+153
+pj
+
+boot.rb
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+417110f29a4bb6c57fbae5ceff0a5015
+2007-06-18T20:19:38.886950Z
+147
+pj
+
+environment.rb
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+8791f8cc6acd147d885584ee39e47657
+2007-06-19T22:38:23.391024Z
+154
+pj
+
+environments
+dir
+
1  config/.svn/format
@@ -0,0 +1 @@
+8
45 config/.svn/text-base/boot.rb.svn-base
@@ -0,0 +1,45 @@
+# Don't change this file. Configuration is done in config/environment.rb and config/environments/*.rb
+
+unless defined?(RAILS_ROOT)
+ root_path = File.join(File.dirname(__FILE__), '..')
+
+ unless RUBY_PLATFORM =~ /(:?mswin|mingw)/
+ require 'pathname'
+ root_path = Pathname.new(root_path).cleanpath(true).to_s
+ end
+
+ RAILS_ROOT = root_path
+end
+
+unless defined?(Rails::Initializer)
+ if File.directory?("#{RAILS_ROOT}/vendor/rails")
+ require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer"
+ else
+ require 'rubygems'
+
+ environment_without_comments = IO.readlines(File.dirname(__FILE__) + '/environment.rb').reject { |l| l =~ /^#/ }.join
+ environment_without_comments =~ /[^#]RAILS_GEM_VERSION = '([\d.]+)'/
+ rails_gem_version = $1
+
+ if version = defined?(RAILS_GEM_VERSION) ? RAILS_GEM_VERSION : rails_gem_version
+ # Asking for 1.1.6 will give you 1.1.6.5206, if available -- makes it easier to use beta gems
+ rails_gem = Gem.cache.search('rails', "~>#{version}.0").sort_by { |g| g.version.version }.last
+
+ if rails_gem
+ gem "rails", "=#{rails_gem.version.version}"
+ require rails_gem.full_gem_path + '/lib/initializer'
+ else
+ STDERR.puts %(Cannot find gem for Rails ~>#{version}.0:
+ Install the missing gem with 'gem install -v=#{version} rails', or
+ change environment.rb to define RAILS_GEM_VERSION with your desired version.
+ )
+ exit 1
+ end
+ else
+ gem "rails"
+ require 'initializer'
+ end
+ end
+
+ Rails::Initializer.run(:set_load_path)
+end
17 config/.svn/text-base/database.yml.svn-base
@@ -0,0 +1,17 @@
+development:
+ adapter: mysql
+ database: counter_development
+ username: root
+ password:
+
+test:
+ adapter: mysql
+ database: counter_test
+ username: root
+ password:
+
+production:
+ adapter: mysql
+ database: counter_production
+ username: root
+ password:
5 config/.svn/text-base/environment.rb.svn-base
@@ -0,0 +1,5 @@
+require File.join(File.dirname(__FILE__), 'boot')
+
+Rails::Initializer.run do |config|
+ config.frameworks -= [ :action_web_service, :action_mailer ]
+end
5 config/.svn/text-base/mongrel_cluster.yml.svn-base
@@ -0,0 +1,5 @@
+---
+cwd: /home/deploy/sites/counter/current
+port: "8035"
+environment: production
+servers: 1
4 config/.svn/text-base/routes.rb.svn-base
@@ -0,0 +1,4 @@
+ActionController::Routing::Routes.draw do |map|
+ map.resources :sites
+ map.connect "", :controller => "sites", :action => "new"
+end
45 config/boot.rb
@@ -0,0 +1,45 @@
+# Don't change this file. Configuration is done in config/environment.rb and config/environments/*.rb
+
+unless defined?(RAILS_ROOT)
+ root_path = File.join(File.dirname(__FILE__), '..')
+
+ unless RUBY_PLATFORM =~ /(:?mswin|mingw)/
+ require 'pathname'
+ root_path = Pathname.new(root_path).cleanpath(true).to_s
+ end
+
+ RAILS_ROOT = root_path
+end
+
+unless defined?(Rails::Initializer)
+ if File.directory?("#{RAILS_ROOT}/vendor/rails")
+ require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer"
+ else
+ require 'rubygems'
+
+ environment_without_comments = IO.readlines(File.dirname(__FILE__) + '/environment.rb').reject { |l| l =~ /^#/ }.join
+ environment_without_comments =~ /[^#]RAILS_GEM_VERSION = '([\d.]+)'/
+ rails_gem_version = $1
+
+ if version = defined?(RAILS_GEM_VERSION) ? RAILS_GEM_VERSION : rails_gem_version
+ # Asking for 1.1.6 will give you 1.1.6.5206, if available -- makes it easier to use beta gems
+ rails_gem = Gem.cache.search('rails', "~>#{version}.0").sort_by { |g| g.version.version }.last
+
+ if rails_gem
+ gem "rails", "=#{rails_gem.version.version}"
+ require rails_gem.full_gem_path + '/lib/initializer'
+ else
+ STDERR.puts %(Cannot find gem for Rails ~>#{version}.0:
+ Install the missing gem with 'gem install -v=#{version} rails', or
+ change environment.rb to define RAILS_GEM_VERSION with your desired version.
+ )
+ exit 1
+ end
+ else
+ gem "rails"
+ require 'initializer'
+ end
+ end
+
+ Rails::Initializer.run(:set_load_path)
+end
17 config/database.yml
@@ -0,0 +1,17 @@
+development:
+ adapter: mysql
+ database: counter_development
+ username: root
+ password:
+
+test:
+ adapter: mysql
+ database: counter_test
+ username: root
+ password:
+
+production:
+ adapter: mysql
+ database: counter_production
+ username: root
+ password:
5 config/environment.rb
@@ -0,0 +1,5 @@
+require File.join(File.dirname(__FILE__), 'boot')
+
+Rails::Initializer.run do |config|
+ config.frameworks -= [ :action_web_service, :action_mailer ]
+end
64 config/environments/.svn/entries
@@ -0,0 +1,64 @@
+8
+
+dir
+365
+svn://errtheblog.com/svn/projects/counter/config/environments
+svn://errtheblog.com/svn/projects
+
+
+
+2007-06-18T20:19:38.886950Z
+147
+pj
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+cf301c5b-d72e-0410-996c-ed4829982077
+
+test.rb
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+5d77b56f8a9fb3d3cbdd282a850b8eb4
+2007-06-18T20:19:38.886950Z
+147
+pj
+
+development.rb
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+e8b28b6942e649e4a7766c3bed33fb63
+2007-06-18T20:19:38.886950Z
+147
+pj
+
+production.rb
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+d6d2310ca7a81a85390c62abd8ca43df
+2007-06-18T20:19:38.886950Z
+147
+pj
+
1  config/environments/.svn/format
@@ -0,0 +1 @@
+8
21 config/environments/.svn/text-base/development.rb.svn-base
@@ -0,0 +1,21 @@
+# Settings specified here will take precedence over those in config/environment.rb
+
+# In the development environment your application's code is reloaded on
+# every request. This slows down response time but is perfect for development
+# since you don't have to restart the webserver when you make code changes.
+config.cache_classes = false
+
+# Log error messages when you accidentally call methods on nil.
+config.whiny_nils = true
+
+# Enable the breakpoint server that script/breakpointer connects to
+config.breakpoint_server = true
+
+# Show full error reports and disable caching
+config.action_controller.consider_all_requests_local = true
+config.action_controller.perform_caching = false
+config.action_view.cache_template_extensions = false
+config.action_view.debug_rjs = true
+
+# Don't care if the mailer can't send
+config.action_mailer.raise_delivery_errors = false
18 config/environments/.svn/text-base/production.rb.svn-base
@@ -0,0 +1,18 @@
+# Settings specified here will take precedence over those in config/environment.rb
+
+# The production environment is meant for finished, "live" apps.
+# Code is not reloaded between requests
+config.cache_classes = true
+
+# Use a different logger for distributed setups
+# config.logger = SyslogLogger.new
+
+# Full error reports are disabled and caching is turned on
+config.action_controller.consider_all_requests_local = false
+config.action_controller.perform_caching = true
+
+# Enable serving of images, stylesheets, and javascripts from an asset server
+# config.action_controller.asset_host = "http://assets.example.com"
+
+# Disable delivery errors, bad email addresses will be ignored
+# config.action_mailer.raise_delivery_errors = false
19 config/environments/.svn/text-base/test.rb.svn-base
@@ -0,0 +1,19 @@
+# Settings specified here will take precedence over those in config/environment.rb
+
+# The test environment is used exclusively to run your application's
+# test suite. You never need to work with it otherwise. Remember that
+# your test database is "scratch space" for the test suite and is wiped
+# and recreated between test runs. Don't rely on the data there!
+config.cache_classes = true
+
+# Log error messages when you accidentally call methods on nil.
+config.whiny_nils = true
+
+# Show full error reports and disable caching
+config.action_controller.consider_all_requests_local = true
+config.action_controller.perform_caching = false
+
+# Tell ActionMailer not to deliver emails to the real world.
+# The :test delivery method accumulates sent emails in the
+# ActionMailer::Base.deliveries array.
+config.action_mailer.delivery_method = :test
21 config/environments/development.rb
@@ -0,0 +1,21 @@
+# Settings specified here will take precedence over those in config/environment.rb
+
+# In the development environment your application's code is reloaded on
+# every request. This slows down response time but is perfect for development
+# since you don't have to restart the webserver when you make code changes.
+config.cache_classes = false
+
+# Log error messages when you accidentally call methods on nil.
+config.whiny_nils = true
+
+# Enable the breakpoint server that script/breakpointer connects to
+config.breakpoint_server = true
+
+# Show full error reports and disable caching
+config.action_controller.consider_all_requests_local = true
+config.action_controller.perform_caching = false
+config.action_view.cache_template_extensions = false
+config.action_view.debug_rjs = true
+
+# Don't care if the mailer can't send
+config.action_mailer.raise_delivery_errors = false
18 config/environments/production.rb
@@ -0,0 +1,18 @@
+# Settings specified here will take precedence over those in config/environment.rb
+
+# The production environment is meant for finished, "live" apps.
+# Code is not reloaded between requests
+config.cache_classes = true
+
+# Use a different logger for distributed setups
+# config.logger = SyslogLogger.new
+
+# Full error reports are disabled and caching is turned on
+config.action_controller.consider_all_requests_local = false
+config.action_controller.perform_caching = true
+
+# Enable serving of images, stylesheets, and javascripts from an asset server
+# config.action_controller.asset_host = "http://assets.example.com"
+
+# Disable delivery errors, bad email addresses will be ignored
+# config.action_mailer.raise_delivery_errors = false
19 config/environments/test.rb
@@ -0,0 +1,19 @@
+# Settings specified here will take precedence over those in config/environment.rb
+
+# The test environment is used exclusively to run your application's
+# test suite. You never need to work with it otherwise. Remember that
+# your test database is "scratch space" for the test suite and is wiped
+# and recreated between test runs. Don't rely on the data there!
+config.cache_classes = true
+
+# Log error messages when you accidentally call methods on nil.
+config.whiny_nils = true
+
+# Show full error reports and disable caching
+config.action_controller.consider_all_requests_local = true
+config.action_controller.perform_caching = false
+
+# Tell ActionMailer not to deliver emails to the real world.
+# The :test delivery method accumulates sent emails in the
+# ActionMailer::Base.deliveries array.
+config.action_mailer.delivery_method = :test
5 config/mongrel_cluster.yml
@@ -0,0 +1,5 @@
+---
+cwd: /home/deploy/sites/counter/current
+port: "8035"
+environment: production
+servers: 1
4 config/routes.rb
@@ -0,0 +1,4 @@
+ActionController::Routing::Routes.draw do |map|
+ map.resources :sites
+ map.connect "", :controller => "sites", :action => "new"
+end
29 counter.rb
@@ -0,0 +1,29 @@
+class Counter < Mongrel::HttpHandler
+ Style = ".ctr { background-image:url(http://errcount.com/images/counter.png); float:left; width:15px; height:20px; }"
+
+ def process(request, response)
+ response.start(200) do |head, out|
+ # grab row from db
+ id = request.params["PATH_INFO"][/\d+/].to_i
+ row = ActiveRecord::Base.connection.select_one("select url, hits from sites where id = #{id}")
+
+ # check for correct referrer
+ if Regexp.new(row["url"]) =~ request.params["HTTP_REFERER"]
+ ActiveRecord::Base.connection.update("update sites set hits = hits + 1 where id = #{id}")
+ end
+
+ # build counter javascript
+ counter = %{var counter='<style>#{Style}</style><div style="cursor:pointer" onclick="window.location=\\'http://errcount.com\\'">}
+ row["hits"].to_s.split(//).each do |num|
+ counter += %{<div class="ctr" style="background-position:#{150 - (15 * num.to_i)}px 0;"></div>}
+ end
+ counter += "</div>';document.write(counter);"
+
+ # serve it up
+ head["Content-Type"] = "text/javascript"
+ out.write counter
+ end
+ end
+end
+
+uri "/ctr", :handler => Counter.new, :in_front => true
43 db/.svn/entries
@@ -0,0 +1,43 @@
+8
+
+dir
+365
+svn://errtheblog.com/svn/projects/counter/db
+svn://errtheblog.com/svn/projects
+
+
+
+2007-06-20T21:04:19.042538Z
+176
+pj
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+cf301c5b-d72e-0410-996c-ed4829982077
+
+schema.rb
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+15cf9db320dd597a66eb4ab40bc3cb8f
+2007-06-20T21:04:19.042538Z
+176
+pj
+
+migrate
+dir
+
1  db/.svn/format
@@ -0,0 +1 @@
+8
12 db/.svn/text-base/schema.rb.svn-base
@@ -0,0 +1,12 @@
+# This file is autogenerated. Instead of editing this file, please use the
+# migrations feature of ActiveRecord to incrementally modify your database, and
+# then regenerate this schema definition.
+
+ActiveRecord::Schema.define(:version => 1) do
+
+ create_table "sites", :force => true do |t|
+ t.column "url", :string
+ t.column "hits", :integer, :default => 0
+ end
+
+end
40 db/migrate/.svn/entries
@@ -0,0 +1,40 @@
+8
+
+dir
+365
+svn://errtheblog.com/svn/projects/counter/db/migrate
+svn://errtheblog.com/svn/projects
+
+
+
+2007-06-20T21:04:19.042538Z
+176
+pj
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+cf301c5b-d72e-0410-996c-ed4829982077
+
+001_start_counting.rb
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+fdb882ba9ec81516e5e332f252ab592b
+2007-06-20T21:04:19.042538Z
+176
+pj
+
1  db/migrate/.svn/format
@@ -0,0 +1 @@
+8
12 db/migrate/.svn/text-base/001_start_counting.rb.svn-base
@@ -0,0 +1,12 @@
+class StartCounting < ActiveRecord::Migration
+ def self.up
+ create_table :sites do |t|
+ t.column :url, :string
+ t.column :hits, :integer, :default => 0
+ end
+ end
+
+ def self.down
+ drop_table :sites
+ end
+end
12 db/migrate/001_start_counting.rb
@@ -0,0 +1,12 @@
+class StartCounting < ActiveRecord::Migration
+ def self.up
+ create_table :sites do |t|
+ t.column :url, :string
+ t.column :hits, :integer, :default => 0
+ end
+ end
+
+ def self.down
+ drop_table :sites
+ end
+end
12 db/schema.rb
@@ -0,0 +1,12 @@
+# This file is autogenerated. Instead of editing this file, please use the
+# migrations feature of ActiveRecord to incrementally modify your database, and
+# then regenerate this schema definition.
+
+ActiveRecord::Schema.define(:version => 1) do
+
+ create_table "sites", :force => true do |t|
+ t.column "url", :string
+ t.column "hits", :integer, :default => 0
+ end
+
+end
31 lib/.svn/entries
@@ -0,0 +1,31 @@
+8
+
+dir
+365
+svn://errtheblog.com/svn/projects/counter/lib
+svn://errtheblog.com/svn/projects
+
+
+
+2007-06-18T20:19:38.886950Z
+147
+pj
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+cf301c5b-d72e-0410-996c-ed4829982077
+
+tasks
+dir
+
1  lib/.svn/format
@@ -0,0 +1 @@
+8
28 lib/tasks/.svn/entries
@@ -0,0 +1,28 @@
+8
+
+dir
+365
+svn://errtheblog.com/svn/projects/counter/lib/tasks
+svn://errtheblog.com/svn/projects
+
+
+
+2007-06-18T20:19:38.886950Z
+147
+pj
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+cf301c5b-d72e-0410-996c-ed4829982077
+
1  lib/tasks/.svn/format
@@ -0,0 +1 @@
+8
6 log/.svn/dir-prop-base
@@ -0,0 +1,6 @@
+K 10
+svn:ignore
+V 6
+*.log
+
+END
28 log/.svn/entries
@@ -0,0 +1,28 @@
+8
+
+dir
+365
+svn://errtheblog.com/svn/projects/counter/log
+svn://errtheblog.com/svn/projects
+
+
+
+2007-06-18T20:19:38.886950Z
+147
+pj
+has-props
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+cf301c5b-d72e-0410-996c-ed4829982077
+
1  log/.svn/format
@@ -0,0 +1 @@
+8
40 public/.htaccess
@@ -0,0 +1,40 @@
+# General Apache options
+AddHandler fastcgi-script .fcgi
+AddHandler cgi-script .cgi
+Options +FollowSymLinks +ExecCGI
+
+# If you don't want Rails to look in certain directories,
+# use the following rewrite rules so that Apache won't rewrite certain requests
+#
+# Example:
+# RewriteCond %{REQUEST_URI} ^/notrails.*
+# RewriteRule .* - [L]
+
+# Redirect all requests not available on the filesystem to Rails
+# By default the cgi dispatcher is used which is very slow
+#
+# For better performance replace the dispatcher with the fastcgi one
+#
+# Example:
+# RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
+RewriteEngine On
+
+# If your Rails application is accessed via an Alias directive,
+# then you MUST also set the RewriteBase in this htaccess file.
+#
+# Example:
+# Alias /myrailsapp /path/to/myrailsapp/public
+# RewriteBase /myrailsapp
+
+RewriteRule ^$ index.html [QSA]
+RewriteRule ^([^.]+)$ $1.html [QSA]
+RewriteCond %{REQUEST_FILENAME} !-f
+RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
+
+# In case Rails experiences terminal errors
+# Instead of displaying this message you can supply a file here which will be rendered instead
+#
+# Example:
+# ErrorDocument 500 /500.html
+
+ErrorDocument 500 "<h2>Application error</h2>Rails application failed to start properly"
94 public/.svn/entries
@@ -0,0 +1,94 @@
+8
+
+dir
+365
+svn://errtheblog.com/svn/projects/counter/public
+svn://errtheblog.com/svn/projects
+
+
+
+2007-06-20T20:38:05.497420Z
+174
+pj
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+cf301c5b-d72e-0410-996c-ed4829982077
+
+images
+dir
+
+robots.txt
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+a9d8217ec04c304aba7926ae1f066973
+2007-06-18T20:19:38.886950Z
+147
+pj
+
+500.html
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+8e19fd3c53aec78af1087378d5367833
+2007-06-18T20:19:38.886950Z
+147
+pj
+
+404.html
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+adc851c2e0698b5d05ef0380ed69f6b9
+2007-06-18T20:19:38.886950Z
+147
+pj
+
+.htaccess
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+eebf5d1e0a663f298d77013224f03e4f
+2007-06-18T20:19:38.886950Z
+147
+pj
+
+stylesheets
+dir
+
+favicon.ico
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+d41d8cd98f00b204e9800998ecf8427e
+2007-06-18T20:19:38.886950Z
+147
+pj
+
1  public/.svn/format
@@ -0,0 +1 @@
+8
40 public/.svn/text-base/.htaccess.svn-base
@@ -0,0 +1,40 @@
+# General Apache options
+AddHandler fastcgi-script .fcgi
+AddHandler cgi-script .cgi
+Options +FollowSymLinks +ExecCGI
+
+# If you don't want Rails to look in certain directories,
+# use the following rewrite rules so that Apache won't rewrite certain requests
+#
+# Example:
+# RewriteCond %{REQUEST_URI} ^/notrails.*
+# RewriteRule .* - [L]
+
+# Redirect all requests not available on the filesystem to Rails
+# By default the cgi dispatcher is used which is very slow
+#
+# For better performance replace the dispatcher with the fastcgi one
+#
+# Example:
+# RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
+RewriteEngine On
+
+# If your Rails application is accessed via an Alias directive,
+# then you MUST also set the RewriteBase in this htaccess file.
+#
+# Example:
+# Alias /myrailsapp /path/to/myrailsapp/public
+# RewriteBase /myrailsapp
+
+RewriteRule ^$ index.html [QSA]
+RewriteRule ^([^.]+)$ $1.html [QSA]
+RewriteCond %{REQUEST_FILENAME} !-f
+RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
+
+# In case Rails experiences terminal errors
+# Instead of displaying this message you can supply a file here which will be rendered instead
+#
+# Example:
+# ErrorDocument 500 /500.html
+
+ErrorDocument 500 "<h2>Application error</h2>Rails application failed to start properly"
30 public/.svn/text-base/404.html.svn-base
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+ <title>The page you were looking for doesn't exist (404)</title>
+ <style type="text/css">
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
+ div.dialog {
+ width: 25em;
+ padding: 0 4em;
+ margin: 4em auto 0 auto;
+ border: 1px solid #ccc;
+ border-right-color: #999;
+ border-bottom-color: #999;
+ }
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
+ </style>
+</head>
+
+<body>
+ <!-- This file lives in public/404.html -->
+ <div class="dialog">
+ <h1>The page you were looking for doesn't exist.</h1>
+ <p>You may have mistyped the address or the page may have moved.</p>
+ </div>
+</body>
+</html>
30 public/.svn/text-base/500.html.svn-base
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+ <title>We're sorry, but something went wrong</title>
+ <style type="text/css">
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
+ div.dialog {
+ width: 25em;
+ padding: 0 4em;
+ margin: 4em auto 0 auto;
+ border: 1px solid #ccc;
+ border-right-color: #999;
+ border-bottom-color: #999;
+ }
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
+ </style>
+</head>
+
+<body>
+ <!-- This file lives in public/500.html -->
+ <div class="dialog">
+ <h1>We're sorry, but something went wrong.</h1>
+ <p>We've been notified about this issue and we'll take a look at it shortly.</p>
+ </div>
+</body>
+</html>
0  public/.svn/text-base/favicon.ico.svn-base
No changes.
1  public/.svn/text-base/robots.txt.svn-base
@@ -0,0 +1 @@
+# See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file
30 public/404.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+ <title>The page you were looking for doesn't exist (404)</title>
+ <style type="text/css">
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
+ div.dialog {
+ width: 25em;
+ padding: 0 4em;
+ margin: 4em auto 0 auto;
+ border: 1px solid #ccc;
+ border-right-color: #999;
+ border-bottom-color: #999;
+ }
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
+ </style>
+</head>
+
+<body>
+ <!-- This file lives in public/404.html -->
+ <div class="dialog">
+ <h1>The page you were looking for doesn't exist.</h1>
+ <p>You may have mistyped the address or the page may have moved.</p>
+ </div>
+</body>
+</html>
30 public/500.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+ <title>We're sorry, but something went wrong</title>
+ <style type="text/css">
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
+ div.dialog {
+ width: 25em;
+ padding: 0 4em;
+ margin: 4em auto 0 auto;
+ border: 1px solid #ccc;
+ border-right-color: #999;
+ border-bottom-color: #999;
+ }
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
+ </style>
+</head>
+
+<body>
+ <!-- This file lives in public/500.html -->
+ <div class="dialog">
+ <h1>We're sorry, but something went wrong.</h1>
+ <p>We've been notified about this issue and we'll take a look at it shortly.</p>
+ </div>
+</body>
+</html>
0  public/favicon.ico
No changes.
41 public/images/.svn/entries
@@ -0,0 +1,41 @@
+8
+
+dir
+365
+svn://errtheblog.com/svn/projects/counter/public/images
+svn://errtheblog.com/svn/projects
+
+
+
+2007-06-18T20:19:38.886950Z
+147
+pj
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+cf301c5b-d72e-0410-996c-ed4829982077
+
+counter.png
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+a3d6dfde40a9dfbd8043a37f700b7f13
+2007-06-18T20:19:38.886950Z
+147
+pj
+has-props
+
1  public/images/.svn/format
@@ -0,0 +1 @@
+8
5 public/images/.svn/prop-base/counter.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
BIN  public/images/.svn/text-base/counter.png.svn-base
Binary file not shown
BIN  public/images/counter.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1  public/robots.txt
@@ -0,0 +1 @@
+# See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file
40 public/stylesheets/.svn/entries
@@ -0,0 +1,40 @@
+8
+
+dir
+365
+svn://errtheblog.com/svn/projects/counter/public/stylesheets
+svn://errtheblog.com/svn/projects
+
+
+
+2007-06-20T20:38:05.497420Z
+174
+pj
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+cf301c5b-d72e-0410-996c-ed4829982077
+
+screen.css
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+652543af27f24d35af904e99a34e5ce1
+2007-06-20T20:38:05.497420Z
+174
+pj
+
1  public/stylesheets/.svn/format
@@ -0,0 +1 @@
+8
12 public/stylesheets/.svn/text-base/screen.css.svn-base
@@ -0,0 +1,12 @@
+body { font-family:verdana; font-size:24px; }
+h1 { font-size:60px; letter-spacing:-4px; margin:0; }
+h2 { font-size:36px; margin:-25px 0 10px 3px; font-weight:bold; }
+a { text-decoration:none; color:#3923D6; }
+form { font-size:24px; }
+input { font-size:24px; }
+table { font-size:12px; margin-bottom:20px; }
+textarea { font-size:20px; font-family:verdana; }
+.tight { letter-spacing:-3px; }
+.amp { font-family: georgia, arial, sans-serif; font-weight: bold; }
+.small { font-size:12px; }
+#footer { font-weight:bold; }
12 public/stylesheets/screen.css
@@ -0,0 +1,12 @@
+body { font-family:verdana; font-size:24px; }
+h1 { font-size:60px; letter-spacing:-4px; margin:0; }
+h2 { font-size:36px; margin:-25px 0 10px 3px; font-weight:bold; }
+a { text-decoration:none; color:#3923D6; }
+form { font-size:24px; }
+input { font-size:24px; }
+table { font-size:12px; margin-bottom:20px; }
+textarea { font-size:20px; font-family:verdana; }
+.tight { letter-spacing:-3px; }
+.amp { font-family: georgia, arial, sans-serif; font-weight: bold; }
+.small { font-size:12px; }
+#footer { font-weight:bold; }
138 script/.svn/entries
@@ -0,0 +1,138 @@
+8
+
+dir
+365
+svn://errtheblog.com/svn/projects/counter/script
+svn://errtheblog.com/svn/projects
+
+
+
+2007-06-18T20:19:38.886950Z
+147
+pj
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+cf301c5b-d72e-0410-996c-ed4829982077
+
+performance
+dir
+
+console
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+e9da4d9bd98b629d856b280caa927f42
+2007-06-18T20:19:38.886950Z
+147
+pj
+has-props
+
+breakpointer
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+efe05546991854cb1323026c0cdc7d27
+2007-06-18T20:19:38.886950Z
+147
+pj
+has-props
+
+server
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+bba2905059daec6033f7a51cff19aff6
+2007-06-18T20:19:38.886950Z
+147
+pj
+has-props
+
+destroy
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+f09bb329fb28e89340567a704a4619f8
+2007-06-18T20:19:38.886950Z
+147
+pj
+has-props
+
+runner
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+78522a2f43ce4bf932cf237076c0d2a1
+2007-06-18T20:19:38.886950Z
+147
+pj
+has-props
+
+about
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+e8f2a1c34090a8be9dd2a635a6c51d9e
+2007-06-18T20:19:38.886950Z
+147
+pj
+has-props
+
+generate
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+ef69c53ee39f550f43a4bd3a09482ff7
+2007-06-18T20:19:38.886950Z
+147
+pj
+has-props
+
+process
+dir
+
+plugin
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+4c5aa44730cde119ab839486212f4ac5
+2007-06-18T20:19:38.886950Z
+147
+pj
+has-props
+
1  script/.svn/format
@@ -0,0 +1 @@
+8
5 script/.svn/prop-base/about.svn-base
@@ -0,0 +1,5 @@
+K 14
+svn:executable
+V 1
+*
+END
5 script/.svn/prop-base/breakpointer.svn-base
@@ -0,0 +1,5 @@
+K 14
+svn:executable
+V 1
+*
+END
5 script/.svn/prop-base/console.svn-base
@@ -0,0 +1,5 @@
+K 14
+svn:executable
+V 1
+*
+END
5 script/.svn/prop-base/destroy.svn-base
@@ -0,0 +1,5 @@
+K 14
+svn:executable
+V 1
+*
+END
5 script/.svn/prop-base/generate.svn-base
@@ -0,0 +1,5 @@
+K 14
+svn:executable
+V 1
+*
+END
5 script/.svn/prop-base/plugin.svn-base
@@ -0,0 +1,5 @@
+K 14
+svn:executable
+V 1
+*
+END
5 script/.svn/prop-base/runner.svn-base
@@ -0,0 +1,5 @@
+K 14
+svn:executable
+V 1
+*
+END
5 script/.svn/prop-base/server.svn-base
@@ -0,0 +1,5 @@
+K 14
+svn:executable
+V 1
+*
+END
3  script/.svn/text-base/about.svn-base
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../config/boot'
+require 'commands/about'
3  script/.svn/text-base/breakpointer.svn-base
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../config/boot'
+require 'commands/breakpointer'
3  script/.svn/text-base/console.svn-base
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../config/boot'
+require 'commands/console'
3  script/.svn/text-base/destroy.svn-base
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../config/boot'
+require 'commands/destroy'
3  script/.svn/text-base/generate.svn-base
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../config/boot'
+require 'commands/generate'
3  script/.svn/text-base/plugin.svn-base
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../config/boot'
+require 'commands/plugin'
3  script/.svn/text-base/runner.svn-base
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../config/boot'
+require 'commands/runner'
3  script/.svn/text-base/server.svn-base
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../config/boot'
+require 'commands/server'
3  script/about
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../config/boot'
+require 'commands/about'
3  script/breakpointer
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../config/boot'
+require 'commands/breakpointer'
3  script/console
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../config/boot'
+require 'commands/console'
3  script/destroy
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../config/boot'
+require 'commands/destroy'
3  script/generate
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../config/boot'
+require 'commands/generate'
54 script/performance/.svn/entries
@@ -0,0 +1,54 @@
+8
+
+dir
+365
+svn://errtheblog.com/svn/projects/counter/script/performance
+svn://errtheblog.com/svn/projects
+
+
+
+2007-06-18T20:19:38.886950Z
+147
+pj
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+cf301c5b-d72e-0410-996c-ed4829982077
+
+benchmarker
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+91086af38733556c5aabc91eb4b20bed
+2007-06-18T20:19:38.886950Z
+147
+pj
+has-props
+
+profiler
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+4dd7faa9b0b5f678082e19c97852b005
+2007-06-18T20:19:38.886950Z
+147
+pj
+has-props
+
1  script/performance/.svn/format
@@ -0,0 +1 @@
+8
5 script/performance/.svn/prop-base/benchmarker.svn-base
@@ -0,0 +1,5 @@
+K 14
+svn:executable
+V 1
+*
+END
5 script/performance/.svn/prop-base/profiler.svn-base
@@ -0,0 +1,5 @@
+K 14
+svn:executable
+V 1
+*
+END
3  script/performance/.svn/text-base/benchmarker.svn-base
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../../config/boot'
+require 'commands/performance/benchmarker'
3  script/performance/.svn/text-base/profiler.svn-base
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../../config/boot'
+require 'commands/performance/profiler'
3  script/performance/benchmarker
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../../config/boot'
+require 'commands/performance/benchmarker'
3  script/performance/profiler
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../../config/boot'
+require 'commands/performance/profiler'
3  script/plugin
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../config/boot'
+require 'commands/plugin'
67 script/process/.svn/entries
@@ -0,0 +1,67 @@
+8
+
+dir
+365
+svn://errtheblog.com/svn/projects/counter/script/process
+svn://errtheblog.com/svn/projects
+
+
+
+2007-06-18T20:19:38.886950Z
+147
+pj
+
+
+svn:special svn:externals svn:needs-lock
+
+
+
+
+
+
+
+
+
+
+
+cf301c5b-d72e-0410-996c-ed4829982077
+
+spawner
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+e7e52ded28489a821b5eb156f92ca0f5
+2007-06-18T20:19:38.886950Z
+147
+pj
+has-props
+
+inspector
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+73662c6991e4d3ea2332b5fcadd5b3d3
+2007-06-18T20:19:38.886950Z
+147
+pj
+has-props
+
+reaper
+file
+
+
+
+
+2008-02-15T21:05:41.000000Z
+77608fa9e09e9f24410e7374c67956b7
+2007-06-18T20:19:38.886950Z
+147
+pj
+has-props
+
1  script/process/.svn/format
@@ -0,0 +1 @@
+8
5 script/process/.svn/prop-base/inspector.svn-base
@@ -0,0 +1,5 @@
+K 14
+svn:executable
+V 1
+*
+END
5 script/process/.svn/prop-base/reaper.svn-base
@@ -0,0 +1,5 @@
+K 14
+svn:executable
+V 1
+*
+END
5 script/process/.svn/prop-base/spawner.svn-base
@@ -0,0 +1,5 @@
+K 14
+svn:executable
+V 1
+*
+END
3  script/process/.svn/text-base/inspector.svn-base
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../../config/boot'
+require 'commands/process/inspector'
3  script/process/.svn/text-base/reaper.svn-base
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../../config/boot'
+require 'commands/process/reaper'
3  script/process/.svn/text-base/spawner.svn-base
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../../config/boot'
+require 'commands/process/spawner'
3  script/process/inspector
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../../config/boot'
+require 'commands/process/inspector'
3  script/process/reaper
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../../config/boot'
+require 'commands/process/reaper'
3  script/process/spawner
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../../config/boot'
+require 'commands/process/spawner'
3  script/runner
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../config/boot'
+require 'commands/runner'
3  script/server
@@ -0,0 +1,3 @@
+#!/usr/bin/env ruby
+require File.dirname(__FILE__) + '/../config/boot'
+require 'commands/server'
55 test/.svn/entries
@@ -0,0 +1,55 @@
+8
+
+dir
+365
+svn://errtheblog.com/svn/projects/counter/test
+svn://errtheblog.com/svn/projects
+
+
+
+2007-06-18T20:19:38.886950Z
+147
+pj
+
+
+svn:special svn:externals svn:needs-lock