Skip to content
This repository
Browse code

Initial commit

  • Loading branch information...
commit f45fdd1e49dc3af876ecf021f7f9aa749dddd924 0 parents
Ben Johnson authored November 03, 2008

Showing 296 changed files with 42,991 additions and 0 deletions. Show diff stats Hide diff stats

  1. 11  .gitignore
  2. 256  README
  3. 10  Rakefile
  4. 43  app/controllers/application.rb
  5. 24  app/controllers/user_sessions_controller.rb
  6. 36  app/controllers/users_controller.rb
  7. 3  app/helpers/application_helper.rb
  8. 2  app/helpers/user_session_helper.rb
  9. 2  app/helpers/user_sessions_helper.rb
  10. 2  app/helpers/users_helper.rb
  11. 3  app/models/user.rb
  12. 2  app/models/user_session.rb
  13. 32  app/views/layouts/application.html.erb
  14. 15  app/views/user_sessions/new.html.erb
  15. 9  app/views/users/_form.erb
  16. 9  app/views/users/edit.html.erb
  17. 7  app/views/users/new.html.erb
  18. 37  app/views/users/show.html.erb
  19. 109  config/boot.rb
  20. 67  config/environment.rb
  21. 17  config/environments/development.rb
  22. 22  config/environments/production.rb
  23. 22  config/environments/test.rb
  24. 10  config/initializers/inflections.rb
  25. 5  config/initializers/mime_types.rb
  26. 17  config/initializers/new_rails_defaults.rb
  27. 6  config/routes.rb
  28. 22  db/migrate/20081103171327_create_users.rb
  29. 2  doc/README_FOR_APP
  30. 30  public/404.html
  31. 30  public/422.html
  32. 30  public/500.html
  33. 10  public/dispatch.cgi
  34. 24  public/dispatch.fcgi
  35. 10  public/dispatch.rb
  36. 0  public/favicon.ico
  37. BIN  public/images/rails.png
  38. 2  public/javascripts/application.js
  39. 963  public/javascripts/controls.js
  40. 972  public/javascripts/dragdrop.js
  41. 1,120  public/javascripts/effects.js
  42. 4,225  public/javascripts/prototype.js
  43. 5  public/robots.txt
  44. 54  public/stylesheets/scaffold.css
  45. 4  script/about
  46. 3  script/console
  47. 3  script/dbconsole
  48. 3  script/destroy
  49. 3  script/generate
  50. 3  script/performance/benchmarker
  51. 3  script/performance/profiler
  52. 3  script/performance/request
  53. 3  script/plugin
  54. 3  script/process/inspector
  55. 3  script/process/reaper
  56. 3  script/process/spawner
  57. 3  script/runner
  58. 3  script/server
  59. 25  test/fixtures/users.yml
  60. 8  test/functional/user_sessions_controller_test.rb
  61. 45  test/functional/users_controller_test.rb
  62. 38  test/test_helper.rb
  63. 8  test/unit/user_test.rb
  64. 8  vendor/plugins/authlogic/.gitignore
  65. 47  vendor/plugins/authlogic/CHANGELOG.rdoc
  66. 20  vendor/plugins/authlogic/MIT-LICENSE
  67. 100  vendor/plugins/authlogic/Manifest
  68. 324  vendor/plugins/authlogic/README.rdoc
  69. 15  vendor/plugins/authlogic/Rakefile
  70. 1  vendor/plugins/authlogic/init.rb
  71. 25  vendor/plugins/authlogic/lib/authlogic.rb
  72. 265  vendor/plugins/authlogic/lib/authlogic/active_record/acts_as_authentic.rb
  73. 19  vendor/plugins/authlogic/lib/authlogic/active_record/authenticates_many.rb
  74. 28  vendor/plugins/authlogic/lib/authlogic/active_record/scoped_session.rb
  75. 25  vendor/plugins/authlogic/lib/authlogic/controller_adapters/abstract_adapter.rb
  76. 39  vendor/plugins/authlogic/lib/authlogic/controller_adapters/rails_adapter.rb
  77. 26  vendor/plugins/authlogic/lib/authlogic/session/active_record_trickery.rb
  78. 510  vendor/plugins/authlogic/lib/authlogic/session/base.rb
  79. 56  vendor/plugins/authlogic/lib/authlogic/session/callbacks.rb
  80. 237  vendor/plugins/authlogic/lib/authlogic/session/config.rb
  81. 18  vendor/plugins/authlogic/lib/authlogic/session/errors.rb
  82. 18  vendor/plugins/authlogic/lib/authlogic/sha512_crypto_provider.rb
  83. 56  vendor/plugins/authlogic/lib/authlogic/version.rb
  84. 10  vendor/plugins/authlogic/test_app/.gitignore
  85. 256  vendor/plugins/authlogic/test_app/README
  86. 10  vendor/plugins/authlogic/test_app/Rakefile
  87. 72  vendor/plugins/authlogic/test_app/app/controllers/application.rb
  88. 2  vendor/plugins/authlogic/test_app/app/controllers/companies_controller.rb
  89. 25  vendor/plugins/authlogic/test_app/app/controllers/user_sessions_controller.rb
  90. 61  vendor/plugins/authlogic/test_app/app/controllers/users_controller.rb
  91. 3  vendor/plugins/authlogic/test_app/app/helpers/application_helper.rb
  92. 2  vendor/plugins/authlogic/test_app/app/helpers/companies_helper.rb
  93. 2  vendor/plugins/authlogic/test_app/app/helpers/user_sessions_helper.rb
  94. 2  vendor/plugins/authlogic/test_app/app/helpers/users_helper.rb
  95. 4  vendor/plugins/authlogic/test_app/app/models/company.rb
  96. 3  vendor/plugins/authlogic/test_app/app/models/project.rb
  97. 5  vendor/plugins/authlogic/test_app/app/models/user.rb
  98. 3  vendor/plugins/authlogic/test_app/app/models/user_session.rb
  99. 27  vendor/plugins/authlogic/test_app/app/views/layouts/application.html.erb
  100. 15  vendor/plugins/authlogic/test_app/app/views/user_sessions/new.html.erb
  101. 15  vendor/plugins/authlogic/test_app/app/views/users/_form.erb
  102. 8  vendor/plugins/authlogic/test_app/app/views/users/edit.html.erb
  103. 8  vendor/plugins/authlogic/test_app/app/views/users/new.html.erb
  104. 29  vendor/plugins/authlogic/test_app/app/views/users/show.html.erb
  105. 109  vendor/plugins/authlogic/test_app/config/boot.rb
  106. 69  vendor/plugins/authlogic/test_app/config/environment.rb
  107. 17  vendor/plugins/authlogic/test_app/config/environments/development.rb
  108. 22  vendor/plugins/authlogic/test_app/config/environments/production.rb
  109. 22  vendor/plugins/authlogic/test_app/config/environments/test.rb
  110. 10  vendor/plugins/authlogic/test_app/config/initializers/inflections.rb
  111. 5  vendor/plugins/authlogic/test_app/config/initializers/mime_types.rb
  112. 17  vendor/plugins/authlogic/test_app/config/initializers/new_rails_defaults.rb
  113. 11  vendor/plugins/authlogic/test_app/config/routes.rb
  114. 20  vendor/plugins/authlogic/test_app/db/migrate/20081023040052_create_users.rb
  115. 14  vendor/plugins/authlogic/test_app/db/migrate/20081103003828_create_companies.rb
  116. 18  vendor/plugins/authlogic/test_app/db/migrate/20081103003834_create_projects.rb
  117. 2  vendor/plugins/authlogic/test_app/doc/README_FOR_APP
  118. 30  vendor/plugins/authlogic/test_app/public/404.html
  119. 30  vendor/plugins/authlogic/test_app/public/422.html
  120. 30  vendor/plugins/authlogic/test_app/public/500.html
  121. 10  vendor/plugins/authlogic/test_app/public/dispatch.cgi
  122. 24  vendor/plugins/authlogic/test_app/public/dispatch.fcgi
  123. 10  vendor/plugins/authlogic/test_app/public/dispatch.rb
  124. 0  vendor/plugins/authlogic/test_app/public/favicon.ico
  125. BIN  vendor/plugins/authlogic/test_app/public/images/rails.png
  126. 2  vendor/plugins/authlogic/test_app/public/javascripts/application.js
  127. 963  vendor/plugins/authlogic/test_app/public/javascripts/controls.js
  128. 972  vendor/plugins/authlogic/test_app/public/javascripts/dragdrop.js
  129. 1,120  vendor/plugins/authlogic/test_app/public/javascripts/effects.js
  130. 4,225  vendor/plugins/authlogic/test_app/public/javascripts/prototype.js
  131. 5  vendor/plugins/authlogic/test_app/public/robots.txt
  132. 62  vendor/plugins/authlogic/test_app/public/stylesheets/scaffold.css
  133. 4  vendor/plugins/authlogic/test_app/script/about
  134. 3  vendor/plugins/authlogic/test_app/script/console
  135. 3  vendor/plugins/authlogic/test_app/script/dbconsole
  136. 3  vendor/plugins/authlogic/test_app/script/destroy
  137. 3  vendor/plugins/authlogic/test_app/script/generate
  138. 3  vendor/plugins/authlogic/test_app/script/performance/benchmarker
  139. 3  vendor/plugins/authlogic/test_app/script/performance/profiler
  140. 3  vendor/plugins/authlogic/test_app/script/performance/request
  141. 3  vendor/plugins/authlogic/test_app/script/plugin
  142. 3  vendor/plugins/authlogic/test_app/script/process/inspector
  143. 3  vendor/plugins/authlogic/test_app/script/process/reaper
  144. 3  vendor/plugins/authlogic/test_app/script/process/spawner
  145. 3  vendor/plugins/authlogic/test_app/script/runner
  146. 3  vendor/plugins/authlogic/test_app/script/server
  147. 7  vendor/plugins/authlogic/test_app/test/fixtures/companies.yml
  148. 4  vendor/plugins/authlogic/test_app/test/fixtures/projects.yml
  149. 21  vendor/plugins/authlogic/test_app/test/fixtures/users.yml
  150. 8  vendor/plugins/authlogic/test_app/test/functional/companies_controller_test.rb
  151. 36  vendor/plugins/authlogic/test_app/test/functional/user_sessions_controller_test.rb
  152. 8  vendor/plugins/authlogic/test_app/test/functional/users_controller_test.rb
  153. 46  vendor/plugins/authlogic/test_app/test/integration/company_user_session_stories_test.rb
  154. 105  vendor/plugins/authlogic/test_app/test/integration/user_sesion_stories_test.rb
  155. 24  vendor/plugins/authlogic/test_app/test/integration/user_session_config_test.rb
  156. 161  vendor/plugins/authlogic/test_app/test/integration/user_session_test.rb
  157. 81  vendor/plugins/authlogic/test_app/test/test_helper.rb
  158. 8  vendor/plugins/authlogic/test_app/test/unit/account_test.rb
  159. 8  vendor/plugins/authlogic/test_app/test/unit/company_test.rb
  160. 8  vendor/plugins/authlogic/test_app/test/unit/project_test.rb
  161. 80  vendor/plugins/authlogic/test_app/test/unit/user_test.rb
  162. 17  vendor/rails/.gitignore
  163. 344  vendor/rails/actionmailer/CHANGELOG
  164. 21  vendor/rails/actionmailer/MIT-LICENSE
  165. 149  vendor/rails/actionmailer/README
  166. 98  vendor/rails/actionmailer/Rakefile
  167. 30  vendor/rails/actionmailer/install.rb
  168. 52  vendor/rails/actionmailer/lib/action_mailer.rb
  169. 30  vendor/rails/actionmailer/lib/action_mailer/adv_attr_accessor.rb
  170. 685  vendor/rails/actionmailer/lib/action_mailer/base.rb
  171. 111  vendor/rails/actionmailer/lib/action_mailer/helpers.rb
  172. 19  vendor/rails/actionmailer/lib/action_mailer/mail_helper.rb
  173. 110  vendor/rails/actionmailer/lib/action_mailer/part.rb
  174. 51  vendor/rails/actionmailer/lib/action_mailer/part_container.rb
  175. 61  vendor/rails/actionmailer/lib/action_mailer/quoting.rb
  176. 64  vendor/rails/actionmailer/lib/action_mailer/test_case.rb
  177. 67  vendor/rails/actionmailer/lib/action_mailer/test_helper.rb
  178. 8  vendor/rails/actionmailer/lib/action_mailer/utils.rb
  179. 14  vendor/rails/actionmailer/lib/action_mailer/vendor.rb
  180. 1,466  vendor/rails/actionmailer/lib/action_mailer/vendor/text-format-0.6.3/text/format.rb
  181. 5  vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail.rb
  182. 426  vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/address.rb
  183. 46  vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/attachments.rb
  184. 46  vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/base64.rb
  185. 41  vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/compat.rb
  186. 67  vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/config.rb
  187. 63  vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/core_extensions.rb
  188. 581  vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/encode.rb
  189. 960  vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/header.rb
  190. 9  vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/index.rb
  191. 1,130  vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/interface.rb
  192. 3  vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/loader.rb
  193. 578  vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/mail.rb
  194. 495  vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/mailbox.rb
  195. 6  vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/main.rb
  196. 3  vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/mbox.rb
  197. 248  vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/net.rb
  198. 132  vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/obsolete.rb
  199. 1,476  vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/parser.rb
  200. 379  vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/port.rb
  201. 118  vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/quoting.rb
  202. 58  vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/require_arch.rb
  203. 49  vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/scanner.rb
  204. 261  vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/scanner_r.rb
  205. 280  vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/stringio.rb
  206. 337  vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/utils.rb
  207. 39  vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/version.rb
  208. 9  vendor/rails/actionmailer/lib/action_mailer/version.rb
  209. 1  vendor/rails/actionmailer/lib/actionmailer.rb
  210. 58  vendor/rails/actionmailer/test/abstract_unit.rb
  211. 51  vendor/rails/actionmailer/test/delivery_method_test.rb
  212. 1  vendor/rails/actionmailer/test/fixtures/auto_layout_mailer/hello.html.erb
  213. 1  vendor/rails/actionmailer/test/fixtures/explicit_layout_mailer/logout.html.erb
  214. 1  vendor/rails/actionmailer/test/fixtures/explicit_layout_mailer/signup.html.erb
  215. 1  vendor/rails/actionmailer/test/fixtures/first_mailer/share.erb
  216. 1  vendor/rails/actionmailer/test/fixtures/helper_mailer/use_example_helper.erb
  217. 1  vendor/rails/actionmailer/test/fixtures/helper_mailer/use_helper.erb
  218. 1  vendor/rails/actionmailer/test/fixtures/helper_mailer/use_helper_method.erb
  219. 5  vendor/rails/actionmailer/test/fixtures/helper_mailer/use_mail_helper.erb
  220. 5  vendor/rails/actionmailer/test/fixtures/helpers/example_helper.rb
  221. 1  vendor/rails/actionmailer/test/fixtures/layouts/auto_layout_mailer.html.erb
  222. 1  vendor/rails/actionmailer/test/fixtures/layouts/spam.html.erb
  223. 1  ...ails/actionmailer/test/fixtures/path.with.dots/funky_path_mailer/multipart_with_template_path_with_dots.erb
  224. 14  vendor/rails/actionmailer/test/fixtures/raw_email
  225. 20  vendor/rails/actionmailer/test/fixtures/raw_email10
  226. 32  vendor/rails/actionmailer/test/fixtures/raw_email12
  227. 29  vendor/rails/actionmailer/test/fixtures/raw_email13
  228. 114  vendor/rails/actionmailer/test/fixtures/raw_email2
  229. 70  vendor/rails/actionmailer/test/fixtures/raw_email3
  230. 59  vendor/rails/actionmailer/test/fixtures/raw_email4
  231. 19  vendor/rails/actionmailer/test/fixtures/raw_email5
  232. 20  vendor/rails/actionmailer/test/fixtures/raw_email6
  233. 66  vendor/rails/actionmailer/test/fixtures/raw_email7
  234. 47  vendor/rails/actionmailer/test/fixtures/raw_email8
  235. 28  vendor/rails/actionmailer/test/fixtures/raw_email9
  236. 14  vendor/rails/actionmailer/test/fixtures/raw_email_quoted_with_0d0a
  237. 104  vendor/rails/actionmailer/test/fixtures/raw_email_with_invalid_characters_in_content_type
  238. 100  vendor/rails/actionmailer/test/fixtures/raw_email_with_nested_attachment
  239. 14  vendor/rails/actionmailer/test/fixtures/raw_email_with_partially_quoted_subject
  240. 1  vendor/rails/actionmailer/test/fixtures/second_mailer/share.erb
  241. 3  vendor/rails/actionmailer/test/fixtures/templates/signed_up.erb
  242. 1  vendor/rails/actionmailer/test/fixtures/test_mailer/_subtemplate.text.plain.erb
  243. 2  vendor/rails/actionmailer/test/fixtures/test_mailer/body_ivar.erb
  244. 6  vendor/rails/actionmailer/test/fixtures/test_mailer/custom_templating_extension.text.html.haml
  245. 6  vendor/rails/actionmailer/test/fixtures/test_mailer/custom_templating_extension.text.plain.haml
  246. 1  vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.ignored.erb
  247. 1  vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.rhtml.bak
  248. 10  vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.html.erb
  249. 10  vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.html.erb~
  250. 2  vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.plain.erb
  251. 1  vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.yaml.erb
  252. 1  vendor/rails/actionmailer/test/fixtures/test_mailer/included_subtemplate.text.plain.erb
  253. 2  vendor/rails/actionmailer/test/fixtures/test_mailer/rxml_template.builder
  254. 2  vendor/rails/actionmailer/test/fixtures/test_mailer/rxml_template.rxml
  255. 3  vendor/rails/actionmailer/test/fixtures/test_mailer/signed_up.html.erb
  256. 5  vendor/rails/actionmailer/test/fixtures/test_mailer/signed_up_with_url.erb
  257. 95  vendor/rails/actionmailer/test/mail_helper_test.rb
  258. 78  vendor/rails/actionmailer/test/mail_layout_test.rb
  259. 116  vendor/rails/actionmailer/test/mail_render_test.rb
  260. 1,034  vendor/rails/actionmailer/test/mail_service_test.rb
  261. 98  vendor/rails/actionmailer/test/quoting_test.rb
  262. 129  vendor/rails/actionmailer/test/test_helper_test.rb
  263. 22  vendor/rails/actionmailer/test/tmail_test.rb
  264. 76  vendor/rails/actionmailer/test/url_test.rb
  265. 5,007  vendor/rails/actionpack/CHANGELOG
  266. 21  vendor/rails/actionpack/MIT-LICENSE
  267. 463  vendor/rails/actionpack/README
  268. 24  vendor/rails/actionpack/RUNNING_UNIT_TESTS
  269. 158  vendor/rails/actionpack/Rakefile
  270. 30  vendor/rails/actionpack/install.rb
  271. 79  vendor/rails/actionpack/lib/action_controller.rb
  272. 69  vendor/rails/actionpack/lib/action_controller/assertions.rb
  273. 39  vendor/rails/actionpack/lib/action_controller/assertions/dom_assertions.rb
  274. 20  vendor/rails/actionpack/lib/action_controller/assertions/model_assertions.rb
  275. 123  vendor/rails/actionpack/lib/action_controller/assertions/response_assertions.rb
  276. 146  vendor/rails/actionpack/lib/action_controller/assertions/routing_assertions.rb
  277. 627  vendor/rails/actionpack/lib/action_controller/assertions/selector_assertions.rb
  278. 130  vendor/rails/actionpack/lib/action_controller/assertions/tag_assertions.rb
  279. 1,300  vendor/rails/actionpack/lib/action_controller/base.rb
  280. 107  vendor/rails/actionpack/lib/action_controller/benchmarking.rb
  281. 72  vendor/rails/actionpack/lib/action_controller/caching.rb
  282. 176  vendor/rails/actionpack/lib/action_controller/caching/actions.rb
  283. 112  vendor/rails/actionpack/lib/action_controller/caching/fragments.rb
  284. 154  vendor/rails/actionpack/lib/action_controller/caching/pages.rb
  285. 18  vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb
  286. 97  vendor/rails/actionpack/lib/action_controller/caching/sweeping.rb
  287. 16  vendor/rails/actionpack/lib/action_controller/cgi_ext.rb
  288. 110  vendor/rails/actionpack/lib/action_controller/cgi_ext/cookie.rb
  289. 22  vendor/rails/actionpack/lib/action_controller/cgi_ext/query_extension.rb
  290. 53  vendor/rails/actionpack/lib/action_controller/cgi_ext/session.rb
  291. 24  vendor/rails/actionpack/lib/action_controller/cgi_ext/stdinput.rb
  292. 185  vendor/rails/actionpack/lib/action_controller/cgi_process.rb
  293. 169  vendor/rails/actionpack/lib/action_controller/components.rb
  294. 106  vendor/rails/actionpack/lib/action_controller/cookies.rb
  295. 197  vendor/rails/actionpack/lib/action_controller/dispatcher.rb
11  .gitignore
... ...
@@ -0,0 +1,11 @@
  1
+*.sqlite3
  2
+db/schema.rb
  3
+config/database.yml
  4
+config/locomotive.yml
  5
+config/mongrel_cluster.yml
  6
+config/thin.yml
  7
+tmp/*
  8
+log/*
  9
+private/images/*
  10
+public/cache/*
  11
+.DS_Store
256  README
... ...
@@ -0,0 +1,256 @@
  1
+== Welcome to Rails
  2
+
  3
+Rails is a web-application framework that includes everything needed to create 
  4
+database-backed web applications according to the Model-View-Control pattern. 
  5
+
  6
+This pattern splits the view (also called the presentation) into "dumb" templates
  7
+that are primarily responsible for inserting pre-built data in between HTML tags.
  8
+The model contains the "smart" domain objects (such as Account, Product, Person,
  9
+Post) that holds all the business logic and knows how to persist themselves to
  10
+a database. The controller handles the incoming requests (such as Save New Account,
  11
+Update Product, Show Post) by manipulating the model and directing data to the view.
  12
+
  13
+In Rails, the model is handled by what's called an object-relational mapping
  14
+layer entitled Active Record. This layer allows you to present the data from
  15
+database rows as objects and embellish these data objects with business logic
  16
+methods. You can read more about Active Record in
  17
+link:files/vendor/rails/activerecord/README.html.
  18
+
  19
+The controller and view are handled by the Action Pack, which handles both
  20
+layers by its two parts: Action View and Action Controller. These two layers
  21
+are bundled in a single package due to their heavy interdependence. This is
  22
+unlike the relationship between the Active Record and Action Pack that is much
  23
+more separate. Each of these packages can be used independently outside of
  24
+Rails.  You can read more about Action Pack in
  25
+link:files/vendor/rails/actionpack/README.html.
  26
+
  27
+
  28
+== Getting Started
  29
+
  30
+1. At the command prompt, start a new Rails application using the <tt>rails</tt> command
  31
+   and your application name. Ex: rails myapp
  32
+2. Change directory into myapp and start the web server: <tt>script/server</tt> (run with --help for options)
  33
+3. Go to http://localhost:3000/ and get "Welcome aboard: You're riding the Rails!"
  34
+4. Follow the guidelines to start developing your application
  35
+
  36
+
  37
+== Web Servers
  38
+
  39
+By default, Rails will try to use Mongrel and lighttpd if they are installed, otherwise
  40
+Rails will use WEBrick, the webserver that ships with Ruby. When you run script/server,
  41
+Rails will check if Mongrel exists, then lighttpd and finally fall back to WEBrick. This ensures
  42
+that you can always get up and running quickly.
  43
+
  44
+Mongrel is a Ruby-based webserver with a C component (which requires compilation) that is
  45
+suitable for development and deployment of Rails applications. If you have Ruby Gems installed,
  46
+getting up and running with mongrel is as easy as: <tt>gem install mongrel</tt>.
  47
+More info at: http://mongrel.rubyforge.org
  48
+
  49
+If Mongrel is not installed, Rails will look for lighttpd. It's considerably faster than
  50
+Mongrel and WEBrick and also suited for production use, but requires additional
  51
+installation and currently only works well on OS X/Unix (Windows users are encouraged
  52
+to start with Mongrel). We recommend version 1.4.11 and higher. You can download it from
  53
+http://www.lighttpd.net.
  54
+
  55
+And finally, if neither Mongrel or lighttpd are installed, Rails will use the built-in Ruby
  56
+web server, WEBrick. WEBrick is a small Ruby web server suitable for development, but not
  57
+for production.
  58
+
  59
+But of course its also possible to run Rails on any platform that supports FCGI.
  60
+Apache, LiteSpeed, IIS are just a few. For more information on FCGI,
  61
+please visit: http://wiki.rubyonrails.com/rails/pages/FastCGI
  62
+
  63
+
  64
+== Apache .htaccess example
  65
+
  66
+# General Apache options
  67
+AddHandler fastcgi-script .fcgi
  68
+AddHandler cgi-script .cgi
  69
+Options +FollowSymLinks +ExecCGI
  70
+
  71
+# If you don't want Rails to look in certain directories,
  72
+# use the following rewrite rules so that Apache won't rewrite certain requests
  73
+# 
  74
+# Example:
  75
+#   RewriteCond %{REQUEST_URI} ^/notrails.*
  76
+#   RewriteRule .* - [L]
  77
+
  78
+# Redirect all requests not available on the filesystem to Rails
  79
+# By default the cgi dispatcher is used which is very slow
  80
+# 
  81
+# For better performance replace the dispatcher with the fastcgi one
  82
+#
  83
+# Example:
  84
+#   RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
  85
+RewriteEngine On
  86
+
  87
+# If your Rails application is accessed via an Alias directive,
  88
+# then you MUST also set the RewriteBase in this htaccess file.
  89
+#
  90
+# Example:
  91
+#   Alias /myrailsapp /path/to/myrailsapp/public
  92
+#   RewriteBase /myrailsapp
  93
+
  94
+RewriteRule ^$ index.html [QSA]
  95
+RewriteRule ^([^.]+)$ $1.html [QSA]
  96
+RewriteCond %{REQUEST_FILENAME} !-f
  97
+RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
  98
+
  99
+# In case Rails experiences terminal errors
  100
+# Instead of displaying this message you can supply a file here which will be rendered instead
  101
+# 
  102
+# Example:
  103
+#   ErrorDocument 500 /500.html
  104
+
  105
+ErrorDocument 500 "<h2>Application error</h2>Rails application failed to start properly"
  106
+
  107
+
  108
+== Debugging Rails
  109
+
  110
+Sometimes your application goes wrong.  Fortunately there are a lot of tools that
  111
+will help you debug it and get it back on the rails.
  112
+
  113
+First area to check is the application log files.  Have "tail -f" commands running
  114
+on the server.log and development.log. Rails will automatically display debugging
  115
+and runtime information to these files. Debugging info will also be shown in the
  116
+browser on requests from 127.0.0.1.
  117
+
  118
+You can also log your own messages directly into the log file from your code using
  119
+the Ruby logger class from inside your controllers. Example:
  120
+
  121
+  class WeblogController < ActionController::Base
  122
+    def destroy
  123
+      @weblog = Weblog.find(params[:id])
  124
+      @weblog.destroy
  125
+      logger.info("#{Time.now} Destroyed Weblog ID ##{@weblog.id}!")
  126
+    end
  127
+  end
  128
+
  129
+The result will be a message in your log file along the lines of:
  130
+
  131
+  Mon Oct 08 14:22:29 +1000 2007 Destroyed Weblog ID #1
  132
+
  133
+More information on how to use the logger is at http://www.ruby-doc.org/core/
  134
+
  135
+Also, Ruby documentation can be found at http://www.ruby-lang.org/ including:
  136
+
  137
+* The Learning Ruby (Pickaxe) Book: http://www.ruby-doc.org/docs/ProgrammingRuby/
  138
+* Learn to Program: http://pine.fm/LearnToProgram/  (a beginners guide)
  139
+
  140
+These two online (and free) books will bring you up to speed on the Ruby language
  141
+and also on programming in general.
  142
+
  143
+
  144
+== Debugger
  145
+
  146
+Debugger support is available through the debugger command when you start your Mongrel or
  147
+Webrick server with --debugger. This means that you can break out of execution at any point
  148
+in the code, investigate and change the model, AND then resume execution! 
  149
+You need to install ruby-debug to run the server in debugging mode. With gems, use 'gem install ruby-debug'
  150
+Example:
  151
+
  152
+  class WeblogController < ActionController::Base
  153
+    def index
  154
+      @posts = Post.find(:all)
  155
+      debugger
  156
+    end
  157
+  end
  158
+
  159
+So the controller will accept the action, run the first line, then present you
  160
+with a IRB prompt in the server window. Here you can do things like:
  161
+
  162
+  >> @posts.inspect
  163
+  => "[#<Post:0x14a6be8 @attributes={\"title\"=>nil, \"body\"=>nil, \"id\"=>\"1\"}>,
  164
+       #<Post:0x14a6620 @attributes={\"title\"=>\"Rails you know!\", \"body\"=>\"Only ten..\", \"id\"=>\"2\"}>]"
  165
+  >> @posts.first.title = "hello from a debugger"
  166
+  => "hello from a debugger"
  167
+
  168
+...and even better is that you can examine how your runtime objects actually work:
  169
+
  170
+  >> f = @posts.first
  171
+  => #<Post:0x13630c4 @attributes={"title"=>nil, "body"=>nil, "id"=>"1"}>
  172
+  >> f.
  173
+  Display all 152 possibilities? (y or n)
  174
+
  175
+Finally, when you're ready to resume execution, you enter "cont"
  176
+
  177
+
  178
+== Console
  179
+
  180
+You can interact with the domain model by starting the console through <tt>script/console</tt>.
  181
+Here you'll have all parts of the application configured, just like it is when the
  182
+application is running. You can inspect domain models, change values, and save to the
  183
+database. Starting the script without arguments will launch it in the development environment.
  184
+Passing an argument will specify a different environment, like <tt>script/console production</tt>.
  185
+
  186
+To reload your controllers and models after launching the console run <tt>reload!</tt>
  187
+
  188
+== dbconsole
  189
+
  190
+You can go to the command line of your database directly through <tt>script/dbconsole</tt>.
  191
+You would be connected to the database with the credentials defined in database.yml.
  192
+Starting the script without arguments will connect you to the development database. Passing an
  193
+argument will connect you to a different database, like <tt>script/dbconsole production</tt>.
  194
+Currently works for mysql, postgresql and sqlite.
  195
+
  196
+== Description of Contents
  197
+
  198
+app
  199
+  Holds all the code that's specific to this particular application.
  200
+
  201
+app/controllers
  202
+  Holds controllers that should be named like weblogs_controller.rb for
  203
+  automated URL mapping. All controllers should descend from ApplicationController
  204
+  which itself descends from ActionController::Base.
  205
+
  206
+app/models
  207
+  Holds models that should be named like post.rb.
  208
+  Most models will descend from ActiveRecord::Base.
  209
+
  210
+app/views
  211
+  Holds the template files for the view that should be named like
  212
+  weblogs/index.html.erb for the WeblogsController#index action. All views use eRuby
  213
+  syntax.
  214
+
  215
+app/views/layouts
  216
+  Holds the template files for layouts to be used with views. This models the common
  217
+  header/footer method of wrapping views. In your views, define a layout using the
  218
+  <tt>layout :default</tt> and create a file named default.html.erb. Inside default.html.erb,
  219
+  call <% yield %> to render the view using this layout.
  220
+
  221
+app/helpers
  222
+  Holds view helpers that should be named like weblogs_helper.rb. These are generated
  223
+  for you automatically when using script/generate for controllers. Helpers can be used to
  224
+  wrap functionality for your views into methods.
  225
+
  226
+config
  227
+  Configuration files for the Rails environment, the routing map, the database, and other dependencies.
  228
+
  229
+db
  230
+  Contains the database schema in schema.rb.  db/migrate contains all
  231
+  the sequence of Migrations for your schema.
  232
+
  233
+doc
  234
+  This directory is where your application documentation will be stored when generated
  235
+  using <tt>rake doc:app</tt>
  236
+
  237
+lib
  238
+  Application specific libraries. Basically, any kind of custom code that doesn't
  239
+  belong under controllers, models, or helpers. This directory is in the load path.
  240
+
  241
+public
  242
+  The directory available for the web server. Contains subdirectories for images, stylesheets,
  243
+  and javascripts. Also contains the dispatchers and the default HTML files. This should be
  244
+  set as the DOCUMENT_ROOT of your web server.
  245
+
  246
+script
  247
+  Helper scripts for automation and generation.
  248
+
  249
+test
  250
+  Unit and functional tests along with fixtures. When using the script/generate scripts, template
  251
+  test files will be generated for you and placed in this directory.
  252
+
  253
+vendor
  254
+  External libraries that the application depends on. Also includes the plugins subdirectory.
  255
+  If the app has frozen rails, those gems also go here, under vendor/rails/.
  256
+  This directory is in the load path.
10  Rakefile
... ...
@@ -0,0 +1,10 @@
  1
+# Add your own tasks in files placed in lib/tasks ending in .rake,
  2
+# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
  3
+
  4
+require(File.join(File.dirname(__FILE__), 'config', 'boot'))
  5
+
  6
+require 'rake'
  7
+require 'rake/testtask'
  8
+require 'rake/rdoctask'
  9
+
  10
+require 'tasks/rails'
43  app/controllers/application.rb
... ...
@@ -0,0 +1,43 @@
  1
+# Filters added to this controller apply to all controllers in the application.
  2
+# Likewise, all the methods added will be available for all controllers.
  3
+
  4
+class ApplicationController < ActionController::Base
  5
+  helper :all
  6
+  protect_from_forgery
  7
+  
  8
+  before_filter :load_user
  9
+	
  10
+	private
  11
+		def load_user
  12
+			@user_session = UserSession.find
  13
+			@current_user = @user_session && @user_session.record
  14
+		end
  15
+		
  16
+		def require_user
  17
+			unless @current_user
  18
+        store_location
  19
+        flash[:notice] = "You must be logged in to access this page"
  20
+        redirect_to new_user_session_url
  21
+        return false
  22
+      end
  23
+		end
  24
+		
  25
+		def require_no_user
  26
+      if @current_user
  27
+        store_location
  28
+        flash[:notice] = "You must be logged out to access this page"
  29
+        redirect_to account_url
  30
+        return false
  31
+      end
  32
+    end
  33
+		
  34
+		def store_location
  35
+      return if @prevent_store_location == true
  36
+      session[:return_to] = request.request_uri
  37
+    end
  38
+    
  39
+    def redirect_back_or_default(default)
  40
+      redirect_to(session[:return_to] || default)
  41
+      session[:return_to] = nil
  42
+    end
  43
+end
24  app/controllers/user_sessions_controller.rb
... ...
@@ -0,0 +1,24 @@
  1
+class UserSessionsController < ApplicationController
  2
+  before_filter :require_no_user, :only => [:new, :create]
  3
+  before_filter :require_user, :only => :destroy
  4
+  
  5
+  def new
  6
+    @user_session = UserSession.new
  7
+  end
  8
+  
  9
+  def create
  10
+    @user_session = UserSession.new(params[:user_session])
  11
+    if @user_session.save
  12
+      flash[:notice] = "Login successful!"
  13
+      redirect_back_or_default account_url
  14
+    else
  15
+      render :action => :new
  16
+    end
  17
+  end
  18
+  
  19
+  def destroy
  20
+    @user_session.destroy
  21
+    flash[:notice] = "Logout successful!"
  22
+    redirect_back_or_default new_user_session_url
  23
+  end
  24
+end
36  app/controllers/users_controller.rb
... ...
@@ -0,0 +1,36 @@
  1
+class UsersController < ApplicationController
  2
+  before_filter :require_no_user, :only => [:new, :create]
  3
+  before_filter :require_user, :only => [:show, :edit, :update]
  4
+  
  5
+  def new
  6
+    @user = User.new
  7
+  end
  8
+  
  9
+  def create
  10
+    @user = User.new(params[:user])
  11
+    if @user.save
  12
+      flash[:notice] = "Account registered!"
  13
+      redirect_back_or_default account_url
  14
+    else
  15
+      render :action => :new
  16
+    end
  17
+  end
  18
+  
  19
+  def show
  20
+    @user = @current_user
  21
+  end
  22
+
  23
+	def edit
  24
+		@user = @current_user
  25
+	end
  26
+  
  27
+  def update
  28
+    @user = @current_user # makes our views "cleaner" and more consistent
  29
+    if @user.update_attributes(params[:user])
  30
+      flash[:notice] = "Account updated!"
  31
+      redirect_to account_url
  32
+    else
  33
+      render :action => :edit
  34
+    end
  35
+  end
  36
+end
3  app/helpers/application_helper.rb
... ...
@@ -0,0 +1,3 @@
  1
+# Methods added to this helper will be available to all templates in the application.
  2
+module ApplicationHelper
  3
+end
2  app/helpers/user_session_helper.rb
... ...
@@ -0,0 +1,2 @@
  1
+module UserSessionHelper
  2
+end
2  app/helpers/user_sessions_helper.rb
... ...
@@ -0,0 +1,2 @@
  1
+module UserSessionsHelper
  2
+end
2  app/helpers/users_helper.rb
... ...
@@ -0,0 +1,2 @@
  1
+module UsersHelper
  2
+end
3  app/models/user.rb
... ...
@@ -0,0 +1,3 @@
  1
+class User < ActiveRecord::Base
  2
+  acts_as_authentic
  3
+end
2  app/models/user_session.rb
... ...
@@ -0,0 +1,2 @@
  1
+class UserSession < Authlogic::Session::Base
  2
+end
32  app/views/layouts/application.html.erb
... ...
@@ -0,0 +1,32 @@
  1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3
+
  4
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  5
+<head>
  6
+  <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
  7
+  <title><%= controller.controller_name %>: <%= controller.action_name %></title>
  8
+  <%= stylesheet_link_tag 'scaffold' %>
  9
+</head>
  10
+<body>
  11
+
  12
+<span style="float: right;"><%= link_to "Source code", "http://github.com/binarylogic/authlogic_example" %> | Tutorial | Authlogic Repo | Authlogic Doc</span>
  13
+<h1>Authlogic Example App</h1>
  14
+<%= pluralize User.logged_in.count, "user" %> currently logged in<br /> <!-- This based on last_request_at, if they were active < 10 minutes they are logged in -->
  15
+<br />
  16
+<br />
  17
+
  18
+
  19
+<% if !@current_user %>
  20
+  <%= link_to "Register", new_account_path %> |
  21
+  <%= link_to "Log In", new_user_session_path %>
  22
+<% else %>
  23
+  <%= link_to "My Account", account_path %> |
  24
+  <%= link_to "Logout", user_session_path, :method => :delete, :confirm => "Are you sure you want to logout?" %>
  25
+<% end %>
  26
+
  27
+<p style="color: green"><%= flash[:notice] %></p>
  28
+
  29
+<%= yield  %>
  30
+
  31
+</body>
  32
+</html>
15  app/views/user_sessions/new.html.erb
... ...
@@ -0,0 +1,15 @@
  1
+<h1>Login</h1>
  2
+
  3
+<%= error_messages_for "user_session", :header_message => nil %>
  4
+
  5
+<% form_for @user_session, :url => user_session_path do |f| %>
  6
+  <%= f.label :login %><br />
  7
+  <%= f.text_field :login %><br />
  8
+  <br />
  9
+  <%= f.label :password %><br />
  10
+  <%= f.password_field :password %><br />
  11
+  <br />
  12
+  <%= f.check_box :remember_me %><%= f.label :remember_me %><br />
  13
+  <br />
  14
+  <%= f.submit "Login" %>
  15
+<% end %>
9  app/views/users/_form.erb
... ...
@@ -0,0 +1,9 @@
  1
+<%= form.label :login %><br />
  2
+<%= form.text_field :login %><br />
  3
+<br />
  4
+<%= form.label :password, form.object.new_record? ? nil : "Change password" %><br />
  5
+<%= form.password_field :password %><br />
  6
+<br />
  7
+<%= form.label :confirm_password%><br />
  8
+<%= form.password_field :confirm_password %><br />
  9
+<br />
9  app/views/users/edit.html.erb
... ...
@@ -0,0 +1,9 @@
  1
+<h1>Edit My Account</h1>
  2
+
  3
+<% form_for @user, :url => account_path do |f| %>
  4
+  <%= f.error_messages %>
  5
+  <%= render :partial => "form", :object => f %>
  6
+  <%= f.submit "Update" %>
  7
+<% end %>
  8
+
  9
+<%= link_to "My Profile", account_path %>
7  app/views/users/new.html.erb
... ...
@@ -0,0 +1,7 @@
  1
+<h1>Register</h1>
  2
+
  3
+<% form_for @user, :url => account_path do |f| %>
  4
+  <%= f.error_messages %>
  5
+  <%= render :partial => "form", :object => f %>
  6
+  <%= f.submit "Register" %>
  7
+<% end %>
37  app/views/users/show.html.erb
... ...
@@ -0,0 +1,37 @@
  1
+<p>
  2
+  <b>Login:</b>
  3
+  <%=h @user.login %>
  4
+</p>
  5
+
  6
+<p>
  7
+  <b>Login count:</b>
  8
+  <%=h @user.login_count %>
  9
+</p>
  10
+
  11
+<p>
  12
+  <b>Last request at:</b>
  13
+  <%=h @user.last_request_at %>
  14
+</p>
  15
+
  16
+<p>
  17
+  <b>Last login at:</b>
  18
+  <%=h @user.last_login_at %>
  19
+</p>
  20
+
  21
+<p>
  22
+  <b>Current login at:</b>
  23
+  <%=h @user.current_login_at %>
  24
+</p>
  25
+
  26
+<p>
  27
+  <b>Last login ip:</b>
  28
+  <%=h @user.last_login_ip %>
  29
+</p>
  30
+
  31
+<p>
  32
+  <b>Current login ip:</b>
  33
+  <%=h @user.current_login_ip %>
  34
+</p>
  35
+
  36
+
  37
+<%= link_to 'Edit', edit_account_path %>
109  config/boot.rb
... ...
@@ -0,0 +1,109 @@
  1
+# Don't change this file!
  2
+# Configure your app in config/environment.rb and config/environments/*.rb
  3
+
  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.exist?(preinitializer_path)
  29
+    end
  30
+
  31
+    def preinitializer_path
  32
+      "#{RAILS_ROOT}/config/preinitializer.rb"
  33
+    end
  34
+  end
  35
+
  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
+      Rails::Initializer.run(:install_gem_spec_stubs)
  47
+    end
  48
+  end
  49
+
  50
+  class GemBoot < Boot
  51
+    def load_initializer
  52
+      self.class.load_rubygems
  53
+      load_rails_gem
  54
+      require 'initializer'
  55
+    end
  56
+
  57
+    def load_rails_gem
  58
+      if version = self.class.gem_version
  59
+        gem 'rails', version
  60
+      else
  61
+        gem 'rails'
  62
+      end
  63
+    rescue Gem::LoadError => load_error
  64
+      $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.)
  65
+      exit 1
  66
+    end
  67
+
  68
+    class << self
  69
+      def rubygems_version
  70
+        Gem::RubyGemsVersion if defined? Gem::RubyGemsVersion
  71
+      end
  72
+
  73
+      def gem_version
  74
+        if defined? RAILS_GEM_VERSION
  75
+          RAILS_GEM_VERSION
  76
+        elsif ENV.include?('RAILS_GEM_VERSION')
  77
+          ENV['RAILS_GEM_VERSION']
  78
+        else
  79
+          parse_gem_version(read_environment_rb)
  80
+        end
  81
+      end
  82
+
  83
+      def load_rubygems
  84
+        require 'rubygems'
  85
+        min_version = '1.1.1'
  86
+        unless rubygems_version >= min_version
  87
+          $stderr.puts %Q(Rails requires RubyGems >= #{min_version} (you have #{rubygems_version}). Please `gem update --system` and try again.)
  88
+          exit 1
  89
+        end
  90
+
  91
+      rescue LoadError
  92
+        $stderr.puts %Q(Rails requires RubyGems >= #{min_version}. Please install RubyGems and try again: http://rubygems.rubyforge.org)
  93
+        exit 1
  94
+      end
  95
+
  96
+      def parse_gem_version(text)
  97
+        $1 if text =~ /^[^#]*RAILS_GEM_VERSION\s*=\s*["']([!~<>=]*\s*[\d.]+)["']/
  98
+      end
  99
+
  100
+      private
  101
+        def read_environment_rb
  102
+          File.read("#{RAILS_ROOT}/config/environment.rb")
  103
+        end
  104
+    end
  105
+  end
  106
+end
  107
+
  108
+# All that for this:
  109
+Rails.boot!
67  config/environment.rb
... ...
@@ -0,0 +1,67 @@
  1
+# Be sure to restart your server when you modify this file
  2
+
  3
+# Uncomment below to force Rails into production mode when
  4
+# you don't control web/app server and can't set it the proper way
  5
+# ENV['RAILS_ENV'] ||= 'production'
  6
+
  7
+# Specifies gem version of Rails to use when vendor/rails is not present
  8
+RAILS_GEM_VERSION = '2.1.2' unless defined? RAILS_GEM_VERSION
  9
+
  10
+# Bootstrap the Rails environment, frameworks, and default configuration
  11
+require File.join(File.dirname(__FILE__), 'boot')
  12
+
  13
+Rails::Initializer.run do |config|
  14
+  # Settings in config/environments/* take precedence over those specified here.
  15
+  # Application configuration should go into files in config/initializers
  16
+  # -- all .rb files in that directory are automatically loaded.
  17
+  # See Rails::Configuration for more options.
  18
+
  19
+  # Skip frameworks you're not going to use. To use Rails without a database
  20
+  # you must remove the Active Record framework.
  21
+  # config.frameworks -= [ :active_record, :active_resource, :action_mailer ]
  22
+
  23
+  # Specify gems that this application depends on. 
  24
+  # They can then be installed with "rake gems:install" on new installations.
  25
+  # config.gem "bj"
  26
+  # config.gem "hpricot", :version => '0.6', :source => "http://code.whytheluckystiff.net"
  27
+  # config.gem "aws-s3", :lib => "aws/s3"
  28
+
  29
+  # Only load the plugins named here, in the order given. By default, all plugins 
  30
+  # in vendor/plugins are loaded in alphabetical order.
  31
+  # :all can be used as a placeholder for all plugins not explicitly named
  32
+  # config.plugins = [ :exception_notification, :ssl_requirement, :all ]
  33
+
  34
+  # Add additional load paths for your own custom dirs
  35
+  # config.load_paths += %W( #{RAILS_ROOT}/extras )
  36
+
  37
+  # Force all environments to use the same logger level
  38
+  # (by default production uses :info, the others :debug)
  39
+  # config.log_level = :debug
  40
+
  41
+  # Make Time.zone default to the specified zone, and make Active Record store time values
  42
+  # in the database in UTC, and return them converted to the specified local zone.
  43
+  # Run "rake -D time" for a list of tasks for finding time zone names. Comment line to use default local time.
  44
+  config.time_zone = 'UTC'
  45
+
  46
+  # Your secret key for verifying cookie session data integrity.
  47
+  # If you change this key, all old sessions will become invalid!
  48
+  # Make sure the secret is at least 30 characters and all random, 
  49
+  # no regular words or you'll be exposed to dictionary attacks.
  50
+  config.action_controller.session = {
  51
+    :session_key => '_authgasm_example_session',
  52
+    :secret      => '94b9c594695e69bdef6b1d4be037af5853be976b39a52a02f260fca0d0a36a8f913572bfdb631f55971a3b10b8dd9a875f9776ca61371741544e6ccc064dd41e'
  53
+  }
  54
+
  55
+  # Use the database for sessions instead of the cookie-based default,
  56
+  # which shouldn't be used to store highly confidential information
  57
+  # (create the session table with "rake db:sessions:create")
  58
+  # config.action_controller.session_store = :active_record_store
  59
+
  60
+  # Use SQL instead of Active Record's schema dumper when creating the test database.
  61
+  # This is necessary if your schema can't be completely dumped by the schema dumper,
  62
+  # like if you have constraints or database-specific column types
  63
+  # config.active_record.schema_format = :sql
  64
+
  65
+  # Activate observers that should always be running
  66
+  # config.active_record.observers = :cacher, :garbage_collector
  67
+end
17  config/environments/development.rb
... ...
@@ -0,0 +1,17 @@
  1
+# Settings specified here will take precedence over those in config/environment.rb
  2
+
  3
+# In the development environment your application's code is reloaded on
  4
+# every request.  This slows down response time but is perfect for development
  5
+# since you don't have to restart the webserver when you make code changes.
  6
+config.cache_classes = false
  7
+
  8
+# Log error messages when you accidentally call methods on nil.
  9
+config.whiny_nils = true
  10
+
  11
+# Show full error reports and disable caching
  12
+config.action_controller.consider_all_requests_local = true
  13
+config.action_view.debug_rjs                         = true
  14
+config.action_controller.perform_caching             = false
  15
+
  16
+# Don't care if the mailer can't send
  17
+config.action_mailer.raise_delivery_errors = false
22  config/environments/production.rb
... ...
@@ -0,0 +1,22 @@
  1
+# Settings specified here will take precedence over those in config/environment.rb
  2
+
  3
+# The production environment is meant for finished, "live" apps.
  4
+# Code is not reloaded between requests
  5
+config.cache_classes = true
  6
+
  7
+# Use a different logger for distributed setups
  8
+# config.logger = SyslogLogger.new
  9
+
  10
+# Full error reports are disabled and caching is turned on
  11
+config.action_controller.consider_all_requests_local = false
  12
+config.action_controller.perform_caching             = true
  13
+config.action_view.cache_template_loading            = true
  14
+
  15
+# Use a different cache store in production
  16
+# config.cache_store = :mem_cache_store
  17
+
  18
+# Enable serving of images, stylesheets, and javascripts from an asset server
  19
+# config.action_controller.asset_host                  = "http://assets.example.com"
  20
+
  21
+# Disable delivery errors, bad email addresses will be ignored
  22
+# config.action_mailer.raise_delivery_errors = false
22  config/environments/test.rb
... ...
@@ -0,0 +1,22 @@
  1
+# Settings specified here will take precedence over those in config/environment.rb
  2
+
  3
+# The test environment is used exclusively to run your application's
  4
+# test suite.  You never need to work with it otherwise.  Remember that
  5
+# your test database is "scratch space" for the test suite and is wiped
  6
+# and recreated between test runs.  Don't rely on the data there!
  7
+config.cache_classes = true
  8
+
  9
+# Log error messages when you accidentally call methods on nil.
  10
+config.whiny_nils = true
  11
+
  12
+# Show full error reports and disable caching
  13
+config.action_controller.consider_all_requests_local = true
  14
+config.action_controller.perform_caching             = false
  15
+
  16
+# Disable request forgery protection in test environment
  17
+config.action_controller.allow_forgery_protection    = false
  18
+
  19
+# Tell Action Mailer not to deliver emails to the real world.
  20
+# The :test delivery method accumulates sent emails in the
  21
+# ActionMailer::Base.deliveries array.
  22
+config.action_mailer.delivery_method = :test
10  config/initializers/inflections.rb
... ...
@@ -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
+# ActiveSupport::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
5  config/initializers/mime_types.rb
... ...
@@ -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
17  config/initializers/new_rails_defaults.rb
... ...
@@ -0,0 +1,17 @@
  1
+# These settings change the behavior of Rails 2 apps and will be defaults
  2
+# for Rails 3. You can remove this initializer when Rails 3 is released.
  3
+
  4
+if defined?(ActiveRecord)
  5
+  # Include Active Record class name as root for JSON serialized output.
  6
+  ActiveRecord::Base.include_root_in_json = true
  7
+
  8
+  # Store the full class name (including module namespace) in STI type column.
  9
+  ActiveRecord::Base.store_full_sti_class = true
  10
+end
  11
+
  12
+# Use ISO 8601 format for JSON serialized times and dates.
  13
+ActiveSupport.use_standard_json_time_format = true
  14
+
  15
+# Don't escape HTML entities in JSON, leave that for the #json_escape helper.
  16
+# if you're including raw json in an HTML page.
  17
+ActiveSupport.escape_html_entities_in_json = false
6  config/routes.rb
... ...
@@ -0,0 +1,6 @@
  1
+ActionController::Routing::Routes.draw do |map|
  2
+  map.resource :account, :controller => "users"
  3
+  map.resources :users
  4
+  map.resource :user_session
  5
+  map.default "/", :controller => "user_sessions", :action => "new"
  6
+end
22  db/migrate/20081103171327_create_users.rb
... ...
@@ -0,0 +1,22 @@
  1
+class CreateUsers < ActiveRecord::Migration
  2
+  def self.up
  3
+    create_table :users do |t|
  4
+      t.string :login
  5
+      t.string :crypted_password
  6
+      t.string :password_salt
  7
+      t.string :remember_token
  8
+      t.integer :login_count
  9
+      t.datetime :last_request_at
  10
+      t.datetime :last_login_at
  11
+      t.datetime :current_login_at
  12
+      t.string :last_login_ip
  13
+      t.string :current_login_ip
  14
+
  15
+      t.timestamps
  16
+    end
  17
+  end
  18
+
  19
+  def self.down
  20
+    drop_table :users
  21
+  end
  22
+end
2  doc/README_FOR_APP
... ...
@@ -0,0 +1,2 @@
  1
+Use this README file to introduce your application and point to useful places in the API for learning more.
  2
+Run "rake doc:app" to generate API documentation for your models, controllers, helpers, and libraries.
30  public/404.html
... ...
@@ -0,0 +1,30 @@
  1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3
+
  4
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  5
+
  6
+<head>
  7
+  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  8
+  <title>The page you were looking for doesn't exist (404)</title>
  9
+	<style type="text/css">
  10
+		body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
  11
+		div.dialog {
  12
+			width: 25em;
  13
+			padding: 0 4em;
  14
+			margin: 4em auto 0 auto;
  15
+			border: 1px solid #ccc;
  16
+			border-right-color: #999;
  17
+			border-bottom-color: #999;
  18
+		}
  19
+		h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
  20
+	</style>
  21
+</head>
  22
+
  23
+<body>
  24
+  <!-- This file lives in public/404.html -->
  25
+  <div class="dialog">
  26
+    <h1>The page you were looking for doesn't exist.</h1>
  27
+    <p>You may have mistyped the address or the page may have moved.</p>
  28
+  </div>
  29
+</body>
  30
+</html>
30  public/422.html
... ...
@@ -0,0 +1,30 @@
  1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3
+
  4
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  5
+
  6
+<head>
  7
+  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  8
+  <title>The change you wanted was rejected (422)</title>
  9
+	<style type="text/css">
  10
+		body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
  11
+		div.dialog {
  12
+			width: 25em;
  13
+			padding: 0 4em;
  14
+			margin: 4em auto 0 auto;
  15
+			border: 1px solid #ccc;
  16
+			border-right-color: #999;
  17
+			border-bottom-color: #999;
  18
+		}
  19
+		h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
  20
+	</style>
  21
+</head>
  22
+
  23
+<body>
  24
+  <!-- This file lives in public/422.html -->
  25
+  <div class="dialog">
  26
+    <h1>The change you wanted was rejected.</h1>
  27
+    <p>Maybe you tried to change something you didn't have access to.</p>
  28
+  </div>
  29
+</body>
  30
+</html>
30  public/500.html
... ...
@@ -0,0 +1,30 @@
  1
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3
+
  4
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  5
+
  6
+<head>
  7
+  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  8
+  <title>We're sorry, but something went wrong (500)</title>
  9
+	<style type="text/css">
  10
+		body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
  11
+		div.dialog {
  12
+			width: 25em;
  13
+			padding: 0 4em;
  14
+			margin: 4em auto 0 auto;
  15
+			border: 1px solid #ccc;
  16
+			border-right-color: #999;
  17
+			border-bottom-color: #999;
  18
+		}
  19
+		h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
  20
+	</style>
  21
+</head>
  22
+
  23
+<body>
  24
+  <!-- This file lives in public/500.html -->
  25
+  <div class="dialog">
  26
+    <h1>We're sorry, but something went wrong.</h1>
  27
+    <p>We've been notified about this issue and we'll take a look at it shortly.</p>
  28
+  </div>
  29
+</body>
  30
+</html>
10  public/dispatch.cgi
... ...
@@ -0,0 +1,10 @@
  1
+#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
  2
+
  3
+require File.dirname(__FILE__) + "/../config/environment" unless defined?(RAILS_ROOT)
  4
+
  5
+# If you're using RubyGems and mod_ruby, this require should be changed to an absolute path one, like:
  6
+# "/usr/local/lib/ruby/gems/1.8/gems/rails-0.8.0/lib/dispatcher" -- otherwise performance is severely impaired
  7
+require "dispatcher"
  8
+
  9
+ADDITIONAL_LOAD_PATHS.reverse.each { |dir| $:.unshift(dir) if File.directory?(dir) } if defined?(Apache::RubyRun)
  10
+Dispatcher.dispatch
24  public/dispatch.fcgi
... ...
@@ -0,0 +1,24 @@
  1
+#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
  2
+#
  3
+# You may specify the path to the FastCGI crash log (a log of unhandled
  4
+# exceptions which forced the FastCGI instance to exit, great for debugging)
  5
+# and the number of requests to process before running garbage collection.
  6
+#
  7
+# By default, the FastCGI crash log is RAILS_ROOT/log/fastcgi.crash.log
  8
+# and the GC period is nil (turned off).  A reasonable number of requests
  9
+# could range from 10-100 depending on the memory footprint of your app.
  10
+#
  11
+# Example:
  12
+#   # Default log path, normal GC behavior.
  13
+#   RailsFCGIHandler.process!
  14
+#
  15
+#   # Default log path, 50 requests between GC.
  16
+#   RailsFCGIHandler.process! nil, 50
  17
+#
  18
+#   # Custom log path, normal GC behavior.
  19
+#   RailsFCGIHandler.process! '/var/log/myapp_fcgi_crash.log'
  20
+#
  21
+require File.dirname(__FILE__) + "/../config/environment"
  22
+require 'fcgi_handler'
  23
+
  24
+RailsFCGIHandler.process!
10  public/dispatch.rb
... ...
@@ -0,0 +1,10 @@
  1
+#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
  2
+
  3
+require File.dirname(__FILE__) + "/../config/environment" unless defined?(RAILS_ROOT)
  4
+
  5
+# If you're using RubyGems and mod_ruby, this require should be changed to an absolute path one, like:
  6
+# "/usr/local/lib/ruby/gems/1.8/gems/rails-0.8.0/lib/dispatcher" -- otherwise performance is severely impaired
  7
+require "dispatcher"
  8
+
  9
+ADDITIONAL_LOAD_PATHS.reverse.each { |dir| $:.unshift(dir) if File.directory?(dir) } if defined?(Apache::RubyRun)
  10
+Dispatcher.dispatch
0  public/favicon.ico
No changes.
BIN  public/images/rails.png
2  public/javascripts/application.js
... ...
@@ -0,0 +1,2 @@
  1
+// Place your application-specific JavaScript functions and classes here
  2
+// This file is automatically included by javascript_include_tag :defaults
963  public/javascripts/controls.js
... ...
@@ -0,0 +1,963 @@
  1
+// Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
  2
+//           (c) 2005-2007 Ivan Krstic (http://blogs.law.harvard.edu/ivan)
  3
+//           (c) 2005-2007 Jon Tirsen (http://www.tirsen.com)
  4
+// Contributors:
  5
+//  Richard Livsey
  6
+//  Rahul Bhargava
  7
+//  Rob Wills
  8
+// 
  9
+// script.aculo.us is freely distributable under the terms of an MIT-style license.
  10
+// For details, see the script.aculo.us web site: http://script.aculo.us/
  11
+