gemstreamer 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1662) hide show
  1. data/.document +5 -0
  2. data/.gitignore +5 -0
  3. data/LICENSE +20 -0
  4. data/README.rdoc +18 -0
  5. data/Rakefile +53 -0
  6. data/VERSION.yml +1 -0
  7. data/bin/gemstreamer +44 -0
  8. data/gemstreamer.gemspec +2782 -0
  9. data/lib/dependencies.rb +18 -0
  10. data/lib/gemstreamer.rb +6 -0
  11. data/lib/publisher.rb +26 -0
  12. data/spec/assets/testapp/.gitignore +8 -0
  13. data/spec/assets/testapp/Rakefile +10 -0
  14. data/spec/assets/testapp/app/controllers/application_controller.rb +57 -0
  15. data/spec/assets/testapp/app/controllers/user_sessions_controller.rb +34 -0
  16. data/spec/assets/testapp/app/controllers/users_controller.rb +42 -0
  17. data/spec/assets/testapp/app/helpers/application_helper.rb +3 -0
  18. data/spec/assets/testapp/app/helpers/user_sessions_helper.rb +2 -0
  19. data/spec/assets/testapp/app/helpers/users_helper.rb +2 -0
  20. data/spec/assets/testapp/app/models/.gitignore +0 -0
  21. data/spec/assets/testapp/app/models/permission.rb +13 -0
  22. data/spec/assets/testapp/app/models/settings.rb +4 -0
  23. data/spec/assets/testapp/app/models/user.rb +4 -0
  24. data/spec/assets/testapp/app/models/user_group.rb +15 -0
  25. data/spec/assets/testapp/app/models/user_session.rb +3 -0
  26. data/spec/assets/testapp/app/views/layouts/.gitignore +0 -0
  27. data/spec/assets/testapp/app/views/user_sessions/new.html.haml +18 -0
  28. data/spec/assets/testapp/app/views/users/_form.html.haml +14 -0
  29. data/spec/assets/testapp/app/views/users/edit.html.haml +7 -0
  30. data/spec/assets/testapp/app/views/users/new.html.haml +5 -0
  31. data/spec/assets/testapp/app/views/users/show.html.haml +22 -0
  32. data/spec/assets/testapp/config/application.yml +14 -0
  33. data/spec/assets/testapp/config/boot.rb +110 -0
  34. data/spec/assets/testapp/config/environment.rb +57 -0
  35. data/spec/assets/testapp/config/environments/cucumber.rb +26 -0
  36. data/spec/assets/testapp/config/environments/development.rb +17 -0
  37. data/spec/assets/testapp/config/environments/production.rb +28 -0
  38. data/spec/assets/testapp/config/environments/test.rb +36 -0
  39. data/spec/assets/testapp/config/initializers/backtrace_silencers.rb +7 -0
  40. data/spec/assets/testapp/config/initializers/formtastic.rb +47 -0
  41. data/spec/assets/testapp/config/initializers/inflections.rb +10 -0
  42. data/spec/assets/testapp/config/initializers/lockit.rb +1 -0
  43. data/spec/assets/testapp/config/initializers/mime_types.rb +5 -0
  44. data/spec/assets/testapp/config/initializers/new_rails_defaults.rb +21 -0
  45. data/spec/assets/testapp/config/initializers/session_store.rb +16 -0
  46. data/spec/assets/testapp/config/locales/en.yml +5 -0
  47. data/spec/assets/testapp/config/routes.rb +54 -0
  48. data/spec/assets/testapp/db/migrate/20091031093219_create_users.rb +28 -0
  49. data/spec/assets/testapp/db/migrate/20091031093230_create_user_groups.rb +19 -0
  50. data/spec/assets/testapp/db/migrate/20091031093231_create_permissions.rb +19 -0
  51. data/spec/assets/testapp/db/migrate/20091031093345_create_sessions.rb +16 -0
  52. data/spec/assets/testapp/db/seeds.rb +17 -0
  53. data/spec/assets/testapp/doc/README_FOR_APP +2 -0
  54. data/spec/assets/testapp/features/step_definitions/webrat_steps.rb +189 -0
  55. data/spec/assets/testapp/features/support/env.rb +49 -0
  56. data/spec/assets/testapp/features/support/paths.rb +27 -0
  57. data/spec/assets/testapp/features/support/version_check.rb +29 -0
  58. data/spec/assets/testapp/lib/lockdown/README +42 -0
  59. data/spec/assets/testapp/lib/lockdown/init.rb +149 -0
  60. data/spec/assets/testapp/lib/tasks/.gitignore +0 -0
  61. data/spec/assets/testapp/lib/tasks/cucumber.rake +44 -0
  62. data/spec/assets/testapp/lib/tasks/rcov.rake +26 -0
  63. data/spec/assets/testapp/lib/tasks/rspec.rake +182 -0
  64. data/spec/assets/testapp/log/.gitignore +0 -0
  65. data/spec/assets/testapp/public/404.html +30 -0
  66. data/spec/assets/testapp/public/422.html +30 -0
  67. data/spec/assets/testapp/public/500.html +30 -0
  68. data/spec/assets/testapp/public/favicon.ico +0 -0
  69. data/spec/assets/testapp/public/images/rails.png +0 -0
  70. data/spec/assets/testapp/public/javascripts/application.js +0 -0
  71. data/spec/assets/testapp/public/javascripts/jquery-ui.js +298 -0
  72. data/spec/assets/testapp/public/javascripts/jquery.js +19 -0
  73. data/spec/assets/testapp/public/robots.txt +5 -0
  74. data/spec/assets/testapp/public/stylesheets/.gitignore +0 -0
  75. data/spec/assets/testapp/public/stylesheets/formtastic.css +137 -0
  76. data/spec/assets/testapp/public/stylesheets/formtastic_changes.css +10 -0
  77. data/spec/assets/testapp/script/about +4 -0
  78. data/spec/assets/testapp/script/autospec +6 -0
  79. data/spec/assets/testapp/script/console +3 -0
  80. data/spec/assets/testapp/script/cucumber +17 -0
  81. data/spec/assets/testapp/script/dbconsole +3 -0
  82. data/spec/assets/testapp/script/destroy +3 -0
  83. data/spec/assets/testapp/script/generate +3 -0
  84. data/spec/assets/testapp/script/performance/benchmarker +3 -0
  85. data/spec/assets/testapp/script/performance/profiler +3 -0
  86. data/spec/assets/testapp/script/plugin +3 -0
  87. data/spec/assets/testapp/script/runner +3 -0
  88. data/spec/assets/testapp/script/server +3 -0
  89. data/spec/assets/testapp/script/spec +10 -0
  90. data/spec/assets/testapp/script/spec_server +9 -0
  91. data/spec/assets/testapp/spec/controllers/user_sessions_controller_spec.rb +10 -0
  92. data/spec/assets/testapp/spec/controllers/users_controller_spec.rb +10 -0
  93. data/spec/assets/testapp/spec/fixtures/users.yml +7 -0
  94. data/spec/assets/testapp/spec/helpers/user_sessions_helper_spec.rb +11 -0
  95. data/spec/assets/testapp/spec/helpers/users_helper_spec.rb +11 -0
  96. data/spec/assets/testapp/spec/models/user_spec.rb +13 -0
  97. data/spec/assets/testapp/spec/rcov.opts +4 -0
  98. data/spec/assets/testapp/spec/spec.opts +4 -0
  99. data/spec/assets/testapp/spec/spec_helper.rb +51 -0
  100. data/spec/assets/testapp/test/fixtures/.gitignore +0 -0
  101. data/spec/assets/testapp/test/functional/.gitignore +0 -0
  102. data/spec/assets/testapp/test/integration/.gitignore +0 -0
  103. data/spec/assets/testapp/test/performance/browsing_test.rb +9 -0
  104. data/spec/assets/testapp/test/test_helper.rb +38 -0
  105. data/spec/assets/testapp/test/unit/.gitignore +0 -0
  106. data/spec/assets/testapp/tmp/.gitignore +0 -0
  107. data/spec/assets/testapp/vendor/.gitignore +0 -0
  108. data/spec/assets/testapp/vendor/rails/actionmailer/CHANGELOG +366 -0
  109. data/spec/assets/testapp/vendor/rails/actionmailer/MIT-LICENSE +21 -0
  110. data/spec/assets/testapp/vendor/rails/actionmailer/README +149 -0
  111. data/spec/assets/testapp/vendor/rails/actionmailer/Rakefile +99 -0
  112. data/spec/assets/testapp/vendor/rails/actionmailer/install.rb +30 -0
  113. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/adv_attr_accessor.rb +30 -0
  114. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/base.rb +706 -0
  115. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/helpers.rb +113 -0
  116. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/mail_helper.rb +17 -0
  117. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/part.rb +107 -0
  118. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/part_container.rb +55 -0
  119. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/quoting.rb +61 -0
  120. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/test_case.rb +64 -0
  121. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/test_helper.rb +68 -0
  122. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/utils.rb +7 -0
  123. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/vendor/text-format-0.6.3/text/format.rb +1466 -0
  124. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/vendor/text_format.rb +10 -0
  125. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/address.rb +426 -0
  126. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/attachments.rb +46 -0
  127. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/base64.rb +46 -0
  128. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/compat.rb +41 -0
  129. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/config.rb +67 -0
  130. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/core_extensions.rb +63 -0
  131. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/encode.rb +581 -0
  132. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/header.rb +960 -0
  133. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/index.rb +9 -0
  134. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/interface.rb +1130 -0
  135. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/loader.rb +3 -0
  136. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/mail.rb +578 -0
  137. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/mailbox.rb +495 -0
  138. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/main.rb +6 -0
  139. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/mbox.rb +3 -0
  140. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/net.rb +248 -0
  141. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/obsolete.rb +132 -0
  142. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/parser.rb +1476 -0
  143. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/port.rb +379 -0
  144. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/quoting.rb +118 -0
  145. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/require_arch.rb +58 -0
  146. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/scanner.rb +49 -0
  147. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/scanner_r.rb +261 -0
  148. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/stringio.rb +280 -0
  149. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/utils.rb +337 -0
  150. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/version.rb +39 -0
  151. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail.rb +5 -0
  152. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail.rb +17 -0
  153. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer/version.rb +9 -0
  154. data/spec/assets/testapp/vendor/rails/actionmailer/lib/action_mailer.rb +62 -0
  155. data/spec/assets/testapp/vendor/rails/actionmailer/lib/actionmailer.rb +1 -0
  156. data/spec/assets/testapp/vendor/rails/actionmailer/test/abstract_unit.rb +62 -0
  157. data/spec/assets/testapp/vendor/rails/actionmailer/test/asset_host_test.rb +54 -0
  158. data/spec/assets/testapp/vendor/rails/actionmailer/test/delivery_method_test.rb +51 -0
  159. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/asset_host_mailer/email_with_asset.html.erb +1 -0
  160. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/auto_layout_mailer/hello.html.erb +1 -0
  161. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/auto_layout_mailer/multipart.text.html.erb +1 -0
  162. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/auto_layout_mailer/multipart.text.plain.erb +1 -0
  163. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/explicit_layout_mailer/logout.html.erb +1 -0
  164. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/explicit_layout_mailer/signup.html.erb +1 -0
  165. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/first_mailer/share.erb +1 -0
  166. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_example_helper.erb +1 -0
  167. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_helper.erb +1 -0
  168. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_helper_method.erb +1 -0
  169. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_mail_helper.erb +5 -0
  170. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/helpers/example_helper.rb +5 -0
  171. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/layouts/auto_layout_mailer.html.erb +1 -0
  172. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/layouts/auto_layout_mailer.text.erb +1 -0
  173. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/layouts/spam.html.erb +1 -0
  174. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/path.with.dots/funky_path_mailer/multipart_with_template_path_with_dots.erb +1 -0
  175. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/raw_email +14 -0
  176. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/raw_email10 +20 -0
  177. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/raw_email12 +32 -0
  178. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/raw_email13 +29 -0
  179. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/raw_email2 +114 -0
  180. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/raw_email3 +70 -0
  181. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/raw_email4 +59 -0
  182. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/raw_email5 +19 -0
  183. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/raw_email6 +20 -0
  184. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/raw_email7 +66 -0
  185. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/raw_email8 +47 -0
  186. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/raw_email9 +28 -0
  187. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/raw_email_quoted_with_0d0a +14 -0
  188. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/raw_email_with_invalid_characters_in_content_type +104 -0
  189. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/raw_email_with_nested_attachment +100 -0
  190. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/raw_email_with_partially_quoted_subject +14 -0
  191. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/second_mailer/share.erb +1 -0
  192. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/templates/signed_up.erb +3 -0
  193. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/test_mailer/_subtemplate.text.plain.erb +1 -0
  194. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/test_mailer/body_ivar.erb +2 -0
  195. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/test_mailer/custom_templating_extension.text.html.haml +6 -0
  196. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/test_mailer/custom_templating_extension.text.plain.haml +6 -0
  197. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.ignored.erb +1 -0
  198. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.html.erb +10 -0
  199. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.plain.erb +2 -0
  200. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.yaml.erb +1 -0
  201. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/test_mailer/included_subtemplate.text.plain.erb +1 -0
  202. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/test_mailer/rxml_template.builder +2 -0
  203. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/test_mailer/rxml_template.rxml +2 -0
  204. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/test_mailer/signed_up.html.erb +3 -0
  205. data/spec/assets/testapp/vendor/rails/actionmailer/test/fixtures/test_mailer/signed_up_with_url.erb +5 -0
  206. data/spec/assets/testapp/vendor/rails/actionmailer/test/mail_helper_test.rb +95 -0
  207. data/spec/assets/testapp/vendor/rails/actionmailer/test/mail_layout_test.rb +123 -0
  208. data/spec/assets/testapp/vendor/rails/actionmailer/test/mail_render_test.rb +116 -0
  209. data/spec/assets/testapp/vendor/rails/actionmailer/test/mail_service_test.rb +1079 -0
  210. data/spec/assets/testapp/vendor/rails/actionmailer/test/quoting_test.rb +99 -0
  211. data/spec/assets/testapp/vendor/rails/actionmailer/test/test_helper_test.rb +129 -0
  212. data/spec/assets/testapp/vendor/rails/actionmailer/test/tmail_test.rb +22 -0
  213. data/spec/assets/testapp/vendor/rails/actionmailer/test/url_test.rb +76 -0
  214. data/spec/assets/testapp/vendor/rails/actionpack/CHANGELOG +5172 -0
  215. data/spec/assets/testapp/vendor/rails/actionpack/MIT-LICENSE +21 -0
  216. data/spec/assets/testapp/vendor/rails/actionpack/README +409 -0
  217. data/spec/assets/testapp/vendor/rails/actionpack/RUNNING_UNIT_TESTS +24 -0
  218. data/spec/assets/testapp/vendor/rails/actionpack/Rakefile +160 -0
  219. data/spec/assets/testapp/vendor/rails/actionpack/install.rb +30 -0
  220. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/assertions/dom_assertions.rb +39 -0
  221. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/assertions/model_assertions.rb +21 -0
  222. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/assertions/response_assertions.rb +160 -0
  223. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/assertions/routing_assertions.rb +146 -0
  224. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/assertions/selector_assertions.rb +632 -0
  225. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/assertions/tag_assertions.rb +127 -0
  226. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/base.rb +1423 -0
  227. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/benchmarking.rb +107 -0
  228. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/caching/actions.rb +177 -0
  229. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/caching/fragments.rb +120 -0
  230. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/caching/pages.rb +152 -0
  231. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/caching/sweeper.rb +45 -0
  232. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/caching/sweeping.rb +55 -0
  233. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/caching.rb +70 -0
  234. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/cgi_ext/cookie.rb +112 -0
  235. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/cgi_ext/query_extension.rb +22 -0
  236. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/cgi_ext/stdinput.rb +24 -0
  237. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/cgi_ext.rb +15 -0
  238. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/cgi_process.rb +77 -0
  239. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/cookies.rb +94 -0
  240. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/dispatcher.rb +133 -0
  241. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/failsafe.rb +86 -0
  242. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/filters.rb +680 -0
  243. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/flash.rb +171 -0
  244. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/headers.rb +33 -0
  245. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/helpers.rb +225 -0
  246. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/http_authentication.rb +308 -0
  247. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/integration.rb +680 -0
  248. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/layout.rb +281 -0
  249. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/middleware_stack.rb +119 -0
  250. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/middlewares.rb +12 -0
  251. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/mime_responds.rb +193 -0
  252. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/mime_type.rb +212 -0
  253. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/mime_types.rb +21 -0
  254. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/params_parser.rb +77 -0
  255. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/performance_test.rb +15 -0
  256. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/polymorphic_routes.rb +204 -0
  257. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/record_identifier.rb +104 -0
  258. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/reloader.rb +54 -0
  259. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/request.rb +493 -0
  260. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/request_forgery_protection.rb +109 -0
  261. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/rescue.rb +183 -0
  262. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/resources.rb +682 -0
  263. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/response.rb +238 -0
  264. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/routing/builder.rb +197 -0
  265. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/routing/optimisations.rb +130 -0
  266. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/routing/recognition_optimisation.rb +167 -0
  267. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/routing/route.rb +265 -0
  268. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/routing/route_set.rb +502 -0
  269. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/routing/routing_ext.rb +49 -0
  270. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/routing/segments.rb +343 -0
  271. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/routing.rb +388 -0
  272. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/session/abstract_store.rb +181 -0
  273. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/session/cookie_store.rb +221 -0
  274. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/session/mem_cache_store.rb +51 -0
  275. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/session_management.rb +54 -0
  276. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/status_codes.rb +88 -0
  277. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/streaming.rb +181 -0
  278. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/templates/rescues/_request_and_response.erb +24 -0
  279. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/templates/rescues/_trace.erb +26 -0
  280. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/templates/rescues/diagnostics.erb +11 -0
  281. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/templates/rescues/layout.erb +29 -0
  282. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/templates/rescues/missing_template.erb +2 -0
  283. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/templates/rescues/routing_error.erb +10 -0
  284. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/templates/rescues/template_error.erb +21 -0
  285. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/templates/rescues/unknown_action.erb +2 -0
  286. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/test_case.rb +204 -0
  287. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/test_process.rb +580 -0
  288. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/translation.rb +13 -0
  289. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/uploaded_file.rb +44 -0
  290. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/url_rewriter.rb +216 -0
  291. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/document.rb +68 -0
  292. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/node.rb +537 -0
  293. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/sanitizer.rb +173 -0
  294. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/selector.rb +828 -0
  295. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/tokenizer.rb +105 -0
  296. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/version.rb +11 -0
  297. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner.rb +16 -0
  298. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller/verification.rb +130 -0
  299. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_controller.rb +111 -0
  300. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_pack/version.rb +9 -0
  301. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_pack.rb +24 -0
  302. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/base.rb +357 -0
  303. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/erb/util.rb +38 -0
  304. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/helpers/active_record_helper.rb +305 -0
  305. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/helpers/asset_tag_helper.rb +694 -0
  306. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/helpers/atom_feed_helper.rb +198 -0
  307. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/helpers/benchmark_helper.rb +54 -0
  308. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/helpers/cache_helper.rb +39 -0
  309. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/helpers/capture_helper.rb +136 -0
  310. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/helpers/date_helper.rb +976 -0
  311. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/helpers/debug_helper.rb +38 -0
  312. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/helpers/form_helper.rb +1053 -0
  313. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/helpers/form_options_helper.rb +600 -0
  314. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/helpers/form_tag_helper.rb +487 -0
  315. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/helpers/javascript_helper.rb +208 -0
  316. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/helpers/number_helper.rb +303 -0
  317. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/helpers/prototype_helper.rb +1305 -0
  318. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/helpers/record_identification_helper.rb +20 -0
  319. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/helpers/record_tag_helper.rb +58 -0
  320. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/helpers/sanitize_helper.rb +251 -0
  321. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/helpers/scriptaculous_helper.rb +226 -0
  322. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/helpers/tag_helper.rb +150 -0
  323. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/helpers/text_helper.rb +587 -0
  324. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/helpers/translation_helper.rb +39 -0
  325. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/helpers/url_helper.rb +638 -0
  326. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/helpers.rb +57 -0
  327. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/inline_template.rb +19 -0
  328. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/locale/en.yml +114 -0
  329. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/partials.rb +240 -0
  330. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/paths.rb +69 -0
  331. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/reloadable_template.rb +117 -0
  332. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/renderable.rb +95 -0
  333. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/renderable_partial.rb +47 -0
  334. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/template.rb +246 -0
  335. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/template_error.rb +99 -0
  336. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/template_handler.rb +34 -0
  337. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/template_handlers/builder.rb +17 -0
  338. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/template_handlers/erb.rb +22 -0
  339. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/template_handlers/rjs.rb +13 -0
  340. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/template_handlers.rb +48 -0
  341. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view/test_case.rb +87 -0
  342. data/spec/assets/testapp/vendor/rails/actionpack/lib/action_view.rb +58 -0
  343. data/spec/assets/testapp/vendor/rails/actionpack/lib/actionpack.rb +1 -0
  344. data/spec/assets/testapp/vendor/rails/actionpack/test/abstract_unit.rb +61 -0
  345. data/spec/assets/testapp/vendor/rails/actionpack/test/active_record_unit.rb +104 -0
  346. data/spec/assets/testapp/vendor/rails/actionpack/test/activerecord/active_record_store_test.rb +174 -0
  347. data/spec/assets/testapp/vendor/rails/actionpack/test/activerecord/render_partial_with_record_identification_test.rb +188 -0
  348. data/spec/assets/testapp/vendor/rails/actionpack/test/adv_attr_test.rb +20 -0
  349. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/action_pack_assertions_test.rb +543 -0
  350. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/addresses_render_test.rb +37 -0
  351. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/assert_select_test.rb +734 -0
  352. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/base_test.rb +217 -0
  353. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/benchmark_test.rb +32 -0
  354. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/caching_test.rb +729 -0
  355. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/capture_test.rb +66 -0
  356. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/content_type_test.rb +168 -0
  357. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/controller_fixtures/app/controllers/admin/user_controller.rb +0 -0
  358. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/controller_fixtures/app/controllers/user_controller.rb +0 -0
  359. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/controller_fixtures/vendor/plugins/bad_plugin/lib/plugin_controller.rb +0 -0
  360. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/cookie_test.rb +127 -0
  361. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/deprecation/deprecated_base_methods_test.rb +32 -0
  362. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/dispatcher_test.rb +144 -0
  363. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/failsafe_test.rb +60 -0
  364. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/fake_controllers.rb +33 -0
  365. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/fake_models.rb +19 -0
  366. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/filter_params_test.rb +51 -0
  367. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/filters_test.rb +885 -0
  368. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/flash_test.rb +147 -0
  369. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/header_test.rb +14 -0
  370. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/helper_test.rb +224 -0
  371. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/html-scanner/cdata_node_test.rb +15 -0
  372. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/html-scanner/document_test.rb +148 -0
  373. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/html-scanner/node_test.rb +89 -0
  374. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/html-scanner/sanitizer_test.rb +273 -0
  375. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/html-scanner/tag_node_test.rb +238 -0
  376. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/html-scanner/text_node_test.rb +50 -0
  377. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/html-scanner/tokenizer_test.rb +131 -0
  378. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/http_basic_authentication_test.rb +113 -0
  379. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/http_digest_authentication_test.rb +232 -0
  380. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/integration_test.rb +445 -0
  381. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/layout_test.rb +204 -0
  382. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/logging_test.rb +46 -0
  383. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/middleware_stack_test.rb +90 -0
  384. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/mime_responds_test.rb +536 -0
  385. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/mime_type_test.rb +93 -0
  386. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/polymorphic_routes_test.rb +293 -0
  387. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/rack_test.rb +311 -0
  388. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/record_identifier_test.rb +139 -0
  389. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/redirect_test.rb +285 -0
  390. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/reloader_test.rb +124 -0
  391. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/render_test.rb +1762 -0
  392. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/request/json_params_parsing_test.rb +65 -0
  393. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/request/multipart_params_parsing_test.rb +162 -0
  394. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/request/query_string_parsing_test.rb +120 -0
  395. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/request/test_request_test.rb +35 -0
  396. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/request/url_encoded_params_parsing_test.rb +146 -0
  397. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/request/xml_params_parsing_test.rb +103 -0
  398. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/request_forgery_protection_test.rb +247 -0
  399. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/request_test.rb +395 -0
  400. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/rescue_test.rb +536 -0
  401. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/resources_test.rb +1393 -0
  402. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/routing_test.rb +2583 -0
  403. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/selector_test.rb +628 -0
  404. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/send_file_test.rb +171 -0
  405. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/session/cookie_store_test.rb +216 -0
  406. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/session/mem_cache_store_test.rb +127 -0
  407. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/session/test_session_test.rb +58 -0
  408. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/test_test.rb +700 -0
  409. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/translation_test.rb +26 -0
  410. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/url_rewriter_test.rb +385 -0
  411. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/verification_test.rb +270 -0
  412. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/view_paths_test.rb +141 -0
  413. data/spec/assets/testapp/vendor/rails/actionpack/test/controller/webservice_test.rb +260 -0
  414. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/_top_level_partial.html.erb +1 -0
  415. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/_top_level_partial_only.erb +1 -0
  416. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/addresses/list.erb +1 -0
  417. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/alternate_helpers/foo_helper.rb +3 -0
  418. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/bad_customers/_bad_customer.html.erb +1 -0
  419. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/companies.yml +24 -0
  420. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/company.rb +10 -0
  421. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/content_type/render_default_content_types_for_respond_to.rhtml +1 -0
  422. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/content_type/render_default_for_rhtml.rhtml +1 -0
  423. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/content_type/render_default_for_rjs.rjs +1 -0
  424. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/content_type/render_default_for_rxml.rxml +1 -0
  425. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/customers/_customer.html.erb +1 -0
  426. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/db_definitions/sqlite.sql +49 -0
  427. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/developer.rb +9 -0
  428. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/developers/_developer.erb +1 -0
  429. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/developers.yml +21 -0
  430. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/developers_projects.yml +13 -0
  431. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/failsafe/500.html +1 -0
  432. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/fun/games/_game.erb +1 -0
  433. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/fun/games/hello_world.erb +1 -0
  434. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/fun/serious/games/_game.erb +1 -0
  435. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/functional_caching/_partial.erb +3 -0
  436. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/functional_caching/formatted_fragment_cached.html.erb +3 -0
  437. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/functional_caching/formatted_fragment_cached.js.rjs +6 -0
  438. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/functional_caching/formatted_fragment_cached.xml.builder +5 -0
  439. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/functional_caching/fragment_cached.html.erb +2 -0
  440. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/functional_caching/html_fragment_cached_with_partial.html.erb +1 -0
  441. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/functional_caching/inline_fragment_cached.html.erb +2 -0
  442. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/functional_caching/js_fragment_cached_with_partial.js.rjs +1 -0
  443. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/good_customers/_good_customer.html.erb +1 -0
  444. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/helpers/abc_helper.rb +5 -0
  445. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/helpers/fun/games_helper.rb +3 -0
  446. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/helpers/fun/pdf_helper.rb +3 -0
  447. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/layout_tests/alt/hello.rhtml +1 -0
  448. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/layout_tests/alt/layouts/alt.rhtml +0 -0
  449. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/controller_name_space/nested.rhtml +1 -0
  450. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/item.rhtml +1 -0
  451. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/layout_test.rhtml +1 -0
  452. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/multiple_extensions.html.erb +1 -0
  453. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/third_party_template_library.mab +1 -0
  454. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/layout_tests/views/hello.rhtml +1 -0
  455. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/layouts/_column.html.erb +2 -0
  456. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/layouts/block_with_layout.erb +3 -0
  457. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/layouts/builder.builder +3 -0
  458. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/layouts/default_html.html.erb +1 -0
  459. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/layouts/partial_with_layout.erb +3 -0
  460. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/layouts/standard.erb +1 -0
  461. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/layouts/talk_from_action.erb +2 -0
  462. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/layouts/xhr.html.erb +2 -0
  463. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/layouts/yield.erb +2 -0
  464. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/mascot.rb +3 -0
  465. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/mascots/_mascot.html.erb +1 -0
  466. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/mascots.yml +4 -0
  467. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/multipart/binary_file +0 -0
  468. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/multipart/boundary_problem_file +10 -0
  469. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/multipart/bracketed_param +5 -0
  470. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/multipart/empty +10 -0
  471. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/multipart/hello.txt +1 -0
  472. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/multipart/large_text_file +10 -0
  473. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/multipart/mixed_files +0 -0
  474. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/multipart/mona_lisa.jpg +0 -0
  475. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/multipart/none +9 -0
  476. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/multipart/single_parameter +5 -0
  477. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/multipart/text_file +10 -0
  478. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/override/test/hello_world.erb +1 -0
  479. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/override2/layouts/test/sub.erb +1 -0
  480. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/post_test/layouts/post.html.erb +1 -0
  481. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/post_test/layouts/super_post.iphone.erb +1 -0
  482. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/post_test/post/index.html.erb +1 -0
  483. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/post_test/post/index.iphone.erb +1 -0
  484. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/post_test/super_post/index.html.erb +1 -0
  485. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/post_test/super_post/index.iphone.erb +1 -0
  486. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/project.rb +3 -0
  487. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/projects/_project.erb +1 -0
  488. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/projects.yml +7 -0
  489. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/public/404.html +1 -0
  490. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/public/500.da.html +1 -0
  491. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/public/500.html +1 -0
  492. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/public/absolute/test.css +23 -0
  493. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/public/absolute/test.js +63 -0
  494. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/public/images/rails.png +0 -0
  495. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/public/javascripts/application.js +1 -0
  496. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/public/javascripts/bank.js +1 -0
  497. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/public/javascripts/controls.js +1 -0
  498. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/public/javascripts/dragdrop.js +1 -0
  499. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/public/javascripts/effects.js +1 -0
  500. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/public/javascripts/prototype.js +1 -0
  501. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/public/javascripts/robber.js +1 -0
  502. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/public/javascripts/subdir/subdir.js +1 -0
  503. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/public/javascripts/version.1.0.js +1 -0
  504. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/public/stylesheets/bank.css +1 -0
  505. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/public/stylesheets/robber.css +1 -0
  506. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/public/stylesheets/subdir/subdir.css +1 -0
  507. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/public/stylesheets/version.1.0.css +1 -0
  508. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/quiz/questions/_question.html.erb +1 -0
  509. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/replies/_reply.erb +1 -0
  510. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/replies.yml +15 -0
  511. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/reply.rb +7 -0
  512. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/respond_to/all_types_with_layout.html.erb +1 -0
  513. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/respond_to/all_types_with_layout.js.rjs +1 -0
  514. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/respond_to/custom_constant_handling_without_block.mobile.erb +1 -0
  515. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/respond_to/iphone_with_html_response_type.html.erb +1 -0
  516. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/respond_to/iphone_with_html_response_type.iphone.erb +1 -0
  517. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/respond_to/layouts/missing.html.erb +1 -0
  518. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/respond_to/layouts/standard.html.erb +1 -0
  519. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/respond_to/layouts/standard.iphone.erb +1 -0
  520. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults.html.erb +1 -0
  521. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults.js.rjs +1 -0
  522. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults.xml.builder +1 -0
  523. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults_with_type_list.html.erb +1 -0
  524. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults_with_type_list.js.rjs +1 -0
  525. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults_with_type_list.xml.builder +1 -0
  526. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/scope/test/modgreet.erb +1 -0
  527. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/shared.html.erb +1 -0
  528. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/symlink_parent/symlinked_layout.erb +5 -0
  529. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/_counter.html.erb +1 -0
  530. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/_customer.erb +1 -0
  531. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/_customer_counter.erb +1 -0
  532. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/_customer_greeting.erb +1 -0
  533. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/_customer_with_var.erb +1 -0
  534. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/_form.erb +1 -0
  535. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/_hash_greeting.erb +1 -0
  536. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/_hash_object.erb +2 -0
  537. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/_hello.builder +1 -0
  538. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/_labelling_form.erb +1 -0
  539. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/_layout_for_block_with_args.html.erb +3 -0
  540. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/_layout_for_partial.html.erb +3 -0
  541. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/_local_inspector.html.erb +1 -0
  542. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/_one.html.erb +1 -0
  543. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/_partial.erb +1 -0
  544. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/_partial.html.erb +1 -0
  545. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/_partial.js.erb +1 -0
  546. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/_partial_for_use_in_layout.html.erb +1 -0
  547. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/_partial_only.erb +1 -0
  548. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/_partial_with_only_html_version.html.erb +1 -0
  549. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/_person.erb +2 -0
  550. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/_raise.html.erb +1 -0
  551. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/_two.html.erb +1 -0
  552. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/action_talk_to_layout.erb +2 -0
  553. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/calling_partial_with_layout.html.erb +1 -0
  554. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/capturing.erb +4 -0
  555. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/content_for.erb +2 -0
  556. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/content_for_concatenated.erb +3 -0
  557. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/content_for_with_parameter.erb +2 -0
  558. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/delete_with_js.rjs +2 -0
  559. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/dont_pick_me +1 -0
  560. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/dot.directory/render_file_with_ivar.erb +1 -0
  561. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/enum_rjs_test.rjs +6 -0
  562. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/formatted_html_erb.html.erb +1 -0
  563. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/formatted_xml_erb.builder +1 -0
  564. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/formatted_xml_erb.html.erb +1 -0
  565. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/formatted_xml_erb.xml.erb +1 -0
  566. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/greeting.erb +1 -0
  567. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/greeting.js.rjs +1 -0
  568. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/hello.builder +4 -0
  569. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/hello_world.da.html.erb +1 -0
  570. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/hello_world.erb +1 -0
  571. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/hello_world.pt-BR.html.erb +1 -0
  572. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/hello_world_container.builder +3 -0
  573. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/hello_world_from_rxml.builder +4 -0
  574. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/hello_world_with_layout_false.erb +1 -0
  575. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/hello_xml_world.builder +11 -0
  576. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/hyphen-ated.erb +1 -0
  577. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/implicit_content_type.atom.builder +2 -0
  578. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/list.erb +1 -0
  579. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/nested_layout.erb +3 -0
  580. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/non_erb_block_content_for.builder +4 -0
  581. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/potential_conflicts.erb +4 -0
  582. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/render_explicit_html_template.js.rjs +1 -0
  583. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/render_file_from_template.html.erb +1 -0
  584. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/render_file_with_ivar.erb +1 -0
  585. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/render_file_with_locals.erb +1 -0
  586. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/render_implicit_html_template.js.rjs +1 -0
  587. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/render_implicit_html_template_from_xhr_request.da.html.erb +1 -0
  588. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/render_implicit_html_template_from_xhr_request.html.erb +1 -0
  589. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/render_implicit_js_template_without_layout.js.erb +1 -0
  590. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/render_to_string_test.erb +1 -0
  591. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/sub_template_raise.html.erb +1 -0
  592. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/template.erb +1 -0
  593. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/update_element_with_capture.erb +9 -0
  594. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/using_layout_around_block.html.erb +1 -0
  595. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/using_layout_around_block_with_args.html.erb +1 -0
  596. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/test/utf8.html.erb +2 -0
  597. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/topic.rb +3 -0
  598. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/topics/_topic.html.erb +1 -0
  599. data/spec/assets/testapp/vendor/rails/actionpack/test/fixtures/topics.yml +22 -0
  600. data/spec/assets/testapp/vendor/rails/actionpack/test/template/active_record_helper_i18n_test.rb +44 -0
  601. data/spec/assets/testapp/vendor/rails/actionpack/test/template/active_record_helper_test.rb +302 -0
  602. data/spec/assets/testapp/vendor/rails/actionpack/test/template/asset_tag_helper_test.rb +759 -0
  603. data/spec/assets/testapp/vendor/rails/actionpack/test/template/atom_feed_helper_test.rb +315 -0
  604. data/spec/assets/testapp/vendor/rails/actionpack/test/template/benchmark_helper_test.rb +86 -0
  605. data/spec/assets/testapp/vendor/rails/actionpack/test/template/compiled_templates_test.rb +203 -0
  606. data/spec/assets/testapp/vendor/rails/actionpack/test/template/date_helper_i18n_test.rb +120 -0
  607. data/spec/assets/testapp/vendor/rails/actionpack/test/template/date_helper_test.rb +2469 -0
  608. data/spec/assets/testapp/vendor/rails/actionpack/test/template/erb_util_test.rb +24 -0
  609. data/spec/assets/testapp/vendor/rails/actionpack/test/template/form_helper_test.rb +1313 -0
  610. data/spec/assets/testapp/vendor/rails/actionpack/test/template/form_options_helper_i18n_test.rb +27 -0
  611. data/spec/assets/testapp/vendor/rails/actionpack/test/template/form_options_helper_test.rb +807 -0
  612. data/spec/assets/testapp/vendor/rails/actionpack/test/template/form_tag_helper_test.rb +344 -0
  613. data/spec/assets/testapp/vendor/rails/actionpack/test/template/javascript_helper_test.rb +106 -0
  614. data/spec/assets/testapp/vendor/rails/actionpack/test/template/number_helper_i18n_test.rb +69 -0
  615. data/spec/assets/testapp/vendor/rails/actionpack/test/template/number_helper_test.rb +128 -0
  616. data/spec/assets/testapp/vendor/rails/actionpack/test/template/prototype_helper_test.rb +639 -0
  617. data/spec/assets/testapp/vendor/rails/actionpack/test/template/record_tag_helper_test.rb +58 -0
  618. data/spec/assets/testapp/vendor/rails/actionpack/test/template/render_test.rb +290 -0
  619. data/spec/assets/testapp/vendor/rails/actionpack/test/template/sanitize_helper_test.rb +48 -0
  620. data/spec/assets/testapp/vendor/rails/actionpack/test/template/scriptaculous_helper_test.rb +90 -0
  621. data/spec/assets/testapp/vendor/rails/actionpack/test/template/tag_helper_test.rb +97 -0
  622. data/spec/assets/testapp/vendor/rails/actionpack/test/template/template_test.rb +32 -0
  623. data/spec/assets/testapp/vendor/rails/actionpack/test/template/test_test.rb +54 -0
  624. data/spec/assets/testapp/vendor/rails/actionpack/test/template/text_helper_test.rb +543 -0
  625. data/spec/assets/testapp/vendor/rails/actionpack/test/template/translation_helper_test.rb +32 -0
  626. data/spec/assets/testapp/vendor/rails/actionpack/test/template/url_helper_test.rb +622 -0
  627. data/spec/assets/testapp/vendor/rails/actionpack/test/testing_sandbox.rb +15 -0
  628. data/spec/assets/testapp/vendor/rails/actionpack/test/view/test_case_test.rb +8 -0
  629. data/spec/assets/testapp/vendor/rails/activerecord/CHANGELOG +5850 -0
  630. data/spec/assets/testapp/vendor/rails/activerecord/README +351 -0
  631. data/spec/assets/testapp/vendor/rails/activerecord/RUNNING_UNIT_TESTS +36 -0
  632. data/spec/assets/testapp/vendor/rails/activerecord/Rakefile +270 -0
  633. data/spec/assets/testapp/vendor/rails/activerecord/examples/associations.png +0 -0
  634. data/spec/assets/testapp/vendor/rails/activerecord/examples/performance.rb +162 -0
  635. data/spec/assets/testapp/vendor/rails/activerecord/install.rb +30 -0
  636. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/aggregations.rb +261 -0
  637. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/association_preload.rb +389 -0
  638. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb +475 -0
  639. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb +279 -0
  640. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/associations/belongs_to_association.rb +76 -0
  641. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/associations/belongs_to_polymorphic_association.rb +53 -0
  642. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb +143 -0
  643. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/associations/has_many_association.rb +122 -0
  644. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/associations/has_many_through_association.rb +266 -0
  645. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/associations/has_one_association.rb +124 -0
  646. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/associations/has_one_through_association.rb +37 -0
  647. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/associations.rb +2238 -0
  648. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/attribute_methods.rb +388 -0
  649. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/autosave_association.rb +355 -0
  650. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/base.rb +3158 -0
  651. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/batches.rb +81 -0
  652. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/calculations.rb +311 -0
  653. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/callbacks.rb +360 -0
  654. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb +371 -0
  655. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb +139 -0
  656. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb +289 -0
  657. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb +94 -0
  658. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb +69 -0
  659. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb +722 -0
  660. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb +434 -0
  661. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb +241 -0
  662. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb +626 -0
  663. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb +1113 -0
  664. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb +34 -0
  665. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb +453 -0
  666. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/dirty.rb +183 -0
  667. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/dynamic_finder_match.rb +41 -0
  668. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/dynamic_scope_match.rb +25 -0
  669. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/fixtures.rb +996 -0
  670. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/i18n_interpolation_deprecation.rb +26 -0
  671. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/locale/en.yml +58 -0
  672. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/locking/optimistic.rb +181 -0
  673. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/locking/pessimistic.rb +77 -0
  674. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/migration.rb +566 -0
  675. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/named_scope.rb +192 -0
  676. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/nested_attributes.rb +329 -0
  677. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/observer.rb +197 -0
  678. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/query_cache.rb +33 -0
  679. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/reflection.rb +320 -0
  680. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/schema.rb +51 -0
  681. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/schema_dumper.rb +182 -0
  682. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/serialization.rb +101 -0
  683. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/serializers/json_serializer.rb +91 -0
  684. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/serializers/xml_serializer.rb +357 -0
  685. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/session_store.rb +326 -0
  686. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/test_case.rb +66 -0
  687. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/timestamp.rb +71 -0
  688. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/transactions.rb +235 -0
  689. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/validations.rb +1135 -0
  690. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record/version.rb +9 -0
  691. data/spec/assets/testapp/vendor/rails/activerecord/lib/active_record.rb +84 -0
  692. data/spec/assets/testapp/vendor/rails/activerecord/lib/activerecord.rb +1 -0
  693. data/spec/assets/testapp/vendor/rails/activerecord/test/assets/example.log +1 -0
  694. data/spec/assets/testapp/vendor/rails/activerecord/test/assets/flowers.jpg +0 -0
  695. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/aaa_create_tables_test.rb +24 -0
  696. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/active_schema_test_mysql.rb +100 -0
  697. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/active_schema_test_postgresql.rb +24 -0
  698. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/adapter_test.rb +145 -0
  699. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/aggregations_test.rb +167 -0
  700. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/ar_schema_test.rb +32 -0
  701. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/associations/belongs_to_associations_test.rb +425 -0
  702. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/associations/callbacks_test.rb +161 -0
  703. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/associations/cascaded_eager_loading_test.rb +131 -0
  704. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/associations/eager_load_includes_full_sti_class_test.rb +36 -0
  705. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/associations/eager_load_nested_include_test.rb +130 -0
  706. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/associations/eager_singularization_test.rb +145 -0
  707. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/associations/eager_test.rb +834 -0
  708. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/associations/extension_test.rb +62 -0
  709. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/associations/habtm_join_table_test.rb +56 -0
  710. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/associations/has_and_belongs_to_many_associations_test.rb +822 -0
  711. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/associations/has_many_associations_test.rb +1122 -0
  712. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/associations/has_many_through_associations_test.rb +324 -0
  713. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/associations/has_one_associations_test.rb +309 -0
  714. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/associations/has_one_through_associations_test.rb +209 -0
  715. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/associations/inner_join_association_test.rb +93 -0
  716. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/associations/join_model_test.rb +712 -0
  717. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/associations_test.rb +262 -0
  718. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/attribute_methods_test.rb +305 -0
  719. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/autosave_association_test.rb +923 -0
  720. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/base_test.rb +2152 -0
  721. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/batches_test.rb +61 -0
  722. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/binary_test.rb +30 -0
  723. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/calculations_test.rb +348 -0
  724. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/callbacks_observers_test.rb +38 -0
  725. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/callbacks_test.rb +438 -0
  726. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/class_inheritable_attributes_test.rb +32 -0
  727. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/column_alias_test.rb +17 -0
  728. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/column_definition_test.rb +70 -0
  729. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/connection_pool_test.rb +25 -0
  730. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/connection_test_firebird.rb +8 -0
  731. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/connection_test_mysql.rb +56 -0
  732. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/copy_table_test_sqlite.rb +80 -0
  733. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/database_statements_test.rb +12 -0
  734. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/datatype_test_postgresql.rb +204 -0
  735. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/date_time_test.rb +37 -0
  736. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/default_test_firebird.rb +16 -0
  737. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/defaults_test.rb +111 -0
  738. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/deprecated_finder_test.rb +30 -0
  739. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/dirty_test.rb +316 -0
  740. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/finder_respond_to_test.rb +76 -0
  741. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/finder_test.rb +1054 -0
  742. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/fixtures_test.rb +656 -0
  743. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/helper.rb +68 -0
  744. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/i18n_test.rb +46 -0
  745. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/inheritance_test.rb +262 -0
  746. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/invalid_date_test.rb +24 -0
  747. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/json_serialization_test.rb +205 -0
  748. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/lifecycle_test.rb +193 -0
  749. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/locking_test.rb +322 -0
  750. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/method_scoping_test.rb +704 -0
  751. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/migration_test.rb +1523 -0
  752. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/migration_test_firebird.rb +124 -0
  753. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/mixin_test.rb +96 -0
  754. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/modules_test.rb +81 -0
  755. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/multiple_db_test.rb +85 -0
  756. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/named_scope_test.rb +361 -0
  757. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/nested_attributes_test.rb +509 -0
  758. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/pk_test.rb +119 -0
  759. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/pooled_connections_test.rb +103 -0
  760. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/query_cache_test.rb +123 -0
  761. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/readonly_test.rb +107 -0
  762. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/reflection_test.rb +194 -0
  763. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/reload_models_test.rb +22 -0
  764. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/repair_helper.rb +50 -0
  765. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/reserved_word_test_mysql.rb +176 -0
  766. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/sanitize_test.rb +25 -0
  767. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/schema_authorization_test_postgresql.rb +75 -0
  768. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/schema_dumper_test.rb +211 -0
  769. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/schema_test_postgresql.rb +178 -0
  770. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/serialization_test.rb +47 -0
  771. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/synonym_test_oracle.rb +17 -0
  772. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/timestamp_test.rb +75 -0
  773. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/transactions_test.rb +522 -0
  774. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/unconnected_test.rb +32 -0
  775. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/validations_i18n_test.rb +947 -0
  776. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/validations_test.rb +1612 -0
  777. data/spec/assets/testapp/vendor/rails/activerecord/test/cases/xml_serialization_test.rb +240 -0
  778. data/spec/assets/testapp/vendor/rails/activerecord/test/config.rb +5 -0
  779. data/spec/assets/testapp/vendor/rails/activerecord/test/connections/jdbc_jdbcderby/connection.rb +18 -0
  780. data/spec/assets/testapp/vendor/rails/activerecord/test/connections/jdbc_jdbch2/connection.rb +18 -0
  781. data/spec/assets/testapp/vendor/rails/activerecord/test/connections/jdbc_jdbchsqldb/connection.rb +18 -0
  782. data/spec/assets/testapp/vendor/rails/activerecord/test/connections/jdbc_jdbcmysql/connection.rb +26 -0
  783. data/spec/assets/testapp/vendor/rails/activerecord/test/connections/jdbc_jdbcpostgresql/connection.rb +26 -0
  784. data/spec/assets/testapp/vendor/rails/activerecord/test/connections/jdbc_jdbcsqlite3/connection.rb +25 -0
  785. data/spec/assets/testapp/vendor/rails/activerecord/test/connections/native_db2/connection.rb +25 -0
  786. data/spec/assets/testapp/vendor/rails/activerecord/test/connections/native_firebird/connection.rb +26 -0
  787. data/spec/assets/testapp/vendor/rails/activerecord/test/connections/native_frontbase/connection.rb +27 -0
  788. data/spec/assets/testapp/vendor/rails/activerecord/test/connections/native_mysql/connection.rb +25 -0
  789. data/spec/assets/testapp/vendor/rails/activerecord/test/connections/native_openbase/connection.rb +21 -0
  790. data/spec/assets/testapp/vendor/rails/activerecord/test/connections/native_oracle/connection.rb +27 -0
  791. data/spec/assets/testapp/vendor/rails/activerecord/test/connections/native_postgresql/connection.rb +21 -0
  792. data/spec/assets/testapp/vendor/rails/activerecord/test/connections/native_sqlite/connection.rb +25 -0
  793. data/spec/assets/testapp/vendor/rails/activerecord/test/connections/native_sqlite3/connection.rb +25 -0
  794. data/spec/assets/testapp/vendor/rails/activerecord/test/connections/native_sqlite3/in_memory_connection.rb +18 -0
  795. data/spec/assets/testapp/vendor/rails/activerecord/test/connections/native_sybase/connection.rb +23 -0
  796. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/accounts.yml +28 -0
  797. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/all/developers.yml +0 -0
  798. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/all/people.csv +0 -0
  799. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/all/tasks.yml +0 -0
  800. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/author_addresses.yml +5 -0
  801. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/author_favorites.yml +4 -0
  802. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/authors.yml +9 -0
  803. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/binaries.yml +132 -0
  804. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/books.yml +7 -0
  805. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/categories/special_categories.yml +9 -0
  806. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/categories/subsubdir/arbitrary_filename.yml +4 -0
  807. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/categories.yml +14 -0
  808. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/categories_ordered.yml +7 -0
  809. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/categories_posts.yml +23 -0
  810. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/categorizations.yml +17 -0
  811. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/clubs.yml +6 -0
  812. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/comments.yml +59 -0
  813. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/companies.yml +56 -0
  814. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/computers.yml +4 -0
  815. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/courses.yml +7 -0
  816. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/customers.yml +26 -0
  817. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/developers.yml +21 -0
  818. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/developers_projects.yml +17 -0
  819. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/edges.yml +6 -0
  820. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/entrants.yml +14 -0
  821. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/fixture_database.sqlite +0 -0
  822. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/fixture_database.sqlite3 +0 -0
  823. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/fixture_database_2.sqlite +0 -0
  824. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/fixture_database_2.sqlite3 +0 -0
  825. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/fk_test_has_fk.yml +3 -0
  826. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/fk_test_has_pk.yml +2 -0
  827. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/funny_jokes.yml +10 -0
  828. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/items.yml +4 -0
  829. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/jobs.yml +7 -0
  830. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/legacy_things.yml +3 -0
  831. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/mateys.yml +4 -0
  832. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/member_types.yml +6 -0
  833. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/members.yml +6 -0
  834. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/memberships.yml +20 -0
  835. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/minimalistics.yml +2 -0
  836. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/mixed_case_monkeys.yml +6 -0
  837. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/mixins.yml +29 -0
  838. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/movies.yml +7 -0
  839. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/naked/csv/accounts.csv +1 -0
  840. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/naked/yml/accounts.yml +1 -0
  841. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/naked/yml/companies.yml +1 -0
  842. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/naked/yml/courses.yml +1 -0
  843. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/organizations.yml +5 -0
  844. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/owners.yml +7 -0
  845. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/parrots.yml +27 -0
  846. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/parrots_pirates.yml +7 -0
  847. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/people.yml +15 -0
  848. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/pets.yml +14 -0
  849. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/pirates.yml +9 -0
  850. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/posts.yml +52 -0
  851. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/price_estimates.yml +7 -0
  852. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/projects.yml +7 -0
  853. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/readers.yml +9 -0
  854. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/references.yml +17 -0
  855. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/reserved_words/distinct.yml +5 -0
  856. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/reserved_words/distincts_selects.yml +11 -0
  857. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/reserved_words/group.yml +14 -0
  858. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/reserved_words/select.yml +8 -0
  859. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/reserved_words/values.yml +7 -0
  860. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/ships.yml +5 -0
  861. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/sponsors.yml +9 -0
  862. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/subscribers.yml +7 -0
  863. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/subscriptions.yml +12 -0
  864. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/taggings.yml +28 -0
  865. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/tags.yml +7 -0
  866. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/tasks.yml +7 -0
  867. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/topics.yml +42 -0
  868. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/toys.yml +4 -0
  869. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/treasures.yml +10 -0
  870. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/vertices.yml +4 -0
  871. data/spec/assets/testapp/vendor/rails/activerecord/test/fixtures/warehouse-things.yml +3 -0
  872. data/spec/assets/testapp/vendor/rails/activerecord/test/migrations/broken/100_migration_that_raises_exception.rb +10 -0
  873. data/spec/assets/testapp/vendor/rails/activerecord/test/migrations/decimal/1_give_me_big_numbers.rb +15 -0
  874. data/spec/assets/testapp/vendor/rails/activerecord/test/migrations/duplicate/1_people_have_last_names.rb +9 -0
  875. data/spec/assets/testapp/vendor/rails/activerecord/test/migrations/duplicate/2_we_need_reminders.rb +12 -0
  876. data/spec/assets/testapp/vendor/rails/activerecord/test/migrations/duplicate/3_foo.rb +7 -0
  877. data/spec/assets/testapp/vendor/rails/activerecord/test/migrations/duplicate/3_innocent_jointable.rb +12 -0
  878. data/spec/assets/testapp/vendor/rails/activerecord/test/migrations/duplicate_names/20080507052938_chunky.rb +7 -0
  879. data/spec/assets/testapp/vendor/rails/activerecord/test/migrations/duplicate_names/20080507053028_chunky.rb +7 -0
  880. data/spec/assets/testapp/vendor/rails/activerecord/test/migrations/interleaved/pass_1/3_innocent_jointable.rb +12 -0
  881. data/spec/assets/testapp/vendor/rails/activerecord/test/migrations/interleaved/pass_2/1_people_have_last_names.rb +9 -0
  882. data/spec/assets/testapp/vendor/rails/activerecord/test/migrations/interleaved/pass_2/3_innocent_jointable.rb +12 -0
  883. data/spec/assets/testapp/vendor/rails/activerecord/test/migrations/interleaved/pass_3/1_people_have_last_names.rb +9 -0
  884. data/spec/assets/testapp/vendor/rails/activerecord/test/migrations/interleaved/pass_3/2_i_raise_on_down.rb +8 -0
  885. data/spec/assets/testapp/vendor/rails/activerecord/test/migrations/interleaved/pass_3/3_innocent_jointable.rb +12 -0
  886. data/spec/assets/testapp/vendor/rails/activerecord/test/migrations/missing/1000_people_have_middle_names.rb +9 -0
  887. data/spec/assets/testapp/vendor/rails/activerecord/test/migrations/missing/1_people_have_last_names.rb +9 -0
  888. data/spec/assets/testapp/vendor/rails/activerecord/test/migrations/missing/3_we_need_reminders.rb +12 -0
  889. data/spec/assets/testapp/vendor/rails/activerecord/test/migrations/missing/4_innocent_jointable.rb +12 -0
  890. data/spec/assets/testapp/vendor/rails/activerecord/test/migrations/valid/1_people_have_last_names.rb +9 -0
  891. data/spec/assets/testapp/vendor/rails/activerecord/test/migrations/valid/2_we_need_reminders.rb +12 -0
  892. data/spec/assets/testapp/vendor/rails/activerecord/test/migrations/valid/3_innocent_jointable.rb +12 -0
  893. data/spec/assets/testapp/vendor/rails/activerecord/test/models/author.rb +146 -0
  894. data/spec/assets/testapp/vendor/rails/activerecord/test/models/auto_id.rb +4 -0
  895. data/spec/assets/testapp/vendor/rails/activerecord/test/models/binary.rb +2 -0
  896. data/spec/assets/testapp/vendor/rails/activerecord/test/models/bird.rb +3 -0
  897. data/spec/assets/testapp/vendor/rails/activerecord/test/models/book.rb +4 -0
  898. data/spec/assets/testapp/vendor/rails/activerecord/test/models/categorization.rb +5 -0
  899. data/spec/assets/testapp/vendor/rails/activerecord/test/models/category.rb +34 -0
  900. data/spec/assets/testapp/vendor/rails/activerecord/test/models/citation.rb +6 -0
  901. data/spec/assets/testapp/vendor/rails/activerecord/test/models/club.rb +13 -0
  902. data/spec/assets/testapp/vendor/rails/activerecord/test/models/column_name.rb +3 -0
  903. data/spec/assets/testapp/vendor/rails/activerecord/test/models/comment.rb +29 -0
  904. data/spec/assets/testapp/vendor/rails/activerecord/test/models/company.rb +161 -0
  905. data/spec/assets/testapp/vendor/rails/activerecord/test/models/company_in_module.rb +61 -0
  906. data/spec/assets/testapp/vendor/rails/activerecord/test/models/computer.rb +3 -0
  907. data/spec/assets/testapp/vendor/rails/activerecord/test/models/contact.rb +16 -0
  908. data/spec/assets/testapp/vendor/rails/activerecord/test/models/contract.rb +5 -0
  909. data/spec/assets/testapp/vendor/rails/activerecord/test/models/course.rb +3 -0
  910. data/spec/assets/testapp/vendor/rails/activerecord/test/models/customer.rb +73 -0
  911. data/spec/assets/testapp/vendor/rails/activerecord/test/models/default.rb +2 -0
  912. data/spec/assets/testapp/vendor/rails/activerecord/test/models/developer.rb +101 -0
  913. data/spec/assets/testapp/vendor/rails/activerecord/test/models/edge.rb +5 -0
  914. data/spec/assets/testapp/vendor/rails/activerecord/test/models/entrant.rb +3 -0
  915. data/spec/assets/testapp/vendor/rails/activerecord/test/models/essay.rb +3 -0
  916. data/spec/assets/testapp/vendor/rails/activerecord/test/models/event.rb +3 -0
  917. data/spec/assets/testapp/vendor/rails/activerecord/test/models/guid.rb +2 -0
  918. data/spec/assets/testapp/vendor/rails/activerecord/test/models/item.rb +7 -0
  919. data/spec/assets/testapp/vendor/rails/activerecord/test/models/job.rb +5 -0
  920. data/spec/assets/testapp/vendor/rails/activerecord/test/models/joke.rb +3 -0
  921. data/spec/assets/testapp/vendor/rails/activerecord/test/models/keyboard.rb +3 -0
  922. data/spec/assets/testapp/vendor/rails/activerecord/test/models/legacy_thing.rb +3 -0
  923. data/spec/assets/testapp/vendor/rails/activerecord/test/models/matey.rb +4 -0
  924. data/spec/assets/testapp/vendor/rails/activerecord/test/models/member.rb +12 -0
  925. data/spec/assets/testapp/vendor/rails/activerecord/test/models/member_detail.rb +5 -0
  926. data/spec/assets/testapp/vendor/rails/activerecord/test/models/member_type.rb +3 -0
  927. data/spec/assets/testapp/vendor/rails/activerecord/test/models/membership.rb +9 -0
  928. data/spec/assets/testapp/vendor/rails/activerecord/test/models/minimalistic.rb +2 -0
  929. data/spec/assets/testapp/vendor/rails/activerecord/test/models/mixed_case_monkey.rb +3 -0
  930. data/spec/assets/testapp/vendor/rails/activerecord/test/models/movie.rb +5 -0
  931. data/spec/assets/testapp/vendor/rails/activerecord/test/models/order.rb +4 -0
  932. data/spec/assets/testapp/vendor/rails/activerecord/test/models/organization.rb +6 -0
  933. data/spec/assets/testapp/vendor/rails/activerecord/test/models/owner.rb +5 -0
  934. data/spec/assets/testapp/vendor/rails/activerecord/test/models/parrot.rb +16 -0
  935. data/spec/assets/testapp/vendor/rails/activerecord/test/models/person.rb +16 -0
  936. data/spec/assets/testapp/vendor/rails/activerecord/test/models/pet.rb +5 -0
  937. data/spec/assets/testapp/vendor/rails/activerecord/test/models/pirate.rb +63 -0
  938. data/spec/assets/testapp/vendor/rails/activerecord/test/models/post.rb +100 -0
  939. data/spec/assets/testapp/vendor/rails/activerecord/test/models/price_estimate.rb +3 -0
  940. data/spec/assets/testapp/vendor/rails/activerecord/test/models/project.rb +30 -0
  941. data/spec/assets/testapp/vendor/rails/activerecord/test/models/reader.rb +4 -0
  942. data/spec/assets/testapp/vendor/rails/activerecord/test/models/reference.rb +4 -0
  943. data/spec/assets/testapp/vendor/rails/activerecord/test/models/reply.rb +46 -0
  944. data/spec/assets/testapp/vendor/rails/activerecord/test/models/ship.rb +10 -0
  945. data/spec/assets/testapp/vendor/rails/activerecord/test/models/ship_part.rb +5 -0
  946. data/spec/assets/testapp/vendor/rails/activerecord/test/models/sponsor.rb +4 -0
  947. data/spec/assets/testapp/vendor/rails/activerecord/test/models/subject.rb +4 -0
  948. data/spec/assets/testapp/vendor/rails/activerecord/test/models/subscriber.rb +8 -0
  949. data/spec/assets/testapp/vendor/rails/activerecord/test/models/subscription.rb +4 -0
  950. data/spec/assets/testapp/vendor/rails/activerecord/test/models/tag.rb +7 -0
  951. data/spec/assets/testapp/vendor/rails/activerecord/test/models/tagging.rb +10 -0
  952. data/spec/assets/testapp/vendor/rails/activerecord/test/models/task.rb +3 -0
  953. data/spec/assets/testapp/vendor/rails/activerecord/test/models/topic.rb +80 -0
  954. data/spec/assets/testapp/vendor/rails/activerecord/test/models/toy.rb +6 -0
  955. data/spec/assets/testapp/vendor/rails/activerecord/test/models/treasure.rb +6 -0
  956. data/spec/assets/testapp/vendor/rails/activerecord/test/models/vertex.rb +9 -0
  957. data/spec/assets/testapp/vendor/rails/activerecord/test/models/warehouse_thing.rb +5 -0
  958. data/spec/assets/testapp/vendor/rails/activerecord/test/schema/mysql_specific_schema.rb +12 -0
  959. data/spec/assets/testapp/vendor/rails/activerecord/test/schema/postgresql_specific_schema.rb +114 -0
  960. data/spec/assets/testapp/vendor/rails/activerecord/test/schema/schema.rb +492 -0
  961. data/spec/assets/testapp/vendor/rails/activerecord/test/schema/schema2.rb +6 -0
  962. data/spec/assets/testapp/vendor/rails/activerecord/test/schema/sqlite_specific_schema.rb +25 -0
  963. data/spec/assets/testapp/vendor/rails/activeresource/CHANGELOG +283 -0
  964. data/spec/assets/testapp/vendor/rails/activeresource/README +165 -0
  965. data/spec/assets/testapp/vendor/rails/activeresource/Rakefile +139 -0
  966. data/spec/assets/testapp/vendor/rails/activeresource/lib/active_resource/base.rb +1157 -0
  967. data/spec/assets/testapp/vendor/rails/activeresource/lib/active_resource/connection.rb +283 -0
  968. data/spec/assets/testapp/vendor/rails/activeresource/lib/active_resource/custom_methods.rb +120 -0
  969. data/spec/assets/testapp/vendor/rails/activeresource/lib/active_resource/exceptions.rb +66 -0
  970. data/spec/assets/testapp/vendor/rails/activeresource/lib/active_resource/formats/json_format.rb +23 -0
  971. data/spec/assets/testapp/vendor/rails/activeresource/lib/active_resource/formats/xml_format.rb +34 -0
  972. data/spec/assets/testapp/vendor/rails/activeresource/lib/active_resource/formats.rb +14 -0
  973. data/spec/assets/testapp/vendor/rails/activeresource/lib/active_resource/http_mock.rb +207 -0
  974. data/spec/assets/testapp/vendor/rails/activeresource/lib/active_resource/validations.rb +290 -0
  975. data/spec/assets/testapp/vendor/rails/activeresource/lib/active_resource/version.rb +9 -0
  976. data/spec/assets/testapp/vendor/rails/activeresource/lib/active_resource.rb +44 -0
  977. data/spec/assets/testapp/vendor/rails/activeresource/lib/activeresource.rb +1 -0
  978. data/spec/assets/testapp/vendor/rails/activeresource/test/abstract_unit.rb +21 -0
  979. data/spec/assets/testapp/vendor/rails/activeresource/test/authorization_test.rb +122 -0
  980. data/spec/assets/testapp/vendor/rails/activeresource/test/base/custom_methods_test.rb +100 -0
  981. data/spec/assets/testapp/vendor/rails/activeresource/test/base/equality_test.rb +52 -0
  982. data/spec/assets/testapp/vendor/rails/activeresource/test/base/load_test.rb +161 -0
  983. data/spec/assets/testapp/vendor/rails/activeresource/test/base_errors_test.rb +85 -0
  984. data/spec/assets/testapp/vendor/rails/activeresource/test/base_test.rb +1038 -0
  985. data/spec/assets/testapp/vendor/rails/activeresource/test/connection_test.rb +238 -0
  986. data/spec/assets/testapp/vendor/rails/activeresource/test/debug.log +7974 -0
  987. data/spec/assets/testapp/vendor/rails/activeresource/test/fixtures/beast.rb +14 -0
  988. data/spec/assets/testapp/vendor/rails/activeresource/test/fixtures/customer.rb +3 -0
  989. data/spec/assets/testapp/vendor/rails/activeresource/test/fixtures/person.rb +3 -0
  990. data/spec/assets/testapp/vendor/rails/activeresource/test/fixtures/proxy.rb +4 -0
  991. data/spec/assets/testapp/vendor/rails/activeresource/test/fixtures/street_address.rb +4 -0
  992. data/spec/assets/testapp/vendor/rails/activeresource/test/format_test.rb +112 -0
  993. data/spec/assets/testapp/vendor/rails/activeresource/test/setter_trap.rb +26 -0
  994. data/spec/assets/testapp/vendor/rails/activesupport/CHANGELOG +1322 -0
  995. data/spec/assets/testapp/vendor/rails/activesupport/README +43 -0
  996. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/all.rb +8 -0
  997. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/backtrace_cleaner.rb +72 -0
  998. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/base64.rb +33 -0
  999. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/basic_object.rb +24 -0
  1000. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/buffered_logger.rb +127 -0
  1001. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/cache/compressed_mem_cache_store.rb +20 -0
  1002. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/cache/drb_store.rb +14 -0
  1003. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/cache/file_store.rb +72 -0
  1004. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/cache/mem_cache_store.rb +138 -0
  1005. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/cache/memory_store.rb +52 -0
  1006. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/cache/strategy/local_cache.rb +104 -0
  1007. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/cache/synchronized_memory_store.rb +47 -0
  1008. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/cache.rb +241 -0
  1009. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/callbacks.rb +279 -0
  1010. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/array/access.rb +53 -0
  1011. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/array/conversions.rb +197 -0
  1012. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/array/extract_options.rb +20 -0
  1013. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/array/grouping.rb +106 -0
  1014. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/array/random_access.rb +12 -0
  1015. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/array/wrapper.rb +24 -0
  1016. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/array.rb +15 -0
  1017. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/base64/encoding.rb +16 -0
  1018. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/base64.rb +4 -0
  1019. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/benchmark.rb +19 -0
  1020. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/bigdecimal/conversions.rb +37 -0
  1021. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/bigdecimal.rb +6 -0
  1022. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/blank.rb +58 -0
  1023. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/cgi/escape_skipping_slashes.rb +23 -0
  1024. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/cgi.rb +5 -0
  1025. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/class/attribute_accessors.rb +54 -0
  1026. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/class/delegating_attributes.rb +47 -0
  1027. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/class/inheritable_attributes.rb +140 -0
  1028. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/class/removal.rb +50 -0
  1029. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/class.rb +4 -0
  1030. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/date/behavior.rb +42 -0
  1031. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/date/calculations.rb +231 -0
  1032. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/date/conversions.rb +107 -0
  1033. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/date.rb +10 -0
  1034. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/date_time/calculations.rb +126 -0
  1035. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/date_time/conversions.rb +96 -0
  1036. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/date_time.rb +12 -0
  1037. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/duplicable.rb +43 -0
  1038. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/enumerable.rb +114 -0
  1039. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/exception.rb +45 -0
  1040. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/file/atomic.rb +46 -0
  1041. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/file.rb +5 -0
  1042. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/float/rounding.rb +24 -0
  1043. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/float/time.rb +27 -0
  1044. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/float.rb +7 -0
  1045. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/hash/conversions.rb +247 -0
  1046. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/hash/deep_merge.rb +23 -0
  1047. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/hash/diff.rb +19 -0
  1048. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/hash/except.rb +25 -0
  1049. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb +143 -0
  1050. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/hash/keys.rb +52 -0
  1051. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/hash/reverse_merge.rb +35 -0
  1052. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/hash/slice.rb +40 -0
  1053. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/hash.rb +14 -0
  1054. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/integer/even_odd.rb +29 -0
  1055. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/integer/inflections.rb +20 -0
  1056. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/integer/time.rb +45 -0
  1057. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/integer.rb +9 -0
  1058. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/kernel/agnostics.rb +11 -0
  1059. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/kernel/daemonizing.rb +7 -0
  1060. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/kernel/debugger.rb +15 -0
  1061. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/kernel/reporting.rb +59 -0
  1062. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/kernel/requires.rb +24 -0
  1063. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/kernel.rb +5 -0
  1064. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/load_error.rb +38 -0
  1065. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/logger.rb +145 -0
  1066. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/module/aliasing.rb +74 -0
  1067. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/module/attr_accessor_with_default.rb +31 -0
  1068. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/module/attr_internal.rb +32 -0
  1069. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/module/attribute_accessors.rb +60 -0
  1070. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/module/delegation.rb +135 -0
  1071. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/module/inclusion.rb +30 -0
  1072. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/module/introspection.rb +90 -0
  1073. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/module/loading.rb +23 -0
  1074. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/module/model_naming.rb +25 -0
  1075. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/module/synchronization.rb +39 -0
  1076. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/module.rb +23 -0
  1077. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/name_error.rb +17 -0
  1078. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/numeric/bytes.rb +50 -0
  1079. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/numeric/conversions.rb +19 -0
  1080. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/numeric/time.rb +81 -0
  1081. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/numeric.rb +9 -0
  1082. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/object/conversions.rb +15 -0
  1083. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/object/extending.rb +80 -0
  1084. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/object/instance_variables.rb +74 -0
  1085. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/object/metaclass.rb +13 -0
  1086. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/object/misc.rb +90 -0
  1087. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/object.rb +5 -0
  1088. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/pathname/clean_within.rb +14 -0
  1089. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/pathname.rb +7 -0
  1090. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/proc.rb +12 -0
  1091. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/process/daemon.rb +25 -0
  1092. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/process.rb +1 -0
  1093. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/range/blockless_step.rb +32 -0
  1094. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/range/conversions.rb +27 -0
  1095. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/range/include_range.rb +30 -0
  1096. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/range/overlaps.rb +15 -0
  1097. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/range.rb +11 -0
  1098. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/rexml.rb +41 -0
  1099. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/string/access.rb +106 -0
  1100. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/string/behavior.rb +13 -0
  1101. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/string/bytesize.rb +5 -0
  1102. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/string/conversions.rb +28 -0
  1103. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/string/filters.rb +26 -0
  1104. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/string/inflections.rb +167 -0
  1105. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/string/iterators.rb +23 -0
  1106. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/string/multibyte.rb +81 -0
  1107. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/string/starts_ends_with.rb +35 -0
  1108. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/string/xchar.rb +11 -0
  1109. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/string.rb +23 -0
  1110. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/symbol.rb +14 -0
  1111. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/time/behavior.rb +13 -0
  1112. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/time/calculations.rb +303 -0
  1113. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/time/conversions.rb +90 -0
  1114. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/time/zones.rb +86 -0
  1115. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/time.rb +42 -0
  1116. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/try.rb +36 -0
  1117. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext/uri.rb +16 -0
  1118. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/core_ext.rb +4 -0
  1119. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/dependencies.rb +625 -0
  1120. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/deprecation.rb +196 -0
  1121. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/duration.rb +100 -0
  1122. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/gzip.rb +25 -0
  1123. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/inflections.rb +56 -0
  1124. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/inflector.rb +406 -0
  1125. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/json/backends/jsongem.rb +38 -0
  1126. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/json/backends/yaml.rb +88 -0
  1127. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/json/decoding.rb +33 -0
  1128. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/json/encoders/date.rb +22 -0
  1129. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/json/encoders/date_time.rb +22 -0
  1130. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/json/encoders/enumerable.rb +17 -0
  1131. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/json/encoders/false_class.rb +7 -0
  1132. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/json/encoders/hash.rb +56 -0
  1133. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/json/encoders/nil_class.rb +7 -0
  1134. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/json/encoders/numeric.rb +21 -0
  1135. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/json/encoders/object.rb +10 -0
  1136. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/json/encoders/regexp.rb +9 -0
  1137. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/json/encoders/string.rb +9 -0
  1138. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/json/encoders/symbol.rb +5 -0
  1139. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/json/encoders/time.rb +22 -0
  1140. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/json/encoders/true_class.rb +7 -0
  1141. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/json/encoding.rb +102 -0
  1142. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/json/variable.rb +10 -0
  1143. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/json.rb +2 -0
  1144. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/locale/en.yml +33 -0
  1145. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/memoizable.rb +100 -0
  1146. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/message_encryptor.rb +70 -0
  1147. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/message_verifier.rb +59 -0
  1148. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/multibyte/chars.rb +707 -0
  1149. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/multibyte/exceptions.rb +8 -0
  1150. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/multibyte/unicode_database.rb +71 -0
  1151. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/multibyte/utils.rb +61 -0
  1152. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/multibyte.rb +57 -0
  1153. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/option_merger.rb +23 -0
  1154. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/ordered_hash.rb +134 -0
  1155. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/ordered_options.rb +19 -0
  1156. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/rescuable.rb +108 -0
  1157. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/secure_random.rb +199 -0
  1158. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/string_inquirer.rb +21 -0
  1159. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/test_case.rb +40 -0
  1160. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/testing/assertions.rb +65 -0
  1161. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/testing/declarative.rb +21 -0
  1162. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/testing/default.rb +9 -0
  1163. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/testing/deprecation.rb +57 -0
  1164. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/testing/performance.rb +452 -0
  1165. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/testing/setup_and_teardown.rb +91 -0
  1166. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/time_with_zone.rb +335 -0
  1167. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/values/time_zone.rb +404 -0
  1168. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/values/unicode_tables.dat +0 -0
  1169. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/blankslate.rb +113 -0
  1170. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/blankslate.rb +20 -0
  1171. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/css.rb +250 -0
  1172. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xchar.rb +115 -0
  1173. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xmlbase.rb +139 -0
  1174. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xmlevents.rb +63 -0
  1175. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xmlmarkup.rb +328 -0
  1176. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder.rb +13 -0
  1177. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/MIT-LICENSE +20 -0
  1178. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/README.textile +20 -0
  1179. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/Rakefile +5 -0
  1180. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/i18n.gemspec +27 -0
  1181. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/lib/i18n/backend/simple.rb +214 -0
  1182. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/lib/i18n/exceptions.rb +53 -0
  1183. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/lib/i18n.rb +199 -0
  1184. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/all.rb +5 -0
  1185. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/i18n_exceptions_test.rb +99 -0
  1186. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/i18n_test.rb +124 -0
  1187. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/locale/en.rb +1 -0
  1188. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/locale/en.yml +3 -0
  1189. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/simple_backend_test.rb +567 -0
  1190. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/memcache-client-1.7.4/memcache.rb +1107 -0
  1191. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/data_timezone.rb +47 -0
  1192. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/data_timezone_info.rb +228 -0
  1193. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Algiers.rb +55 -0
  1194. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Cairo.rb +219 -0
  1195. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Casablanca.rb +40 -0
  1196. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Harare.rb +18 -0
  1197. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Johannesburg.rb +25 -0
  1198. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Monrovia.rb +22 -0
  1199. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Nairobi.rb +23 -0
  1200. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Argentina/Buenos_Aires.rb +166 -0
  1201. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Argentina/San_Juan.rb +86 -0
  1202. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Bogota.rb +23 -0
  1203. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Caracas.rb +23 -0
  1204. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Chicago.rb +283 -0
  1205. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Chihuahua.rb +136 -0
  1206. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Denver.rb +204 -0
  1207. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Godthab.rb +161 -0
  1208. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Guatemala.rb +27 -0
  1209. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Halifax.rb +274 -0
  1210. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Indiana/Indianapolis.rb +149 -0
  1211. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Juneau.rb +194 -0
  1212. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/La_Paz.rb +22 -0
  1213. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Lima.rb +35 -0
  1214. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Los_Angeles.rb +232 -0
  1215. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Mazatlan.rb +139 -0
  1216. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Mexico_City.rb +144 -0
  1217. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Monterrey.rb +131 -0
  1218. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/New_York.rb +282 -0
  1219. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Phoenix.rb +30 -0
  1220. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Regina.rb +74 -0
  1221. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Santiago.rb +205 -0
  1222. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Sao_Paulo.rb +171 -0
  1223. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/St_Johns.rb +288 -0
  1224. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Tijuana.rb +196 -0
  1225. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Almaty.rb +67 -0
  1226. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Baghdad.rb +73 -0
  1227. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Baku.rb +161 -0
  1228. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Bangkok.rb +20 -0
  1229. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Chongqing.rb +33 -0
  1230. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Colombo.rb +30 -0
  1231. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Dhaka.rb +27 -0
  1232. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Hong_Kong.rb +87 -0
  1233. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Irkutsk.rb +165 -0
  1234. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Jakarta.rb +30 -0
  1235. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Jerusalem.rb +163 -0
  1236. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kabul.rb +20 -0
  1237. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kamchatka.rb +163 -0
  1238. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Karachi.rb +30 -0
  1239. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Katmandu.rb +20 -0
  1240. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kolkata.rb +25 -0
  1241. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Krasnoyarsk.rb +163 -0
  1242. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kuala_Lumpur.rb +31 -0
  1243. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kuwait.rb +18 -0
  1244. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Magadan.rb +163 -0
  1245. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Muscat.rb +18 -0
  1246. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Novosibirsk.rb +164 -0
  1247. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Rangoon.rb +24 -0
  1248. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Riyadh.rb +18 -0
  1249. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Seoul.rb +34 -0
  1250. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Shanghai.rb +35 -0
  1251. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Singapore.rb +33 -0
  1252. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Taipei.rb +59 -0
  1253. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tashkent.rb +47 -0
  1254. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tbilisi.rb +78 -0
  1255. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tehran.rb +121 -0
  1256. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tokyo.rb +30 -0
  1257. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Ulaanbaatar.rb +65 -0
  1258. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Urumqi.rb +33 -0
  1259. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Vladivostok.rb +164 -0
  1260. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yakutsk.rb +163 -0
  1261. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yekaterinburg.rb +165 -0
  1262. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yerevan.rb +165 -0
  1263. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/Azores.rb +270 -0
  1264. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/Cape_Verde.rb +23 -0
  1265. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/South_Georgia.rb +18 -0
  1266. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Adelaide.rb +187 -0
  1267. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Brisbane.rb +35 -0
  1268. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Darwin.rb +29 -0
  1269. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Hobart.rb +193 -0
  1270. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Melbourne.rb +185 -0
  1271. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Perth.rb +37 -0
  1272. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Sydney.rb +185 -0
  1273. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Etc/UTC.rb +16 -0
  1274. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Amsterdam.rb +228 -0
  1275. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Athens.rb +185 -0
  1276. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Belgrade.rb +163 -0
  1277. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Berlin.rb +188 -0
  1278. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Bratislava.rb +13 -0
  1279. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Brussels.rb +232 -0
  1280. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Bucharest.rb +181 -0
  1281. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Budapest.rb +197 -0
  1282. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Copenhagen.rb +179 -0
  1283. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Dublin.rb +276 -0
  1284. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Helsinki.rb +163 -0
  1285. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Istanbul.rb +218 -0
  1286. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Kiev.rb +168 -0
  1287. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Lisbon.rb +268 -0
  1288. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Ljubljana.rb +13 -0
  1289. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/London.rb +288 -0
  1290. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Madrid.rb +211 -0
  1291. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Minsk.rb +170 -0
  1292. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Moscow.rb +181 -0
  1293. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Paris.rb +232 -0
  1294. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Prague.rb +187 -0
  1295. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Riga.rb +176 -0
  1296. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Rome.rb +215 -0
  1297. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Sarajevo.rb +13 -0
  1298. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Skopje.rb +13 -0
  1299. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Sofia.rb +173 -0
  1300. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Stockholm.rb +165 -0
  1301. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Tallinn.rb +172 -0
  1302. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Vienna.rb +183 -0
  1303. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Vilnius.rb +170 -0
  1304. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Warsaw.rb +212 -0
  1305. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Zagreb.rb +13 -0
  1306. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Auckland.rb +202 -0
  1307. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Fiji.rb +23 -0
  1308. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Guam.rb +22 -0
  1309. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Honolulu.rb +28 -0
  1310. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Majuro.rb +20 -0
  1311. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Midway.rb +25 -0
  1312. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Noumea.rb +25 -0
  1313. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Pago_Pago.rb +26 -0
  1314. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Port_Moresby.rb +20 -0
  1315. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Tongatapu.rb +27 -0
  1316. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/info_timezone.rb +52 -0
  1317. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/linked_timezone.rb +51 -0
  1318. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/linked_timezone_info.rb +44 -0
  1319. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/offset_rationals.rb +98 -0
  1320. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/ruby_core_support.rb +56 -0
  1321. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/time_or_datetime.rb +292 -0
  1322. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone.rb +508 -0
  1323. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_definition.rb +56 -0
  1324. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_info.rb +40 -0
  1325. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_offset_info.rb +94 -0
  1326. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_period.rb +198 -0
  1327. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_transition_info.rb +129 -0
  1328. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo.rb +33 -0
  1329. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/vendor.rb +28 -0
  1330. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/version.rb +9 -0
  1331. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/whiny_nil.rb +58 -0
  1332. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/xml_mini/jdom.rb +162 -0
  1333. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/xml_mini/libxml.rb +133 -0
  1334. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/xml_mini/nokogiri.rb +77 -0
  1335. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/xml_mini/rexml.rb +108 -0
  1336. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support/xml_mini.rb +31 -0
  1337. data/spec/assets/testapp/vendor/rails/activesupport/lib/active_support.rb +59 -0
  1338. data/spec/assets/testapp/vendor/rails/activesupport/lib/activesupport.rb +1 -0
  1339. data/spec/assets/testapp/vendor/rails/railties/CHANGELOG +2166 -0
  1340. data/spec/assets/testapp/vendor/rails/railties/MIT-LICENSE +20 -0
  1341. data/spec/assets/testapp/vendor/rails/railties/README +243 -0
  1342. data/spec/assets/testapp/vendor/rails/railties/Rakefile +368 -0
  1343. data/spec/assets/testapp/vendor/rails/railties/bin/about +4 -0
  1344. data/spec/assets/testapp/vendor/rails/railties/bin/console +3 -0
  1345. data/spec/assets/testapp/vendor/rails/railties/bin/dbconsole +3 -0
  1346. data/spec/assets/testapp/vendor/rails/railties/bin/destroy +3 -0
  1347. data/spec/assets/testapp/vendor/rails/railties/bin/generate +3 -0
  1348. data/spec/assets/testapp/vendor/rails/railties/bin/performance/benchmarker +3 -0
  1349. data/spec/assets/testapp/vendor/rails/railties/bin/performance/profiler +3 -0
  1350. data/spec/assets/testapp/vendor/rails/railties/bin/plugin +3 -0
  1351. data/spec/assets/testapp/vendor/rails/railties/bin/rails +20 -0
  1352. data/spec/assets/testapp/vendor/rails/railties/bin/runner +3 -0
  1353. data/spec/assets/testapp/vendor/rails/railties/bin/server +3 -0
  1354. data/spec/assets/testapp/vendor/rails/railties/builtin/rails_info/rails/info.rb +131 -0
  1355. data/spec/assets/testapp/vendor/rails/railties/builtin/rails_info/rails/info_controller.rb +9 -0
  1356. data/spec/assets/testapp/vendor/rails/railties/builtin/rails_info/rails/info_helper.rb +2 -0
  1357. data/spec/assets/testapp/vendor/rails/railties/builtin/rails_info/rails_info_controller.rb +2 -0
  1358. data/spec/assets/testapp/vendor/rails/railties/configs/databases/frontbase.yml +28 -0
  1359. data/spec/assets/testapp/vendor/rails/railties/configs/databases/ibm_db.yml +62 -0
  1360. data/spec/assets/testapp/vendor/rails/railties/configs/databases/mysql.yml +60 -0
  1361. data/spec/assets/testapp/vendor/rails/railties/configs/databases/oracle.yml +39 -0
  1362. data/spec/assets/testapp/vendor/rails/railties/configs/databases/postgresql.yml +51 -0
  1363. data/spec/assets/testapp/vendor/rails/railties/configs/databases/sqlite2.yml +19 -0
  1364. data/spec/assets/testapp/vendor/rails/railties/configs/databases/sqlite3.yml +22 -0
  1365. data/spec/assets/testapp/vendor/rails/railties/configs/empty.log +0 -0
  1366. data/spec/assets/testapp/vendor/rails/railties/configs/initializers/backtrace_silencers.rb +7 -0
  1367. data/spec/assets/testapp/vendor/rails/railties/configs/initializers/inflections.rb +10 -0
  1368. data/spec/assets/testapp/vendor/rails/railties/configs/initializers/mime_types.rb +5 -0
  1369. data/spec/assets/testapp/vendor/rails/railties/configs/initializers/new_rails_defaults.rb +21 -0
  1370. data/spec/assets/testapp/vendor/rails/railties/configs/initializers/session_store.rb +15 -0
  1371. data/spec/assets/testapp/vendor/rails/railties/configs/locales/en.yml +5 -0
  1372. data/spec/assets/testapp/vendor/rails/railties/configs/routes.rb +43 -0
  1373. data/spec/assets/testapp/vendor/rails/railties/configs/seeds.rb +7 -0
  1374. data/spec/assets/testapp/vendor/rails/railties/dispatches/config.ru +7 -0
  1375. data/spec/assets/testapp/vendor/rails/railties/dispatches/dispatch.fcgi +24 -0
  1376. data/spec/assets/testapp/vendor/rails/railties/dispatches/dispatch.rb +10 -0
  1377. data/spec/assets/testapp/vendor/rails/railties/dispatches/gateway.cgi +97 -0
  1378. data/spec/assets/testapp/vendor/rails/railties/doc/README_FOR_APP +2 -0
  1379. data/spec/assets/testapp/vendor/rails/railties/environments/boot.rb +110 -0
  1380. data/spec/assets/testapp/vendor/rails/railties/environments/development.rb +17 -0
  1381. data/spec/assets/testapp/vendor/rails/railties/environments/environment.rb +41 -0
  1382. data/spec/assets/testapp/vendor/rails/railties/environments/production.rb +28 -0
  1383. data/spec/assets/testapp/vendor/rails/railties/environments/test.rb +28 -0
  1384. data/spec/assets/testapp/vendor/rails/railties/fresh_rakefile +10 -0
  1385. data/spec/assets/testapp/vendor/rails/railties/guides/files/javascripts/code_highlighter.js +188 -0
  1386. data/spec/assets/testapp/vendor/rails/railties/guides/files/javascripts/guides.js +8 -0
  1387. data/spec/assets/testapp/vendor/rails/railties/guides/files/javascripts/highlighters.js +90 -0
  1388. data/spec/assets/testapp/vendor/rails/railties/guides/files/stylesheets/main.css +441 -0
  1389. data/spec/assets/testapp/vendor/rails/railties/guides/files/stylesheets/print.css +52 -0
  1390. data/spec/assets/testapp/vendor/rails/railties/guides/files/stylesheets/reset.css +43 -0
  1391. data/spec/assets/testapp/vendor/rails/railties/guides/files/stylesheets/style.css +13 -0
  1392. data/spec/assets/testapp/vendor/rails/railties/guides/files/stylesheets/syntax.css +31 -0
  1393. data/spec/assets/testapp/vendor/rails/railties/guides/images/belongs_to.png +0 -0
  1394. data/spec/assets/testapp/vendor/rails/railties/guides/images/book_icon.gif +0 -0
  1395. data/spec/assets/testapp/vendor/rails/railties/guides/images/bullet.gif +0 -0
  1396. data/spec/assets/testapp/vendor/rails/railties/guides/images/chapters_icon.gif +0 -0
  1397. data/spec/assets/testapp/vendor/rails/railties/guides/images/check_bullet.gif +0 -0
  1398. data/spec/assets/testapp/vendor/rails/railties/guides/images/credits_pic_blank.gif +0 -0
  1399. data/spec/assets/testapp/vendor/rails/railties/guides/images/csrf.png +0 -0
  1400. data/spec/assets/testapp/vendor/rails/railties/guides/images/customized_error_messages.png +0 -0
  1401. data/spec/assets/testapp/vendor/rails/railties/guides/images/error_messages.png +0 -0
  1402. data/spec/assets/testapp/vendor/rails/railties/guides/images/feature_tile.gif +0 -0
  1403. data/spec/assets/testapp/vendor/rails/railties/guides/images/footer_tile.gif +0 -0
  1404. data/spec/assets/testapp/vendor/rails/railties/guides/images/fxn.jpg +0 -0
  1405. data/spec/assets/testapp/vendor/rails/railties/guides/images/grey_bullet.gif +0 -0
  1406. data/spec/assets/testapp/vendor/rails/railties/guides/images/habtm.png +0 -0
  1407. data/spec/assets/testapp/vendor/rails/railties/guides/images/has_many.png +0 -0
  1408. data/spec/assets/testapp/vendor/rails/railties/guides/images/has_many_through.png +0 -0
  1409. data/spec/assets/testapp/vendor/rails/railties/guides/images/has_one.png +0 -0
  1410. data/spec/assets/testapp/vendor/rails/railties/guides/images/has_one_through.png +0 -0
  1411. data/spec/assets/testapp/vendor/rails/railties/guides/images/header_backdrop.png +0 -0
  1412. data/spec/assets/testapp/vendor/rails/railties/guides/images/header_tile.gif +0 -0
  1413. data/spec/assets/testapp/vendor/rails/railties/guides/images/i18n/demo_localized_pirate.png +0 -0
  1414. data/spec/assets/testapp/vendor/rails/railties/guides/images/i18n/demo_translated_en.png +0 -0
  1415. data/spec/assets/testapp/vendor/rails/railties/guides/images/i18n/demo_translated_pirate.png +0 -0
  1416. data/spec/assets/testapp/vendor/rails/railties/guides/images/i18n/demo_translation_missing.png +0 -0
  1417. data/spec/assets/testapp/vendor/rails/railties/guides/images/i18n/demo_untranslated.png +0 -0
  1418. data/spec/assets/testapp/vendor/rails/railties/guides/images/icons/README +5 -0
  1419. data/spec/assets/testapp/vendor/rails/railties/guides/images/icons/callouts/1.png +0 -0
  1420. data/spec/assets/testapp/vendor/rails/railties/guides/images/icons/callouts/10.png +0 -0
  1421. data/spec/assets/testapp/vendor/rails/railties/guides/images/icons/callouts/11.png +0 -0
  1422. data/spec/assets/testapp/vendor/rails/railties/guides/images/icons/callouts/12.png +0 -0
  1423. data/spec/assets/testapp/vendor/rails/railties/guides/images/icons/callouts/13.png +0 -0
  1424. data/spec/assets/testapp/vendor/rails/railties/guides/images/icons/callouts/14.png +0 -0
  1425. data/spec/assets/testapp/vendor/rails/railties/guides/images/icons/callouts/15.png +0 -0
  1426. data/spec/assets/testapp/vendor/rails/railties/guides/images/icons/callouts/2.png +0 -0
  1427. data/spec/assets/testapp/vendor/rails/railties/guides/images/icons/callouts/3.png +0 -0
  1428. data/spec/assets/testapp/vendor/rails/railties/guides/images/icons/callouts/4.png +0 -0
  1429. data/spec/assets/testapp/vendor/rails/railties/guides/images/icons/callouts/5.png +0 -0
  1430. data/spec/assets/testapp/vendor/rails/railties/guides/images/icons/callouts/6.png +0 -0
  1431. data/spec/assets/testapp/vendor/rails/railties/guides/images/icons/callouts/7.png +0 -0
  1432. data/spec/assets/testapp/vendor/rails/railties/guides/images/icons/callouts/8.png +0 -0
  1433. data/spec/assets/testapp/vendor/rails/railties/guides/images/icons/callouts/9.png +0 -0
  1434. data/spec/assets/testapp/vendor/rails/railties/guides/images/icons/caution.png +0 -0
  1435. data/spec/assets/testapp/vendor/rails/railties/guides/images/icons/example.png +0 -0
  1436. data/spec/assets/testapp/vendor/rails/railties/guides/images/icons/home.png +0 -0
  1437. data/spec/assets/testapp/vendor/rails/railties/guides/images/icons/important.png +0 -0
  1438. data/spec/assets/testapp/vendor/rails/railties/guides/images/icons/next.png +0 -0
  1439. data/spec/assets/testapp/vendor/rails/railties/guides/images/icons/note.png +0 -0
  1440. data/spec/assets/testapp/vendor/rails/railties/guides/images/icons/prev.png +0 -0
  1441. data/spec/assets/testapp/vendor/rails/railties/guides/images/icons/tip.png +0 -0
  1442. data/spec/assets/testapp/vendor/rails/railties/guides/images/icons/up.png +0 -0
  1443. data/spec/assets/testapp/vendor/rails/railties/guides/images/icons/warning.png +0 -0
  1444. data/spec/assets/testapp/vendor/rails/railties/guides/images/nav_arrow.gif +0 -0
  1445. data/spec/assets/testapp/vendor/rails/railties/guides/images/polymorphic.png +0 -0
  1446. data/spec/assets/testapp/vendor/rails/railties/guides/images/posts_index.png +0 -0
  1447. data/spec/assets/testapp/vendor/rails/railties/guides/images/rails_guides_logo.gif +0 -0
  1448. data/spec/assets/testapp/vendor/rails/railties/guides/images/rails_logo_remix.gif +0 -0
  1449. data/spec/assets/testapp/vendor/rails/railties/guides/images/rails_welcome.png +0 -0
  1450. data/spec/assets/testapp/vendor/rails/railties/guides/images/session_fixation.png +0 -0
  1451. data/spec/assets/testapp/vendor/rails/railties/guides/images/tab_grey.gif +0 -0
  1452. data/spec/assets/testapp/vendor/rails/railties/guides/images/tab_info.gif +0 -0
  1453. data/spec/assets/testapp/vendor/rails/railties/guides/images/tab_note.gif +0 -0
  1454. data/spec/assets/testapp/vendor/rails/railties/guides/images/tab_red.gif +0 -0
  1455. data/spec/assets/testapp/vendor/rails/railties/guides/images/tab_yellow.gif +0 -0
  1456. data/spec/assets/testapp/vendor/rails/railties/guides/images/tab_yellow.png +0 -0
  1457. data/spec/assets/testapp/vendor/rails/railties/guides/images/validation_error_messages.png +0 -0
  1458. data/spec/assets/testapp/vendor/rails/railties/guides/rails_guides/generator.rb +138 -0
  1459. data/spec/assets/testapp/vendor/rails/railties/guides/rails_guides/helpers.rb +34 -0
  1460. data/spec/assets/testapp/vendor/rails/railties/guides/rails_guides/indexer.rb +55 -0
  1461. data/spec/assets/testapp/vendor/rails/railties/guides/rails_guides/textile_extensions.rb +41 -0
  1462. data/spec/assets/testapp/vendor/rails/railties/guides/rails_guides.rb +42 -0
  1463. data/spec/assets/testapp/vendor/rails/railties/guides/source/2_2_release_notes.textile +422 -0
  1464. data/spec/assets/testapp/vendor/rails/railties/guides/source/2_3_release_notes.textile +610 -0
  1465. data/spec/assets/testapp/vendor/rails/railties/guides/source/action_controller_overview.textile +776 -0
  1466. data/spec/assets/testapp/vendor/rails/railties/guides/source/action_mailer_basics.textile +424 -0
  1467. data/spec/assets/testapp/vendor/rails/railties/guides/source/active_record_basics.textile +135 -0
  1468. data/spec/assets/testapp/vendor/rails/railties/guides/source/active_record_querying.textile +969 -0
  1469. data/spec/assets/testapp/vendor/rails/railties/guides/source/activerecord_validations_callbacks.textile +1086 -0
  1470. data/spec/assets/testapp/vendor/rails/railties/guides/source/association_basics.textile +1781 -0
  1471. data/spec/assets/testapp/vendor/rails/railties/guides/source/caching_with_rails.textile +524 -0
  1472. data/spec/assets/testapp/vendor/rails/railties/guides/source/command_line.textile +589 -0
  1473. data/spec/assets/testapp/vendor/rails/railties/guides/source/configuring.textile +234 -0
  1474. data/spec/assets/testapp/vendor/rails/railties/guides/source/contribute.textile +71 -0
  1475. data/spec/assets/testapp/vendor/rails/railties/guides/source/contributing_to_rails.textile +239 -0
  1476. data/spec/assets/testapp/vendor/rails/railties/guides/source/credits.erb.textile +52 -0
  1477. data/spec/assets/testapp/vendor/rails/railties/guides/source/debugging_rails_applications.textile +709 -0
  1478. data/spec/assets/testapp/vendor/rails/railties/guides/source/form_helpers.textile +766 -0
  1479. data/spec/assets/testapp/vendor/rails/railties/guides/source/getting_started.textile +1297 -0
  1480. data/spec/assets/testapp/vendor/rails/railties/guides/source/i18n.textile +912 -0
  1481. data/spec/assets/testapp/vendor/rails/railties/guides/source/index.erb.textile +124 -0
  1482. data/spec/assets/testapp/vendor/rails/railties/guides/source/layout.html.erb +103 -0
  1483. data/spec/assets/testapp/vendor/rails/railties/guides/source/layouts_and_rendering.textile +979 -0
  1484. data/spec/assets/testapp/vendor/rails/railties/guides/source/migrations.textile +591 -0
  1485. data/spec/assets/testapp/vendor/rails/railties/guides/source/nested_model_forms.textile +222 -0
  1486. data/spec/assets/testapp/vendor/rails/railties/guides/source/performance_testing.textile +531 -0
  1487. data/spec/assets/testapp/vendor/rails/railties/guides/source/plugins.textile +1512 -0
  1488. data/spec/assets/testapp/vendor/rails/railties/guides/source/rails_on_rack.textile +309 -0
  1489. data/spec/assets/testapp/vendor/rails/railties/guides/source/routing.textile +903 -0
  1490. data/spec/assets/testapp/vendor/rails/railties/guides/source/security.textile +986 -0
  1491. data/spec/assets/testapp/vendor/rails/railties/guides/source/testing.textile +951 -0
  1492. data/spec/assets/testapp/vendor/rails/railties/helpers/application_controller.rb +10 -0
  1493. data/spec/assets/testapp/vendor/rails/railties/helpers/application_helper.rb +3 -0
  1494. data/spec/assets/testapp/vendor/rails/railties/helpers/performance_test.rb +9 -0
  1495. data/spec/assets/testapp/vendor/rails/railties/helpers/test_helper.rb +38 -0
  1496. data/spec/assets/testapp/vendor/rails/railties/html/404.html +30 -0
  1497. data/spec/assets/testapp/vendor/rails/railties/html/422.html +30 -0
  1498. data/spec/assets/testapp/vendor/rails/railties/html/500.html +30 -0
  1499. data/spec/assets/testapp/vendor/rails/railties/html/favicon.ico +0 -0
  1500. data/spec/assets/testapp/vendor/rails/railties/html/images/rails.png +0 -0
  1501. data/spec/assets/testapp/vendor/rails/railties/html/index.html +275 -0
  1502. data/spec/assets/testapp/vendor/rails/railties/html/javascripts/application.js +2 -0
  1503. data/spec/assets/testapp/vendor/rails/railties/html/javascripts/controls.js +963 -0
  1504. data/spec/assets/testapp/vendor/rails/railties/html/javascripts/dragdrop.js +973 -0
  1505. data/spec/assets/testapp/vendor/rails/railties/html/javascripts/effects.js +1128 -0
  1506. data/spec/assets/testapp/vendor/rails/railties/html/javascripts/prototype.js +4320 -0
  1507. data/spec/assets/testapp/vendor/rails/railties/html/robots.txt +5 -0
  1508. data/spec/assets/testapp/vendor/rails/railties/lib/code_statistics.rb +107 -0
  1509. data/spec/assets/testapp/vendor/rails/railties/lib/commands/about.rb +3 -0
  1510. data/spec/assets/testapp/vendor/rails/railties/lib/commands/console.rb +45 -0
  1511. data/spec/assets/testapp/vendor/rails/railties/lib/commands/dbconsole.rb +87 -0
  1512. data/spec/assets/testapp/vendor/rails/railties/lib/commands/destroy.rb +6 -0
  1513. data/spec/assets/testapp/vendor/rails/railties/lib/commands/generate.rb +6 -0
  1514. data/spec/assets/testapp/vendor/rails/railties/lib/commands/ncgi/listener +86 -0
  1515. data/spec/assets/testapp/vendor/rails/railties/lib/commands/ncgi/tracker +69 -0
  1516. data/spec/assets/testapp/vendor/rails/railties/lib/commands/performance/benchmarker.rb +24 -0
  1517. data/spec/assets/testapp/vendor/rails/railties/lib/commands/performance/profiler.rb +50 -0
  1518. data/spec/assets/testapp/vendor/rails/railties/lib/commands/plugin.rb +968 -0
  1519. data/spec/assets/testapp/vendor/rails/railties/lib/commands/runner.rb +54 -0
  1520. data/spec/assets/testapp/vendor/rails/railties/lib/commands/server.rb +114 -0
  1521. data/spec/assets/testapp/vendor/rails/railties/lib/commands/update.rb +4 -0
  1522. data/spec/assets/testapp/vendor/rails/railties/lib/commands.rb +17 -0
  1523. data/spec/assets/testapp/vendor/rails/railties/lib/console_app.rb +30 -0
  1524. data/spec/assets/testapp/vendor/rails/railties/lib/console_sandbox.rb +6 -0
  1525. data/spec/assets/testapp/vendor/rails/railties/lib/console_with_helpers.rb +5 -0
  1526. data/spec/assets/testapp/vendor/rails/railties/lib/dispatcher.rb +24 -0
  1527. data/spec/assets/testapp/vendor/rails/railties/lib/fcgi_handler.rb +239 -0
  1528. data/spec/assets/testapp/vendor/rails/railties/lib/initializer.rb +1128 -0
  1529. data/spec/assets/testapp/vendor/rails/railties/lib/performance_test_help.rb +5 -0
  1530. data/spec/assets/testapp/vendor/rails/railties/lib/rails/backtrace_cleaner.rb +54 -0
  1531. data/spec/assets/testapp/vendor/rails/railties/lib/rails/gem_builder.rb +21 -0
  1532. data/spec/assets/testapp/vendor/rails/railties/lib/rails/gem_dependency.rb +311 -0
  1533. data/spec/assets/testapp/vendor/rails/railties/lib/rails/plugin/loader.rb +198 -0
  1534. data/spec/assets/testapp/vendor/rails/railties/lib/rails/plugin/locator.rb +100 -0
  1535. data/spec/assets/testapp/vendor/rails/railties/lib/rails/plugin.rb +179 -0
  1536. data/spec/assets/testapp/vendor/rails/railties/lib/rails/rack/debugger.rb +21 -0
  1537. data/spec/assets/testapp/vendor/rails/railties/lib/rails/rack/log_tailer.rb +35 -0
  1538. data/spec/assets/testapp/vendor/rails/railties/lib/rails/rack/metal.rb +51 -0
  1539. data/spec/assets/testapp/vendor/rails/railties/lib/rails/rack/static.rb +46 -0
  1540. data/spec/assets/testapp/vendor/rails/railties/lib/rails/rack.rb +8 -0
  1541. data/spec/assets/testapp/vendor/rails/railties/lib/rails/vendor_gem_source_index.rb +140 -0
  1542. data/spec/assets/testapp/vendor/rails/railties/lib/rails/version.rb +9 -0
  1543. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/base.rb +266 -0
  1544. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/commands.rb +621 -0
  1545. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generated_attribute.rb +46 -0
  1546. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/applications/app/USAGE +9 -0
  1547. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/applications/app/app_generator.rb +263 -0
  1548. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/applications/app/scm/git.rb +18 -0
  1549. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/applications/app/scm/scm.rb +8 -0
  1550. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/applications/app/scm/svn.rb +7 -0
  1551. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/applications/app/template_runner.rb +401 -0
  1552. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/controller/USAGE +30 -0
  1553. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/controller/controller_generator.rb +43 -0
  1554. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/controller.rb +7 -0
  1555. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/functional_test.rb +8 -0
  1556. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/helper.rb +2 -0
  1557. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/helper_test.rb +4 -0
  1558. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/view.html.erb +2 -0
  1559. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/helper/USAGE +24 -0
  1560. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/helper/helper_generator.rb +25 -0
  1561. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/helper/templates/helper.rb +2 -0
  1562. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/helper/templates/helper_test.rb +4 -0
  1563. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/integration_test/USAGE +8 -0
  1564. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/integration_test/integration_test_generator.rb +16 -0
  1565. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/integration_test/templates/integration_test.rb +10 -0
  1566. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/mailer/USAGE +16 -0
  1567. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/mailer/mailer_generator.rb +30 -0
  1568. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/fixture.erb +3 -0
  1569. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/fixture.rhtml +0 -0
  1570. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/mailer.rb +15 -0
  1571. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/unit_test.rb +20 -0
  1572. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/view.erb +3 -0
  1573. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/view.rhtml +0 -0
  1574. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/metal/USAGE +8 -0
  1575. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/metal/metal_generator.rb +8 -0
  1576. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/metal/templates/metal.rb +12 -0
  1577. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/migration/USAGE +29 -0
  1578. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/migration/migration_generator.rb +20 -0
  1579. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/migration/templates/migration.rb +11 -0
  1580. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/model/USAGE +27 -0
  1581. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/model/model_generator.rb +52 -0
  1582. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/model/templates/fixtures.yml +19 -0
  1583. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/model/templates/migration.rb +16 -0
  1584. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/model/templates/model.rb +5 -0
  1585. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/model/templates/unit_test.rb +8 -0
  1586. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/observer/USAGE +13 -0
  1587. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/observer/observer_generator.rb +16 -0
  1588. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/observer/templates/observer.rb +2 -0
  1589. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/observer/templates/unit_test.rb +8 -0
  1590. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/performance_test/USAGE +8 -0
  1591. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/performance_test/performance_test_generator.rb +16 -0
  1592. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/performance_test/templates/performance_test.rb +9 -0
  1593. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/plugin/USAGE +25 -0
  1594. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/plugin/plugin_generator.rb +39 -0
  1595. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/MIT-LICENSE +20 -0
  1596. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/README +13 -0
  1597. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/Rakefile +23 -0
  1598. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/USAGE +8 -0
  1599. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/generator.rb +8 -0
  1600. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/init.rb +1 -0
  1601. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/install.rb +1 -0
  1602. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/plugin.rb +1 -0
  1603. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/tasks.rake +4 -0
  1604. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/test_helper.rb +3 -0
  1605. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/uninstall.rb +1 -0
  1606. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/unit_test.rb +8 -0
  1607. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/resource/USAGE +23 -0
  1608. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/resource/resource_generator.rb +76 -0
  1609. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/controller.rb +2 -0
  1610. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/functional_test.rb +8 -0
  1611. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/helper.rb +2 -0
  1612. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/helper_test.rb +4 -0
  1613. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/USAGE +29 -0
  1614. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/scaffold_generator.rb +103 -0
  1615. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/controller.rb +85 -0
  1616. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/functional_test.rb +45 -0
  1617. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/helper.rb +2 -0
  1618. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/helper_test.rb +4 -0
  1619. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/layout.html.erb +17 -0
  1620. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/style.css +54 -0
  1621. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_edit.html.erb +18 -0
  1622. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_index.html.erb +24 -0
  1623. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_new.html.erb +17 -0
  1624. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_show.html.erb +10 -0
  1625. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/session_migration/USAGE +10 -0
  1626. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/session_migration/session_migration_generator.rb +18 -0
  1627. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/generators/components/session_migration/templates/migration.rb +16 -0
  1628. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/lookup.rb +249 -0
  1629. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/manifest.rb +53 -0
  1630. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/options.rb +150 -0
  1631. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/scripts/destroy.rb +29 -0
  1632. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/scripts/generate.rb +7 -0
  1633. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/scripts/update.rb +12 -0
  1634. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/scripts.rb +89 -0
  1635. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/secret_key_generator.rb +24 -0
  1636. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/simple_logger.rb +46 -0
  1637. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator/spec.rb +44 -0
  1638. data/spec/assets/testapp/vendor/rails/railties/lib/rails_generator.rb +43 -0
  1639. data/spec/assets/testapp/vendor/rails/railties/lib/railties_path.rb +1 -0
  1640. data/spec/assets/testapp/vendor/rails/railties/lib/ruby_version_check.rb +17 -0
  1641. data/spec/assets/testapp/vendor/rails/railties/lib/rubyprof_ext.rb +35 -0
  1642. data/spec/assets/testapp/vendor/rails/railties/lib/source_annotation_extractor.rb +102 -0
  1643. data/spec/assets/testapp/vendor/rails/railties/lib/tasks/annotations.rake +20 -0
  1644. data/spec/assets/testapp/vendor/rails/railties/lib/tasks/databases.rake +436 -0
  1645. data/spec/assets/testapp/vendor/rails/railties/lib/tasks/documentation.rake +88 -0
  1646. data/spec/assets/testapp/vendor/rails/railties/lib/tasks/framework.rake +143 -0
  1647. data/spec/assets/testapp/vendor/rails/railties/lib/tasks/gems.rake +78 -0
  1648. data/spec/assets/testapp/vendor/rails/railties/lib/tasks/log.rake +9 -0
  1649. data/spec/assets/testapp/vendor/rails/railties/lib/tasks/middleware.rake +7 -0
  1650. data/spec/assets/testapp/vendor/rails/railties/lib/tasks/misc.rake +63 -0
  1651. data/spec/assets/testapp/vendor/rails/railties/lib/tasks/rails.rb +8 -0
  1652. data/spec/assets/testapp/vendor/rails/railties/lib/tasks/routes.rake +18 -0
  1653. data/spec/assets/testapp/vendor/rails/railties/lib/tasks/statistics.rake +17 -0
  1654. data/spec/assets/testapp/vendor/rails/railties/lib/tasks/testing.rake +139 -0
  1655. data/spec/assets/testapp/vendor/rails/railties/lib/tasks/tmp.rake +37 -0
  1656. data/spec/assets/testapp/vendor/rails/railties/lib/test_help.rb +38 -0
  1657. data/spec/assets/testapp/vendor/rails/railties/lib/webrick_server.rb +156 -0
  1658. data/spec/dependencies_spec.rb +8 -0
  1659. data/spec/gemstreamer_spec.rb +7 -0
  1660. data/spec/publisher_spec.rb +10 -0
  1661. data/spec/spec_helper.rb +6 -0
  1662. metadata +2817 -0
@@ -0,0 +1,2152 @@
1
+ require "cases/helper"
2
+ require 'models/post'
3
+ require 'models/author'
4
+ require 'models/topic'
5
+ require 'models/reply'
6
+ require 'models/category'
7
+ require 'models/company'
8
+ require 'models/customer'
9
+ require 'models/developer'
10
+ require 'models/project'
11
+ require 'models/default'
12
+ require 'models/auto_id'
13
+ require 'models/column_name'
14
+ require 'models/subscriber'
15
+ require 'models/keyboard'
16
+ require 'models/comment'
17
+ require 'models/minimalistic'
18
+ require 'models/warehouse_thing'
19
+ require 'models/parrot'
20
+ require 'rexml/document'
21
+
22
+ class Category < ActiveRecord::Base; end
23
+ class Categorization < ActiveRecord::Base; end
24
+ class Smarts < ActiveRecord::Base; end
25
+ class CreditCard < ActiveRecord::Base
26
+ class PinNumber < ActiveRecord::Base
27
+ class CvvCode < ActiveRecord::Base; end
28
+ class SubCvvCode < CvvCode; end
29
+ end
30
+ class SubPinNumber < PinNumber; end
31
+ class Brand < Category; end
32
+ end
33
+ class MasterCreditCard < ActiveRecord::Base; end
34
+ class Post < ActiveRecord::Base; end
35
+ class Computer < ActiveRecord::Base; end
36
+ class NonExistentTable < ActiveRecord::Base; end
37
+ class TestOracleDefault < ActiveRecord::Base; end
38
+
39
+ class LoosePerson < ActiveRecord::Base
40
+ self.table_name = 'people'
41
+ self.abstract_class = true
42
+ attr_protected :credit_rating, :administrator
43
+ end
44
+
45
+ class LooseDescendant < LoosePerson
46
+ attr_protected :phone_number
47
+ end
48
+
49
+ class LooseDescendantSecond< LoosePerson
50
+ attr_protected :phone_number
51
+ attr_protected :name
52
+ end
53
+
54
+ class TightPerson < ActiveRecord::Base
55
+ self.table_name = 'people'
56
+ attr_accessible :name, :address
57
+ end
58
+
59
+ class TightDescendant < TightPerson
60
+ attr_accessible :phone_number
61
+ end
62
+
63
+ class ReadonlyTitlePost < Post
64
+ attr_readonly :title
65
+ end
66
+
67
+ class Booleantest < ActiveRecord::Base; end
68
+
69
+ class Task < ActiveRecord::Base
70
+ attr_protected :starting
71
+ end
72
+
73
+ class TopicWithProtectedContentAndAccessibleAuthorName < ActiveRecord::Base
74
+ self.table_name = 'topics'
75
+ attr_accessible :author_name
76
+ attr_protected :content
77
+ end
78
+
79
+ class BasicsTest < ActiveRecord::TestCase
80
+ fixtures :topics, :companies, :developers, :projects, :computers, :accounts, :minimalistics, 'warehouse-things', :authors, :categorizations, :categories, :posts
81
+
82
+ def test_table_exists
83
+ assert !NonExistentTable.table_exists?
84
+ assert Topic.table_exists?
85
+ end
86
+
87
+ def test_set_attributes
88
+ topic = Topic.find(1)
89
+ topic.attributes = { "title" => "Budget", "author_name" => "Jason" }
90
+ topic.save
91
+ assert_equal("Budget", topic.title)
92
+ assert_equal("Jason", topic.author_name)
93
+ assert_equal(topics(:first).author_email_address, Topic.find(1).author_email_address)
94
+ end
95
+
96
+ def test_integers_as_nil
97
+ test = AutoId.create('value' => '')
98
+ assert_nil AutoId.find(test.id).value
99
+ end
100
+
101
+ def test_set_attributes_with_block
102
+ topic = Topic.new do |t|
103
+ t.title = "Budget"
104
+ t.author_name = "Jason"
105
+ end
106
+
107
+ assert_equal("Budget", topic.title)
108
+ assert_equal("Jason", topic.author_name)
109
+ end
110
+
111
+ def test_respond_to?
112
+ topic = Topic.find(1)
113
+ assert topic.respond_to?("title")
114
+ assert topic.respond_to?("title?")
115
+ assert topic.respond_to?("title=")
116
+ assert topic.respond_to?(:title)
117
+ assert topic.respond_to?(:title?)
118
+ assert topic.respond_to?(:title=)
119
+ assert topic.respond_to?("author_name")
120
+ assert topic.respond_to?("attribute_names")
121
+ assert !topic.respond_to?("nothingness")
122
+ assert !topic.respond_to?(:nothingness)
123
+ end
124
+
125
+ def test_array_content
126
+ topic = Topic.new
127
+ topic.content = %w( one two three )
128
+ topic.save
129
+
130
+ assert_equal(%w( one two three ), Topic.find(topic.id).content)
131
+ end
132
+
133
+ def test_read_attributes_before_type_cast
134
+ category = Category.new({:name=>"Test categoty", :type => nil})
135
+ category_attrs = {"name"=>"Test categoty", "type" => nil, "categorizations_count" => nil}
136
+ assert_equal category_attrs , category.attributes_before_type_cast
137
+ end
138
+
139
+ if current_adapter?(:MysqlAdapter)
140
+ def test_read_attributes_before_type_cast_on_boolean
141
+ bool = Booleantest.create({ "value" => false })
142
+ assert_equal "0", bool.reload.attributes_before_type_cast["value"]
143
+ end
144
+ end
145
+
146
+ def test_read_attributes_before_type_cast_on_datetime
147
+ developer = Developer.find(:first)
148
+ assert_equal developer.created_at.to_s(:db) , developer.attributes_before_type_cast["created_at"]
149
+ end
150
+
151
+ def test_hash_content
152
+ topic = Topic.new
153
+ topic.content = { "one" => 1, "two" => 2 }
154
+ topic.save
155
+
156
+ assert_equal 2, Topic.find(topic.id).content["two"]
157
+
158
+ topic.content_will_change!
159
+ topic.content["three"] = 3
160
+ topic.save
161
+
162
+ assert_equal 3, Topic.find(topic.id).content["three"]
163
+ end
164
+
165
+ def test_update_array_content
166
+ topic = Topic.new
167
+ topic.content = %w( one two three )
168
+
169
+ topic.content.push "four"
170
+ assert_equal(%w( one two three four ), topic.content)
171
+
172
+ topic.save
173
+
174
+ topic = Topic.find(topic.id)
175
+ topic.content << "five"
176
+ assert_equal(%w( one two three four five ), topic.content)
177
+ end
178
+
179
+ def test_case_sensitive_attributes_hash
180
+ # DB2 is not case-sensitive
181
+ return true if current_adapter?(:DB2Adapter)
182
+
183
+ assert_equal @loaded_fixtures['computers']['workstation'].to_hash, Computer.find(:first).attributes
184
+ end
185
+
186
+ def test_create
187
+ topic = Topic.new
188
+ topic.title = "New Topic"
189
+ topic.save
190
+ topic_reloaded = Topic.find(topic.id)
191
+ assert_equal("New Topic", topic_reloaded.title)
192
+ end
193
+
194
+ def test_save!
195
+ topic = Topic.new(:title => "New Topic")
196
+ assert topic.save!
197
+
198
+ reply = Reply.new
199
+ assert_raise(ActiveRecord::RecordInvalid) { reply.save! }
200
+ end
201
+
202
+ def test_save_null_string_attributes
203
+ topic = Topic.find(1)
204
+ topic.attributes = { "title" => "null", "author_name" => "null" }
205
+ topic.save!
206
+ topic.reload
207
+ assert_equal("null", topic.title)
208
+ assert_equal("null", topic.author_name)
209
+ end
210
+
211
+ def test_save_nil_string_attributes
212
+ topic = Topic.find(1)
213
+ topic.title = nil
214
+ topic.save!
215
+ topic.reload
216
+ assert_nil topic.title
217
+ end
218
+
219
+ def test_save_for_record_with_only_primary_key
220
+ minimalistic = Minimalistic.new
221
+ assert_nothing_raised { minimalistic.save }
222
+ end
223
+
224
+ def test_save_for_record_with_only_primary_key_that_is_provided
225
+ assert_nothing_raised { Minimalistic.create!(:id => 2) }
226
+ end
227
+
228
+ def test_hashes_not_mangled
229
+ new_topic = { :title => "New Topic" }
230
+ new_topic_values = { :title => "AnotherTopic" }
231
+
232
+ topic = Topic.new(new_topic)
233
+ assert_equal new_topic[:title], topic.title
234
+
235
+ topic.attributes= new_topic_values
236
+ assert_equal new_topic_values[:title], topic.title
237
+ end
238
+
239
+ def test_create_many
240
+ topics = Topic.create([ { "title" => "first" }, { "title" => "second" }])
241
+ assert_equal 2, topics.size
242
+ assert_equal "first", topics.first.title
243
+ end
244
+
245
+ def test_create_columns_not_equal_attributes
246
+ topic = Topic.new
247
+ topic.title = 'Another New Topic'
248
+ topic.send :write_attribute, 'does_not_exist', 'test'
249
+ assert_nothing_raised { topic.save }
250
+ end
251
+
252
+ def test_create_through_factory
253
+ topic = Topic.create("title" => "New Topic")
254
+ topicReloaded = Topic.find(topic.id)
255
+ assert_equal(topic, topicReloaded)
256
+ end
257
+
258
+ def test_create_through_factory_with_block
259
+ topic = Topic.create("title" => "New Topic") do |t|
260
+ t.author_name = "David"
261
+ end
262
+ topicReloaded = Topic.find(topic.id)
263
+ assert_equal("New Topic", topic.title)
264
+ assert_equal("David", topic.author_name)
265
+ end
266
+
267
+ def test_create_many_through_factory_with_block
268
+ topics = Topic.create([ { "title" => "first" }, { "title" => "second" }]) do |t|
269
+ t.author_name = "David"
270
+ end
271
+ assert_equal 2, topics.size
272
+ topic1, topic2 = Topic.find(topics[0].id), Topic.find(topics[1].id)
273
+ assert_equal "first", topic1.title
274
+ assert_equal "David", topic1.author_name
275
+ assert_equal "second", topic2.title
276
+ assert_equal "David", topic2.author_name
277
+ end
278
+
279
+ def test_update
280
+ topic = Topic.new
281
+ topic.title = "Another New Topic"
282
+ topic.written_on = "2003-12-12 23:23:00"
283
+ topic.save
284
+ topicReloaded = Topic.find(topic.id)
285
+ assert_equal("Another New Topic", topicReloaded.title)
286
+
287
+ topicReloaded.title = "Updated topic"
288
+ topicReloaded.save
289
+
290
+ topicReloadedAgain = Topic.find(topic.id)
291
+
292
+ assert_equal("Updated topic", topicReloadedAgain.title)
293
+ end
294
+
295
+ def test_update_columns_not_equal_attributes
296
+ topic = Topic.new
297
+ topic.title = "Still another topic"
298
+ topic.save
299
+
300
+ topicReloaded = Topic.find(topic.id)
301
+ topicReloaded.title = "A New Topic"
302
+ topicReloaded.send :write_attribute, 'does_not_exist', 'test'
303
+ assert_nothing_raised { topicReloaded.save }
304
+ end
305
+
306
+ def test_update_for_record_with_only_primary_key
307
+ minimalistic = minimalistics(:first)
308
+ assert_nothing_raised { minimalistic.save }
309
+ end
310
+
311
+ def test_write_attribute
312
+ topic = Topic.new
313
+ topic.send(:write_attribute, :title, "Still another topic")
314
+ assert_equal "Still another topic", topic.title
315
+
316
+ topic.send(:write_attribute, "title", "Still another topic: part 2")
317
+ assert_equal "Still another topic: part 2", topic.title
318
+ end
319
+
320
+ def test_read_attribute
321
+ topic = Topic.new
322
+ topic.title = "Don't change the topic"
323
+ assert_equal "Don't change the topic", topic.send(:read_attribute, "title")
324
+ assert_equal "Don't change the topic", topic["title"]
325
+
326
+ assert_equal "Don't change the topic", topic.send(:read_attribute, :title)
327
+ assert_equal "Don't change the topic", topic[:title]
328
+ end
329
+
330
+ def test_read_attribute_when_false
331
+ topic = topics(:first)
332
+ topic.approved = false
333
+ assert !topic.approved?, "approved should be false"
334
+ topic.approved = "false"
335
+ assert !topic.approved?, "approved should be false"
336
+ end
337
+
338
+ def test_read_attribute_when_true
339
+ topic = topics(:first)
340
+ topic.approved = true
341
+ assert topic.approved?, "approved should be true"
342
+ topic.approved = "true"
343
+ assert topic.approved?, "approved should be true"
344
+ end
345
+
346
+ def test_read_write_boolean_attribute
347
+ topic = Topic.new
348
+ # puts ""
349
+ # puts "New Topic"
350
+ # puts topic.inspect
351
+ topic.approved = "false"
352
+ # puts "Expecting false"
353
+ # puts topic.inspect
354
+ assert !topic.approved?, "approved should be false"
355
+ topic.approved = "false"
356
+ # puts "Expecting false"
357
+ # puts topic.inspect
358
+ assert !topic.approved?, "approved should be false"
359
+ topic.approved = "true"
360
+ # puts "Expecting true"
361
+ # puts topic.inspect
362
+ assert topic.approved?, "approved should be true"
363
+ topic.approved = "true"
364
+ # puts "Expecting true"
365
+ # puts topic.inspect
366
+ assert topic.approved?, "approved should be true"
367
+ # puts ""
368
+ end
369
+
370
+ def test_query_attribute_string
371
+ [nil, "", " "].each do |value|
372
+ assert_equal false, Topic.new(:author_name => value).author_name?
373
+ end
374
+
375
+ assert_equal true, Topic.new(:author_name => "Name").author_name?
376
+ end
377
+
378
+ def test_query_attribute_number
379
+ [nil, 0, "0"].each do |value|
380
+ assert_equal false, Developer.new(:salary => value).salary?
381
+ end
382
+
383
+ assert_equal true, Developer.new(:salary => 1).salary?
384
+ assert_equal true, Developer.new(:salary => "1").salary?
385
+ end
386
+
387
+ def test_query_attribute_boolean
388
+ [nil, "", false, "false", "f", 0].each do |value|
389
+ assert_equal false, Topic.new(:approved => value).approved?
390
+ end
391
+
392
+ [true, "true", "1", 1].each do |value|
393
+ assert_equal true, Topic.new(:approved => value).approved?
394
+ end
395
+ end
396
+
397
+ def test_query_attribute_with_custom_fields
398
+ object = Company.find_by_sql(<<-SQL).first
399
+ SELECT c1.*, c2.ruby_type as string_value, c2.rating as int_value
400
+ FROM companies c1, companies c2
401
+ WHERE c1.firm_id = c2.id
402
+ AND c1.id = 2
403
+ SQL
404
+
405
+ assert_equal "Firm", object.string_value
406
+ assert object.string_value?
407
+
408
+ object.string_value = " "
409
+ assert !object.string_value?
410
+
411
+ assert_equal 1, object.int_value.to_i
412
+ assert object.int_value?
413
+
414
+ object.int_value = "0"
415
+ assert !object.int_value?
416
+ end
417
+
418
+
419
+ def test_reader_for_invalid_column_names
420
+ Topic.send(:define_read_method, "mumub-jumbo".to_sym, "mumub-jumbo", nil)
421
+ assert !Topic.generated_methods.include?("mumub-jumbo")
422
+ end
423
+
424
+ def test_non_attribute_access_and_assignment
425
+ topic = Topic.new
426
+ assert !topic.respond_to?("mumbo")
427
+ assert_raise(NoMethodError) { topic.mumbo }
428
+ assert_raise(NoMethodError) { topic.mumbo = 5 }
429
+ end
430
+
431
+ def test_preserving_date_objects
432
+ if current_adapter?(:SybaseAdapter, :OracleAdapter)
433
+ # Sybase ctlib does not (yet?) support the date type; use datetime instead.
434
+ # Oracle treats all dates/times as Time.
435
+ assert_kind_of(
436
+ Time, Topic.find(1).last_read,
437
+ "The last_read attribute should be of the Time class"
438
+ )
439
+ else
440
+ assert_kind_of(
441
+ Date, Topic.find(1).last_read,
442
+ "The last_read attribute should be of the Date class"
443
+ )
444
+ end
445
+ end
446
+
447
+ def test_preserving_time_objects
448
+ assert_kind_of(
449
+ Time, Topic.find(1).bonus_time,
450
+ "The bonus_time attribute should be of the Time class"
451
+ )
452
+
453
+ assert_kind_of(
454
+ Time, Topic.find(1).written_on,
455
+ "The written_on attribute should be of the Time class"
456
+ )
457
+
458
+ # For adapters which support microsecond resolution.
459
+ if current_adapter?(:PostgreSQLAdapter)
460
+ assert_equal 11, Topic.find(1).written_on.sec
461
+ assert_equal 223300, Topic.find(1).written_on.usec
462
+ assert_equal 9900, Topic.find(2).written_on.usec
463
+ end
464
+ end
465
+
466
+ def test_custom_mutator
467
+ topic = Topic.find(1)
468
+ # This mutator is protected in the class definition
469
+ topic.send(:approved=, true)
470
+ assert topic.instance_variable_get("@custom_approved")
471
+ end
472
+
473
+ def test_delete
474
+ topic = Topic.find(1)
475
+ assert_equal topic, topic.delete, 'topic.delete did not return self'
476
+ assert topic.frozen?, 'topic not frozen after delete'
477
+ assert_raise(ActiveRecord::RecordNotFound) { Topic.find(topic.id) }
478
+ end
479
+
480
+ def test_delete_doesnt_run_callbacks
481
+ Topic.find(1).delete
482
+ assert_not_nil Topic.find(2)
483
+ end
484
+
485
+ def test_destroy
486
+ topic = Topic.find(1)
487
+ assert_equal topic, topic.destroy, 'topic.destroy did not return self'
488
+ assert topic.frozen?, 'topic not frozen after destroy'
489
+ assert_raise(ActiveRecord::RecordNotFound) { Topic.find(topic.id) }
490
+ end
491
+
492
+ def test_record_not_found_exception
493
+ assert_raise(ActiveRecord::RecordNotFound) { topicReloaded = Topic.find(99999) }
494
+ end
495
+
496
+ def test_initialize_with_attributes
497
+ topic = Topic.new({
498
+ "title" => "initialized from attributes", "written_on" => "2003-12-12 23:23"
499
+ })
500
+
501
+ assert_equal("initialized from attributes", topic.title)
502
+ end
503
+
504
+ def test_initialize_with_invalid_attribute
505
+ begin
506
+ topic = Topic.new({ "title" => "test",
507
+ "last_read(1i)" => "2005", "last_read(2i)" => "2", "last_read(3i)" => "31"})
508
+ rescue ActiveRecord::MultiparameterAssignmentErrors => ex
509
+ assert_equal(1, ex.errors.size)
510
+ assert_equal("last_read", ex.errors[0].attribute)
511
+ end
512
+ end
513
+
514
+ def test_load
515
+ topics = Topic.find(:all, :order => 'id')
516
+ assert_equal(4, topics.size)
517
+ assert_equal(topics(:first).title, topics.first.title)
518
+ end
519
+
520
+ def test_load_with_condition
521
+ topics = Topic.find(:all, :conditions => "author_name = 'Mary'")
522
+
523
+ assert_equal(1, topics.size)
524
+ assert_equal(topics(:second).title, topics.first.title)
525
+ end
526
+
527
+ def test_table_name_guesses
528
+ classes = [Category, Smarts, CreditCard, CreditCard::PinNumber, CreditCard::PinNumber::CvvCode, CreditCard::SubPinNumber, CreditCard::Brand, MasterCreditCard]
529
+
530
+ assert_equal "topics", Topic.table_name
531
+
532
+ assert_equal "categories", Category.table_name
533
+ assert_equal "smarts", Smarts.table_name
534
+ assert_equal "credit_cards", CreditCard.table_name
535
+ assert_equal "credit_card_pin_numbers", CreditCard::PinNumber.table_name
536
+ assert_equal "credit_card_pin_number_cvv_codes", CreditCard::PinNumber::CvvCode.table_name
537
+ assert_equal "credit_card_pin_numbers", CreditCard::SubPinNumber.table_name
538
+ assert_equal "categories", CreditCard::Brand.table_name
539
+ assert_equal "master_credit_cards", MasterCreditCard.table_name
540
+
541
+ ActiveRecord::Base.pluralize_table_names = false
542
+ classes.each(&:reset_table_name)
543
+
544
+ assert_equal "category", Category.table_name
545
+ assert_equal "smarts", Smarts.table_name
546
+ assert_equal "credit_card", CreditCard.table_name
547
+ assert_equal "credit_card_pin_number", CreditCard::PinNumber.table_name
548
+ assert_equal "credit_card_pin_number_cvv_code", CreditCard::PinNumber::CvvCode.table_name
549
+ assert_equal "credit_card_pin_number", CreditCard::SubPinNumber.table_name
550
+ assert_equal "category", CreditCard::Brand.table_name
551
+ assert_equal "master_credit_card", MasterCreditCard.table_name
552
+
553
+ ActiveRecord::Base.pluralize_table_names = true
554
+ classes.each(&:reset_table_name)
555
+
556
+ ActiveRecord::Base.table_name_prefix = "test_"
557
+ Category.reset_table_name
558
+ assert_equal "test_categories", Category.table_name
559
+ ActiveRecord::Base.table_name_suffix = "_test"
560
+ Category.reset_table_name
561
+ assert_equal "test_categories_test", Category.table_name
562
+ ActiveRecord::Base.table_name_prefix = ""
563
+ Category.reset_table_name
564
+ assert_equal "categories_test", Category.table_name
565
+ ActiveRecord::Base.table_name_suffix = ""
566
+ Category.reset_table_name
567
+ assert_equal "categories", Category.table_name
568
+
569
+ ActiveRecord::Base.pluralize_table_names = false
570
+ ActiveRecord::Base.table_name_prefix = "test_"
571
+ Category.reset_table_name
572
+ assert_equal "test_category", Category.table_name
573
+ ActiveRecord::Base.table_name_suffix = "_test"
574
+ Category.reset_table_name
575
+ assert_equal "test_category_test", Category.table_name
576
+ ActiveRecord::Base.table_name_prefix = ""
577
+ Category.reset_table_name
578
+ assert_equal "category_test", Category.table_name
579
+ ActiveRecord::Base.table_name_suffix = ""
580
+ Category.reset_table_name
581
+ assert_equal "category", Category.table_name
582
+
583
+ ActiveRecord::Base.pluralize_table_names = true
584
+ classes.each(&:reset_table_name)
585
+ end
586
+
587
+ def test_destroy_all
588
+ original_count = Topic.count
589
+ topics_by_mary = Topic.count(:conditions => mary = "author_name = 'Mary'")
590
+
591
+ Topic.destroy_all mary
592
+ assert_equal original_count - topics_by_mary, Topic.count
593
+ end
594
+
595
+ def test_destroy_many
596
+ assert_equal 3, Client.count
597
+ Client.destroy([2, 3])
598
+ assert_equal 1, Client.count
599
+ end
600
+
601
+ def test_delete_many
602
+ original_count = Topic.count
603
+ Topic.delete(deleting = [1, 2])
604
+ assert_equal original_count - deleting.size, Topic.count
605
+ end
606
+
607
+ def test_boolean_attributes
608
+ assert ! Topic.find(1).approved?
609
+ assert Topic.find(2).approved?
610
+ end
611
+
612
+ def test_increment_counter
613
+ Topic.increment_counter("replies_count", 1)
614
+ assert_equal 2, Topic.find(1).replies_count
615
+
616
+ Topic.increment_counter("replies_count", 1)
617
+ assert_equal 3, Topic.find(1).replies_count
618
+ end
619
+
620
+ def test_decrement_counter
621
+ Topic.decrement_counter("replies_count", 2)
622
+ assert_equal -1, Topic.find(2).replies_count
623
+
624
+ Topic.decrement_counter("replies_count", 2)
625
+ assert_equal -2, Topic.find(2).replies_count
626
+ end
627
+
628
+ def test_update_counter
629
+ category = categories(:general)
630
+ assert_nil category.categorizations_count
631
+ assert_equal 2, category.categorizations.count
632
+
633
+ Category.update_counters(category.id, "categorizations_count" => category.categorizations.count)
634
+ category.reload
635
+ assert_not_nil category.categorizations_count
636
+ assert_equal 2, category.categorizations_count
637
+
638
+ Category.update_counters(category.id, "categorizations_count" => category.categorizations.count)
639
+ category.reload
640
+ assert_not_nil category.categorizations_count
641
+ assert_equal 4, category.categorizations_count
642
+
643
+ category_2 = categories(:technology)
644
+ count_1, count_2 = (category.categorizations_count || 0), (category_2.categorizations_count || 0)
645
+ Category.update_counters([category.id, category_2.id], "categorizations_count" => 2)
646
+ category.reload; category_2.reload
647
+ assert_equal count_1 + 2, category.categorizations_count
648
+ assert_equal count_2 + 2, category_2.categorizations_count
649
+ end
650
+
651
+ def test_update_all
652
+ assert_equal Topic.count, Topic.update_all("content = 'bulk updated!'")
653
+ assert_equal "bulk updated!", Topic.find(1).content
654
+ assert_equal "bulk updated!", Topic.find(2).content
655
+
656
+ assert_equal Topic.count, Topic.update_all(['content = ?', 'bulk updated again!'])
657
+ assert_equal "bulk updated again!", Topic.find(1).content
658
+ assert_equal "bulk updated again!", Topic.find(2).content
659
+
660
+ assert_equal Topic.count, Topic.update_all(['content = ?', nil])
661
+ assert_nil Topic.find(1).content
662
+ end
663
+
664
+ def test_update_all_with_hash
665
+ assert_not_nil Topic.find(1).last_read
666
+ assert_equal Topic.count, Topic.update_all(:content => 'bulk updated with hash!', :last_read => nil)
667
+ assert_equal "bulk updated with hash!", Topic.find(1).content
668
+ assert_equal "bulk updated with hash!", Topic.find(2).content
669
+ assert_nil Topic.find(1).last_read
670
+ assert_nil Topic.find(2).last_read
671
+ end
672
+
673
+ def test_update_all_with_non_standard_table_name
674
+ assert_equal 1, WarehouseThing.update_all(['value = ?', 0], ['id = ?', 1])
675
+ assert_equal 0, WarehouseThing.find(1).value
676
+ end
677
+
678
+ if current_adapter?(:MysqlAdapter)
679
+ def test_update_all_with_order_and_limit
680
+ assert_equal 1, Topic.update_all("content = 'bulk updated!'", nil, :limit => 1, :order => 'id DESC')
681
+ end
682
+ end
683
+
684
+ def test_update_all_ignores_order_without_limit_from_association
685
+ author = authors(:david)
686
+ assert_nothing_raised do
687
+ assert_equal author.posts_with_comments_and_categories.length, author.posts_with_comments_and_categories.update_all([ "body = ?", "bulk update!" ])
688
+ end
689
+ end
690
+
691
+ def test_update_all_with_order_and_limit_updates_subset_only
692
+ author = authors(:david)
693
+ assert_nothing_raised do
694
+ assert_equal 1, author.posts_sorted_by_id_limited.size
695
+ assert_equal 2, author.posts_sorted_by_id_limited.find(:all, :limit => 2).size
696
+ assert_equal 1, author.posts_sorted_by_id_limited.update_all([ "body = ?", "bulk update!" ])
697
+ assert_equal "bulk update!", posts(:welcome).body
698
+ assert_not_equal "bulk update!", posts(:thinking).body
699
+ end
700
+ end
701
+
702
+ def test_update_many
703
+ topic_data = { 1 => { "content" => "1 updated" }, 2 => { "content" => "2 updated" } }
704
+ updated = Topic.update(topic_data.keys, topic_data.values)
705
+
706
+ assert_equal 2, updated.size
707
+ assert_equal "1 updated", Topic.find(1).content
708
+ assert_equal "2 updated", Topic.find(2).content
709
+ end
710
+
711
+ def test_delete_all
712
+ assert Topic.count > 0
713
+
714
+ assert_equal Topic.count, Topic.delete_all
715
+ end
716
+
717
+ def test_update_by_condition
718
+ Topic.update_all "content = 'bulk updated!'", ["approved = ?", true]
719
+ assert_equal "Have a nice day", Topic.find(1).content
720
+ assert_equal "bulk updated!", Topic.find(2).content
721
+ end
722
+
723
+ def test_attribute_present
724
+ t = Topic.new
725
+ t.title = "hello there!"
726
+ t.written_on = Time.now
727
+ assert t.attribute_present?("title")
728
+ assert t.attribute_present?("written_on")
729
+ assert !t.attribute_present?("content")
730
+ end
731
+
732
+ def test_attribute_keys_on_new_instance
733
+ t = Topic.new
734
+ assert_equal nil, t.title, "The topics table has a title column, so it should be nil"
735
+ assert_raise(NoMethodError) { t.title2 }
736
+ end
737
+
738
+ def test_class_name
739
+ assert_equal "Firm", ActiveRecord::Base.class_name("firms")
740
+ assert_equal "Category", ActiveRecord::Base.class_name("categories")
741
+ assert_equal "AccountHolder", ActiveRecord::Base.class_name("account_holder")
742
+
743
+ ActiveRecord::Base.pluralize_table_names = false
744
+ assert_equal "Firms", ActiveRecord::Base.class_name( "firms" )
745
+ ActiveRecord::Base.pluralize_table_names = true
746
+
747
+ ActiveRecord::Base.table_name_prefix = "test_"
748
+ assert_equal "Firm", ActiveRecord::Base.class_name( "test_firms" )
749
+ ActiveRecord::Base.table_name_suffix = "_tests"
750
+ assert_equal "Firm", ActiveRecord::Base.class_name( "test_firms_tests" )
751
+ ActiveRecord::Base.table_name_prefix = ""
752
+ assert_equal "Firm", ActiveRecord::Base.class_name( "firms_tests" )
753
+ ActiveRecord::Base.table_name_suffix = ""
754
+ assert_equal "Firm", ActiveRecord::Base.class_name( "firms" )
755
+ end
756
+
757
+ def test_null_fields
758
+ assert_nil Topic.find(1).parent_id
759
+ assert_nil Topic.create("title" => "Hey you").parent_id
760
+ end
761
+
762
+ def test_default_values
763
+ topic = Topic.new
764
+ assert topic.approved?
765
+ assert_nil topic.written_on
766
+ assert_nil topic.bonus_time
767
+ assert_nil topic.last_read
768
+
769
+ topic.save
770
+
771
+ topic = Topic.find(topic.id)
772
+ assert topic.approved?
773
+ assert_nil topic.last_read
774
+
775
+ # Oracle has some funky default handling, so it requires a bit of
776
+ # extra testing. See ticket #2788.
777
+ if current_adapter?(:OracleAdapter)
778
+ test = TestOracleDefault.new
779
+ assert_equal "X", test.test_char
780
+ assert_equal "hello", test.test_string
781
+ assert_equal 3, test.test_int
782
+ end
783
+ end
784
+
785
+ # Oracle, and Sybase do not have a TIME datatype.
786
+ unless current_adapter?(:OracleAdapter, :SybaseAdapter)
787
+ def test_utc_as_time_zone
788
+ Topic.default_timezone = :utc
789
+ attributes = { "bonus_time" => "5:42:00AM" }
790
+ topic = Topic.find(1)
791
+ topic.attributes = attributes
792
+ assert_equal Time.utc(2000, 1, 1, 5, 42, 0), topic.bonus_time
793
+ Topic.default_timezone = :local
794
+ end
795
+
796
+ def test_utc_as_time_zone_and_new
797
+ Topic.default_timezone = :utc
798
+ attributes = { "bonus_time(1i)"=>"2000",
799
+ "bonus_time(2i)"=>"1",
800
+ "bonus_time(3i)"=>"1",
801
+ "bonus_time(4i)"=>"10",
802
+ "bonus_time(5i)"=>"35",
803
+ "bonus_time(6i)"=>"50" }
804
+ topic = Topic.new(attributes)
805
+ assert_equal Time.utc(2000, 1, 1, 10, 35, 50), topic.bonus_time
806
+ Topic.default_timezone = :local
807
+ end
808
+ end
809
+
810
+ def test_default_values_on_empty_strings
811
+ topic = Topic.new
812
+ topic.approved = nil
813
+ topic.last_read = nil
814
+
815
+ topic.save
816
+
817
+ topic = Topic.find(topic.id)
818
+ assert_nil topic.last_read
819
+
820
+ # Sybase adapter does not allow nulls in boolean columns
821
+ if current_adapter?(:SybaseAdapter)
822
+ assert topic.approved == false
823
+ else
824
+ assert_nil topic.approved
825
+ end
826
+ end
827
+
828
+ def test_equality
829
+ assert_equal Topic.find(1), Topic.find(2).topic
830
+ end
831
+
832
+ def test_equality_of_new_records
833
+ assert_not_equal Topic.new, Topic.new
834
+ end
835
+
836
+ def test_hashing
837
+ assert_equal [ Topic.find(1) ], [ Topic.find(2).topic ] & [ Topic.find(1) ]
838
+ end
839
+
840
+ def test_delete_new_record
841
+ client = Client.new
842
+ client.delete
843
+ assert client.frozen?
844
+ end
845
+
846
+ def test_delete_record_with_associations
847
+ client = Client.find(3)
848
+ client.delete
849
+ assert client.frozen?
850
+ assert_kind_of Firm, client.firm
851
+ assert_raise(ActiveSupport::FrozenObjectError) { client.name = "something else" }
852
+ end
853
+
854
+ def test_destroy_new_record
855
+ client = Client.new
856
+ client.destroy
857
+ assert client.frozen?
858
+ end
859
+
860
+ def test_destroy_record_with_associations
861
+ client = Client.find(3)
862
+ client.destroy
863
+ assert client.frozen?
864
+ assert_kind_of Firm, client.firm
865
+ assert_raise(ActiveSupport::FrozenObjectError) { client.name = "something else" }
866
+ end
867
+
868
+ def test_update_attribute
869
+ assert !Topic.find(1).approved?
870
+ Topic.find(1).update_attribute("approved", true)
871
+ assert Topic.find(1).approved?
872
+
873
+ Topic.find(1).update_attribute(:approved, false)
874
+ assert !Topic.find(1).approved?
875
+ end
876
+
877
+ def test_update_attributes
878
+ topic = Topic.find(1)
879
+ assert !topic.approved?
880
+ assert_equal "The First Topic", topic.title
881
+
882
+ topic.update_attributes("approved" => true, "title" => "The First Topic Updated")
883
+ topic.reload
884
+ assert topic.approved?
885
+ assert_equal "The First Topic Updated", topic.title
886
+
887
+ topic.update_attributes(:approved => false, :title => "The First Topic")
888
+ topic.reload
889
+ assert !topic.approved?
890
+ assert_equal "The First Topic", topic.title
891
+ end
892
+
893
+ def test_update_attributes!
894
+ reply = Reply.find(2)
895
+ assert_equal "The Second Topic of the day", reply.title
896
+ assert_equal "Have a nice day", reply.content
897
+
898
+ reply.update_attributes!("title" => "The Second Topic of the day updated", "content" => "Have a nice evening")
899
+ reply.reload
900
+ assert_equal "The Second Topic of the day updated", reply.title
901
+ assert_equal "Have a nice evening", reply.content
902
+
903
+ reply.update_attributes!(:title => "The Second Topic of the day", :content => "Have a nice day")
904
+ reply.reload
905
+ assert_equal "The Second Topic of the day", reply.title
906
+ assert_equal "Have a nice day", reply.content
907
+
908
+ assert_raise(ActiveRecord::RecordInvalid) { reply.update_attributes!(:title => nil, :content => "Have a nice evening") }
909
+ end
910
+
911
+ def test_mass_assignment_should_raise_exception_if_accessible_and_protected_attribute_writers_are_both_used
912
+ topic = TopicWithProtectedContentAndAccessibleAuthorName.new
913
+ assert_raise(RuntimeError) { topic.attributes = { "author_name" => "me" } }
914
+ assert_raise(RuntimeError) { topic.attributes = { "content" => "stuff" } }
915
+ end
916
+
917
+ def test_mass_assignment_protection
918
+ firm = Firm.new
919
+ firm.attributes = { "name" => "Next Angle", "rating" => 5 }
920
+ assert_equal 1, firm.rating
921
+ end
922
+
923
+ def test_mass_assignment_protection_against_class_attribute_writers
924
+ [:logger, :configurations, :primary_key_prefix_type, :table_name_prefix, :table_name_suffix, :pluralize_table_names, :colorize_logging,
925
+ :default_timezone, :schema_format, :lock_optimistically, :record_timestamps].each do |method|
926
+ assert Task.respond_to?(method)
927
+ assert Task.respond_to?("#{method}=")
928
+ assert Task.new.respond_to?(method)
929
+ assert !Task.new.respond_to?("#{method}=")
930
+ end
931
+ end
932
+
933
+ def test_customized_primary_key_remains_protected
934
+ subscriber = Subscriber.new(:nick => 'webster123', :name => 'nice try')
935
+ assert_nil subscriber.id
936
+
937
+ keyboard = Keyboard.new(:key_number => 9, :name => 'nice try')
938
+ assert_nil keyboard.id
939
+ end
940
+
941
+ def test_customized_primary_key_remains_protected_when_referred_to_as_id
942
+ subscriber = Subscriber.new(:id => 'webster123', :name => 'nice try')
943
+ assert_nil subscriber.id
944
+
945
+ keyboard = Keyboard.new(:id => 9, :name => 'nice try')
946
+ assert_nil keyboard.id
947
+ end
948
+
949
+ def test_mass_assigning_invalid_attribute
950
+ firm = Firm.new
951
+
952
+ assert_raise(ActiveRecord::UnknownAttributeError) do
953
+ firm.attributes = { "id" => 5, "type" => "Client", "i_dont_even_exist" => 20 }
954
+ end
955
+ end
956
+
957
+ def test_mass_assignment_protection_on_defaults
958
+ firm = Firm.new
959
+ firm.attributes = { "id" => 5, "type" => "Client" }
960
+ assert_nil firm.id
961
+ assert_equal "Firm", firm[:type]
962
+ end
963
+
964
+ def test_mass_assignment_accessible
965
+ reply = Reply.new("title" => "hello", "content" => "world", "approved" => true)
966
+ reply.save
967
+
968
+ assert reply.approved?
969
+
970
+ reply.approved = false
971
+ reply.save
972
+
973
+ assert !reply.approved?
974
+ end
975
+
976
+ def test_mass_assignment_protection_inheritance
977
+ assert_nil LoosePerson.accessible_attributes
978
+ assert_equal Set.new([ 'credit_rating', 'administrator' ]), LoosePerson.protected_attributes
979
+
980
+ assert_nil LooseDescendant.accessible_attributes
981
+ assert_equal Set.new([ 'credit_rating', 'administrator', 'phone_number' ]), LooseDescendant.protected_attributes
982
+
983
+ assert_nil LooseDescendantSecond.accessible_attributes
984
+ assert_equal Set.new([ 'credit_rating', 'administrator', 'phone_number', 'name' ]), LooseDescendantSecond.protected_attributes, 'Running attr_protected twice in one class should merge the protections'
985
+
986
+ assert_nil TightPerson.protected_attributes
987
+ assert_equal Set.new([ 'name', 'address' ]), TightPerson.accessible_attributes
988
+
989
+ assert_nil TightDescendant.protected_attributes
990
+ assert_equal Set.new([ 'name', 'address', 'phone_number' ]), TightDescendant.accessible_attributes
991
+ end
992
+
993
+ def test_readonly_attributes
994
+ assert_equal Set.new([ 'title' , 'comments_count' ]), ReadonlyTitlePost.readonly_attributes
995
+
996
+ post = ReadonlyTitlePost.create(:title => "cannot change this", :body => "changeable")
997
+ post.reload
998
+ assert_equal "cannot change this", post.title
999
+
1000
+ post.update_attributes(:title => "try to change", :body => "changed")
1001
+ post.reload
1002
+ assert_equal "cannot change this", post.title
1003
+ assert_equal "changed", post.body
1004
+ end
1005
+
1006
+ def test_multiparameter_attributes_on_date
1007
+ attributes = { "last_read(1i)" => "2004", "last_read(2i)" => "6", "last_read(3i)" => "24" }
1008
+ topic = Topic.find(1)
1009
+ topic.attributes = attributes
1010
+ # note that extra #to_date call allows test to pass for Oracle, which
1011
+ # treats dates/times the same
1012
+ assert_date_from_db Date.new(2004, 6, 24), topic.last_read.to_date
1013
+ end
1014
+
1015
+ def test_multiparameter_attributes_on_date_with_empty_year
1016
+ attributes = { "last_read(1i)" => "", "last_read(2i)" => "6", "last_read(3i)" => "24" }
1017
+ topic = Topic.find(1)
1018
+ topic.attributes = attributes
1019
+ # note that extra #to_date call allows test to pass for Oracle, which
1020
+ # treats dates/times the same
1021
+ assert_date_from_db Date.new(1, 6, 24), topic.last_read.to_date
1022
+ end
1023
+
1024
+ def test_multiparameter_attributes_on_date_with_empty_month
1025
+ attributes = { "last_read(1i)" => "2004", "last_read(2i)" => "", "last_read(3i)" => "24" }
1026
+ topic = Topic.find(1)
1027
+ topic.attributes = attributes
1028
+ # note that extra #to_date call allows test to pass for Oracle, which
1029
+ # treats dates/times the same
1030
+ assert_date_from_db Date.new(2004, 1, 24), topic.last_read.to_date
1031
+ end
1032
+
1033
+ def test_multiparameter_attributes_on_date_with_empty_day
1034
+ attributes = { "last_read(1i)" => "2004", "last_read(2i)" => "6", "last_read(3i)" => "" }
1035
+ topic = Topic.find(1)
1036
+ topic.attributes = attributes
1037
+ # note that extra #to_date call allows test to pass for Oracle, which
1038
+ # treats dates/times the same
1039
+ assert_date_from_db Date.new(2004, 6, 1), topic.last_read.to_date
1040
+ end
1041
+
1042
+ def test_multiparameter_attributes_on_date_with_empty_day_and_year
1043
+ attributes = { "last_read(1i)" => "", "last_read(2i)" => "6", "last_read(3i)" => "" }
1044
+ topic = Topic.find(1)
1045
+ topic.attributes = attributes
1046
+ # note that extra #to_date call allows test to pass for Oracle, which
1047
+ # treats dates/times the same
1048
+ assert_date_from_db Date.new(1, 6, 1), topic.last_read.to_date
1049
+ end
1050
+
1051
+ def test_multiparameter_attributes_on_date_with_empty_day_and_month
1052
+ attributes = { "last_read(1i)" => "2004", "last_read(2i)" => "", "last_read(3i)" => "" }
1053
+ topic = Topic.find(1)
1054
+ topic.attributes = attributes
1055
+ # note that extra #to_date call allows test to pass for Oracle, which
1056
+ # treats dates/times the same
1057
+ assert_date_from_db Date.new(2004, 1, 1), topic.last_read.to_date
1058
+ end
1059
+
1060
+ def test_multiparameter_attributes_on_date_with_empty_year_and_month
1061
+ attributes = { "last_read(1i)" => "", "last_read(2i)" => "", "last_read(3i)" => "24" }
1062
+ topic = Topic.find(1)
1063
+ topic.attributes = attributes
1064
+ # note that extra #to_date call allows test to pass for Oracle, which
1065
+ # treats dates/times the same
1066
+ assert_date_from_db Date.new(1, 1, 24), topic.last_read.to_date
1067
+ end
1068
+
1069
+ def test_multiparameter_attributes_on_date_with_all_empty
1070
+ attributes = { "last_read(1i)" => "", "last_read(2i)" => "", "last_read(3i)" => "" }
1071
+ topic = Topic.find(1)
1072
+ topic.attributes = attributes
1073
+ assert_nil topic.last_read
1074
+ end
1075
+
1076
+ def test_multiparameter_attributes_on_time
1077
+ attributes = {
1078
+ "written_on(1i)" => "2004", "written_on(2i)" => "6", "written_on(3i)" => "24",
1079
+ "written_on(4i)" => "16", "written_on(5i)" => "24", "written_on(6i)" => "00"
1080
+ }
1081
+ topic = Topic.find(1)
1082
+ topic.attributes = attributes
1083
+ assert_equal Time.local(2004, 6, 24, 16, 24, 0), topic.written_on
1084
+ end
1085
+
1086
+ def test_multiparameter_attributes_on_time_with_old_date
1087
+ attributes = {
1088
+ "written_on(1i)" => "1850", "written_on(2i)" => "6", "written_on(3i)" => "24",
1089
+ "written_on(4i)" => "16", "written_on(5i)" => "24", "written_on(6i)" => "00"
1090
+ }
1091
+ topic = Topic.find(1)
1092
+ topic.attributes = attributes
1093
+ # testing against to_s(:db) representation because either a Time or a DateTime might be returned, depending on platform
1094
+ assert_equal "1850-06-24 16:24:00", topic.written_on.to_s(:db)
1095
+ end
1096
+
1097
+ def test_multiparameter_attributes_on_time_with_utc
1098
+ ActiveRecord::Base.default_timezone = :utc
1099
+ attributes = {
1100
+ "written_on(1i)" => "2004", "written_on(2i)" => "6", "written_on(3i)" => "24",
1101
+ "written_on(4i)" => "16", "written_on(5i)" => "24", "written_on(6i)" => "00"
1102
+ }
1103
+ topic = Topic.find(1)
1104
+ topic.attributes = attributes
1105
+ assert_equal Time.utc(2004, 6, 24, 16, 24, 0), topic.written_on
1106
+ ensure
1107
+ ActiveRecord::Base.default_timezone = :local
1108
+ end
1109
+
1110
+ def test_multiparameter_attributes_on_time_with_time_zone_aware_attributes
1111
+ ActiveRecord::Base.time_zone_aware_attributes = true
1112
+ ActiveRecord::Base.default_timezone = :utc
1113
+ Time.zone = ActiveSupport::TimeZone[-28800]
1114
+ attributes = {
1115
+ "written_on(1i)" => "2004", "written_on(2i)" => "6", "written_on(3i)" => "24",
1116
+ "written_on(4i)" => "16", "written_on(5i)" => "24", "written_on(6i)" => "00"
1117
+ }
1118
+ topic = Topic.find(1)
1119
+ topic.attributes = attributes
1120
+ assert_equal Time.utc(2004, 6, 24, 23, 24, 0), topic.written_on
1121
+ assert_equal Time.utc(2004, 6, 24, 16, 24, 0), topic.written_on.time
1122
+ assert_equal Time.zone, topic.written_on.time_zone
1123
+ ensure
1124
+ ActiveRecord::Base.time_zone_aware_attributes = false
1125
+ ActiveRecord::Base.default_timezone = :local
1126
+ Time.zone = nil
1127
+ end
1128
+
1129
+ def test_multiparameter_attributes_on_time_with_time_zone_aware_attributes_false
1130
+ ActiveRecord::Base.time_zone_aware_attributes = false
1131
+ Time.zone = ActiveSupport::TimeZone[-28800]
1132
+ attributes = {
1133
+ "written_on(1i)" => "2004", "written_on(2i)" => "6", "written_on(3i)" => "24",
1134
+ "written_on(4i)" => "16", "written_on(5i)" => "24", "written_on(6i)" => "00"
1135
+ }
1136
+ topic = Topic.find(1)
1137
+ topic.attributes = attributes
1138
+ assert_equal Time.local(2004, 6, 24, 16, 24, 0), topic.written_on
1139
+ assert_equal false, topic.written_on.respond_to?(:time_zone)
1140
+ ensure
1141
+ Time.zone = nil
1142
+ end
1143
+
1144
+ def test_multiparameter_attributes_on_time_with_skip_time_zone_conversion_for_attributes
1145
+ ActiveRecord::Base.time_zone_aware_attributes = true
1146
+ ActiveRecord::Base.default_timezone = :utc
1147
+ Time.zone = ActiveSupport::TimeZone[-28800]
1148
+ Topic.skip_time_zone_conversion_for_attributes = [:written_on]
1149
+ attributes = {
1150
+ "written_on(1i)" => "2004", "written_on(2i)" => "6", "written_on(3i)" => "24",
1151
+ "written_on(4i)" => "16", "written_on(5i)" => "24", "written_on(6i)" => "00"
1152
+ }
1153
+ topic = Topic.find(1)
1154
+ topic.attributes = attributes
1155
+ assert_equal Time.utc(2004, 6, 24, 16, 24, 0), topic.written_on
1156
+ assert_equal false, topic.written_on.respond_to?(:time_zone)
1157
+ ensure
1158
+ ActiveRecord::Base.time_zone_aware_attributes = false
1159
+ ActiveRecord::Base.default_timezone = :local
1160
+ Time.zone = nil
1161
+ Topic.skip_time_zone_conversion_for_attributes = []
1162
+ end
1163
+
1164
+ def test_multiparameter_attributes_on_time_only_column_with_time_zone_aware_attributes_does_not_do_time_zone_conversion
1165
+ ActiveRecord::Base.time_zone_aware_attributes = true
1166
+ ActiveRecord::Base.default_timezone = :utc
1167
+ Time.zone = ActiveSupport::TimeZone[-28800]
1168
+ attributes = {
1169
+ "bonus_time(1i)" => "2000", "bonus_time(2i)" => "1", "bonus_time(3i)" => "1",
1170
+ "bonus_time(4i)" => "16", "bonus_time(5i)" => "24"
1171
+ }
1172
+ topic = Topic.find(1)
1173
+ topic.attributes = attributes
1174
+ assert_equal Time.utc(2000, 1, 1, 16, 24, 0), topic.bonus_time
1175
+ assert topic.bonus_time.utc?
1176
+ ensure
1177
+ ActiveRecord::Base.time_zone_aware_attributes = false
1178
+ ActiveRecord::Base.default_timezone = :local
1179
+ Time.zone = nil
1180
+ end
1181
+
1182
+ def test_multiparameter_attributes_on_time_with_empty_seconds
1183
+ attributes = {
1184
+ "written_on(1i)" => "2004", "written_on(2i)" => "6", "written_on(3i)" => "24",
1185
+ "written_on(4i)" => "16", "written_on(5i)" => "24", "written_on(6i)" => ""
1186
+ }
1187
+ topic = Topic.find(1)
1188
+ topic.attributes = attributes
1189
+ assert_equal Time.local(2004, 6, 24, 16, 24, 0), topic.written_on
1190
+ end
1191
+
1192
+ def test_multiparameter_mass_assignment_protector
1193
+ task = Task.new
1194
+ time = Time.mktime(2000, 1, 1, 1)
1195
+ task.starting = time
1196
+ attributes = { "starting(1i)" => "2004", "starting(2i)" => "6", "starting(3i)" => "24" }
1197
+ task.attributes = attributes
1198
+ assert_equal time, task.starting
1199
+ end
1200
+
1201
+ def test_multiparameter_assignment_of_aggregation
1202
+ customer = Customer.new
1203
+ address = Address.new("The Street", "The City", "The Country")
1204
+ attributes = { "address(1)" => address.street, "address(2)" => address.city, "address(3)" => address.country }
1205
+ customer.attributes = attributes
1206
+ assert_equal address, customer.address
1207
+ end
1208
+
1209
+ def test_attributes_on_dummy_time
1210
+ # Oracle, and Sybase do not have a TIME datatype.
1211
+ return true if current_adapter?(:OracleAdapter, :SybaseAdapter)
1212
+
1213
+ attributes = {
1214
+ "bonus_time" => "5:42:00AM"
1215
+ }
1216
+ topic = Topic.find(1)
1217
+ topic.attributes = attributes
1218
+ assert_equal Time.local(2000, 1, 1, 5, 42, 0), topic.bonus_time
1219
+ end
1220
+
1221
+ def test_boolean
1222
+ b_nil = Booleantest.create({ "value" => nil })
1223
+ nil_id = b_nil.id
1224
+ b_false = Booleantest.create({ "value" => false })
1225
+ false_id = b_false.id
1226
+ b_true = Booleantest.create({ "value" => true })
1227
+ true_id = b_true.id
1228
+
1229
+ b_nil = Booleantest.find(nil_id)
1230
+ assert_nil b_nil.value
1231
+ b_false = Booleantest.find(false_id)
1232
+ assert !b_false.value?
1233
+ b_true = Booleantest.find(true_id)
1234
+ assert b_true.value?
1235
+ end
1236
+
1237
+ def test_boolean_cast_from_string
1238
+ b_blank = Booleantest.create({ "value" => "" })
1239
+ blank_id = b_blank.id
1240
+ b_false = Booleantest.create({ "value" => "0" })
1241
+ false_id = b_false.id
1242
+ b_true = Booleantest.create({ "value" => "1" })
1243
+ true_id = b_true.id
1244
+
1245
+ b_blank = Booleantest.find(blank_id)
1246
+ assert_nil b_blank.value
1247
+ b_false = Booleantest.find(false_id)
1248
+ assert !b_false.value?
1249
+ b_true = Booleantest.find(true_id)
1250
+ assert b_true.value?
1251
+ end
1252
+
1253
+ def test_new_record_returns_boolean
1254
+ assert_equal Topic.new.new_record?, true
1255
+ assert_equal Topic.find(1).new_record?, false
1256
+ end
1257
+
1258
+ def test_clone
1259
+ topic = Topic.find(1)
1260
+ cloned_topic = nil
1261
+ assert_nothing_raised { cloned_topic = topic.clone }
1262
+ assert_equal topic.title, cloned_topic.title
1263
+ assert cloned_topic.new_record?
1264
+
1265
+ # test if the attributes have been cloned
1266
+ topic.title = "a"
1267
+ cloned_topic.title = "b"
1268
+ assert_equal "a", topic.title
1269
+ assert_equal "b", cloned_topic.title
1270
+
1271
+ # test if the attribute values have been cloned
1272
+ topic.title = {"a" => "b"}
1273
+ cloned_topic = topic.clone
1274
+ cloned_topic.title["a"] = "c"
1275
+ assert_equal "b", topic.title["a"]
1276
+
1277
+ #test if attributes set as part of after_initialize are cloned correctly
1278
+ assert_equal topic.author_email_address, cloned_topic.author_email_address
1279
+
1280
+ # test if saved clone object differs from original
1281
+ cloned_topic.save
1282
+ assert !cloned_topic.new_record?
1283
+ assert cloned_topic.id != topic.id
1284
+ end
1285
+
1286
+ def test_clone_with_aggregate_of_same_name_as_attribute
1287
+ dev = DeveloperWithAggregate.find(1)
1288
+ assert_kind_of DeveloperSalary, dev.salary
1289
+
1290
+ clone = nil
1291
+ assert_nothing_raised { clone = dev.clone }
1292
+ assert_kind_of DeveloperSalary, clone.salary
1293
+ assert_equal dev.salary.amount, clone.salary.amount
1294
+ assert clone.new_record?
1295
+
1296
+ # test if the attributes have been cloned
1297
+ original_amount = clone.salary.amount
1298
+ dev.salary.amount = 1
1299
+ assert_equal original_amount, clone.salary.amount
1300
+
1301
+ assert clone.save
1302
+ assert !clone.new_record?
1303
+ assert clone.id != dev.id
1304
+ end
1305
+
1306
+ def test_clone_preserves_subtype
1307
+ clone = nil
1308
+ assert_nothing_raised { clone = Company.find(3).clone }
1309
+ assert_kind_of Client, clone
1310
+ end
1311
+
1312
+ def test_bignum
1313
+ company = Company.find(1)
1314
+ company.rating = 2147483647
1315
+ company.save
1316
+ company = Company.find(1)
1317
+ assert_equal 2147483647, company.rating
1318
+ end
1319
+
1320
+ # TODO: extend defaults tests to other databases!
1321
+ if current_adapter?(:PostgreSQLAdapter)
1322
+ def test_default
1323
+ default = Default.new
1324
+
1325
+ # fixed dates / times
1326
+ assert_equal Date.new(2004, 1, 1), default.fixed_date
1327
+ assert_equal Time.local(2004, 1,1,0,0,0,0), default.fixed_time
1328
+
1329
+ # char types
1330
+ assert_equal 'Y', default.char1
1331
+ assert_equal 'a varchar field', default.char2
1332
+ assert_equal 'a text field', default.char3
1333
+ end
1334
+
1335
+ class Geometric < ActiveRecord::Base; end
1336
+ def test_geometric_content
1337
+
1338
+ # accepted format notes:
1339
+ # ()'s aren't required
1340
+ # values can be a mix of float or integer
1341
+
1342
+ g = Geometric.new(
1343
+ :a_point => '(5.0, 6.1)',
1344
+ #:a_line => '((2.0, 3), (5.5, 7.0))' # line type is currently unsupported in postgresql
1345
+ :a_line_segment => '(2.0, 3), (5.5, 7.0)',
1346
+ :a_box => '2.0, 3, 5.5, 7.0',
1347
+ :a_path => '[(2.0, 3), (5.5, 7.0), (8.5, 11.0)]', # [ ] is an open path
1348
+ :a_polygon => '((2.0, 3), (5.5, 7.0), (8.5, 11.0))',
1349
+ :a_circle => '<(5.3, 10.4), 2>'
1350
+ )
1351
+
1352
+ assert g.save
1353
+
1354
+ # Reload and check that we have all the geometric attributes.
1355
+ h = Geometric.find(g.id)
1356
+
1357
+ assert_equal '(5,6.1)', h.a_point
1358
+ assert_equal '[(2,3),(5.5,7)]', h.a_line_segment
1359
+ assert_equal '(5.5,7),(2,3)', h.a_box # reordered to store upper right corner then bottom left corner
1360
+ assert_equal '[(2,3),(5.5,7),(8.5,11)]', h.a_path
1361
+ assert_equal '((2,3),(5.5,7),(8.5,11))', h.a_polygon
1362
+ assert_equal '<(5.3,10.4),2>', h.a_circle
1363
+
1364
+ # use a geometric function to test for an open path
1365
+ objs = Geometric.find_by_sql ["select isopen(a_path) from geometrics where id = ?", g.id]
1366
+ assert_equal objs[0].isopen, 't'
1367
+
1368
+ # test alternate formats when defining the geometric types
1369
+
1370
+ g = Geometric.new(
1371
+ :a_point => '5.0, 6.1',
1372
+ #:a_line => '((2.0, 3), (5.5, 7.0))' # line type is currently unsupported in postgresql
1373
+ :a_line_segment => '((2.0, 3), (5.5, 7.0))',
1374
+ :a_box => '(2.0, 3), (5.5, 7.0)',
1375
+ :a_path => '((2.0, 3), (5.5, 7.0), (8.5, 11.0))', # ( ) is a closed path
1376
+ :a_polygon => '2.0, 3, 5.5, 7.0, 8.5, 11.0',
1377
+ :a_circle => '((5.3, 10.4), 2)'
1378
+ )
1379
+
1380
+ assert g.save
1381
+
1382
+ # Reload and check that we have all the geometric attributes.
1383
+ h = Geometric.find(g.id)
1384
+
1385
+ assert_equal '(5,6.1)', h.a_point
1386
+ assert_equal '[(2,3),(5.5,7)]', h.a_line_segment
1387
+ assert_equal '(5.5,7),(2,3)', h.a_box # reordered to store upper right corner then bottom left corner
1388
+ assert_equal '((2,3),(5.5,7),(8.5,11))', h.a_path
1389
+ assert_equal '((2,3),(5.5,7),(8.5,11))', h.a_polygon
1390
+ assert_equal '<(5.3,10.4),2>', h.a_circle
1391
+
1392
+ # use a geometric function to test for an closed path
1393
+ objs = Geometric.find_by_sql ["select isclosed(a_path) from geometrics where id = ?", g.id]
1394
+ assert_equal objs[0].isclosed, 't'
1395
+ end
1396
+ end
1397
+
1398
+ class NumericData < ActiveRecord::Base
1399
+ self.table_name = 'numeric_data'
1400
+ end
1401
+
1402
+ def test_numeric_fields
1403
+ m = NumericData.new(
1404
+ :bank_balance => 1586.43,
1405
+ :big_bank_balance => BigDecimal("1000234000567.95"),
1406
+ :world_population => 6000000000,
1407
+ :my_house_population => 3
1408
+ )
1409
+ assert m.save
1410
+
1411
+ m1 = NumericData.find(m.id)
1412
+ assert_not_nil m1
1413
+
1414
+ # As with migration_test.rb, we should make world_population >= 2**62
1415
+ # to cover 64-bit platforms and test it is a Bignum, but the main thing
1416
+ # is that it's an Integer.
1417
+ assert_kind_of Integer, m1.world_population
1418
+ assert_equal 6000000000, m1.world_population
1419
+
1420
+ assert_kind_of Fixnum, m1.my_house_population
1421
+ assert_equal 3, m1.my_house_population
1422
+
1423
+ assert_kind_of BigDecimal, m1.bank_balance
1424
+ assert_equal BigDecimal("1586.43"), m1.bank_balance
1425
+
1426
+ assert_kind_of BigDecimal, m1.big_bank_balance
1427
+ assert_equal BigDecimal("1000234000567.95"), m1.big_bank_balance
1428
+ end
1429
+
1430
+ def test_auto_id
1431
+ auto = AutoId.new
1432
+ auto.save
1433
+ assert (auto.id > 0)
1434
+ end
1435
+
1436
+ def quote_column_name(name)
1437
+ "<#{name}>"
1438
+ end
1439
+
1440
+ def test_quote_keys
1441
+ ar = AutoId.new
1442
+ source = {"foo" => "bar", "baz" => "quux"}
1443
+ actual = ar.send(:quote_columns, self, source)
1444
+ inverted = actual.invert
1445
+ assert_equal("<foo>", inverted["bar"])
1446
+ assert_equal("<baz>", inverted["quux"])
1447
+ end
1448
+
1449
+ def test_sql_injection_via_find
1450
+ assert_raise(ActiveRecord::RecordNotFound, ActiveRecord::StatementInvalid) do
1451
+ Topic.find("123456 OR id > 0")
1452
+ end
1453
+ end
1454
+
1455
+ def test_column_name_properly_quoted
1456
+ col_record = ColumnName.new
1457
+ col_record.references = 40
1458
+ assert col_record.save
1459
+ col_record.references = 41
1460
+ assert col_record.save
1461
+ assert_not_nil c2 = ColumnName.find(col_record.id)
1462
+ assert_equal(41, c2.references)
1463
+ end
1464
+
1465
+ def test_quoting_arrays
1466
+ replies = Reply.find(:all, :conditions => [ "id IN (?)", topics(:first).replies.collect(&:id) ])
1467
+ assert_equal topics(:first).replies.size, replies.size
1468
+
1469
+ replies = Reply.find(:all, :conditions => [ "id IN (?)", [] ])
1470
+ assert_equal 0, replies.size
1471
+ end
1472
+
1473
+ MyObject = Struct.new :attribute1, :attribute2
1474
+
1475
+ def test_serialized_attribute
1476
+ myobj = MyObject.new('value1', 'value2')
1477
+ topic = Topic.create("content" => myobj)
1478
+ Topic.serialize("content", MyObject)
1479
+ assert_equal(myobj, topic.content)
1480
+ end
1481
+
1482
+ def test_serialized_time_attribute
1483
+ myobj = Time.local(2008,1,1,1,0)
1484
+ topic = Topic.create("content" => myobj).reload
1485
+ assert_equal(myobj, topic.content)
1486
+ end
1487
+
1488
+ def test_serialized_string_attribute
1489
+ myobj = "Yes"
1490
+ topic = Topic.create("content" => myobj).reload
1491
+ assert_equal(myobj, topic.content)
1492
+ end
1493
+
1494
+ def test_nil_serialized_attribute_with_class_constraint
1495
+ myobj = MyObject.new('value1', 'value2')
1496
+ topic = Topic.new
1497
+ assert_nil topic.content
1498
+ end
1499
+
1500
+ def test_should_raise_exception_on_serialized_attribute_with_type_mismatch
1501
+ myobj = MyObject.new('value1', 'value2')
1502
+ topic = Topic.new(:content => myobj)
1503
+ assert topic.save
1504
+ Topic.serialize(:content, Hash)
1505
+ assert_raise(ActiveRecord::SerializationTypeMismatch) { Topic.find(topic.id).content }
1506
+ ensure
1507
+ Topic.serialize(:content)
1508
+ end
1509
+
1510
+ def test_serialized_attribute_with_class_constraint
1511
+ settings = { "color" => "blue" }
1512
+ Topic.serialize(:content, Hash)
1513
+ topic = Topic.new(:content => settings)
1514
+ assert topic.save
1515
+ assert_equal(settings, Topic.find(topic.id).content)
1516
+ ensure
1517
+ Topic.serialize(:content)
1518
+ end
1519
+
1520
+ def test_quote
1521
+ author_name = "\\ \001 ' \n \\n \""
1522
+ topic = Topic.create('author_name' => author_name)
1523
+ assert_equal author_name, Topic.find(topic.id).author_name
1524
+ end
1525
+
1526
+ if RUBY_VERSION < '1.9'
1527
+ def test_quote_chars
1528
+ with_kcode('UTF8') do
1529
+ str = 'The Narrator'
1530
+ topic = Topic.create(:author_name => str)
1531
+ assert_equal str, topic.author_name
1532
+
1533
+ assert_kind_of ActiveSupport::Multibyte.proxy_class, str.mb_chars
1534
+ topic = Topic.find_by_author_name(str.mb_chars)
1535
+
1536
+ assert_kind_of Topic, topic
1537
+ assert_equal str, topic.author_name, "The right topic should have been found by name even with name passed as Chars"
1538
+ end
1539
+ end
1540
+ end
1541
+
1542
+ def test_class_level_destroy
1543
+ should_be_destroyed_reply = Reply.create("title" => "hello", "content" => "world")
1544
+ Topic.find(1).replies << should_be_destroyed_reply
1545
+
1546
+ Topic.destroy(1)
1547
+ assert_raise(ActiveRecord::RecordNotFound) { Topic.find(1) }
1548
+ assert_raise(ActiveRecord::RecordNotFound) { Reply.find(should_be_destroyed_reply.id) }
1549
+ end
1550
+
1551
+ def test_class_level_delete
1552
+ should_be_destroyed_reply = Reply.create("title" => "hello", "content" => "world")
1553
+ Topic.find(1).replies << should_be_destroyed_reply
1554
+
1555
+ Topic.delete(1)
1556
+ assert_raise(ActiveRecord::RecordNotFound) { Topic.find(1) }
1557
+ assert_nothing_raised { Reply.find(should_be_destroyed_reply.id) }
1558
+ end
1559
+
1560
+ def test_increment_attribute
1561
+ assert_equal 50, accounts(:signals37).credit_limit
1562
+ accounts(:signals37).increment! :credit_limit
1563
+ assert_equal 51, accounts(:signals37, :reload).credit_limit
1564
+
1565
+ accounts(:signals37).increment(:credit_limit).increment!(:credit_limit)
1566
+ assert_equal 53, accounts(:signals37, :reload).credit_limit
1567
+ end
1568
+
1569
+ def test_increment_nil_attribute
1570
+ assert_nil topics(:first).parent_id
1571
+ topics(:first).increment! :parent_id
1572
+ assert_equal 1, topics(:first).parent_id
1573
+ end
1574
+
1575
+ def test_increment_attribute_by
1576
+ assert_equal 50, accounts(:signals37).credit_limit
1577
+ accounts(:signals37).increment! :credit_limit, 5
1578
+ assert_equal 55, accounts(:signals37, :reload).credit_limit
1579
+
1580
+ accounts(:signals37).increment(:credit_limit, 1).increment!(:credit_limit, 3)
1581
+ assert_equal 59, accounts(:signals37, :reload).credit_limit
1582
+ end
1583
+
1584
+ def test_decrement_attribute
1585
+ assert_equal 50, accounts(:signals37).credit_limit
1586
+
1587
+ accounts(:signals37).decrement!(:credit_limit)
1588
+ assert_equal 49, accounts(:signals37, :reload).credit_limit
1589
+
1590
+ accounts(:signals37).decrement(:credit_limit).decrement!(:credit_limit)
1591
+ assert_equal 47, accounts(:signals37, :reload).credit_limit
1592
+ end
1593
+
1594
+ def test_decrement_attribute_by
1595
+ assert_equal 50, accounts(:signals37).credit_limit
1596
+ accounts(:signals37).decrement! :credit_limit, 5
1597
+ assert_equal 45, accounts(:signals37, :reload).credit_limit
1598
+
1599
+ accounts(:signals37).decrement(:credit_limit, 1).decrement!(:credit_limit, 3)
1600
+ assert_equal 41, accounts(:signals37, :reload).credit_limit
1601
+ end
1602
+
1603
+ def test_toggle_attribute
1604
+ assert !topics(:first).approved?
1605
+ topics(:first).toggle!(:approved)
1606
+ assert topics(:first).approved?
1607
+ topic = topics(:first)
1608
+ topic.toggle(:approved)
1609
+ assert !topic.approved?
1610
+ topic.reload
1611
+ assert topic.approved?
1612
+ end
1613
+
1614
+ def test_reload
1615
+ t1 = Topic.find(1)
1616
+ t2 = Topic.find(1)
1617
+ t1.title = "something else"
1618
+ t1.save
1619
+ t2.reload
1620
+ assert_equal t1.title, t2.title
1621
+ end
1622
+
1623
+ def test_define_attr_method_with_value
1624
+ k = Class.new( ActiveRecord::Base )
1625
+ k.send(:define_attr_method, :table_name, "foo")
1626
+ assert_equal "foo", k.table_name
1627
+ end
1628
+
1629
+ def test_define_attr_method_with_block
1630
+ k = Class.new( ActiveRecord::Base )
1631
+ k.send(:define_attr_method, :primary_key) { "sys_" + original_primary_key }
1632
+ assert_equal "sys_id", k.primary_key
1633
+ end
1634
+
1635
+ def test_set_table_name_with_value
1636
+ k = Class.new( ActiveRecord::Base )
1637
+ k.table_name = "foo"
1638
+ assert_equal "foo", k.table_name
1639
+ k.set_table_name "bar"
1640
+ assert_equal "bar", k.table_name
1641
+ end
1642
+
1643
+ def test_set_table_name_with_block
1644
+ k = Class.new( ActiveRecord::Base )
1645
+ k.set_table_name { "ks" }
1646
+ assert_equal "ks", k.table_name
1647
+ end
1648
+
1649
+ def test_set_primary_key_with_value
1650
+ k = Class.new( ActiveRecord::Base )
1651
+ k.primary_key = "foo"
1652
+ assert_equal "foo", k.primary_key
1653
+ k.set_primary_key "bar"
1654
+ assert_equal "bar", k.primary_key
1655
+ end
1656
+
1657
+ def test_set_primary_key_with_block
1658
+ k = Class.new( ActiveRecord::Base )
1659
+ k.set_primary_key { "sys_" + original_primary_key }
1660
+ assert_equal "sys_id", k.primary_key
1661
+ end
1662
+
1663
+ def test_set_inheritance_column_with_value
1664
+ k = Class.new( ActiveRecord::Base )
1665
+ k.inheritance_column = "foo"
1666
+ assert_equal "foo", k.inheritance_column
1667
+ k.set_inheritance_column "bar"
1668
+ assert_equal "bar", k.inheritance_column
1669
+ end
1670
+
1671
+ def test_set_inheritance_column_with_block
1672
+ k = Class.new( ActiveRecord::Base )
1673
+ k.set_inheritance_column { original_inheritance_column + "_id" }
1674
+ assert_equal "type_id", k.inheritance_column
1675
+ end
1676
+
1677
+ def test_count_with_join
1678
+ res = Post.count_by_sql "SELECT COUNT(*) FROM posts LEFT JOIN comments ON posts.id=comments.post_id WHERE posts.#{QUOTED_TYPE} = 'Post'"
1679
+
1680
+ res2 = Post.count(:conditions => "posts.#{QUOTED_TYPE} = 'Post'", :joins => "LEFT JOIN comments ON posts.id=comments.post_id")
1681
+ assert_equal res, res2
1682
+
1683
+ res3 = nil
1684
+ assert_nothing_raised do
1685
+ res3 = Post.count(:conditions => "posts.#{QUOTED_TYPE} = 'Post'",
1686
+ :joins => "LEFT JOIN comments ON posts.id=comments.post_id")
1687
+ end
1688
+ assert_equal res, res3
1689
+
1690
+ res4 = Post.count_by_sql "SELECT COUNT(p.id) FROM posts p, comments co WHERE p.#{QUOTED_TYPE} = 'Post' AND p.id=co.post_id"
1691
+ res5 = nil
1692
+ assert_nothing_raised do
1693
+ res5 = Post.count(:conditions => "p.#{QUOTED_TYPE} = 'Post' AND p.id=co.post_id",
1694
+ :joins => "p, comments co",
1695
+ :select => "p.id")
1696
+ end
1697
+
1698
+ assert_equal res4, res5
1699
+
1700
+ unless current_adapter?(:SQLite2Adapter, :DeprecatedSQLiteAdapter)
1701
+ res6 = Post.count_by_sql "SELECT COUNT(DISTINCT p.id) FROM posts p, comments co WHERE p.#{QUOTED_TYPE} = 'Post' AND p.id=co.post_id"
1702
+ res7 = nil
1703
+ assert_nothing_raised do
1704
+ res7 = Post.count(:conditions => "p.#{QUOTED_TYPE} = 'Post' AND p.id=co.post_id",
1705
+ :joins => "p, comments co",
1706
+ :select => "p.id",
1707
+ :distinct => true)
1708
+ end
1709
+ assert_equal res6, res7
1710
+ end
1711
+ end
1712
+
1713
+ def test_clear_association_cache_stored
1714
+ firm = Firm.find(1)
1715
+ assert_kind_of Firm, firm
1716
+
1717
+ firm.clear_association_cache
1718
+ assert_equal Firm.find(1).clients.collect{ |x| x.name }.sort, firm.clients.collect{ |x| x.name }.sort
1719
+ end
1720
+
1721
+ def test_clear_association_cache_new_record
1722
+ firm = Firm.new
1723
+ client_stored = Client.find(3)
1724
+ client_new = Client.new
1725
+ client_new.name = "The Joneses"
1726
+ clients = [ client_stored, client_new ]
1727
+
1728
+ firm.clients << clients
1729
+ assert_equal clients.map(&:name).to_set, firm.clients.map(&:name).to_set
1730
+
1731
+ firm.clear_association_cache
1732
+ assert_equal clients.map(&:name).to_set, firm.clients.map(&:name).to_set
1733
+ end
1734
+
1735
+ def test_interpolate_sql
1736
+ assert_nothing_raised { Category.new.send(:interpolate_sql, 'foo@bar') }
1737
+ assert_nothing_raised { Category.new.send(:interpolate_sql, 'foo bar) baz') }
1738
+ assert_nothing_raised { Category.new.send(:interpolate_sql, 'foo bar} baz') }
1739
+ end
1740
+
1741
+ def test_scoped_find_conditions
1742
+ scoped_developers = Developer.with_scope(:find => { :conditions => 'salary > 90000' }) do
1743
+ Developer.find(:all, :conditions => 'id < 5')
1744
+ end
1745
+ assert !scoped_developers.include?(developers(:david)) # David's salary is less than 90,000
1746
+ assert_equal 3, scoped_developers.size
1747
+ end
1748
+
1749
+ def test_scoped_find_limit_offset
1750
+ scoped_developers = Developer.with_scope(:find => { :limit => 3, :offset => 2 }) do
1751
+ Developer.find(:all, :order => 'id')
1752
+ end
1753
+ assert !scoped_developers.include?(developers(:david))
1754
+ assert !scoped_developers.include?(developers(:jamis))
1755
+ assert_equal 3, scoped_developers.size
1756
+
1757
+ # Test without scoped find conditions to ensure we get the whole thing
1758
+ developers = Developer.find(:all, :order => 'id')
1759
+ assert_equal Developer.count, developers.size
1760
+ end
1761
+
1762
+ def test_scoped_find_order
1763
+ # Test order in scope
1764
+ scoped_developers = Developer.with_scope(:find => { :limit => 1, :order => 'salary DESC' }) do
1765
+ Developer.find(:all)
1766
+ end
1767
+ assert_equal 'Jamis', scoped_developers.first.name
1768
+ assert scoped_developers.include?(developers(:jamis))
1769
+ # Test scope without order and order in find
1770
+ scoped_developers = Developer.with_scope(:find => { :limit => 1 }) do
1771
+ Developer.find(:all, :order => 'salary DESC')
1772
+ end
1773
+ # Test scope order + find order, find has priority
1774
+ scoped_developers = Developer.with_scope(:find => { :limit => 3, :order => 'id DESC' }) do
1775
+ Developer.find(:all, :order => 'salary ASC')
1776
+ end
1777
+ assert scoped_developers.include?(developers(:poor_jamis))
1778
+ assert scoped_developers.include?(developers(:david))
1779
+ assert scoped_developers.include?(developers(:dev_10))
1780
+ # Test without scoped find conditions to ensure we get the right thing
1781
+ developers = Developer.find(:all, :order => 'id', :limit => 1)
1782
+ assert scoped_developers.include?(developers(:david))
1783
+ end
1784
+
1785
+ def test_scoped_find_limit_offset_including_has_many_association
1786
+ topics = Topic.with_scope(:find => {:limit => 1, :offset => 1, :include => :replies}) do
1787
+ Topic.find(:all, :order => "topics.id")
1788
+ end
1789
+ assert_equal 1, topics.size
1790
+ assert_equal 2, topics.first.id
1791
+ end
1792
+
1793
+ def test_scoped_find_order_including_has_many_association
1794
+ developers = Developer.with_scope(:find => { :order => 'developers.salary DESC', :include => :projects }) do
1795
+ Developer.find(:all)
1796
+ end
1797
+ assert developers.size >= 2
1798
+ for i in 1...developers.size
1799
+ assert developers[i-1].salary >= developers[i].salary
1800
+ end
1801
+ end
1802
+
1803
+ def test_scoped_find_with_group_and_having
1804
+ developers = Developer.with_scope(:find => { :group => 'developers.salary', :having => "SUM(salary) > 10000", :select => "SUM(salary) as salary" }) do
1805
+ Developer.find(:all)
1806
+ end
1807
+ assert_equal 3, developers.size
1808
+ end
1809
+
1810
+ def test_find_last
1811
+ last = Developer.find :last
1812
+ assert_equal last, Developer.find(:first, :order => 'id desc')
1813
+ end
1814
+
1815
+ def test_last
1816
+ assert_equal Developer.find(:first, :order => 'id desc'), Developer.last
1817
+ end
1818
+
1819
+ def test_all_with_conditions
1820
+ assert_equal Developer.find(:all, :order => 'id desc'), Developer.all(:order => 'id desc')
1821
+ end
1822
+
1823
+ def test_find_ordered_last
1824
+ last = Developer.find :last, :order => 'developers.salary ASC'
1825
+ assert_equal last, Developer.find(:all, :order => 'developers.salary ASC').last
1826
+ end
1827
+
1828
+ def test_find_reverse_ordered_last
1829
+ last = Developer.find :last, :order => 'developers.salary DESC'
1830
+ assert_equal last, Developer.find(:all, :order => 'developers.salary DESC').last
1831
+ end
1832
+
1833
+ def test_find_multiple_ordered_last
1834
+ last = Developer.find :last, :order => 'developers.name, developers.salary DESC'
1835
+ assert_equal last, Developer.find(:all, :order => 'developers.name, developers.salary DESC').last
1836
+ end
1837
+
1838
+ def test_find_symbol_ordered_last
1839
+ last = Developer.find :last, :order => :salary
1840
+ assert_equal last, Developer.find(:all, :order => :salary).last
1841
+ end
1842
+
1843
+ def test_find_scoped_ordered_last
1844
+ last_developer = Developer.with_scope(:find => { :order => 'developers.salary ASC' }) do
1845
+ Developer.find(:last)
1846
+ end
1847
+ assert_equal last_developer, Developer.find(:all, :order => 'developers.salary ASC').last
1848
+ end
1849
+
1850
+ def test_abstract_class
1851
+ assert !ActiveRecord::Base.abstract_class?
1852
+ assert LoosePerson.abstract_class?
1853
+ assert !LooseDescendant.abstract_class?
1854
+ end
1855
+
1856
+ def test_base_class
1857
+ assert_equal LoosePerson, LoosePerson.base_class
1858
+ assert_equal LooseDescendant, LooseDescendant.base_class
1859
+ assert_equal TightPerson, TightPerson.base_class
1860
+ assert_equal TightPerson, TightDescendant.base_class
1861
+
1862
+ assert_equal Post, Post.base_class
1863
+ assert_equal Post, SpecialPost.base_class
1864
+ assert_equal Post, StiPost.base_class
1865
+ assert_equal SubStiPost, SubStiPost.base_class
1866
+ end
1867
+
1868
+ def test_descends_from_active_record
1869
+ # Tries to call Object.abstract_class?
1870
+ assert_raise(NoMethodError) do
1871
+ ActiveRecord::Base.descends_from_active_record?
1872
+ end
1873
+
1874
+ # Abstract subclass of AR::Base.
1875
+ assert LoosePerson.descends_from_active_record?
1876
+
1877
+ # Concrete subclass of an abstract class.
1878
+ assert LooseDescendant.descends_from_active_record?
1879
+
1880
+ # Concrete subclass of AR::Base.
1881
+ assert TightPerson.descends_from_active_record?
1882
+
1883
+ # Concrete subclass of a concrete class but has no type column.
1884
+ assert TightDescendant.descends_from_active_record?
1885
+
1886
+ # Concrete subclass of AR::Base.
1887
+ assert Post.descends_from_active_record?
1888
+
1889
+ # Abstract subclass of a concrete class which has a type column.
1890
+ # This is pathological, as you'll never have Sub < Abstract < Concrete.
1891
+ assert !StiPost.descends_from_active_record?
1892
+
1893
+ # Concrete subclasses an abstract class which has a type column.
1894
+ assert !SubStiPost.descends_from_active_record?
1895
+ end
1896
+
1897
+ def test_find_on_abstract_base_class_doesnt_use_type_condition
1898
+ old_class = LooseDescendant
1899
+ Object.send :remove_const, :LooseDescendant
1900
+
1901
+ descendant = old_class.create! :first_name => 'bob'
1902
+ assert_not_nil LoosePerson.find(descendant.id), "Should have found instance of LooseDescendant when finding abstract LoosePerson: #{descendant.inspect}"
1903
+ ensure
1904
+ unless Object.const_defined?(:LooseDescendant)
1905
+ Object.const_set :LooseDescendant, old_class
1906
+ end
1907
+ end
1908
+
1909
+ def test_assert_queries
1910
+ query = lambda { ActiveRecord::Base.connection.execute 'select count(*) from developers' }
1911
+ assert_queries(2) { 2.times { query.call } }
1912
+ assert_queries 1, &query
1913
+ assert_no_queries { assert true }
1914
+ end
1915
+
1916
+ def test_to_xml
1917
+ xml = REXML::Document.new(topics(:first).to_xml(:indent => 0))
1918
+ bonus_time_in_current_timezone = topics(:first).bonus_time.xmlschema
1919
+ written_on_in_current_timezone = topics(:first).written_on.xmlschema
1920
+ last_read_in_current_timezone = topics(:first).last_read.xmlschema
1921
+
1922
+ assert_equal "topic", xml.root.name
1923
+ assert_equal "The First Topic" , xml.elements["//title"].text
1924
+ assert_equal "David" , xml.elements["//author-name"].text
1925
+
1926
+ assert_equal "1", xml.elements["//id"].text
1927
+ assert_equal "integer" , xml.elements["//id"].attributes['type']
1928
+
1929
+ assert_equal "1", xml.elements["//replies-count"].text
1930
+ assert_equal "integer" , xml.elements["//replies-count"].attributes['type']
1931
+
1932
+ assert_equal written_on_in_current_timezone, xml.elements["//written-on"].text
1933
+ assert_equal "datetime" , xml.elements["//written-on"].attributes['type']
1934
+
1935
+ assert_equal "--- Have a nice day\n" , xml.elements["//content"].text
1936
+ assert_equal "yaml" , xml.elements["//content"].attributes['type']
1937
+
1938
+ assert_equal "david@loudthinking.com", xml.elements["//author-email-address"].text
1939
+
1940
+ assert_equal nil, xml.elements["//parent-id"].text
1941
+ assert_equal "integer", xml.elements["//parent-id"].attributes['type']
1942
+ assert_equal "true", xml.elements["//parent-id"].attributes['nil']
1943
+
1944
+ if current_adapter?(:SybaseAdapter, :OracleAdapter)
1945
+ assert_equal last_read_in_current_timezone, xml.elements["//last-read"].text
1946
+ assert_equal "datetime" , xml.elements["//last-read"].attributes['type']
1947
+ else
1948
+ assert_equal "2004-04-15", xml.elements["//last-read"].text
1949
+ assert_equal "date" , xml.elements["//last-read"].attributes['type']
1950
+ end
1951
+
1952
+ # Oracle and DB2 don't have true boolean or time-only fields
1953
+ unless current_adapter?(:OracleAdapter, :DB2Adapter)
1954
+ assert_equal "false", xml.elements["//approved"].text
1955
+ assert_equal "boolean" , xml.elements["//approved"].attributes['type']
1956
+
1957
+ assert_equal bonus_time_in_current_timezone, xml.elements["//bonus-time"].text
1958
+ assert_equal "datetime" , xml.elements["//bonus-time"].attributes['type']
1959
+ end
1960
+ end
1961
+
1962
+ def test_to_xml_skipping_attributes
1963
+ xml = topics(:first).to_xml(:indent => 0, :skip_instruct => true, :except => [:title, :replies_count])
1964
+ assert_equal "<topic>", xml.first(7)
1965
+ assert !xml.include?(%(<title>The First Topic</title>))
1966
+ assert xml.include?(%(<author-name>David</author-name>))
1967
+
1968
+ xml = topics(:first).to_xml(:indent => 0, :skip_instruct => true, :except => [:title, :author_name, :replies_count])
1969
+ assert !xml.include?(%(<title>The First Topic</title>))
1970
+ assert !xml.include?(%(<author-name>David</author-name>))
1971
+ end
1972
+
1973
+ def test_to_xml_including_has_many_association
1974
+ xml = topics(:first).to_xml(:indent => 0, :skip_instruct => true, :include => :replies, :except => :replies_count)
1975
+ assert_equal "<topic>", xml.first(7)
1976
+ assert xml.include?(%(<replies type="array"><reply>))
1977
+ assert xml.include?(%(<title>The Second Topic of the day</title>))
1978
+ end
1979
+
1980
+ def test_array_to_xml_including_has_many_association
1981
+ xml = [ topics(:first), topics(:second) ].to_xml(:indent => 0, :skip_instruct => true, :include => :replies)
1982
+ assert xml.include?(%(<replies type="array"><reply>))
1983
+ end
1984
+
1985
+ def test_array_to_xml_including_methods
1986
+ xml = [ topics(:first), topics(:second) ].to_xml(:indent => 0, :skip_instruct => true, :methods => [ :topic_id ])
1987
+ assert xml.include?(%(<topic-id type="integer">#{topics(:first).topic_id}</topic-id>)), xml
1988
+ assert xml.include?(%(<topic-id type="integer">#{topics(:second).topic_id}</topic-id>)), xml
1989
+ end
1990
+
1991
+ def test_array_to_xml_including_has_one_association
1992
+ xml = [ companies(:first_firm), companies(:rails_core) ].to_xml(:indent => 0, :skip_instruct => true, :include => :account)
1993
+ assert xml.include?(companies(:first_firm).account.to_xml(:indent => 0, :skip_instruct => true))
1994
+ assert xml.include?(companies(:rails_core).account.to_xml(:indent => 0, :skip_instruct => true))
1995
+ end
1996
+
1997
+ def test_array_to_xml_including_belongs_to_association
1998
+ xml = [ companies(:first_client), companies(:second_client), companies(:another_client) ].to_xml(:indent => 0, :skip_instruct => true, :include => :firm)
1999
+ assert xml.include?(companies(:first_client).to_xml(:indent => 0, :skip_instruct => true))
2000
+ assert xml.include?(companies(:second_client).firm.to_xml(:indent => 0, :skip_instruct => true))
2001
+ assert xml.include?(companies(:another_client).firm.to_xml(:indent => 0, :skip_instruct => true))
2002
+ end
2003
+
2004
+ def test_to_xml_including_belongs_to_association
2005
+ xml = companies(:first_client).to_xml(:indent => 0, :skip_instruct => true, :include => :firm)
2006
+ assert !xml.include?("<firm>")
2007
+
2008
+ xml = companies(:second_client).to_xml(:indent => 0, :skip_instruct => true, :include => :firm)
2009
+ assert xml.include?("<firm>")
2010
+ end
2011
+
2012
+ def test_to_xml_including_multiple_associations
2013
+ xml = companies(:first_firm).to_xml(:indent => 0, :skip_instruct => true, :include => [ :clients, :account ])
2014
+ assert_equal "<firm>", xml.first(6)
2015
+ assert xml.include?(%(<account>))
2016
+ assert xml.include?(%(<clients type="array"><client>))
2017
+ end
2018
+
2019
+ def test_to_xml_including_multiple_associations_with_options
2020
+ xml = companies(:first_firm).to_xml(
2021
+ :indent => 0, :skip_instruct => true,
2022
+ :include => { :clients => { :only => :name } }
2023
+ )
2024
+
2025
+ assert_equal "<firm>", xml.first(6)
2026
+ assert xml.include?(%(<client><name>Summit</name></client>))
2027
+ assert xml.include?(%(<clients type="array"><client>))
2028
+ end
2029
+
2030
+ def test_to_xml_including_methods
2031
+ xml = Company.new.to_xml(:methods => :arbitrary_method, :skip_instruct => true)
2032
+ assert_equal "<company>", xml.first(9)
2033
+ assert xml.include?(%(<arbitrary-method>I am Jack's profound disappointment</arbitrary-method>))
2034
+ end
2035
+
2036
+ def test_to_xml_with_block
2037
+ value = "Rockin' the block"
2038
+ xml = Company.new.to_xml(:skip_instruct => true) do |xml|
2039
+ xml.tag! "arbitrary-element", value
2040
+ end
2041
+ assert_equal "<company>", xml.first(9)
2042
+ assert xml.include?(%(<arbitrary-element>#{value}</arbitrary-element>))
2043
+ end
2044
+
2045
+ def test_type_name_with_module_should_handle_beginning
2046
+ assert_equal 'ActiveRecord::Person', ActiveRecord::Base.send(:type_name_with_module, 'Person')
2047
+ assert_equal '::Person', ActiveRecord::Base.send(:type_name_with_module, '::Person')
2048
+ end
2049
+
2050
+ def test_to_param_should_return_string
2051
+ assert_kind_of String, Client.find(:first).to_param
2052
+ end
2053
+
2054
+ def test_inspect_class
2055
+ assert_equal 'ActiveRecord::Base', ActiveRecord::Base.inspect
2056
+ assert_equal 'LoosePerson(abstract)', LoosePerson.inspect
2057
+ assert_match(/^Topic\(id: integer, title: string/, Topic.inspect)
2058
+ end
2059
+
2060
+ def test_inspect_instance
2061
+ topic = topics(:first)
2062
+ assert_equal %(#<Topic id: 1, title: "The First Topic", author_name: "David", author_email_address: "david@loudthinking.com", written_on: "#{topic.written_on.to_s(:db)}", bonus_time: "#{topic.bonus_time.to_s(:db)}", last_read: "#{topic.last_read.to_s(:db)}", content: "Have a nice day", approved: false, replies_count: 1, parent_id: nil, parent_title: nil, type: nil>), topic.inspect
2063
+ end
2064
+
2065
+ def test_inspect_new_instance
2066
+ assert_match /Topic id: nil/, Topic.new.inspect
2067
+ end
2068
+
2069
+ def test_inspect_limited_select_instance
2070
+ assert_equal %(#<Topic id: 1>), Topic.find(:first, :select => 'id', :conditions => 'id = 1').inspect
2071
+ assert_equal %(#<Topic id: 1, title: "The First Topic">), Topic.find(:first, :select => 'id, title', :conditions => 'id = 1').inspect
2072
+ end
2073
+
2074
+ def test_inspect_class_without_table
2075
+ assert_equal "NonExistentTable(Table doesn't exist)", NonExistentTable.inspect
2076
+ end
2077
+
2078
+ def test_attribute_for_inspect
2079
+ t = topics(:first)
2080
+ t.title = "The First Topic Now Has A Title With\nNewlines And More Than 50 Characters"
2081
+
2082
+ assert_equal %("#{t.written_on.to_s(:db)}"), t.attribute_for_inspect(:written_on)
2083
+ assert_equal '"The First Topic Now Has A Title With\nNewlines And M..."', t.attribute_for_inspect(:title)
2084
+ end
2085
+
2086
+ def test_becomes
2087
+ assert_kind_of Reply, topics(:first).becomes(Reply)
2088
+ assert_equal "The First Topic", topics(:first).becomes(Reply).title
2089
+ end
2090
+
2091
+ def test_silence_sets_log_level_to_error_in_block
2092
+ original_logger = ActiveRecord::Base.logger
2093
+ log = StringIO.new
2094
+ ActiveRecord::Base.logger = Logger.new(log)
2095
+ ActiveRecord::Base.logger.level = Logger::DEBUG
2096
+ ActiveRecord::Base.silence do
2097
+ ActiveRecord::Base.logger.warn "warn"
2098
+ ActiveRecord::Base.logger.error "error"
2099
+ end
2100
+ assert_equal "error\n", log.string
2101
+ ensure
2102
+ ActiveRecord::Base.logger = original_logger
2103
+ end
2104
+
2105
+ def test_silence_sets_log_level_back_to_level_before_yield
2106
+ original_logger = ActiveRecord::Base.logger
2107
+ log = StringIO.new
2108
+ ActiveRecord::Base.logger = Logger.new(log)
2109
+ ActiveRecord::Base.logger.level = Logger::WARN
2110
+ ActiveRecord::Base.silence do
2111
+ end
2112
+ assert_equal Logger::WARN, ActiveRecord::Base.logger.level
2113
+ ensure
2114
+ ActiveRecord::Base.logger = original_logger
2115
+ end
2116
+
2117
+ def test_benchmark_with_log_level
2118
+ original_logger = ActiveRecord::Base.logger
2119
+ log = StringIO.new
2120
+ ActiveRecord::Base.logger = Logger.new(log)
2121
+ ActiveRecord::Base.logger.level = Logger::WARN
2122
+ ActiveRecord::Base.benchmark("Debug Topic Count", Logger::DEBUG) { Topic.count }
2123
+ ActiveRecord::Base.benchmark("Warn Topic Count", Logger::WARN) { Topic.count }
2124
+ ActiveRecord::Base.benchmark("Error Topic Count", Logger::ERROR) { Topic.count }
2125
+ assert_no_match /Debug Topic Count/, log.string
2126
+ assert_match /Warn Topic Count/, log.string
2127
+ assert_match /Error Topic Count/, log.string
2128
+ ensure
2129
+ ActiveRecord::Base.logger = original_logger
2130
+ end
2131
+
2132
+ def test_benchmark_with_use_silence
2133
+ original_logger = ActiveRecord::Base.logger
2134
+ log = StringIO.new
2135
+ ActiveRecord::Base.logger = Logger.new(log)
2136
+ ActiveRecord::Base.benchmark("Logging", Logger::DEBUG, true) { ActiveRecord::Base.logger.debug "Loud" }
2137
+ ActiveRecord::Base.benchmark("Logging", Logger::DEBUG, false) { ActiveRecord::Base.logger.debug "Quiet" }
2138
+ assert_no_match /Loud/, log.string
2139
+ assert_match /Quiet/, log.string
2140
+ ensure
2141
+ ActiveRecord::Base.logger = original_logger
2142
+ end
2143
+
2144
+ def test_create_with_custom_timestamps
2145
+ custom_datetime = 1.hour.ago.beginning_of_day
2146
+
2147
+ %w(created_at created_on updated_at updated_on).each do |attribute|
2148
+ parrot = LiveParrot.create(:name => "colombian", attribute => custom_datetime)
2149
+ assert_equal custom_datetime, parrot[attribute]
2150
+ end
2151
+ end
2152
+ end