rails 1.0.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rails might be problematic. Click here for more details.

Files changed (177) hide show
  1. data/CHANGELOG +1020 -10
  2. data/MIT-LICENSE +1 -1
  3. data/README +110 -60
  4. data/Rakefile +74 -139
  5. data/bin/about +1 -1
  6. data/bin/console +1 -1
  7. data/bin/destroy +1 -1
  8. data/bin/generate +1 -1
  9. data/bin/performance/request +3 -0
  10. data/bin/plugin +1 -1
  11. data/bin/process/{spinner → inspector} +1 -1
  12. data/bin/rails +10 -12
  13. data/bin/runner +1 -1
  14. data/bin/server +1 -1
  15. data/{lib/rails_info.rb → builtin/rails_info/rails/info.rb} +33 -14
  16. data/builtin/rails_info/rails/info_controller.rb +9 -0
  17. data/builtin/rails_info/rails/info_helper.rb +2 -0
  18. data/builtin/rails_info/rails_info_controller.rb +2 -0
  19. data/configs/apache.conf +1 -1
  20. data/configs/databases/frontbase.yml +28 -0
  21. data/configs/databases/mysql.yml +54 -0
  22. data/configs/databases/oracle.yml +39 -0
  23. data/configs/databases/postgresql.yml +48 -0
  24. data/configs/databases/sqlite2.yml +16 -0
  25. data/configs/databases/sqlite3.yml +19 -0
  26. data/configs/initializers/inflections.rb +10 -0
  27. data/configs/initializers/mime_types.rb +5 -0
  28. data/configs/lighttpd.conf +29 -15
  29. data/configs/routes.rb +27 -11
  30. data/doc/README_FOR_APP +1 -1
  31. data/environments/boot.rb +103 -14
  32. data/environments/development.rb +5 -6
  33. data/environments/environment.rb +36 -30
  34. data/environments/production.rb +2 -3
  35. data/environments/test.rb +5 -2
  36. data/fresh_rakefile +2 -2
  37. data/helpers/application.rb +8 -2
  38. data/helpers/test_helper.rb +10 -0
  39. data/html/404.html +27 -5
  40. data/html/422.html +30 -0
  41. data/html/500.html +27 -5
  42. data/html/index.html +6 -6
  43. data/html/javascripts/application.js +2 -0
  44. data/html/javascripts/controls.js +532 -319
  45. data/html/javascripts/dragdrop.js +521 -133
  46. data/html/javascripts/effects.js +708 -442
  47. data/html/javascripts/prototype.js +3393 -953
  48. data/html/robots.txt +5 -1
  49. data/lib/code_statistics.rb +2 -2
  50. data/lib/commands/console.rb +18 -9
  51. data/lib/commands/performance/profiler.rb +25 -9
  52. data/lib/commands/performance/request.rb +6 -0
  53. data/lib/commands/plugin.rb +196 -96
  54. data/lib/commands/process/inspector.rb +68 -0
  55. data/lib/commands/process/reaper.rb +90 -71
  56. data/lib/commands/process/spawner.rb +188 -21
  57. data/lib/commands/process/spinner.rb +3 -3
  58. data/lib/commands/runner.rb +28 -7
  59. data/lib/commands/server.rb +20 -9
  60. data/lib/commands/servers/base.rb +31 -0
  61. data/lib/commands/servers/lighttpd.rb +60 -26
  62. data/lib/commands/servers/mongrel.rb +69 -0
  63. data/lib/commands/servers/webrick.rb +18 -11
  64. data/lib/console_app.rb +30 -0
  65. data/lib/console_sandbox.rb +2 -2
  66. data/lib/console_with_helpers.rb +26 -0
  67. data/lib/dispatcher.rb +3 -78
  68. data/lib/fcgi_handler.rb +98 -64
  69. data/lib/initializer.rb +323 -194
  70. data/lib/rails/plugin/loader.rb +150 -0
  71. data/lib/rails/plugin/locator.rb +78 -0
  72. data/lib/rails/plugin.rb +84 -0
  73. data/lib/{rails_version.rb → rails/version.rb} +1 -1
  74. data/lib/rails_generator/base.rb +85 -25
  75. data/lib/rails_generator/commands.rb +122 -40
  76. data/lib/rails_generator/generated_attribute.rb +42 -0
  77. data/lib/rails_generator/generators/applications/app/USAGE +0 -7
  78. data/lib/rails_generator/generators/applications/app/app_generator.rb +67 -28
  79. data/lib/rails_generator/generators/components/controller/USAGE +11 -12
  80. data/lib/rails_generator/generators/components/controller/controller_generator.rb +2 -3
  81. data/lib/rails_generator/generators/components/controller/templates/functional_test.rb +1 -11
  82. data/lib/rails_generator/generators/components/controller/templates/{view.rhtml → view.html.erb} +0 -0
  83. data/lib/rails_generator/generators/components/integration_test/USAGE +8 -0
  84. data/lib/rails_generator/generators/components/integration_test/integration_test_generator.rb +16 -0
  85. data/lib/rails_generator/generators/components/integration_test/templates/integration_test.rb +10 -0
  86. data/lib/rails_generator/generators/components/mailer/USAGE +9 -11
  87. data/lib/rails_generator/generators/components/mailer/mailer_generator.rb +10 -8
  88. data/lib/rails_generator/generators/components/mailer/templates/fixture.erb +3 -0
  89. data/lib/rails_generator/generators/components/mailer/templates/fixture.rhtml +0 -3
  90. data/lib/rails_generator/generators/components/mailer/templates/unit_test.rb +9 -25
  91. data/lib/rails_generator/generators/components/mailer/templates/view.erb +3 -0
  92. data/lib/rails_generator/generators/components/mailer/templates/view.rhtml +0 -3
  93. data/lib/rails_generator/generators/components/migration/USAGE +23 -8
  94. data/lib/rails_generator/generators/components/migration/migration_generator.rb +15 -2
  95. data/lib/rails_generator/generators/components/migration/templates/migration.rb +7 -3
  96. data/lib/rails_generator/generators/components/model/USAGE +21 -11
  97. data/lib/rails_generator/generators/components/model/model_generator.rb +28 -1
  98. data/lib/rails_generator/generators/components/model/templates/fixtures.yml +18 -4
  99. data/lib/rails_generator/generators/components/model/templates/migration.rb +16 -0
  100. data/lib/rails_generator/generators/components/model/templates/unit_test.rb +2 -4
  101. data/lib/rails_generator/generators/components/observer/USAGE +13 -0
  102. data/lib/rails_generator/generators/components/observer/observer_generator.rb +16 -0
  103. data/lib/rails_generator/generators/components/observer/templates/observer.rb +2 -0
  104. data/lib/rails_generator/generators/components/observer/templates/unit_test.rb +8 -0
  105. data/lib/rails_generator/generators/components/plugin/USAGE +10 -18
  106. data/lib/rails_generator/generators/components/plugin/plugin_generator.rb +6 -0
  107. data/lib/rails_generator/generators/components/plugin/templates/MIT-LICENSE +20 -0
  108. data/lib/rails_generator/generators/components/plugin/templates/README +10 -1
  109. data/lib/rails_generator/generators/components/plugin/templates/Rakefile +1 -1
  110. data/lib/rails_generator/generators/components/plugin/templates/USAGE +1 -1
  111. data/lib/rails_generator/generators/components/plugin/templates/init.rb +1 -1
  112. data/lib/rails_generator/generators/components/plugin/templates/install.rb +1 -0
  113. data/lib/rails_generator/generators/components/plugin/templates/plugin.rb +1 -1
  114. data/lib/rails_generator/generators/components/plugin/templates/tasks.rake +1 -1
  115. data/lib/rails_generator/generators/components/plugin/templates/uninstall.rb +1 -0
  116. data/lib/rails_generator/generators/components/resource/USAGE +23 -0
  117. data/lib/rails_generator/generators/components/resource/resource_generator.rb +74 -0
  118. data/lib/rails_generator/generators/components/resource/templates/controller.rb +2 -0
  119. data/lib/rails_generator/generators/components/resource/templates/functional_test.rb +8 -0
  120. data/lib/rails_generator/generators/components/resource/templates/helper.rb +2 -0
  121. data/lib/rails_generator/generators/components/scaffold/USAGE +24 -31
  122. data/lib/rails_generator/generators/components/scaffold/scaffold_generator.rb +45 -137
  123. data/lib/rails_generator/generators/components/scaffold/templates/controller.rb +65 -34
  124. data/lib/rails_generator/generators/components/scaffold/templates/functional_test.rb +23 -76
  125. data/lib/rails_generator/generators/components/scaffold/templates/layout.html.erb +17 -0
  126. data/lib/rails_generator/generators/components/scaffold/templates/style.css +5 -5
  127. data/lib/rails_generator/generators/components/scaffold/templates/view_edit.html.erb +19 -0
  128. data/lib/rails_generator/generators/components/scaffold/templates/view_index.html.erb +24 -0
  129. data/lib/rails_generator/generators/components/scaffold/templates/view_new.html.erb +18 -0
  130. data/lib/rails_generator/generators/components/scaffold/templates/view_show.html.erb +10 -0
  131. data/lib/rails_generator/generators/components/session_migration/USAGE +6 -11
  132. data/lib/rails_generator/generators/components/session_migration/session_migration_generator.rb +7 -1
  133. data/lib/rails_generator/generators/components/session_migration/templates/migration.rb +8 -7
  134. data/lib/rails_generator/lookup.rb +46 -12
  135. data/lib/rails_generator/options.rb +11 -8
  136. data/lib/rails_generator/scripts/destroy.rb +23 -0
  137. data/lib/rails_generator/scripts.rb +7 -4
  138. data/lib/rails_generator/secret_key_generator.rb +160 -0
  139. data/lib/rails_generator/spec.rb +1 -1
  140. data/lib/rails_generator.rb +1 -1
  141. data/lib/railties_path.rb +1 -1
  142. data/lib/ruby_version_check.rb +17 -0
  143. data/lib/source_annotation_extractor.rb +62 -0
  144. data/lib/tasks/annotations.rake +23 -0
  145. data/lib/tasks/databases.rake +328 -133
  146. data/lib/tasks/documentation.rake +72 -68
  147. data/lib/tasks/framework.rake +99 -58
  148. data/lib/tasks/log.rake +9 -0
  149. data/lib/tasks/misc.rake +2 -17
  150. data/lib/tasks/rails.rb +2 -2
  151. data/lib/tasks/routes.rake +17 -0
  152. data/lib/tasks/statistics.rake +10 -8
  153. data/lib/tasks/testing.rake +99 -31
  154. data/lib/tasks/tmp.rake +37 -0
  155. data/lib/test_help.rb +8 -5
  156. data/lib/webrick_server.rb +11 -16
  157. metadata +312 -272
  158. data/bin/breakpointer +0 -3
  159. data/builtin/controllers/rails_info_controller.rb +0 -11
  160. data/configs/database.yml +0 -85
  161. data/lib/binding_of_caller.rb +0 -85
  162. data/lib/breakpoint.rb +0 -523
  163. data/lib/breakpoint_client.rb +0 -196
  164. data/lib/commands/breakpointer.rb +0 -1
  165. data/lib/rails_generator/generators/components/scaffold/templates/form.rhtml +0 -3
  166. data/lib/rails_generator/generators/components/scaffold/templates/form_scaffolding.rhtml +0 -1
  167. data/lib/rails_generator/generators/components/scaffold/templates/layout.rhtml +0 -13
  168. data/lib/rails_generator/generators/components/scaffold/templates/view_edit.rhtml +0 -9
  169. data/lib/rails_generator/generators/components/scaffold/templates/view_list.rhtml +0 -27
  170. data/lib/rails_generator/generators/components/scaffold/templates/view_new.rhtml +0 -8
  171. data/lib/rails_generator/generators/components/scaffold/templates/view_show.rhtml +0 -8
  172. data/lib/rails_generator/generators/components/web_service/USAGE +0 -28
  173. data/lib/rails_generator/generators/components/web_service/templates/api_definition.rb +0 -5
  174. data/lib/rails_generator/generators/components/web_service/templates/controller.rb +0 -8
  175. data/lib/rails_generator/generators/components/web_service/templates/functional_test.rb +0 -19
  176. data/lib/rails_generator/generators/components/web_service/web_service_generator.rb +0 -29
  177. data/lib/tasks/javascripts.rake +0 -6
data/bin/server CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env ruby
2
2
  require File.dirname(__FILE__) + '/../config/boot'
3
- require 'commands/server'
3
+ require 'commands/server'
@@ -1,5 +1,3 @@
1
- require 'rails_version'
2
-
3
1
  module Rails
4
2
  module Info
5
3
  mattr_accessor :properties
@@ -21,7 +19,7 @@ module Rails
21
19
  end
22
20
 
23
21
  def components
24
- %w( active_record action_pack action_web_service action_mailer active_support )
22
+ %w( active_record action_pack active_resource action_mailer active_support )
25
23
  end
26
24
 
27
25
  def component_version(component)
@@ -30,9 +28,19 @@ module Rails
30
28
  end
31
29
 
32
30
  def edge_rails_revision(info = svn_info)
33
- info[/^Revision: (\d+)/, 1]
31
+ info[/^Revision: (\d+)/, 1] || freeze_edge_version
34
32
  end
35
-
33
+
34
+ def freeze_edge_version
35
+ if File.exists?(rails_vendor_root)
36
+ begin
37
+ Dir[File.join(rails_vendor_root, 'REVISION_*')].first.scan(/_(\d+)$/).first.first
38
+ rescue
39
+ Dir[File.join(rails_vendor_root, 'TAG_*')].first.scan(/_(.+)$/).first.first rescue 'unknown'
40
+ end
41
+ end
42
+ end
43
+
36
44
  def to_s
37
45
  column_width = properties.names.map {|name| name.length}.max
38
46
  ["About your application's environment", *properties.map do |property|
@@ -45,19 +53,26 @@ module Rails
45
53
  def to_html
46
54
  returning table = '<table>' do
47
55
  properties.each do |(name, value)|
48
- table << %(<tr><td class="name">#{CGI.escapeHTML(name)}</td>)
49
- table << %(<td class="value">#{CGI.escapeHTML(value)}</td></tr>)
56
+ table << %(<tr><td class="name">#{CGI.escapeHTML(name.to_s)}</td>)
57
+ table << %(<td class="value">#{CGI.escapeHTML(value.to_s)}</td></tr>)
50
58
  end
51
59
  table << '</table>'
52
60
  end
53
61
  end
54
-
55
- protected
56
- def svn_info
57
- Dir.chdir("#{RAILS_ROOT}/vendor/rails") do
58
- silence_stderr { `svn info` }
62
+
63
+ protected
64
+ def rails_vendor_root
65
+ @rails_vendor_root ||= "#{RAILS_ROOT}/vendor/rails"
66
+ end
67
+
68
+ def svn_info
69
+ env_lang, ENV['LC_ALL'] = ENV['LC_ALL'], 'C'
70
+ Dir.chdir(rails_vendor_root) do
71
+ silence_stderr { `svn info` }
72
+ end
73
+ ensure
74
+ ENV['LC_ALL'] = env_lang
59
75
  end
60
- end
61
76
  end
62
77
 
63
78
  # The Ruby version and platform, e.g. "1.8.2 (powerpc-darwin8.2.0)".
@@ -74,7 +89,7 @@ module Rails
74
89
  end
75
90
 
76
91
  # Versions of each Rails component (Active Record, Action Pack,
77
- # Action Web Service, Action Mailer, and Active Support).
92
+ # Active Resource, Action Mailer, and Active Support).
78
93
  components.each do |component|
79
94
  property "#{component.titlecase} version" do
80
95
  component_version(component)
@@ -100,5 +115,9 @@ module Rails
100
115
  property 'Database adapter' do
101
116
  ActiveRecord::Base.configurations[RAILS_ENV]['adapter']
102
117
  end
118
+
119
+ property 'Database schema version' do
120
+ ActiveRecord::Migrator.current_version rescue nil
121
+ end
103
122
  end
104
123
  end
@@ -0,0 +1,9 @@
1
+ class Rails::InfoController < ActionController::Base
2
+ def properties
3
+ if local_request?
4
+ render :inline => Rails::Info.to_html
5
+ else
6
+ render :text => '<p>For security purposes, this information is only available to local requests.</p>', :status => 500
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,2 @@
1
+ module Rails::InfoHelper
2
+ end
@@ -0,0 +1,2 @@
1
+ # Alias to ensure old public.html still works.
2
+ RailsInfoController = Rails::InfoController
data/configs/apache.conf CHANGED
@@ -37,4 +37,4 @@ RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
37
37
  # Example:
38
38
  # ErrorDocument 500 /500.html
39
39
 
40
- ErrorDocument 500 "<h2>Application error</h2>Rails application failed to start properly"
40
+ ErrorDocument 500 "<h2>Application error</h2>Rails application failed to start properly"
@@ -0,0 +1,28 @@
1
+ # FrontBase versions 4.x
2
+ #
3
+ # Get the bindings:
4
+ # gem install ruby-frontbase
5
+
6
+ development:
7
+ adapter: frontbase
8
+ host: localhost
9
+ database: <%= app_name %>_development
10
+ username: <%= app_name %>
11
+ password: ''
12
+
13
+ # Warning: The database defined as 'test' will be erased and
14
+ # re-generated from your development database when you run 'rake'.
15
+ # Do not set this db to the same as development or production.
16
+ test:
17
+ adapter: frontbase
18
+ host: localhost
19
+ database: <%= app_name %>_test
20
+ username: <%= app_name %>
21
+ password: ''
22
+
23
+ production:
24
+ adapter: frontbase
25
+ host: localhost
26
+ database: <%= app_name %>_production
27
+ username: <%= app_name %>
28
+ password: ''
@@ -0,0 +1,54 @@
1
+ # MySQL (default setup). Versions 4.1 and 5.0 are recommended.
2
+ #
3
+ # Install the MySQL driver:
4
+ # gem install mysql
5
+ # On Mac OS X:
6
+ # sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql
7
+ # On Mac OS X Leopard:
8
+ # sudo env ARCHFLAGS="-arch i386" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
9
+ # This sets the ARCHFLAGS environment variable to your native architecture
10
+ # On Windows:
11
+ # gem install mysql
12
+ # Choose the win32 build.
13
+ # Install MySQL and put its /bin directory on your path.
14
+ #
15
+ # And be sure to use new-style password hashing:
16
+ # http://dev.mysql.com/doc/refman/5.0/en/old-client.html
17
+ development:
18
+ adapter: mysql
19
+ encoding: utf8
20
+ database: <%= app_name %>_development
21
+ username: root
22
+ password:
23
+ <% if socket -%>
24
+ socket: <%= socket %>
25
+ <% else -%>
26
+ host: localhost
27
+ <% end -%>
28
+
29
+ # Warning: The database defined as 'test' will be erased and
30
+ # re-generated from your development database when you run 'rake'.
31
+ # Do not set this db to the same as development or production.
32
+ test:
33
+ adapter: mysql
34
+ encoding: utf8
35
+ database: <%= app_name %>_test
36
+ username: root
37
+ password:
38
+ <% if socket -%>
39
+ socket: <%= socket %>
40
+ <% else -%>
41
+ host: localhost
42
+ <% end -%>
43
+
44
+ production:
45
+ adapter: mysql
46
+ encoding: utf8
47
+ database: <%= app_name %>_production
48
+ username: root
49
+ password:
50
+ <% if socket -%>
51
+ socket: <%= socket %>
52
+ <% else -%>
53
+ host: localhost
54
+ <% end -%>
@@ -0,0 +1,39 @@
1
+ # Oracle/OCI 8i, 9, 10g
2
+ #
3
+ # Requires Ruby/OCI8:
4
+ # http://rubyforge.org/projects/ruby-oci8/
5
+ #
6
+ # Specify your database using any valid connection syntax, such as a
7
+ # tnsnames.ora service name, or a sql connect url string of the form:
8
+ #
9
+ # //host:[port][/service name]
10
+ #
11
+ # By default prefetch_rows (OCI_ATTR_PREFETCH_ROWS) is set to 100. And
12
+ # until true bind variables are supported, cursor_sharing is set by default
13
+ # to 'similar'. Both can be changed in the configation below; the defaults
14
+ # are equivalent to specifying:
15
+ #
16
+ # prefetch_rows: 100
17
+ # cursor_sharing: similar
18
+ #
19
+
20
+ development:
21
+ adapter: oracle
22
+ database: <%= app_name %>_development
23
+ username: <%= app_name %>
24
+ password:
25
+
26
+ # Warning: The database defined as 'test' will be erased and
27
+ # re-generated from your development database when you run 'rake'.
28
+ # Do not set this db to the same as development or production.
29
+ test:
30
+ adapter: oracle
31
+ database: <%= app_name %>_test
32
+ username: <%= app_name %>
33
+ password:
34
+
35
+ production:
36
+ adapter: oracle
37
+ database: <%= app_name %>_production
38
+ username: <%= app_name %>
39
+ password:
@@ -0,0 +1,48 @@
1
+ # PostgreSQL. Versions 7.4 and 8.x are supported.
2
+ #
3
+ # Install the ruby-postgres driver:
4
+ # gem install ruby-postgres
5
+ # On Mac OS X:
6
+ # gem install ruby-postgres -- --include=/usr/local/pgsql
7
+ # On Windows:
8
+ # gem install ruby-postgres
9
+ # Choose the win32 build.
10
+ # Install PostgreSQL and put its /bin directory on your path.
11
+ development:
12
+ adapter: postgresql
13
+ encoding: unicode
14
+ database: <%= app_name %>_development
15
+ username: <%= app_name %>
16
+ password:
17
+
18
+ # Connect on a TCP socket. Omitted by default since the client uses a
19
+ # domain socket that doesn't need configuration. Windows does not have
20
+ # domain sockets, so uncomment these lines.
21
+ #host: localhost
22
+ #port: 5432
23
+
24
+ # Schema search path. The server defaults to $user,public
25
+ #schema_search_path: myapp,sharedapp,public
26
+
27
+ # Minimum log levels, in increasing order:
28
+ # debug5, debug4, debug3, debug2, debug1,
29
+ # log, notice, warning, error, fatal, and panic
30
+ # The server defaults to notice.
31
+ #min_messages: warning
32
+
33
+ # Warning: The database defined as 'test' will be erased and
34
+ # re-generated from your development database when you run 'rake'.
35
+ # Do not set this db to the same as development or production.
36
+ test:
37
+ adapter: postgresql
38
+ encoding: unicode
39
+ database: <%= app_name %>_test
40
+ username: <%= app_name %>
41
+ password:
42
+
43
+ production:
44
+ adapter: postgresql
45
+ encoding: unicode
46
+ database: <%= app_name %>_production
47
+ username: <%= app_name %>
48
+ password:
@@ -0,0 +1,16 @@
1
+ # SQLite version 2.x
2
+ # gem install sqlite-ruby
3
+ development:
4
+ adapter: sqlite
5
+ database: db/development.sqlite2
6
+
7
+ # Warning: The database defined as 'test' will be erased and
8
+ # re-generated from your development database when you run 'rake'.
9
+ # Do not set this db to the same as development or production.
10
+ test:
11
+ adapter: sqlite
12
+ database: db/test.sqlite2
13
+
14
+ production:
15
+ adapter: sqlite
16
+ database: db/production.sqlite2
@@ -0,0 +1,19 @@
1
+ # SQLite version 3.x
2
+ # gem install sqlite3-ruby
3
+ development:
4
+ adapter: sqlite3
5
+ database: db/development.sqlite3
6
+ timeout: 5000
7
+
8
+ # Warning: The database defined as 'test' will be erased and
9
+ # re-generated from your development database when you run 'rake'.
10
+ # Do not set this db to the same as development or production.
11
+ test:
12
+ adapter: sqlite3
13
+ database: db/test.sqlite3
14
+ timeout: 5000
15
+
16
+ production:
17
+ adapter: sqlite3
18
+ database: db/production.sqlite3
19
+ timeout: 5000
@@ -0,0 +1,10 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Add new inflection rules using the following format
4
+ # (all these examples are active by default):
5
+ # Inflector.inflections do |inflect|
6
+ # inflect.plural /^(ox)$/i, '\1en'
7
+ # inflect.singular /^(ox)en/i, '\1'
8
+ # inflect.irregular 'person', 'people'
9
+ # inflect.uncountable %w( fish sheep )
10
+ # end
@@ -0,0 +1,5 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Add new mime types for use in respond_to blocks:
4
+ # Mime::Type.register "text/richtext", :rtf
5
+ # Mime::Type.register_alias "text/html", :iphone
@@ -1,30 +1,38 @@
1
1
  # Default configuration file for the lighttpd web server
2
2
  # Start using ./script/server lighttpd
3
3
 
4
+ server.bind = "0.0.0.0"
4
5
  server.port = 3000
5
6
 
6
- server.modules = ( "mod_rewrite", "mod_accesslog", "mod_fastcgi" )
7
+ server.modules = ( "mod_rewrite", "mod_accesslog", "mod_fastcgi", "mod_compress", "mod_expire" )
8
+
7
9
  server.error-handler-404 = "/dispatch.fcgi"
8
- server.document-root = "public/"
10
+ server.pid-file = CWD + "/tmp/pids/lighttpd.pid"
11
+ server.document-root = CWD + "/public/"
9
12
 
10
- server.errorlog = "log/lighttpd.error.log"
11
- accesslog.filename = "log/lighttpd.access.log"
13
+ server.errorlog = CWD + "/log/lighttpd.error.log"
14
+ accesslog.filename = CWD + "/log/lighttpd.access.log"
12
15
 
13
16
  url.rewrite = ( "^/$" => "index.html", "^([^.]+)$" => "$1.html" )
14
17
 
18
+ compress.filetype = ( "text/plain", "text/html", "text/css", "text/javascript" )
19
+ compress.cache-dir = CWD + "/tmp/cache"
20
+
21
+ expire.url = ( "/favicon.ico" => "access 3 days",
22
+ "/images/" => "access 3 days",
23
+ "/stylesheets/" => "access 3 days",
24
+ "/javascripts/" => "access 3 days" )
25
+
26
+
15
27
  # Change *-procs to 2 if you need to use Upload Progress or other tasks that
16
28
  # *need* to execute a second request while the first is still pending.
17
- fastcgi.server = ( ".fcgi" =>
18
- ( "localhost" =>
19
- (
20
- "min-procs" => 1,
21
- "max-procs" => 1,
22
- "socket" => "log/fcgi.socket",
23
- "bin-path" => "public/dispatch.fcgi",
24
- "bin-environment" => ( "RAILS_ENV" => "development" )
25
- )
26
- )
27
- )
29
+ fastcgi.server = ( ".fcgi" => ( "localhost" => (
30
+ "min-procs" => 1,
31
+ "max-procs" => 1,
32
+ "socket" => CWD + "/tmp/sockets/fcgi.socket",
33
+ "bin-path" => CWD + "/public/dispatch.fcgi",
34
+ "bin-environment" => ( "RAILS_ENV" => "development" )
35
+ ) ) )
28
36
 
29
37
  mimetype.assign = (
30
38
  ".css" => "text/css",
@@ -38,3 +46,9 @@ mimetype.assign = (
38
46
  ".swf" => "application/x-shockwave-flash",
39
47
  ".txt" => "text/plain"
40
48
  )
49
+
50
+ # Making sure file uploads above 64k always work when using IE or Safari
51
+ # For more information, see http://trac.lighttpd.net/trac/ticket/360
52
+ $HTTP["useragent"] =~ "^(.*MSIE.*)|(.*AppleWebKit.*)$" {
53
+ server.max-keep-alive-requests = 0
54
+ }
data/configs/routes.rb CHANGED
@@ -1,19 +1,35 @@
1
1
  ActionController::Routing::Routes.draw do |map|
2
- # Add your own custom routes here.
3
2
  # The priority is based upon order of creation: first created -> highest priority.
4
-
5
- # Here's a sample route:
6
- # map.connect 'products/:id', :controller => 'catalog', :action => 'view'
3
+
4
+ # Sample of regular route:
5
+ # map.connect 'products/:id', :controller => 'catalog', :action => 'view'
7
6
  # Keep in mind you can assign values other than :controller and :action
8
7
 
9
- # You can have the root of your site routed by hooking up ''
10
- # -- just remember to delete public/index.html.
11
- # map.connect '', :controller => "welcome"
8
+ # Sample of named route:
9
+ # map.purchase 'products/:id/purchase', :controller => 'catalog', :action => 'purchase'
10
+ # This route can be invoked with purchase_url(:id => product.id)
11
+
12
+ # Sample resource route (maps HTTP verbs to controller actions automatically):
13
+ # map.resources :products
14
+
15
+ # Sample resource route with options:
16
+ # map.resources :products, :member => { :short => :get, :toggle => :post }, :collection => { :sold => :get }
17
+
18
+ # Sample resource route with sub-resources:
19
+ # map.resources :products, :has_many => [ :comments, :sales ], :has_one => :seller
20
+
21
+ # Sample resource route within a namespace:
22
+ # map.namespace :admin do |admin|
23
+ # # Directs /admin/products/* to Admin::ProductsController (app/controllers/admin/products_controller.rb)
24
+ # admin.resources :products
25
+ # end
26
+
27
+ # You can have the root of your site routed with map.root -- just remember to delete public/index.html.
28
+ # map.root :controller => "welcome"
12
29
 
13
- # Allow downloading Web Service WSDL as a file with an extension
14
- # instead of a file named 'wsdl'
15
- map.connect ':controller/service.wsdl', :action => 'wsdl'
30
+ # See how all your routes lay out with "rake routes"
16
31
 
17
- # Install the default route as the lowest priority.
32
+ # Install the default routes as the lowest priority.
18
33
  map.connect ':controller/:action/:id'
34
+ map.connect ':controller/:action/:id.:format'
19
35
  end
data/doc/README_FOR_APP CHANGED
@@ -1,2 +1,2 @@
1
1
  Use this README file to introduce your application and point to useful places in the API for learning more.
2
- Run "rake appdoc" to generate API documentation for your models and controllers.
2
+ Run "rake doc:app" to generate API documentation for your models, controllers, helpers, and libraries.
data/environments/boot.rb CHANGED
@@ -1,19 +1,108 @@
1
- # Don't change this file. Configuration is done in config/environment.rb and config/environments/*.rb
1
+ # Don't change this file!
2
+ # Configure your app in config/environment.rb and config/environments/*.rb
2
3
 
3
- unless defined?(RAILS_ROOT)
4
- root_path = File.join(File.dirname(__FILE__), '..')
5
- unless RUBY_PLATFORM =~ /mswin32/
6
- require 'pathname'
7
- root_path = Pathname.new(root_path).cleanpath(true).to_s
4
+ RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT)
5
+
6
+ module Rails
7
+ class << self
8
+ def boot!
9
+ unless booted?
10
+ preinitialize
11
+ pick_boot.run
12
+ end
13
+ end
14
+
15
+ def booted?
16
+ defined? Rails::Initializer
17
+ end
18
+
19
+ def pick_boot
20
+ (vendor_rails? ? VendorBoot : GemBoot).new
21
+ end
22
+
23
+ def vendor_rails?
24
+ File.exist?("#{RAILS_ROOT}/vendor/rails")
25
+ end
26
+
27
+ def preinitialize
28
+ load(preinitializer_path) if File.exists?(preinitializer_path)
29
+ end
30
+
31
+ def preinitializer_path
32
+ "#{RAILS_ROOT}/config/preinitializer.rb"
33
+ end
8
34
  end
9
- RAILS_ROOT = root_path
10
- end
11
35
 
12
- if File.directory?("#{RAILS_ROOT}/vendor/rails")
13
- require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer"
14
- else
15
- require 'rubygems'
16
- require 'initializer'
36
+ class Boot
37
+ def run
38
+ load_initializer
39
+ Rails::Initializer.run(:set_load_path)
40
+ end
41
+ end
42
+
43
+ class VendorBoot < Boot
44
+ def load_initializer
45
+ require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer"
46
+ end
47
+ end
48
+
49
+ class GemBoot < Boot
50
+ def load_initializer
51
+ self.class.load_rubygems
52
+ load_rails_gem
53
+ require 'initializer'
54
+ end
55
+
56
+ def load_rails_gem
57
+ if version = self.class.gem_version
58
+ gem 'rails', version
59
+ else
60
+ gem 'rails'
61
+ end
62
+ rescue Gem::LoadError => load_error
63
+ $stderr.puts %(Missing the Rails #{version} gem. Please `gem install -v=#{version} rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.)
64
+ exit 1
65
+ end
66
+
67
+ class << self
68
+ def rubygems_version
69
+ Gem::RubyGemsVersion if defined? Gem::RubyGemsVersion
70
+ end
71
+
72
+ def gem_version
73
+ if defined? RAILS_GEM_VERSION
74
+ RAILS_GEM_VERSION
75
+ elsif ENV.include?('RAILS_GEM_VERSION')
76
+ ENV['RAILS_GEM_VERSION']
77
+ else
78
+ parse_gem_version(read_environment_rb)
79
+ end
80
+ end
81
+
82
+ def load_rubygems
83
+ require 'rubygems'
84
+
85
+ unless rubygems_version >= '0.9.4'
86
+ $stderr.puts %(Rails requires RubyGems >= 0.9.4 (you have #{rubygems_version}). Please `gem update --system` and try again.)
87
+ exit 1
88
+ end
89
+
90
+ rescue LoadError
91
+ $stderr.puts %(Rails requires RubyGems >= 0.9.4. Please install RubyGems and try again: http://rubygems.rubyforge.org)
92
+ exit 1
93
+ end
94
+
95
+ def parse_gem_version(text)
96
+ $1 if text =~ /^[^#]*RAILS_GEM_VERSION\s*=\s*'([!~<>=]*\s*[\d.]+)'/
97
+ end
98
+
99
+ private
100
+ def read_environment_rb
101
+ File.read("#{RAILS_ROOT}/config/environment.rb")
102
+ end
103
+ end
104
+ end
17
105
  end
18
106
 
19
- Rails::Initializer.run(:set_load_path)
107
+ # All that for this:
108
+ Rails.boot!
@@ -3,17 +3,16 @@
3
3
  # In the development environment your application's code is reloaded on
4
4
  # every request. This slows down response time but is perfect for development
5
5
  # since you don't have to restart the webserver when you make code changes.
6
- config.cache_classes = false
6
+ config.cache_classes = false
7
7
 
8
8
  # Log error messages when you accidentally call methods on nil.
9
- config.whiny_nils = true
10
-
11
- # Enable the breakpoint server that script/breakpointer connects to
12
- config.breakpoint_server = true
9
+ config.whiny_nils = true
13
10
 
14
11
  # Show full error reports and disable caching
15
12
  config.action_controller.consider_all_requests_local = true
13
+ config.action_view.debug_rjs = true
16
14
  config.action_controller.perform_caching = false
15
+ config.action_view.cache_template_extensions = false
17
16
 
18
17
  # Don't care if the mailer can't send
19
- config.action_mailer.raise_delivery_errors = false
18
+ config.action_mailer.raise_delivery_errors = false