Permalink
Browse files

Initial

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
  • Loading branch information...
dhh committed Nov 24, 2004
0 parents commit db045dbbf60b53dbe013ef25554fd013baf88134
Showing with 30,881 additions and 0 deletions.
  1. +19 −0 actionmailer/CHANGELOG
  2. +21 −0 actionmailer/MIT-LICENSE
  3. +102 −0 actionmailer/README
  4. +107 −0 actionmailer/Rakefile
  5. +61 −0 actionmailer/install.rb
  6. +43 −0 actionmailer/lib/action_mailer.rb
  7. +152 −0 actionmailer/lib/action_mailer/base.rb
  8. +17 −0 actionmailer/lib/action_mailer/mail_helper.rb
  9. +1,447 −0 actionmailer/lib/action_mailer/vendor/text/format.rb
  10. +4 −0 actionmailer/lib/action_mailer/vendor/tmail.rb
  11. +223 −0 actionmailer/lib/action_mailer/vendor/tmail/address.rb
  12. +52 −0 actionmailer/lib/action_mailer/vendor/tmail/base64.rb
  13. +50 −0 actionmailer/lib/action_mailer/vendor/tmail/config.rb
  14. +447 −0 actionmailer/lib/action_mailer/vendor/tmail/encode.rb
  15. +531 −0 actionmailer/lib/action_mailer/vendor/tmail/facade.rb
  16. +893 −0 actionmailer/lib/action_mailer/vendor/tmail/header.rb
  17. +16 −0 actionmailer/lib/action_mailer/vendor/tmail/info.rb
  18. +1 −0 actionmailer/lib/action_mailer/vendor/tmail/loader.rb
  19. +420 −0 actionmailer/lib/action_mailer/vendor/tmail/mail.rb
  20. +414 −0 actionmailer/lib/action_mailer/vendor/tmail/mailbox.rb
  21. +1 −0 actionmailer/lib/action_mailer/vendor/tmail/mbox.rb
  22. +261 −0 actionmailer/lib/action_mailer/vendor/tmail/net.rb
  23. +116 −0 actionmailer/lib/action_mailer/vendor/tmail/obsolete.rb
  24. +1,503 −0 actionmailer/lib/action_mailer/vendor/tmail/parser.rb
  25. +358 −0 actionmailer/lib/action_mailer/vendor/tmail/port.rb
  26. +22 −0 actionmailer/lib/action_mailer/vendor/tmail/scanner.rb
  27. +244 −0 actionmailer/lib/action_mailer/vendor/tmail/scanner_r.rb
  28. +260 −0 actionmailer/lib/action_mailer/vendor/tmail/stringio.rb
  29. +1 −0 actionmailer/lib/action_mailer/vendor/tmail/tmail.rb
  30. +215 −0 actionmailer/lib/action_mailer/vendor/tmail/utils.rb
  31. +3 −0 actionmailer/test/fixtures/templates/signed_up.rhtml
  32. +3 −0 actionmailer/test/fixtures/test_mailer/signed_up.rhtml
  33. +92 −0 actionmailer/test/mail_service_test.rb
  34. +738 −0 actionpack/CHANGELOG
  35. +21 −0 actionpack/MIT-LICENSE
  36. +418 −0 actionpack/README
  37. +25 −0 actionpack/RUNNING_UNIT_TESTS
  38. +105 −0 actionpack/Rakefile
  39. +24 −0 actionpack/examples/.htaccess
  40. +33 −0 actionpack/examples/address_book/index.rhtml
  41. +8 −0 actionpack/examples/address_book/layout.rhtml
  42. +9 −0 actionpack/examples/address_book_controller.cgi
  43. +6 −0 actionpack/examples/address_book_controller.fcgi
  44. +52 −0 actionpack/examples/address_book_controller.rb
  45. +4 −0 actionpack/examples/address_book_controller.rbx
  46. +52 −0 actionpack/examples/benchmark.rb
  47. +89 −0 actionpack/examples/benchmark_with_ar.fcgi
  48. +53 −0 actionpack/examples/blog_controller.cgi
  49. +14 −0 actionpack/examples/debate/index.rhtml
  50. +22 −0 actionpack/examples/debate/new_topic.rhtml
  51. +32 −0 actionpack/examples/debate/topic.rhtml
  52. +57 −0 actionpack/examples/debate_controller.cgi
  53. +97 −0 actionpack/install.rb
  54. +51 −0 actionpack/lib/action_controller.rb
  55. +199 −0 actionpack/lib/action_controller/assertions/action_pack_assertions.rb
  56. +65 −0 actionpack/lib/action_controller/assertions/active_record_assertions.rb
  57. +689 −0 actionpack/lib/action_controller/base.rb
  58. +49 −0 actionpack/lib/action_controller/benchmarking.rb
  59. +43 −0 actionpack/lib/action_controller/cgi_ext/cgi_ext.rb
  60. +91 −0 actionpack/lib/action_controller/cgi_ext/cgi_methods.rb
  61. +124 −0 actionpack/lib/action_controller/cgi_process.rb
  62. +49 −0 actionpack/lib/action_controller/dependencies.rb
  63. +279 −0 actionpack/lib/action_controller/filters.rb
  64. +65 −0 actionpack/lib/action_controller/flash.rb
  65. +100 −0 actionpack/lib/action_controller/helpers.rb
  66. +149 −0 actionpack/lib/action_controller/layout.rb
  67. +99 −0 actionpack/lib/action_controller/request.rb
  68. +94 −0 actionpack/lib/action_controller/rescue.rb
  69. +15 −0 actionpack/lib/action_controller/response.rb
  70. +183 −0 actionpack/lib/action_controller/scaffolding.rb
  71. +72 −0 actionpack/lib/action_controller/session/active_record_store.rb
  72. +9 −0 actionpack/lib/action_controller/session/drb_server.rb
  73. +31 −0 actionpack/lib/action_controller/session/drb_store.rb
  74. +57 −0 actionpack/lib/action_controller/support/class_attribute_accessors.rb
  75. +37 −0 actionpack/lib/action_controller/support/class_inheritable_attributes.rb
  76. +10 −0 actionpack/lib/action_controller/support/clean_logger.rb
  77. +121 −0 actionpack/lib/action_controller/support/cookie_performance_fix.rb
  78. +78 −0 actionpack/lib/action_controller/support/inflector.rb
  79. +28 −0 actionpack/lib/action_controller/templates/rescues/_request_and_response.rhtml
  80. +22 −0 actionpack/lib/action_controller/templates/rescues/diagnostics.rhtml
  81. +29 −0 actionpack/lib/action_controller/templates/rescues/layout.rhtml
  82. +2 −0 actionpack/lib/action_controller/templates/rescues/missing_template.rhtml
  83. +26 −0 actionpack/lib/action_controller/templates/rescues/template_error.rhtml
  84. +2 −0 actionpack/lib/action_controller/templates/rescues/unknown_action.rhtml
  85. +6 −0 actionpack/lib/action_controller/templates/scaffolds/edit.rhtml
  86. +29 −0 actionpack/lib/action_controller/templates/scaffolds/layout.rhtml
  87. +24 −0 actionpack/lib/action_controller/templates/scaffolds/list.rhtml
  88. +5 −0 actionpack/lib/action_controller/templates/scaffolds/new.rhtml
  89. +9 −0 actionpack/lib/action_controller/templates/scaffolds/show.rhtml
  90. +195 −0 actionpack/lib/action_controller/test_process.rb
  91. +170 −0 actionpack/lib/action_controller/url_rewriter.rb
  92. +49 −0 actionpack/lib/action_view.rb
  93. +264 −0 actionpack/lib/action_view/base.rb
  94. +171 −0 actionpack/lib/action_view/helpers/active_record_helper.rb
  95. +230 −0 actionpack/lib/action_view/helpers/date_helper.rb
  96. +17 −0 actionpack/lib/action_view/helpers/debug_helper.rb
  97. +182 −0 actionpack/lib/action_view/helpers/form_helper.rb
  98. +212 −0 actionpack/lib/action_view/helpers/form_options_helper.rb
  99. +59 −0 actionpack/lib/action_view/helpers/tag_helper.rb
  100. +111 −0 actionpack/lib/action_view/helpers/text_helper.rb
  101. +78 −0 actionpack/lib/action_view/helpers/url_helper.rb
  102. +64 −0 actionpack/lib/action_view/partials.rb
  103. +84 −0 actionpack/lib/action_view/template_error.rb
  104. +13 −0 actionpack/lib/action_view/vendor/builder.rb
  105. +51 −0 actionpack/lib/action_view/vendor/builder/blankslate.rb
  106. +143 −0 actionpack/lib/action_view/vendor/builder/xmlbase.rb
  107. +63 −0 actionpack/lib/action_view/vendor/builder/xmlevents.rb
  108. +288 −0 actionpack/lib/action_view/vendor/builder/xmlmarkup.rb
  109. +9 −0 actionpack/test/abstract_unit.rb
  110. +323 −0 actionpack/test/controller/action_pack_assertions_test.rb
  111. +119 −0 actionpack/test/controller/active_record_assertions_test.rb
  112. +142 −0 actionpack/test/controller/cgi_test.rb
  113. +38 −0 actionpack/test/controller/cookie_test.rb
  114. +159 −0 actionpack/test/controller/filters_test.rb
  115. +69 −0 actionpack/test/controller/flash_test.rb
  116. +110 −0 actionpack/test/controller/helper_test.rb
  117. +49 −0 actionpack/test/controller/layout_test.rb
  118. +44 −0 actionpack/test/controller/redirect_test.rb
  119. +178 −0 actionpack/test/controller/render_test.rb
  120. +68 −0 actionpack/test/controller/send_file_test.rb
  121. +368 −0 actionpack/test/controller/url_test.rb
  122. +5 −0 actionpack/test/fixtures/helpers/abc_helper.rb
  123. +3 −0 actionpack/test/fixtures/layouts/builder.rxml
  124. +1 −0 actionpack/test/fixtures/layouts/standard.rhtml
  125. +1 −0 actionpack/test/fixtures/scope/test/modgreet.rhtml
  126. +1 −0 actionpack/test/fixtures/test/_customer.rhtml
  127. +1 −0 actionpack/test/fixtures/test/greeting.rhtml
  128. +4 −0 actionpack/test/fixtures/test/hello.rxml
  129. +1 −0 actionpack/test/fixtures/test/hello_world.rhtml
  130. +11 −0 actionpack/test/fixtures/test/hello_xml_world.rxml
  131. +1 −0 actionpack/test/fixtures/test/list.rhtml
  132. +76 −0 actionpack/test/template/active_record_helper_test.rb
  133. +104 −0 actionpack/test/template/date_helper_test.rb
  134. +124 −0 actionpack/test/template/form_helper_test.rb
  135. +165 −0 actionpack/test/template/form_options_helper_test.rb
  136. +18 −0 actionpack/test/template/tag_helper_test.rb
  137. +62 −0 actionpack/test/template/text_helper_test.rb
  138. +49 −0 actionpack/test/template/url_helper_test.rb
  139. +757 −0 activerecord/CHANGELOG
  140. +20 −0 activerecord/MIT-LICENSE
  141. +361 −0 activerecord/README
  142. +36 −0 activerecord/RUNNING_UNIT_TESTS
  143. +126 −0 activerecord/Rakefile
  144. +26 −0 activerecord/benchmarks/benchmark.rb
  145. +19 −0 activerecord/benchmarks/mysql_benchmark.rb
  146. +14 −0 activerecord/dev-utils/eval_debugger.rb
  147. BIN activerecord/examples/associations.png
  148. +87 −0 activerecord/examples/associations.rb
  149. +15 −0 activerecord/examples/shared_setup.rb
  150. +88 −0 activerecord/examples/validation.rb
  151. +60 −0 activerecord/install.rb
  152. +50 −0 activerecord/lib/active_record.rb
  153. +165 −0 activerecord/lib/active_record/aggregations.rb
  154. +576 −0 activerecord/lib/active_record/associations.rb
  155. +129 −0 activerecord/lib/active_record/associations/association_collection.rb
  156. +107 −0 activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb
  157. +102 −0 activerecord/lib/active_record/associations/has_many_association.rb
  158. +1,051 −0 activerecord/lib/active_record/base.rb
  159. +337 −0 activerecord/lib/active_record/callbacks.rb
  160. +371 −0 activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
  161. +131 −0 activerecord/lib/active_record/connection_adapters/mysql_adapter.rb
  162. +170 −0 activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
  163. +105 −0 activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb
  164. +298 −0 activerecord/lib/active_record/connection_adapters/sqlserver_adapter.rb
  165. +70 −0 activerecord/lib/active_record/deprecated_associations.rb
  166. +208 −0 activerecord/lib/active_record/fixtures.rb
  167. +71 −0 activerecord/lib/active_record/observer.rb
  168. +126 −0 activerecord/lib/active_record/reflection.rb
  169. +43 −0 activerecord/lib/active_record/support/class_attribute_accessors.rb
  170. +37 −0 activerecord/lib/active_record/support/class_inheritable_attributes.rb
  171. +10 −0 activerecord/lib/active_record/support/clean_logger.rb
  172. +78 −0 activerecord/lib/active_record/support/inflector.rb
  173. +119 −0 activerecord/lib/active_record/transactions.rb
  174. +205 −0 activerecord/lib/active_record/validations.rb
  175. +1,117 −0 activerecord/lib/active_record/vendor/mysql.rb
  176. +702 −0 activerecord/lib/active_record/vendor/simple.rb
  177. +15 −0 activerecord/lib/active_record/wrappers/yaml_wrapper.rb
  178. +59 −0 activerecord/lib/active_record/wrappings.rb
  179. +22 −0 activerecord/test/abstract_unit.rb
  180. +34 −0 activerecord/test/aggregations_test.rb
  181. +8 −0 activerecord/test/all.sh
  182. +549 −0 activerecord/test/associations_test.rb
  183. +544 −0 activerecord/test/base_test.rb
  184. +33 −0 activerecord/test/class_inheritable_attributes_test.rb
  185. +24 −0 activerecord/test/connections/native_mysql/connection.rb
  186. +24 −0 activerecord/test/connections/native_postgresql/connection.rb
  187. +34 −0 activerecord/test/connections/native_sqlite/connection.rb
  188. +15 −0 activerecord/test/connections/native_sqlserver/connection.rb
  189. +335 −0 activerecord/test/deprecated_associations_test.rb
  190. +67 −0 activerecord/test/finder_test.rb
  191. +8 −0 activerecord/test/fixtures/accounts.yml
  192. +4 −0 activerecord/test/fixtures/auto_id.rb
  193. +1 −0 activerecord/test/fixtures/bad_fixtures/attr_with_numeric_first_char
  194. +1 −0 activerecord/test/fixtures/bad_fixtures/attr_with_spaces
  195. +3 −0 activerecord/test/fixtures/bad_fixtures/blank_line
  196. +3 −0 activerecord/test/fixtures/bad_fixtures/duplicate_attributes
  197. +1 −0 activerecord/test/fixtures/bad_fixtures/missing_value
  198. +3 −0 activerecord/test/fixtures/column_name.rb
  199. +6 −0 activerecord/test/fixtures/companies/first_client
  200. +4 −0 activerecord/test/fixtures/companies/first_firm
  201. +6 −0 activerecord/test/fixtures/companies/second_client
  202. +37 −0 activerecord/test/fixtures/company.rb
  203. +47 −0 activerecord/test/fixtures/company_in_module.rb
  204. +3 −0 activerecord/test/fixtures/course.rb
  205. +2 −0 activerecord/test/fixtures/courses/java
  206. +2 −0 activerecord/test/fixtures/courses/ruby
  207. +30 −0 activerecord/test/fixtures/customer.rb
  208. +6 −0 activerecord/test/fixtures/customers/david
  209. +97 −0 activerecord/test/fixtures/db_definitions/mysql.sql
  210. +4 −0 activerecord/test/fixtures/db_definitions/mysql2.sql
  211. +114 −0 activerecord/test/fixtures/db_definitions/postgresql.sql
  212. +4 −0 activerecord/test/fixtures/db_definitions/postgresql2.sql
  213. +86 −0 activerecord/test/fixtures/db_definitions/sqlite.sql
  214. +4 −0 activerecord/test/fixtures/db_definitions/sqlite2.sql
  215. +96 −0 activerecord/test/fixtures/db_definitions/sqlserver.sql
  216. +4 −0 activerecord/test/fixtures/db_definitions/sqlserver2.sql
  217. +2 −0 activerecord/test/fixtures/default.rb
  218. +8 −0 activerecord/test/fixtures/developer.rb
  219. +13 −0 activerecord/test/fixtures/developers.yml
  220. +3 −0 activerecord/test/fixtures/developers_projects/david_action_controller
  221. +3 −0 activerecord/test/fixtures/developers_projects/david_active_record
  222. +2 −0 activerecord/test/fixtures/developers_projects/jamis_active_record
  223. +3 −0 activerecord/test/fixtures/entrant.rb
  224. +3 −0 activerecord/test/fixtures/entrants/first
  225. +3 −0 activerecord/test/fixtures/entrants/second
  226. +3 −0 activerecord/test/fixtures/entrants/third
  227. +5 −0 activerecord/test/fixtures/movie.rb
  228. +2 −0 activerecord/test/fixtures/movies/first
  229. +2 −0 activerecord/test/fixtures/movies/second
  230. +4 −0 activerecord/test/fixtures/project.rb
  231. +2 −0 activerecord/test/fixtures/projects/action_controller
  232. +2 −0 activerecord/test/fixtures/projects/active_record
  233. +21 −0 activerecord/test/fixtures/reply.rb
  234. +5 −0 activerecord/test/fixtures/subscriber.rb
  235. +2 −0 activerecord/test/fixtures/subscribers/first
  236. +2 −0 activerecord/test/fixtures/subscribers/second
  237. +20 −0 activerecord/test/fixtures/topic.rb
  238. +9 −0 activerecord/test/fixtures/topics/first
  239. +8 −0 activerecord/test/fixtures/topics/second
  240. +84 −0 activerecord/test/fixtures_test.rb
  241. +121 −0 activerecord/test/inflector_test.rb
  242. +125 −0 activerecord/test/inheritance_test.rb
  243. +110 −0 activerecord/test/lifecycle_test.rb
  244. +29 −0 activerecord/test/modules_test.rb
  245. +46 −0 activerecord/test/multiple_db_test.rb
  246. +59 −0 activerecord/test/pk_test.rb
  247. +78 −0 activerecord/test/reflection_test.rb
  248. +33 −0 activerecord/test/thread_safety_test.rb
  249. +110 −0 activerecord/test/transactions_test.rb
  250. +24 −0 activerecord/test/unconnected_test.rb
  251. +126 −0 activerecord/test/validations_test.rb
  252. +265 −0 railties/CHANGELOG
  253. +20 −0 railties/MIT-LICENSE
  254. +121 −0 railties/README
  255. +279 −0 railties/Rakefile
  256. +28 −0 railties/bin/rails
  257. +31 −0 railties/configs/apache.conf
  258. +20 −0 railties/configs/database.yml
  259. +7 −0 railties/dispatches/dispatch.fcgi
  260. +10 −0 railties/dispatches/dispatch.rb
  261. +49 −0 railties/dispatches/dispatch.servlet
  262. +1 −0 railties/dispatches/start_server
  263. +2 −0 railties/doc/README_FOR_APP
  264. +3 −0 railties/doc/apache_protection
  265. +94 −0 railties/doc/index.html
  266. +2 −0 railties/environments/development.rb
  267. +6 −0 railties/environments/production.rb
  268. +35 −0 railties/environments/shared.rb
  269. +23 −0 railties/environments/shared_for_gem.rb
  270. +2 −0 railties/environments/test.rb
  271. +104 −0 railties/fresh_rakefile
  272. +43 −0 railties/generators/new_controller.rb
  273. +34 −0 railties/generators/new_crud.rb
  274. +43 −0 railties/generators/new_mailer.rb
  275. +31 −0 railties/generators/new_model.rb
  276. +19 −0 railties/generators/templates/controller.erb
  277. +17 −0 railties/generators/templates/controller_test.erb
  278. +10 −0 railties/generators/templates/controller_view.rhtml
  279. +2 −0 railties/generators/templates/helper.erb
  280. +15 −0 railties/generators/templates/mailer.erb
  281. +3 −0 railties/generators/templates/mailer_action.rhtml
  282. +4 −0 railties/generators/templates/mailer_fixture.rhtml
  283. +37 −0 railties/generators/templates/mailer_test.erb
  284. +2 −0 railties/generators/templates/model.erb
  285. +11 −0 railties/generators/templates/model_test.erb
  286. +5 −0 railties/helpers/abstract_application.rb
  287. +3 −0 railties/helpers/application_helper.rb
  288. +16 −0 railties/helpers/test_helper.rb
  289. +6 −0 railties/html/404.html
  290. +6 −0 railties/html/500.html
  291. +1 −0 railties/html/index.html
  292. +71 −0 railties/lib/code_statistics.rb
  293. +55 −0 railties/lib/dispatcher.rb
  294. +112 −0 railties/lib/generator.rb
  295. +159 −0 railties/lib/webrick_server.rb
  296. +30 −0 railties/test/webrick_dispatcher_test.rb
@@ -0,0 +1,19 @@
+*0.4* (5)
+
+* Consolidated the server configuration options into Base#server_settings= and expanded that with controls for authentication and more [Marten]
+ NOTE: This is an API change that could potentially break your application if you used the old application form. Please do change!
+
+* Added Base#deliveries as an accessor for an array of emails sent out through that ActionMailer class when using the :test delivery option. [bitsweat]
+
+* Added Base#perform_deliveries= which can be set to false to turn off the actual delivery of the email through smtp or sendmail.
+ This is especially useful for functional testing that shouldn't send off real emails, but still trigger delivery_* methods.
+
+* Added option to specify delivery method with Base#delivery_method=. Default is :smtp and :sendmail is currently the only other option.
+ Sendmail is assumed to be present at "/usr/sbin/sendmail" if that option is used. [Kent Sibilev]
+
+* Dropped "include TMail" as it added to much baggage into the default namespace (like Version) [Chad Fowler]
+
+
+*0.3*
+
+* First release
@@ -0,0 +1,21 @@
+Copyright (c) 2004 David Heinemeier Hansson
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
@@ -0,0 +1,102 @@
+= Action Mailer -- Easy email delivery and testing
+
+Action Mailer is framework for designing email-service layers. These layers
+are used to consolidate code for sending out forgotten passwords, welcoming
+wishes on signup, invoices for billing, and any other use case that requires
+a written notification to either a person or another system.
+
+The framework works by setting up all the email details, except the body,
+in methods on the service layer. Subject, recipients, sender, and timestamp
+are all set up this way. An example of such a method:
+
+ def signed_up(recipient)
+ @recipients = recipient
+ @subject = "[Signed up] Welcome #{recipient}"
+ @from = "system@loudthinking.com"
+ @sent_on = Time.local(2004, 12, 12)
+
+ @body["recipient"] = recipient
+ end
+
+The body of the email is created by using an Action View template (regular
+ERb) that has the content of the @body hash available as instance variables.
+So the corresponding body template for the method above could look like this:
+
+ Hello there,
+
+ Mr. <%= @recipient %>
+
+And if the recipient was given as "david@loudthinking.com", the email
+generated would look like this:
+
+ Date: Sun, 12 Dec 2004 00:00:00 +0100
+ From: system@loudthinking.com
+ To: david@loudthinking.com
+ Subject: [Signed up] Welcome david@loudthinking.com
+
+ Hello there,
+
+ Mr. david@loudthinking.com
+
+You never actually call the instance methods like signed_up directly. Instead,
+you call class methods like deliver_* and create_* that are automatically
+created for each instance method. So if the signed_up method sat on
+ApplicationMailer, it would look like this:
+
+ ApplicationMailer.create_signed_up("david@loudthinking.com") # => tmail object for testing
+ ApplicationMailer.deliver_signed_up("david@loudthinking.com") # sends the email
+ ApplicationMailer.new.signed_up("david@loudthinking.com") # won't work!
+
+
+== Dependencies
+
+Action Mailer requires that the Action Pack is either available to be required immediately
+or is accessible as a GEM.
+
+
+== Bundled software
+
+* tmail 0.10.8 by Minero Aoki released under LGPL
+ Read more on http://i.loveruby.net/en/prog/tmail.html
+
+* Text::Format 0.63 by Austin Ziegler released under OpenSource
+ Read more on http://www.halostatue.ca/ruby/Text__Format.html
+
+
+== Download
+
+The latest version of Action Mailer can be found at
+
+* http://rubyforge.org/project/showfiles.php?group_id=361
+
+Documentation can be found at
+
+* http://actionmailer.rubyonrails.org
+
+
+== Installation
+
+You can install Action Mailer with the following command.
+
+ % [sudo] ruby install.rb
+
+from its distribution directory.
+
+
+== License
+
+Action Mailer is released under the MIT license.
+
+
+== Support
+
+The Action Mailer homepage is http://actionmailer.rubyonrails.org. You can find
+the Action Mailer RubyForge page at http://rubyforge.org/projects/actionmailer.
+And as Jim from Rake says:
+
+ Feel free to submit commits or feature requests. If you send a patch,
+ remember to update the corresponding unit tests. If fact, I prefer
+ new feature to be submitted in the form of new unit tests.
+
+For other information, feel free to ask on the ruby-talk mailing list (which
+is mirrored to comp.lang.ruby) or contact mailto:david@loudthinking.com.
@@ -0,0 +1,107 @@
+require 'rubygems'
+require 'rake'
+require 'rake/testtask'
+require 'rake/rdoctask'
+require 'rake/packagetask'
+require 'rake/gempackagetask'
+require 'rake/contrib/rubyforgepublisher'
+
+PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
+PKG_NAME = 'actionmailer'
+PKG_VERSION = '0.4.0' + PKG_BUILD
+PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
+
+desc "Default Task"
+task :default => [ :test ]
+
+# Run the unit tests
+
+Rake::TestTask.new { |t|
+ t.libs << "test"
+ t.pattern = 'test/*_test.rb'
+ t.verbose = true
+}
+
+
+# Genereate the RDoc documentation
+
+Rake::RDocTask.new { |rdoc|
+ rdoc.rdoc_dir = 'doc'
+ rdoc.title = "Action Mailer -- Easy email delivery and testing"
+ rdoc.options << '--line-numbers --inline-source --main README'
+ rdoc.rdoc_files.include('README', 'CHANGELOG')
+ rdoc.rdoc_files.include('lib/action_mailer.rb')
+ rdoc.rdoc_files.include('lib/action_mailer/*.rb')
+}
+
+
+# Create compressed packages
+
+
+spec = Gem::Specification.new do |s|
+ s.platform = Gem::Platform::RUBY
+ s.name = PKG_NAME
+ s.summary = "Service layer for easy email delivery and testing."
+ s.description = %q{Makes it trivial to test and deliver emails sent from a single service layer.}
+ s.version = PKG_VERSION
+
+ s.author = "David Heinemeier Hansson"
+ s.email = "david@loudthinking.com"
+ s.rubyforge_project = "actionmailer"
+ s.homepage = "http://actionmailer.rubyonrails.org"
+
+ s.add_dependency('actionpack', '>= 0.9.5')
+
+ s.has_rdoc = true
+ s.requirements << 'none'
+ s.require_path = 'lib'
+ s.autorequire = 'action_mailer'
+
+ s.files = [ "rakefile", "install.rb", "README", "CHANGELOG", "MIT-LICENSE" ]
+ s.files = s.files + Dir.glob( "lib/**/*" ).delete_if { |item| item.include?( "CVS" ) }
+ s.files = s.files + Dir.glob( "test/**/*" ).delete_if { |item| item.include?( "CVS" ) }
+end
+
+Rake::GemPackageTask.new(spec) do |p|
+ p.gem_spec = spec
+ p.need_tar = true
+ p.need_zip = true
+end
+
+
+# Publish beta gem
+desc "Publish the API documentation"
+task :pgem => [:package] do
+ Rake::SshFilePublisher.new("davidhh@one.textdrive.com", "domains/rubyonrails.org/gems/gems", "pkg", "#{PKG_FILE_NAME}.gem").upload
+end
+
+# Publish documentation
+desc "Publish the API documentation"
+task :pdoc => [:rdoc] do
+ Rake::SshDirPublisher.new("davidhh@one.textdrive.com", "domains/rubyonrails.org/am", "doc").upload
+end
+
+desc "Publish to RubyForge"
+task :rubyforge do
+ Rake::RubyForgePublisher.new('actionmailer', 'webster132').upload
+end
+
+
+desc "Count lines in the main rake file"
+task :lines do
+ lines = 0
+ codelines = 0
+ Dir.foreach("lib/action_mailer") { |file_name|
+ next unless file_name =~ /.*rb/
+
+ f = File.open("lib/action_mailer/" + file_name)
+
+ while line = f.gets
+ lines += 1
+ next if line =~ /^\s*$/
+ next if line =~ /^\s*#/
+ codelines += 1
+ end
+ }
+ puts "Lines #{lines}, LOC #{codelines}"
+end
@@ -0,0 +1,61 @@
+require 'rbconfig'
+require 'find'
+require 'ftools'
+
+include Config
+
+# this was adapted from rdoc's install.rb by ways of Log4r
+
+$sitedir = CONFIG["sitelibdir"]
+unless $sitedir
+ version = CONFIG["MAJOR"] + "." + CONFIG["MINOR"]
+ $libdir = File.join(CONFIG["libdir"], "ruby", version)
+ $sitedir = $:.find {|x| x =~ /site_ruby/ }
+ if !$sitedir
+ $sitedir = File.join($libdir, "site_ruby")
+ elsif $sitedir !~ Regexp.quote(version)
+ $sitedir = File.join($sitedir, version)
+ end
+end
+
+makedirs = %w{ action_mailer/vendor action_mailer/vendor/text action_mailer/vendor/tmail }
+makedirs.each {|f| File::makedirs(File.join($sitedir, *f.split(/\//)))}
+
+# deprecated files that should be removed
+# deprecated = %w{ }
+
+# files to install in library path
+files = %w-
+ action_mailer.rb
+ action_mailer/base.rb
+ action_mailer/mail_helper.rb
+ action_mailer/vendor/text/format.rb
+ action_mailer/vendor/tmail.rb
+ action_mailer/vendor/tmail/address.rb
+ action_mailer/vendor/tmail/base64.rb
+ action_mailer/vendor/tmail/config.rb
+ action_mailer/vendor/tmail/encode.rb
+ action_mailer/vendor/tmail/facade.rb
+ action_mailer/vendor/tmail/header.rb
+ action_mailer/vendor/tmail/info.rb
+ action_mailer/vendor/tmail/loader.rb
+ action_mailer/vendor/tmail/mail.rb
+ action_mailer/vendor/tmail/mailbox.rb
+ action_mailer/vendor/tmail/mbox.rb
+ action_mailer/vendor/tmail/net.rb
+ action_mailer/vendor/tmail/obsolete.rb
+ action_mailer/vendor/tmail/parser.rb
+ action_mailer/vendor/tmail/port.rb
+ action_mailer/vendor/tmail/scanner.rb
+ action_mailer/vendor/tmail/scanner_r.rb
+ action_mailer/vendor/tmail/stringio.rb
+ action_mailer/vendor/tmail/tmail.rb
+ action_mailer/vendor/tmail/utils.rb
+-
+
+# the acual gruntwork
+Dir.chdir("lib")
+# File::safe_unlink *deprecated.collect{|f| File.join($sitedir, f.split(/\//))}
+files.each {|f|
+ File::install(f, File.join($sitedir, *f.split(/\//)), 0644, true)
+}
@@ -0,0 +1,43 @@
+#--
+# Copyright (c) 2004 David Heinemeier Hansson
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#++
+
+begin
+ require 'action_controller'
+rescue LoadError
+ # Action Pack is not already available, try RubyGems
+ require 'rubygems'
+ require_gem 'actionpack', '>= 0.9.0'
+end
+
+$:.unshift(File.dirname(__FILE__) + "/action_mailer/vendor/")
+
+require 'action_mailer/base'
+require 'action_mailer/mail_helper'
+require 'action_mailer/vendor/tmail'
+require 'net/smtp'
+
+ActionView::Base.class_eval { include MailHelper }
+
+old_verbose, $VERBOSE = $VERBOSE, nil
+TMail::Encoder.const_set("MAX_LINE_LEN", 200)
+$VERBOSE = old_verbose
Oops, something went wrong.

17 comments on commit db045db

@paulmillr

This comment has been minimized.

Show comment
Hide comment

Epic!

@resure

This comment has been minimized.

Show comment
Hide comment
@resure

resure Jan 26, 2012

Contributor

Root commit)

Contributor

resure replied Jan 26, 2012

Root commit)

@courthead

This comment has been minimized.

Show comment
Hide comment
@courthead

courthead Mar 11, 2012

Very cool.

Very cool.

@chenyun

This comment has been minimized.

Show comment
Hide comment
@chenyun

chenyun Jan 30, 2013

Great job!

Great job!

@cburnette

This comment has been minimized.

Show comment
Hide comment
@cburnette

cburnette Mar 26, 2013

this commit looks like it might have legs. I think I'll follow it.

this commit looks like it might have legs. I think I'll follow it.

@msroot

This comment has been minimized.

Show comment
Hide comment

epic!

@dmitry

This comment has been minimized.

Show comment
Hide comment
@dmitry

dmitry Feb 26, 2014

Contributor

Anniversary of 10 years will be in a half year. Seems cool!

Contributor

dmitry replied Feb 26, 2014

Anniversary of 10 years will be in a half year. Seems cool!

@RoryDH

This comment has been minimized.

Show comment
Hide comment
@RoryDH

RoryDH May 6, 2014

Twitter, GitHub, Yammer, Scribd, Groupon, Shopify, Hulu, Basecamp...

Twitter, GitHub, Yammer, Scribd, Groupon, Shopify, Hulu, Basecamp...

@briandiaz

This comment has been minimized.

Show comment
Hide comment
@briandiaz

briandiaz May 9, 2014

This commit is one of the greatest in web development.

Thanks @dhh

This commit is one of the greatest in web development.

Thanks @dhh

@Dorian

This comment has been minimized.

Show comment
Hide comment
@Dorian

Dorian May 20, 2014

Contributor

So many interesting things in this commit, it's amazing how things changed and some things stayed.

Contributor

Dorian replied May 20, 2014

So many interesting things in this commit, it's amazing how things changed and some things stayed.

@cschell

This comment has been minimized.

Show comment
Hide comment
@cschell

cschell Nov 24, 2014

Happy Birthday!!!

Happy Birthday!!!

@simi

This comment has been minimized.

Show comment
Hide comment
@simi

simi Nov 24, 2014

Contributor

🎊 🎂

Contributor

simi replied Nov 24, 2014

🎊 🎂

@dmitry

This comment has been minimized.

Show comment
Hide comment
@dmitry

dmitry Nov 24, 2014

Contributor

@dhh should definitely comment this commit today!

Contributor

dmitry replied Nov 24, 2014

@dhh should definitely comment this commit today!

@dhh

This comment has been minimized.

Show comment
Hide comment
@dhh

dhh Nov 24, 2014

Member

Thanks for all the nice comments! We've all built an amazing community together. Actual development for Rails started in the summer of 2003, but back then I was on CVS, and we didn't carry that history over when we switched to SVN. Wish we did!

Member

dhh replied Nov 24, 2014

Thanks for all the nice comments! We've all built an amazing community together. Actual development for Rails started in the summer of 2003, but back then I was on CVS, and we didn't carry that history over when we switched to SVN. Wish we did!

@pedrolopez

This comment has been minimized.

Show comment
Hide comment
@pedrolopez

pedrolopez Mar 27, 2015

Still today this commit seems awesome. I started to follow early RoR development to get deep understanding of the evolution of the framework itself and it is fabulous. It's a shame the very beginning CVS commit history is lost. Thanks @dhh

Still today this commit seems awesome. I started to follow early RoR development to get deep understanding of the evolution of the framework itself and it is fabulous. It's a shame the very beginning CVS commit history is lost. Thanks @dhh

@steverob

This comment has been minimized.

Show comment
Hide comment

Wow 👍

@altuzar

This comment has been minimized.

Show comment
Hide comment
@altuzar

altuzar Jan 22, 2016

\o/ Feels like visiting Graceland \o/

\o/ Feels like visiting Graceland \o/

Please sign in to comment.