radiantcms-couchrest_model 0.1

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 (2534) hide show
  1. data/CHANGELOG +544 -0
  2. data/CONTRIBUTORS +219 -0
  3. data/INSTALL +35 -0
  4. data/LICENSE +21 -0
  5. data/README +3 -0
  6. data/Rakefile +11 -0
  7. data/app/controllers/admin/extensions_controller.rb +11 -0
  8. data/app/controllers/admin/layouts_controller.rb +8 -0
  9. data/app/controllers/admin/page_parts_controller.rb +9 -0
  10. data/app/controllers/admin/pages_controller.rb +52 -0
  11. data/app/controllers/admin/preferences_controller.rb +46 -0
  12. data/app/controllers/admin/references_controller.rb +7 -0
  13. data/app/controllers/admin/resource_controller.rb +233 -0
  14. data/app/controllers/admin/snippets_controller.rb +8 -0
  15. data/app/controllers/admin/users_controller.rb +40 -0
  16. data/app/controllers/admin/welcome_controller.rb +43 -0
  17. data/app/controllers/application_controller.rb +88 -0
  18. data/app/controllers/site_controller.rb +77 -0
  19. data/app/helpers/admin/abstract_model_helper.rb +2 -0
  20. data/app/helpers/admin/export_helper.rb +2 -0
  21. data/app/helpers/admin/extensions_helper.rb +2 -0
  22. data/app/helpers/admin/layouts_helper.rb +21 -0
  23. data/app/helpers/admin/node_helper.rb +87 -0
  24. data/app/helpers/admin/pages_helper.rb +117 -0
  25. data/app/helpers/admin/preferences_helper.rb +3 -0
  26. data/app/helpers/admin/references_helper.rb +44 -0
  27. data/app/helpers/admin/regions_helper.rb +28 -0
  28. data/app/helpers/admin/snippets_helper.rb +41 -0
  29. data/app/helpers/admin/users_helper.rb +8 -0
  30. data/app/helpers/admin/welcome_helper.rb +2 -0
  31. data/app/helpers/application_helper.rb +249 -0
  32. data/app/helpers/site_helper.rb +2 -0
  33. data/app/models/file_not_found_page.rb +32 -0
  34. data/app/models/layout.rb +15 -0
  35. data/app/models/page.rb +353 -0
  36. data/app/models/page_context.rb +46 -0
  37. data/app/models/page_part.rb +21 -0
  38. data/app/models/radiant/config.rb +292 -0
  39. data/app/models/snippet.rb +19 -0
  40. data/app/models/standard_tags.rb +1321 -0
  41. data/app/models/status.rb +41 -0
  42. data/app/models/text_filter.rb +36 -0
  43. data/app/models/user.rb +97 -0
  44. data/app/models/user_action_observer.rb +13 -0
  45. data/app/views/admin/extensions/index.html.haml +41 -0
  46. data/app/views/admin/layouts/_form.html.haml +39 -0
  47. data/app/views/admin/layouts/edit.html.haml +9 -0
  48. data/app/views/admin/layouts/index.html.haml +36 -0
  49. data/app/views/admin/layouts/new.html.haml +7 -0
  50. data/app/views/admin/layouts/remove.html.haml +16 -0
  51. data/app/views/admin/page_parts/_page_part.html.haml +18 -0
  52. data/app/views/admin/pages/_fields.html.haml +61 -0
  53. data/app/views/admin/pages/_meta_row.html.haml +8 -0
  54. data/app/views/admin/pages/_node.html.haml +25 -0
  55. data/app/views/admin/pages/_popups.html.haml +27 -0
  56. data/app/views/admin/pages/children.html.haml +2 -0
  57. data/app/views/admin/pages/edit.html.haml +12 -0
  58. data/app/views/admin/pages/index.html.haml +26 -0
  59. data/app/views/admin/pages/new.html.haml +10 -0
  60. data/app/views/admin/pages/remove.html.haml +18 -0
  61. data/app/views/admin/preferences/edit.html.haml +44 -0
  62. data/app/views/admin/references/_tag_reference.haml +3 -0
  63. data/app/views/admin/references/filters.haml +6 -0
  64. data/app/views/admin/references/tags.haml +30 -0
  65. data/app/views/admin/snippets/_form.html.haml +33 -0
  66. data/app/views/admin/snippets/edit.html.haml +9 -0
  67. data/app/views/admin/snippets/index.html.haml +34 -0
  68. data/app/views/admin/snippets/new.html.haml +7 -0
  69. data/app/views/admin/snippets/remove.html.haml +17 -0
  70. data/app/views/admin/users/_avatar.html.haml +5 -0
  71. data/app/views/admin/users/_form.html.haml +53 -0
  72. data/app/views/admin/users/_password_fields.html.haml +18 -0
  73. data/app/views/admin/users/edit.html.haml +9 -0
  74. data/app/views/admin/users/index.html.haml +39 -0
  75. data/app/views/admin/users/new.html.haml +6 -0
  76. data/app/views/admin/users/remove.html.haml +16 -0
  77. data/app/views/admin/welcome/login.html.haml +23 -0
  78. data/app/views/layouts/application.html.haml +55 -0
  79. data/app/views/site/not_found.html.haml +3 -0
  80. data/bin/radiant +53 -0
  81. data/config/boot.rb +162 -0
  82. data/config/cucumber.yml +7 -0
  83. data/config/database.db2.yml +23 -0
  84. data/config/database.mysql.yml +28 -0
  85. data/config/database.postgresql.yml +28 -0
  86. data/config/database.sqlite.yml +19 -0
  87. data/config/database.sqlserver.yml +23 -0
  88. data/config/environment.rb +92 -0
  89. data/config/environments/cucumber.rb +29 -0
  90. data/config/environments/development.rb +17 -0
  91. data/config/environments/production.rb +24 -0
  92. data/config/environments/test.rb +38 -0
  93. data/config/initializers/haml.rb +2 -0
  94. data/config/locales/en.yml +227 -0
  95. data/config/locales/en_available_tags.yml +621 -0
  96. data/config/routes.rb +41 -0
  97. data/db/migrate/001_create_radiant_tables.rb +75 -0
  98. data/db/migrate/002_insert_initial_data.rb +12 -0
  99. data/db/migrate/003_rename_behavior_column.rb +9 -0
  100. data/db/migrate/004_rename_filter_column.rb +11 -0
  101. data/db/migrate/005_add_virtual_column_to_page.rb +9 -0
  102. data/db/migrate/006_integer_columns_to_boolean.rb +36 -0
  103. data/db/migrate/007_remove_virtual_column_from_page.rb +9 -0
  104. data/db/migrate/008_add_virtual_column_to_page_again.rb +9 -0
  105. data/db/migrate/009_add_content_type_field_to_layout.rb +9 -0
  106. data/db/migrate/010_merge_behaviors_and_pages.rb +57 -0
  107. data/db/migrate/011_rename_type_column_on_page_to_class_name.rb +9 -0
  108. data/db/migrate/012_create_extension_meta.rb +13 -0
  109. data/db/migrate/013_add_notes_field_to_user.rb +9 -0
  110. data/db/migrate/014_rename_config_default_parts_key.rb +17 -0
  111. data/db/migrate/015_add_optimistic_locking.rb +15 -0
  112. data/db/migrate/016_add_sessions.rb +16 -0
  113. data/db/migrate/017_rename_created_by_updated_by_columns.rb +15 -0
  114. data/db/migrate/018_add_description_and_keywords_to_pages.rb +11 -0
  115. data/db/migrate/019_add_salt_to_users.rb +11 -0
  116. data/db/migrate/020_add_session_info_to_users.rb +11 -0
  117. data/db/migrate/021_remove_session_expire_from_users.rb +9 -0
  118. data/db/migrate/20081203140407_add_indexes.rb +19 -0
  119. data/db/migrate/20090226140109_add_user_language.rb +9 -0
  120. data/db/migrate/20090929164633_rename_developer_role_to_designer.rb +9 -0
  121. data/db/migrate/20091003095744_change_user_language_to_locale.rb +9 -0
  122. data/db/schema.rb +119 -0
  123. data/features/admin/content_negotiation.feature +24 -0
  124. data/features/admin/layouts_management.feature +10 -0
  125. data/features/admin/pages_management.feature +78 -0
  126. data/features/admin/resource_pagination.feature +27 -0
  127. data/features/admin/snippets_management.feature +57 -0
  128. data/features/admin/user_permissions.feature +156 -0
  129. data/features/admin/user_preferences.feature +35 -0
  130. data/features/admin/users_management.feature +62 -0
  131. data/features/page_serving.feature +42 -0
  132. data/features/step_definitions/admin/admin_steps.rb +37 -0
  133. data/features/step_definitions/admin/content_negotiation_steps.rb +50 -0
  134. data/features/step_definitions/admin/pages_management_steps.rb +14 -0
  135. data/features/step_definitions/admin/pagination_steps.rb +44 -0
  136. data/features/step_definitions/admin/users_management_steps.rb +15 -0
  137. data/features/step_definitions/page_serving_steps.rb +46 -0
  138. data/features/step_definitions/web_steps.rb +273 -0
  139. data/features/support/dataset.rb +9 -0
  140. data/features/support/env.rb +58 -0
  141. data/features/support/paths.rb +61 -0
  142. data/lib/annotatable.rb +68 -0
  143. data/lib/autotest/discover.rb +3 -0
  144. data/lib/autotest/radiant_rails_rspec.rb +111 -0
  145. data/lib/generators/extension/USAGE +30 -0
  146. data/lib/generators/extension/extension_generator.rb +99 -0
  147. data/lib/generators/extension/templates/README +6 -0
  148. data/lib/generators/extension/templates/RSpecRakefile +117 -0
  149. data/lib/generators/extension/templates/Rakefile +25 -0
  150. data/lib/generators/extension/templates/cucumber.yml +1 -0
  151. data/lib/generators/extension/templates/cucumber_env.rb +16 -0
  152. data/lib/generators/extension/templates/cucumber_paths.rb +14 -0
  153. data/lib/generators/extension/templates/en.yml +3 -0
  154. data/lib/generators/extension/templates/extension.rb +23 -0
  155. data/lib/generators/extension/templates/functional_test.rb +15 -0
  156. data/lib/generators/extension/templates/migration.rb +9 -0
  157. data/lib/generators/extension/templates/routes.rb +5 -0
  158. data/lib/generators/extension/templates/spec.opts +6 -0
  159. data/lib/generators/extension/templates/spec_helper.rb +36 -0
  160. data/lib/generators/extension/templates/tasks.rake +55 -0
  161. data/lib/generators/extension/templates/test_helper.rb +26 -0
  162. data/lib/generators/extension_controller/USAGE +36 -0
  163. data/lib/generators/extension_controller/extension_controller_generator.rb +84 -0
  164. data/lib/generators/extension_controller/templates/controller.rb +10 -0
  165. data/lib/generators/extension_controller/templates/controller_spec.rb +23 -0
  166. data/lib/generators/extension_controller/templates/functional_test.rb +11 -0
  167. data/lib/generators/extension_controller/templates/helper.rb +2 -0
  168. data/lib/generators/extension_controller/templates/helper_spec.rb +11 -0
  169. data/lib/generators/extension_controller/templates/helper_test.rb +4 -0
  170. data/lib/generators/extension_controller/templates/view.html.erb +2 -0
  171. data/lib/generators/extension_controller/templates/view_spec.rb +12 -0
  172. data/lib/generators/extension_mailer/USAGE +17 -0
  173. data/lib/generators/extension_mailer/extension_mailer_generator.rb +68 -0
  174. data/lib/generators/extension_mailer/templates/fixture.erb +3 -0
  175. data/lib/generators/extension_mailer/templates/mailer.rb +15 -0
  176. data/lib/generators/extension_mailer/templates/unit_test.rb +21 -0
  177. data/lib/generators/extension_mailer/templates/view.erb +3 -0
  178. data/lib/generators/extension_migration/USAGE +34 -0
  179. data/lib/generators/extension_migration/extension_migration_generator.rb +25 -0
  180. data/lib/generators/extension_migration/templates/migration.rb +11 -0
  181. data/lib/generators/extension_model/USAGE +35 -0
  182. data/lib/generators/extension_model/extension_model_generator.rb +68 -0
  183. data/lib/generators/extension_model/templates/fixtures.yml +19 -0
  184. data/lib/generators/extension_model/templates/migration.rb +16 -0
  185. data/lib/generators/extension_model/templates/model.rb +2 -0
  186. data/lib/generators/extension_model/templates/model_spec.rb +11 -0
  187. data/lib/generators/extension_model/templates/unit_test.rb +8 -0
  188. data/lib/generators/generator_base_extension.rb +16 -0
  189. data/lib/generators/instance/instance_generator.rb +119 -0
  190. data/lib/generators/instance/templates/databases/db2.yml +40 -0
  191. data/lib/generators/instance/templates/databases/mysql.yml +47 -0
  192. data/lib/generators/instance/templates/databases/postgresql.yml +44 -0
  193. data/lib/generators/instance/templates/databases/sqlite3.yml +16 -0
  194. data/lib/generators/instance/templates/databases/sqlserver.yml +21 -0
  195. data/lib/generators/instance/templates/instance_boot.rb +161 -0
  196. data/lib/generators/instance/templates/instance_environment.rb +86 -0
  197. data/lib/generators/instance/templates/instance_generate +18 -0
  198. data/lib/generators/instance/templates/instance_rakefile +3 -0
  199. data/lib/generators/instance/templates/instance_routes.rb +1 -0
  200. data/lib/generators/language_extension/USAGE +27 -0
  201. data/lib/generators/language_extension/language_extension_generator.rb +49 -0
  202. data/lib/generators/language_extension/templates/README +3 -0
  203. data/lib/generators/language_extension/templates/RSpecRakefile +123 -0
  204. data/lib/generators/language_extension/templates/Rakefile +25 -0
  205. data/lib/generators/language_extension/templates/available_tags.yml +553 -0
  206. data/lib/generators/language_extension/templates/cucumber.yml +1 -0
  207. data/lib/generators/language_extension/templates/cucumber_env.rb +16 -0
  208. data/lib/generators/language_extension/templates/cucumber_paths.rb +14 -0
  209. data/lib/generators/language_extension/templates/extension.rb +8 -0
  210. data/lib/generators/language_extension/templates/functional_test.rb +15 -0
  211. data/lib/generators/language_extension/templates/lang.yml +181 -0
  212. data/lib/generators/language_extension/templates/spec.opts +6 -0
  213. data/lib/generators/language_extension/templates/spec_helper.rb +36 -0
  214. data/lib/generators/language_extension/templates/tasks.rake +28 -0
  215. data/lib/generators/language_extension/templates/test_helper.rb +26 -0
  216. data/lib/inheritable_class_attributes.rb +65 -0
  217. data/lib/local_time.rb +6 -0
  218. data/lib/login_system.rb +128 -0
  219. data/lib/method_observer.rb +50 -0
  220. data/lib/plugins/active_record_extensions/init.rb +1 -0
  221. data/lib/plugins/active_record_extensions/lib/active_record_extensions.rb +18 -0
  222. data/lib/plugins/extension_patches/init.rb +1 -0
  223. data/lib/plugins/extension_patches/lib/routing_extension.rb +31 -0
  224. data/lib/plugins/object_extensions/init.rb +1 -0
  225. data/lib/plugins/object_extensions/lib/object_extensions.rb +5 -0
  226. data/lib/plugins/response_cache_timeout/init.rb +3 -0
  227. data/lib/plugins/string_extensions/init.rb +1 -0
  228. data/lib/plugins/string_extensions/lib/string_extensions.rb +23 -0
  229. data/lib/plugins/symbol_extensions/init.rb +1 -0
  230. data/lib/plugins/symbol_extensions/lib/symbol_extensions.rb +5 -0
  231. data/lib/radiant.rb +19 -0
  232. data/lib/radiant/admin_ui.rb +257 -0
  233. data/lib/radiant/admin_ui/region_partials.rb +18 -0
  234. data/lib/radiant/admin_ui/region_set.rb +35 -0
  235. data/lib/radiant/available_locales.rb +31 -0
  236. data/lib/radiant/cache.rb +98 -0
  237. data/lib/radiant/extension.rb +132 -0
  238. data/lib/radiant/extension/script.rb +393 -0
  239. data/lib/radiant/extension_loader.rb +171 -0
  240. data/lib/radiant/extension_migrator.rb +86 -0
  241. data/lib/radiant/initializer.rb +296 -0
  242. data/lib/radiant/legacy_routes.rb +72 -0
  243. data/lib/radiant/pagination/controller.rb +34 -0
  244. data/lib/radiant/pagination/link_renderer.rb +34 -0
  245. data/lib/radiant/resource_responses.rb +115 -0
  246. data/lib/radiant/setup.rb +223 -0
  247. data/lib/radiant/taggable.rb +92 -0
  248. data/lib/simpleton.rb +21 -0
  249. data/lib/task_support.rb +64 -0
  250. data/lib/tasks/ci.rake +17 -0
  251. data/lib/tasks/cucumber.rake +47 -0
  252. data/lib/tasks/database.rake +31 -0
  253. data/lib/tasks/environments.rake +11 -0
  254. data/lib/tasks/extensions.rake +97 -0
  255. data/lib/tasks/framework.rake +213 -0
  256. data/lib/tasks/instance.rake +23 -0
  257. data/lib/tasks/prototype.rake +34 -0
  258. data/lib/tasks/radiant_config.rake +18 -0
  259. data/lib/tasks/release.rake +130 -0
  260. data/lib/tasks/rspec.rake +221 -0
  261. data/lib/tasks/translate.rake +59 -0
  262. data/lib/tasks/undefine.rake +28 -0
  263. data/lib/translation_support.rb +54 -0
  264. data/log/.keep +0 -0
  265. data/public/.htaccess +40 -0
  266. data/public/404.html +8 -0
  267. data/public/500.html +8 -0
  268. data/public/dispatch.cgi +10 -0
  269. data/public/dispatch.fcgi +24 -0
  270. data/public/dispatch.rb +10 -0
  271. data/public/favicon.ico +0 -0
  272. data/public/images/admin/add_tab.png +0 -0
  273. data/public/images/admin/avatar_32x32.png +0 -0
  274. data/public/images/admin/avatar_96x96.png +0 -0
  275. data/public/images/admin/brown_bottom_line.gif +0 -0
  276. data/public/images/admin/buttons_background.png +0 -0
  277. data/public/images/admin/calendar_down.gif +0 -0
  278. data/public/images/admin/collapse.png +0 -0
  279. data/public/images/admin/draft_page.png +0 -0
  280. data/public/images/admin/expand.png +0 -0
  281. data/public/images/admin/layout.png +0 -0
  282. data/public/images/admin/login_shadow.png +0 -0
  283. data/public/images/admin/metadata_toggle.png +0 -0
  284. data/public/images/admin/minus.png +0 -0
  285. data/public/images/admin/minus_disabled.png +0 -0
  286. data/public/images/admin/minus_grey.png +0 -0
  287. data/public/images/admin/navigation_background.gif +0 -0
  288. data/public/images/admin/navigation_secondary_background.png +0 -0
  289. data/public/images/admin/navigation_secondary_separator.gif +0 -0
  290. data/public/images/admin/navigation_shadow.png +0 -0
  291. data/public/images/admin/navigation_tabs.png +0 -0
  292. data/public/images/admin/new_homepage.png +0 -0
  293. data/public/images/admin/new_layout.png +0 -0
  294. data/public/images/admin/new_snippet.png +0 -0
  295. data/public/images/admin/new_user.png +0 -0
  296. data/public/images/admin/page.png +0 -0
  297. data/public/images/admin/plus.png +0 -0
  298. data/public/images/admin/plus_grey.png +0 -0
  299. data/public/images/admin/popup_border_background.png +0 -0
  300. data/public/images/admin/popup_border_bottom_left.png +0 -0
  301. data/public/images/admin/popup_border_bottom_right.png +0 -0
  302. data/public/images/admin/popup_border_top_left.png +0 -0
  303. data/public/images/admin/popup_border_top_right.png +0 -0
  304. data/public/images/admin/shadow.png +0 -0
  305. data/public/images/admin/shadow_grey.png +0 -0
  306. data/public/images/admin/single_form_shadow.png +0 -0
  307. data/public/images/admin/snippet.png +0 -0
  308. data/public/images/admin/spacer.gif +0 -0
  309. data/public/images/admin/spinner.gif +0 -0
  310. data/public/images/admin/status_background.png +0 -0
  311. data/public/images/admin/status_bottom_left.png +0 -0
  312. data/public/images/admin/status_bottom_right.png +0 -0
  313. data/public/images/admin/status_spinner.gif +0 -0
  314. data/public/images/admin/status_top_left.png +0 -0
  315. data/public/images/admin/status_top_right.png +0 -0
  316. data/public/images/admin/tab_close.png +0 -0
  317. data/public/images/admin/vertical_tan_gradient.png +0 -0
  318. data/public/images/admin/view_site.png +0 -0
  319. data/public/images/admin/virtual_page.png +0 -0
  320. data/public/images/radiant-badge-color.png +0 -0
  321. data/public/javascripts/admin/application.js +85 -0
  322. data/public/javascripts/admin/codearea.js +165 -0
  323. data/public/javascripts/admin/controls.js +965 -0
  324. data/public/javascripts/admin/cookie.js +80 -0
  325. data/public/javascripts/admin/dateinput.js +402 -0
  326. data/public/javascripts/admin/dragdrop.js +974 -0
  327. data/public/javascripts/admin/effects.js +1122 -0
  328. data/public/javascripts/admin/lowpro.js +340 -0
  329. data/public/javascripts/admin/overrides.js +1 -0
  330. data/public/javascripts/admin/pagestatus.js +17 -0
  331. data/public/javascripts/admin/popup.js +216 -0
  332. data/public/javascripts/admin/prototype.js +4874 -0
  333. data/public/javascripts/admin/ruledtable.js +13 -0
  334. data/public/javascripts/admin/shortcuts.js +27 -0
  335. data/public/javascripts/admin/sitemap.js +149 -0
  336. data/public/javascripts/admin/status.js +233 -0
  337. data/public/javascripts/admin/tabcontrol.js +122 -0
  338. data/public/javascripts/admin/toggle.js +430 -0
  339. data/public/javascripts/admin/utility.js +53 -0
  340. data/public/javascripts/admin/validationerror.js +18 -0
  341. data/public/robots.txt +1 -0
  342. data/public/stylesheets/admin/main.css +1 -0
  343. data/public/stylesheets/admin/overrides.css +0 -0
  344. data/public/stylesheets/sass/admin/main.sass +31 -0
  345. data/public/stylesheets/sass/admin/modules/_grid.sass +56 -0
  346. data/public/stylesheets/sass/admin/modules/_links.sass +18 -0
  347. data/public/stylesheets/sass/admin/modules/_opacity.sass +7 -0
  348. data/public/stylesheets/sass/admin/modules/_rounded.sass +41 -0
  349. data/public/stylesheets/sass/admin/modules/_shadow.sass +12 -0
  350. data/public/stylesheets/sass/admin/overrides.sass +2 -0
  351. data/public/stylesheets/sass/admin/partials/_actions.sass +98 -0
  352. data/public/stylesheets/sass/admin/partials/_avatars.sass +10 -0
  353. data/public/stylesheets/sass/admin/partials/_base.sass +7 -0
  354. data/public/stylesheets/sass/admin/partials/_content.sass +27 -0
  355. data/public/stylesheets/sass/admin/partials/_dateinput.sass +62 -0
  356. data/public/stylesheets/sass/admin/partials/_deprecated.sass +26 -0
  357. data/public/stylesheets/sass/admin/partials/_footer.sass +12 -0
  358. data/public/stylesheets/sass/admin/partials/_forms.sass +310 -0
  359. data/public/stylesheets/sass/admin/partials/_header.sass +112 -0
  360. data/public/stylesheets/sass/admin/partials/_layout.sass +10 -0
  361. data/public/stylesheets/sass/admin/partials/_messages.sass +10 -0
  362. data/public/stylesheets/sass/admin/partials/_popup.sass +117 -0
  363. data/public/stylesheets/sass/admin/partials/_reset.sass +36 -0
  364. data/public/stylesheets/sass/admin/partials/_tabcontrol.sass +71 -0
  365. data/public/stylesheets/sass/admin/partials/_toolbar.sass +31 -0
  366. data/public/stylesheets/sass/admin/partials/_validations.sass +21 -0
  367. data/script/about +3 -0
  368. data/script/autospec +5 -0
  369. data/script/breakpointer +3 -0
  370. data/script/console +3 -0
  371. data/script/cucumber +10 -0
  372. data/script/dbconsole +3 -0
  373. data/script/destroy +3 -0
  374. data/script/extension +5 -0
  375. data/script/generate +4 -0
  376. data/script/performance/benchmarker +3 -0
  377. data/script/performance/profiler +3 -0
  378. data/script/performance/request +3 -0
  379. data/script/plugin +3 -0
  380. data/script/process/inspector +3 -0
  381. data/script/process/reaper +3 -0
  382. data/script/process/spawner +3 -0
  383. data/script/process/spinner +3 -0
  384. data/script/runner +3 -0
  385. data/script/server +3 -0
  386. data/script/spec +5 -0
  387. data/script/spec_server +116 -0
  388. data/script/version +5 -0
  389. data/spec/controllers/admin/extensions_controller_spec.rb +36 -0
  390. data/spec/controllers/admin/layouts_controller_spec.rb +102 -0
  391. data/spec/controllers/admin/pages_controller_spec.rb +289 -0
  392. data/spec/controllers/admin/paginated_controller_spec.rb +26 -0
  393. data/spec/controllers/admin/preferences_controller_spec.rb +57 -0
  394. data/spec/controllers/admin/references_controller_spec.rb +15 -0
  395. data/spec/controllers/admin/snippets_controller_spec.rb +110 -0
  396. data/spec/controllers/admin/users_controller_spec.rb +101 -0
  397. data/spec/controllers/admin/welcome_controller_spec.rb +98 -0
  398. data/spec/controllers/application_controller_spec.rb +88 -0
  399. data/spec/controllers/site_controller_spec.rb +182 -0
  400. data/spec/datasets/config_dataset.rb +12 -0
  401. data/spec/datasets/file_not_found_dataset.rb +22 -0
  402. data/spec/datasets/home_page_dataset.rb +62 -0
  403. data/spec/datasets/layouts_dataset.rb +58 -0
  404. data/spec/datasets/markup_pages_dataset.rb +13 -0
  405. data/spec/datasets/pages_dataset.rb +65 -0
  406. data/spec/datasets/pages_with_layouts_dataset.rb +10 -0
  407. data/spec/datasets/snippets_dataset.rb +38 -0
  408. data/spec/datasets/users_and_pages_dataset.rb +9 -0
  409. data/spec/datasets/users_dataset.rb +56 -0
  410. data/spec/fixtures/example_extension/README +3 -0
  411. data/spec/fixtures/example_extension/Rakefile +120 -0
  412. data/spec/fixtures/example_extension/example_extension.rb +21 -0
  413. data/spec/fixtures/example_extension/lib/tasks/example_extension_tasks.rake +28 -0
  414. data/spec/fixtures/example_extension/spec/spec.opts +6 -0
  415. data/spec/fixtures/example_extension/spec/spec_helper.rb +36 -0
  416. data/spec/fixtures/radiant_config.yml +10 -0
  417. data/spec/fixtures/sample.txt +1 -0
  418. data/spec/generators/extension_controller_generator_spec.rb +95 -0
  419. data/spec/generators/extension_generator_spec.rb +235 -0
  420. data/spec/generators/extension_generators_spec_helper.rb +166 -0
  421. data/spec/generators/extension_mailer_generator_spec.rb +60 -0
  422. data/spec/generators/extension_migration_generator_spec.rb +21 -0
  423. data/spec/generators/extension_model_generator_spec.rb +61 -0
  424. data/spec/generators/instance_generator_spec.rb +159 -0
  425. data/spec/helpers/admin/abstract_model_helper_spec.rb +4 -0
  426. data/spec/helpers/admin/export_helper_spec.rb +4 -0
  427. data/spec/helpers/admin/extensions_helper_spec.rb +4 -0
  428. data/spec/helpers/admin/layouts_helper_spec.rb +4 -0
  429. data/spec/helpers/admin/node_helper_spec.rb +106 -0
  430. data/spec/helpers/admin/pages_helper_spec.rb +63 -0
  431. data/spec/helpers/admin/preferences_helper_spec.rb +11 -0
  432. data/spec/helpers/admin/references_helper_spec.rb +124 -0
  433. data/spec/helpers/admin/regions_helper_spec.rb +47 -0
  434. data/spec/helpers/admin/snippets_helper_spec.rb +4 -0
  435. data/spec/helpers/admin/users_helper_spec.rb +11 -0
  436. data/spec/helpers/admin/welcome_helper_spec.rb +4 -0
  437. data/spec/helpers/application_helper_spec.rb +263 -0
  438. data/spec/helpers/site_helper_spec.rb +4 -0
  439. data/spec/lib/annotatable_spec.rb +86 -0
  440. data/spec/lib/autotest_spec.rb +81 -0
  441. data/spec/lib/core_ext/string_ext_spec.rb +11 -0
  442. data/spec/lib/inheritable_class_attributes_spec.rb +90 -0
  443. data/spec/lib/login_system_spec.rb +195 -0
  444. data/spec/lib/method_observer_spec.rb +48 -0
  445. data/spec/lib/radiant/admin_ui/nav_tabs_spec.rb +139 -0
  446. data/spec/lib/radiant/admin_ui/region_partials_spec.rb +35 -0
  447. data/spec/lib/radiant/admin_ui/region_set_spec.rb +61 -0
  448. data/spec/lib/radiant/admin_ui_spec.rb +121 -0
  449. data/spec/lib/radiant/available_locales_spec.rb +13 -0
  450. data/spec/lib/radiant/extension/script_spec.rb +473 -0
  451. data/spec/lib/radiant/extension_loader_spec.rb +248 -0
  452. data/spec/lib/radiant/extension_migrator_spec.rb +46 -0
  453. data/spec/lib/radiant/extension_spec.rb +132 -0
  454. data/spec/lib/radiant/initializer_spec.rb +168 -0
  455. data/spec/lib/radiant/legacy_routes_spec.rb +14 -0
  456. data/spec/lib/radiant/resource_responses_spec.rb +207 -0
  457. data/spec/lib/radiant/taggable_spec.rb +188 -0
  458. data/spec/lib/radiant_spec.rb +30 -0
  459. data/spec/lib/simpleton_spec.rb +45 -0
  460. data/spec/lib/task_support_spec.rb +93 -0
  461. data/spec/lib/translation_support_spec.rb +16 -0
  462. data/spec/matchers/autotest_matchers.rb +47 -0
  463. data/spec/matchers/generator_matchers.rb +235 -0
  464. data/spec/matchers/login_system_matcher.rb +79 -0
  465. data/spec/matchers/render_form_errors_matcher.rb +62 -0
  466. data/spec/matchers/render_matcher.rb +133 -0
  467. data/spec/models/file_not_found_page_spec.rb +35 -0
  468. data/spec/models/layout_spec.rb +29 -0
  469. data/spec/models/page_context_spec.rb +66 -0
  470. data/spec/models/page_part_spec.rb +67 -0
  471. data/spec/models/page_spec.rb +687 -0
  472. data/spec/models/radiant/config_spec.rb +149 -0
  473. data/spec/models/snippet_spec.rb +41 -0
  474. data/spec/models/standard_tags_spec.rb +1146 -0
  475. data/spec/models/status_spec.rb +64 -0
  476. data/spec/models/text_filter_spec.rb +44 -0
  477. data/spec/models/user_action_observer_spec.rb +34 -0
  478. data/spec/models/user_spec.rb +209 -0
  479. data/spec/rcov.opts +2 -0
  480. data/spec/spec.opts +4 -0
  481. data/spec/spec_helper.rb +74 -0
  482. data/test/fixtures/extensions/basic/app/controllers/basic_extension_controller.rb +7 -0
  483. data/test/fixtures/extensions/basic/app/metal/basic_metal.rb +9 -0
  484. data/test/fixtures/extensions/basic/app/models/basic_extension_mailer.rb +4 -0
  485. data/test/fixtures/extensions/basic/app/models/basic_extension_model.rb +2 -0
  486. data/test/fixtures/extensions/basic/app/views/basic_extension/index.html.erb +1 -0
  487. data/test/fixtures/extensions/basic/app/views/basic_extension/override.html.erb +1 -0
  488. data/test/fixtures/extensions/basic/app/views/basic_extension_mailer/message.text.html.erb +1 -0
  489. data/test/fixtures/extensions/basic/basic_extension.rb +11 -0
  490. data/test/fixtures/extensions/basic/db/migrate/200812131420_create_initial_schema.rb +10 -0
  491. data/test/fixtures/extensions/basic/db/migrate/200812131421_modify_initial_schema.rb +10 -0
  492. data/test/fixtures/extensions/basic/lib/new_module.rb +2 -0
  493. data/test/fixtures/extensions/basic/vendor/plugins/multiple/init.rb +1 -0
  494. data/test/fixtures/extensions/basic/vendor/plugins/multiple/lib/multiple.rb +2 -0
  495. data/test/fixtures/extensions/basic/vendor/plugins/plugin_normal/init.rb +1 -0
  496. data/test/fixtures/extensions/basic/vendor/plugins/plugin_normal/lib/normal_plugin.rb +2 -0
  497. data/test/fixtures/extensions/load_order_blue/load_order_blue_extension.rb +8 -0
  498. data/test/fixtures/extensions/load_order_green/load_order_green_extension.rb +8 -0
  499. data/test/fixtures/extensions/load_order_red/load_order_red_extension.rb +8 -0
  500. data/test/fixtures/extensions/locale/config/locales/en-uk.yml +3 -0
  501. data/test/fixtures/extensions/locale/config/locales/en.yml +3 -0
  502. data/test/fixtures/extensions/locale/locale_extension.rb +5 -0
  503. data/test/fixtures/extensions/overriding/app/metal/basic_metal.rb +9 -0
  504. data/test/fixtures/extensions/overriding/app/views/basic_extension/override.html.erb +1 -0
  505. data/test/fixtures/extensions/overriding/overriding_extension.rb +8 -0
  506. data/test/fixtures/extensions/overriding/vendor/plugins/multiple/init.rb +1 -0
  507. data/test/fixtures/extensions/overriding/vendor/plugins/multiple/lib/multiple.rb +2 -0
  508. data/test/fixtures/extensions/routed/config/routes.rb +1 -0
  509. data/test/fixtures/extensions/routed/routed_extension.rb +2 -0
  510. data/test/fixtures/extensions/special_characters/db/migrate/001_create_initial_schema.rb +10 -0
  511. data/test/fixtures/extensions/special_characters/special_characters_extension.rb +3 -0
  512. data/test/fixtures/extensions/upgrading/db/migrate/01_first.rb +7 -0
  513. data/test/fixtures/extensions/upgrading/db/migrate/02_second.rb +7 -0
  514. data/test/fixtures/extensions/upgrading/db/migrate/03_pending.rb +7 -0
  515. data/test/fixtures/extensions/upgrading/db/migrate/04_dont_run.rb +7 -0
  516. data/test/fixtures/extensions/upgrading/upgrading_extension.rb +2 -0
  517. data/test/fixtures/gems/misnamed_ext-0.0.0/misnamed_ext_extension.rb +2 -0
  518. data/test/fixtures/gems/radiant-gem_ext-extension-0.0.0/gem_ext_extension.rb +2 -0
  519. data/test/fixtures/gems/radiant-gem_ext-extension-0.0.0/lib/gem_ext.rb +3 -0
  520. data/test/helpers/page_test_helper.rb +79 -0
  521. data/test/helpers/render_test_helper.rb +60 -0
  522. data/test/helpers/user_test_helper.rb +35 -0
  523. data/test/helpers/validation_test_helper.rb +42 -0
  524. data/test/test_helper.rb +64 -0
  525. data/vendor/highline/CHANGELOG +222 -0
  526. data/vendor/highline/INSTALL +35 -0
  527. data/vendor/highline/LICENSE +7 -0
  528. data/vendor/highline/README +63 -0
  529. data/vendor/highline/Rakefile +82 -0
  530. data/vendor/highline/TODO +6 -0
  531. data/vendor/highline/examples/ansi_colors.rb +38 -0
  532. data/vendor/highline/examples/asking_for_arrays.rb +18 -0
  533. data/vendor/highline/examples/basic_usage.rb +75 -0
  534. data/vendor/highline/examples/color_scheme.rb +32 -0
  535. data/vendor/highline/examples/limit.rb +12 -0
  536. data/vendor/highline/examples/menus.rb +65 -0
  537. data/vendor/highline/examples/overwrite.rb +19 -0
  538. data/vendor/highline/examples/page_and_wrap.rb +322 -0
  539. data/vendor/highline/examples/password.rb +7 -0
  540. data/vendor/highline/examples/trapping_eof.rb +22 -0
  541. data/vendor/highline/examples/using_readline.rb +17 -0
  542. data/vendor/highline/lib/highline.rb +758 -0
  543. data/vendor/highline/lib/highline/color_scheme.rb +120 -0
  544. data/vendor/highline/lib/highline/compatibility.rb +17 -0
  545. data/vendor/highline/lib/highline/import.rb +43 -0
  546. data/vendor/highline/lib/highline/menu.rb +395 -0
  547. data/vendor/highline/lib/highline/question.rb +463 -0
  548. data/vendor/highline/lib/highline/system_extensions.rb +193 -0
  549. data/vendor/highline/setup.rb +1360 -0
  550. data/vendor/highline/test/tc_color_scheme.rb +56 -0
  551. data/vendor/highline/test/tc_highline.rb +823 -0
  552. data/vendor/highline/test/tc_import.rb +54 -0
  553. data/vendor/highline/test/tc_menu.rb +429 -0
  554. data/vendor/highline/test/ts_all.rb +15 -0
  555. data/vendor/plugins/acts_as_tree/README +26 -0
  556. data/vendor/plugins/acts_as_tree/Rakefile +22 -0
  557. data/vendor/plugins/acts_as_tree/init.rb +1 -0
  558. data/vendor/plugins/acts_as_tree/lib/active_record/acts/tree.rb +96 -0
  559. data/vendor/plugins/acts_as_tree/test/abstract_unit.rb +0 -0
  560. data/vendor/plugins/acts_as_tree/test/acts_as_tree_test.rb +219 -0
  561. data/vendor/plugins/acts_as_tree/test/database.yml +0 -0
  562. data/vendor/plugins/acts_as_tree/test/fixtures/mixin.rb +0 -0
  563. data/vendor/plugins/acts_as_tree/test/fixtures/mixins.yml +0 -0
  564. data/vendor/plugins/acts_as_tree/test/schema.rb +0 -0
  565. data/vendor/plugins/dataset/CHANGELOG +59 -0
  566. data/vendor/plugins/dataset/LICENSE +19 -0
  567. data/vendor/plugins/dataset/README +111 -0
  568. data/vendor/plugins/dataset/Rakefile +31 -0
  569. data/vendor/plugins/dataset/TODO +15 -0
  570. data/vendor/plugins/dataset/VERSION.yml +4 -0
  571. data/vendor/plugins/dataset/dataset.gemspec +33 -0
  572. data/vendor/plugins/dataset/lib/dataset.rb +128 -0
  573. data/vendor/plugins/dataset/lib/dataset/base.rb +157 -0
  574. data/vendor/plugins/dataset/lib/dataset/collection.rb +19 -0
  575. data/vendor/plugins/dataset/lib/dataset/database/base.rb +30 -0
  576. data/vendor/plugins/dataset/lib/dataset/database/mysql.rb +34 -0
  577. data/vendor/plugins/dataset/lib/dataset/database/postgresql.rb +34 -0
  578. data/vendor/plugins/dataset/lib/dataset/database/sqlite3.rb +32 -0
  579. data/vendor/plugins/dataset/lib/dataset/extensions/cucumber.rb +21 -0
  580. data/vendor/plugins/dataset/lib/dataset/extensions/rspec.rb +21 -0
  581. data/vendor/plugins/dataset/lib/dataset/extensions/test_unit.rb +60 -0
  582. data/vendor/plugins/dataset/lib/dataset/instance_methods.rb +10 -0
  583. data/vendor/plugins/dataset/lib/dataset/load.rb +37 -0
  584. data/vendor/plugins/dataset/lib/dataset/record/fixture.rb +73 -0
  585. data/vendor/plugins/dataset/lib/dataset/record/meta.rb +66 -0
  586. data/vendor/plugins/dataset/lib/dataset/record/model.rb +50 -0
  587. data/vendor/plugins/dataset/lib/dataset/resolver.rb +110 -0
  588. data/vendor/plugins/dataset/lib/dataset/session.rb +35 -0
  589. data/vendor/plugins/dataset/lib/dataset/session_binding.rb +307 -0
  590. data/vendor/plugins/dataset/lib/dataset/version.rb +9 -0
  591. data/vendor/plugins/dataset/spec/dataset/cucumber_spec.rb +54 -0
  592. data/vendor/plugins/dataset/spec/dataset/database/base_spec.rb +21 -0
  593. data/vendor/plugins/dataset/spec/dataset/record/meta_spec.rb +14 -0
  594. data/vendor/plugins/dataset/spec/dataset/resolver_spec.rb +110 -0
  595. data/vendor/plugins/dataset/spec/dataset/rspec_spec.rb +133 -0
  596. data/vendor/plugins/dataset/spec/dataset/session_binding_spec.rb +198 -0
  597. data/vendor/plugins/dataset/spec/dataset/session_spec.rb +299 -0
  598. data/vendor/plugins/dataset/spec/dataset/test_unit_spec.rb +210 -0
  599. data/vendor/plugins/dataset/spec/fixtures/datasets/constant_not_defined.rb +0 -0
  600. data/vendor/plugins/dataset/spec/fixtures/datasets/ending_with_dataset.rb +2 -0
  601. data/vendor/plugins/dataset/spec/fixtures/datasets/exact_name.rb +2 -0
  602. data/vendor/plugins/dataset/spec/fixtures/datasets/not_a_dataset_base.rb +2 -0
  603. data/vendor/plugins/dataset/spec/fixtures/more_datasets/in_another_directory.rb +2 -0
  604. data/vendor/plugins/dataset/spec/models.rb +18 -0
  605. data/vendor/plugins/dataset/spec/schema.rb +26 -0
  606. data/vendor/plugins/dataset/spec/spec.opts +7 -0
  607. data/vendor/plugins/dataset/spec/spec_helper.rb +47 -0
  608. data/vendor/plugins/dataset/spec/stubs/mini_rails.rb +18 -0
  609. data/vendor/plugins/dataset/spec/stubs/test_help.rb +1 -0
  610. data/vendor/plugins/dataset/tasks/dataset.rake +19 -0
  611. data/vendor/plugins/haml/CONTRIBUTING +4 -0
  612. data/vendor/plugins/haml/MIT-LICENSE +20 -0
  613. data/vendor/plugins/haml/README.md +298 -0
  614. data/vendor/plugins/haml/Rakefile +436 -0
  615. data/vendor/plugins/haml/TODO +53 -0
  616. data/vendor/plugins/haml/VERSION +1 -0
  617. data/vendor/plugins/haml/VERSION_NAME +1 -0
  618. data/vendor/plugins/haml/bin/css2sass +13 -0
  619. data/vendor/plugins/haml/bin/haml +9 -0
  620. data/vendor/plugins/haml/bin/html2haml +7 -0
  621. data/vendor/plugins/haml/bin/sass +8 -0
  622. data/vendor/plugins/haml/doc-src/FAQ.md +187 -0
  623. data/vendor/plugins/haml/doc-src/HAML_CHANGELOG.md +1091 -0
  624. data/vendor/plugins/haml/doc-src/HAML_REFERENCE.md +1344 -0
  625. data/vendor/plugins/haml/doc-src/SASS_CHANGELOG.md +1914 -0
  626. data/vendor/plugins/haml/doc-src/SASS_REFERENCE.md +1680 -0
  627. data/vendor/plugins/haml/extra/haml-mode.el +753 -0
  628. data/vendor/plugins/haml/extra/sass-mode.el +207 -0
  629. data/vendor/plugins/haml/extra/update_watch.rb +13 -0
  630. data/vendor/plugins/haml/haml.gemspec +35 -0
  631. data/vendor/plugins/haml/init.rb +18 -0
  632. data/vendor/plugins/haml/lib/haml.rb +44 -0
  633. data/vendor/plugins/haml/lib/haml/buffer.rb +320 -0
  634. data/vendor/plugins/haml/lib/haml/engine.rb +308 -0
  635. data/vendor/plugins/haml/lib/haml/error.rb +22 -0
  636. data/vendor/plugins/haml/lib/haml/exec.rb +862 -0
  637. data/vendor/plugins/haml/lib/haml/filters.rb +371 -0
  638. data/vendor/plugins/haml/lib/haml/helpers.rb +605 -0
  639. data/vendor/plugins/haml/lib/haml/helpers/action_view_extensions.rb +57 -0
  640. data/vendor/plugins/haml/lib/haml/helpers/action_view_mods.rb +244 -0
  641. data/vendor/plugins/haml/lib/haml/helpers/xss_mods.rb +165 -0
  642. data/vendor/plugins/haml/lib/haml/html.rb +428 -0
  643. data/vendor/plugins/haml/lib/haml/precompiler.rb +1104 -0
  644. data/vendor/plugins/haml/lib/haml/railtie.rb +21 -0
  645. data/vendor/plugins/haml/lib/haml/shared.rb +78 -0
  646. data/vendor/plugins/haml/lib/haml/template.rb +97 -0
  647. data/vendor/plugins/haml/lib/haml/template/patch.rb +58 -0
  648. data/vendor/plugins/haml/lib/haml/template/plugin.rb +122 -0
  649. data/vendor/plugins/haml/lib/haml/util.rb +809 -0
  650. data/vendor/plugins/haml/lib/haml/version.rb +102 -0
  651. data/vendor/plugins/haml/lib/sass.rb +29 -0
  652. data/vendor/plugins/haml/lib/sass/css.rb +294 -0
  653. data/vendor/plugins/haml/lib/sass/engine.rb +720 -0
  654. data/vendor/plugins/haml/lib/sass/environment.rb +143 -0
  655. data/vendor/plugins/haml/lib/sass/error.rb +198 -0
  656. data/vendor/plugins/haml/lib/sass/files.rb +160 -0
  657. data/vendor/plugins/haml/lib/sass/plugin.rb +276 -0
  658. data/vendor/plugins/haml/lib/sass/plugin/merb.rb +37 -0
  659. data/vendor/plugins/haml/lib/sass/plugin/rack.rb +47 -0
  660. data/vendor/plugins/haml/lib/sass/plugin/rails.rb +32 -0
  661. data/vendor/plugins/haml/lib/sass/repl.rb +58 -0
  662. data/vendor/plugins/haml/lib/sass/script.rb +63 -0
  663. data/vendor/plugins/haml/lib/sass/script/bool.rb +18 -0
  664. data/vendor/plugins/haml/lib/sass/script/color.rb +491 -0
  665. data/vendor/plugins/haml/lib/sass/script/funcall.rb +77 -0
  666. data/vendor/plugins/haml/lib/sass/script/functions.rb +861 -0
  667. data/vendor/plugins/haml/lib/sass/script/lexer.rb +337 -0
  668. data/vendor/plugins/haml/lib/sass/script/literal.rb +236 -0
  669. data/vendor/plugins/haml/lib/sass/script/node.rb +112 -0
  670. data/vendor/plugins/haml/lib/sass/script/number.rb +423 -0
  671. data/vendor/plugins/haml/lib/sass/script/operation.rb +95 -0
  672. data/vendor/plugins/haml/lib/sass/script/parser.rb +401 -0
  673. data/vendor/plugins/haml/lib/sass/script/string.rb +67 -0
  674. data/vendor/plugins/haml/lib/sass/script/unary_operation.rb +57 -0
  675. data/vendor/plugins/haml/lib/sass/script/variable.rb +48 -0
  676. data/vendor/plugins/haml/lib/sass/tree/comment_node.rb +128 -0
  677. data/vendor/plugins/haml/lib/sass/tree/debug_node.rb +36 -0
  678. data/vendor/plugins/haml/lib/sass/tree/directive_node.rb +75 -0
  679. data/vendor/plugins/haml/lib/sass/tree/for_node.rb +67 -0
  680. data/vendor/plugins/haml/lib/sass/tree/if_node.rb +81 -0
  681. data/vendor/plugins/haml/lib/sass/tree/import_node.rb +102 -0
  682. data/vendor/plugins/haml/lib/sass/tree/mixin_def_node.rb +60 -0
  683. data/vendor/plugins/haml/lib/sass/tree/mixin_node.rb +123 -0
  684. data/vendor/plugins/haml/lib/sass/tree/node.rb +465 -0
  685. data/vendor/plugins/haml/lib/sass/tree/prop_node.rb +220 -0
  686. data/vendor/plugins/haml/lib/sass/tree/rule_node.rb +273 -0
  687. data/vendor/plugins/haml/lib/sass/tree/variable_node.rb +39 -0
  688. data/vendor/plugins/haml/lib/sass/tree/while_node.rb +48 -0
  689. data/vendor/plugins/haml/rails/init.rb +1 -0
  690. data/vendor/plugins/haml/test/benchmark.rb +99 -0
  691. data/vendor/plugins/haml/test/haml/engine_test.rb +1805 -0
  692. data/vendor/plugins/haml/test/haml/helper_test.rb +450 -0
  693. data/vendor/plugins/haml/test/haml/html2haml_test.rb +336 -0
  694. data/vendor/plugins/haml/test/haml/markaby/standard.mab +52 -0
  695. data/vendor/plugins/haml/test/haml/mocks/article.rb +6 -0
  696. data/vendor/plugins/haml/test/haml/results/content_for_layout.xhtml +12 -0
  697. data/vendor/plugins/haml/test/haml/results/eval_suppressed.xhtml +9 -0
  698. data/vendor/plugins/haml/test/haml/results/filters.xhtml +62 -0
  699. data/vendor/plugins/haml/test/haml/results/helpers.xhtml +70 -0
  700. data/vendor/plugins/haml/test/haml/results/helpful.xhtml +10 -0
  701. data/vendor/plugins/haml/test/haml/results/just_stuff.xhtml +70 -0
  702. data/vendor/plugins/haml/test/haml/results/list.xhtml +12 -0
  703. data/vendor/plugins/haml/test/haml/results/nuke_inner_whitespace.xhtml +40 -0
  704. data/vendor/plugins/haml/test/haml/results/nuke_outer_whitespace.xhtml +148 -0
  705. data/vendor/plugins/haml/test/haml/results/original_engine.xhtml +20 -0
  706. data/vendor/plugins/haml/test/haml/results/partial_layout.xhtml +5 -0
  707. data/vendor/plugins/haml/test/haml/results/partials.xhtml +21 -0
  708. data/vendor/plugins/haml/test/haml/results/render_layout.xhtml +3 -0
  709. data/vendor/plugins/haml/test/haml/results/silent_script.xhtml +74 -0
  710. data/vendor/plugins/haml/test/haml/results/standard.xhtml +162 -0
  711. data/vendor/plugins/haml/test/haml/results/tag_parsing.xhtml +23 -0
  712. data/vendor/plugins/haml/test/haml/results/very_basic.xhtml +5 -0
  713. data/vendor/plugins/haml/test/haml/results/whitespace_handling.xhtml +89 -0
  714. data/vendor/plugins/haml/test/haml/template_test.rb +417 -0
  715. data/vendor/plugins/haml/test/haml/templates/_av_partial_1.haml +9 -0
  716. data/vendor/plugins/haml/test/haml/templates/_av_partial_1_ugly.haml +9 -0
  717. data/vendor/plugins/haml/test/haml/templates/_av_partial_2.haml +5 -0
  718. data/vendor/plugins/haml/test/haml/templates/_av_partial_2_ugly.haml +5 -0
  719. data/vendor/plugins/haml/test/haml/templates/_layout.erb +3 -0
  720. data/vendor/plugins/haml/test/haml/templates/_layout_for_partial.haml +3 -0
  721. data/vendor/plugins/haml/test/haml/templates/_partial.haml +8 -0
  722. data/vendor/plugins/haml/test/haml/templates/_text_area.haml +3 -0
  723. data/vendor/plugins/haml/test/haml/templates/action_view.haml +47 -0
  724. data/vendor/plugins/haml/test/haml/templates/action_view_ugly.haml +47 -0
  725. data/vendor/plugins/haml/test/haml/templates/breakage.haml +8 -0
  726. data/vendor/plugins/haml/test/haml/templates/content_for_layout.haml +8 -0
  727. data/vendor/plugins/haml/test/haml/templates/eval_suppressed.haml +11 -0
  728. data/vendor/plugins/haml/test/haml/templates/filters.haml +66 -0
  729. data/vendor/plugins/haml/test/haml/templates/helpers.haml +55 -0
  730. data/vendor/plugins/haml/test/haml/templates/helpful.haml +11 -0
  731. data/vendor/plugins/haml/test/haml/templates/just_stuff.haml +85 -0
  732. data/vendor/plugins/haml/test/haml/templates/list.haml +12 -0
  733. data/vendor/plugins/haml/test/haml/templates/nuke_inner_whitespace.haml +32 -0
  734. data/vendor/plugins/haml/test/haml/templates/nuke_outer_whitespace.haml +144 -0
  735. data/vendor/plugins/haml/test/haml/templates/original_engine.haml +17 -0
  736. data/vendor/plugins/haml/test/haml/templates/partial_layout.haml +7 -0
  737. data/vendor/plugins/haml/test/haml/templates/partialize.haml +1 -0
  738. data/vendor/plugins/haml/test/haml/templates/partials.haml +12 -0
  739. data/vendor/plugins/haml/test/haml/templates/render_layout.haml +2 -0
  740. data/vendor/plugins/haml/test/haml/templates/silent_script.haml +40 -0
  741. data/vendor/plugins/haml/test/haml/templates/standard.haml +42 -0
  742. data/vendor/plugins/haml/test/haml/templates/standard_ugly.haml +42 -0
  743. data/vendor/plugins/haml/test/haml/templates/tag_parsing.haml +21 -0
  744. data/vendor/plugins/haml/test/haml/templates/very_basic.haml +4 -0
  745. data/vendor/plugins/haml/test/haml/templates/whitespace_handling.haml +87 -0
  746. data/vendor/plugins/haml/test/haml/util_test.rb +268 -0
  747. data/vendor/plugins/haml/test/linked_rails.rb +42 -0
  748. data/vendor/plugins/haml/test/sass/css2sass_test.rb +364 -0
  749. data/vendor/plugins/haml/test/sass/engine_test.rb +2263 -0
  750. data/vendor/plugins/haml/test/sass/functions_test.rb +556 -0
  751. data/vendor/plugins/haml/test/sass/more_results/more1.css +9 -0
  752. data/vendor/plugins/haml/test/sass/more_results/more1_with_line_comments.css +26 -0
  753. data/vendor/plugins/haml/test/sass/more_results/more_import.css +29 -0
  754. data/vendor/plugins/haml/test/sass/more_templates/_more_partial.sass +2 -0
  755. data/vendor/plugins/haml/test/sass/more_templates/more1.sass +23 -0
  756. data/vendor/plugins/haml/test/sass/more_templates/more_import.sass +11 -0
  757. data/vendor/plugins/haml/test/sass/plugin_test.rb +433 -0
  758. data/vendor/plugins/haml/test/sass/results/alt.css +4 -0
  759. data/vendor/plugins/haml/test/sass/results/basic.css +9 -0
  760. data/vendor/plugins/haml/test/sass/results/compact.css +5 -0
  761. data/vendor/plugins/haml/test/sass/results/complex.css +86 -0
  762. data/vendor/plugins/haml/test/sass/results/compressed.css +1 -0
  763. data/vendor/plugins/haml/test/sass/results/expanded.css +19 -0
  764. data/vendor/plugins/haml/test/sass/results/import.css +31 -0
  765. data/vendor/plugins/haml/test/sass/results/line_numbers.css +49 -0
  766. data/vendor/plugins/haml/test/sass/results/mixins.css +95 -0
  767. data/vendor/plugins/haml/test/sass/results/multiline.css +24 -0
  768. data/vendor/plugins/haml/test/sass/results/nested.css +22 -0
  769. data/vendor/plugins/haml/test/sass/results/parent_ref.css +13 -0
  770. data/vendor/plugins/haml/test/sass/results/script.css +16 -0
  771. data/vendor/plugins/haml/test/sass/results/subdir/nested_subdir/nested_subdir.css +1 -0
  772. data/vendor/plugins/haml/test/sass/results/subdir/subdir.css +3 -0
  773. data/vendor/plugins/haml/test/sass/results/units.css +11 -0
  774. data/vendor/plugins/haml/test/sass/script_test.rb +470 -0
  775. data/vendor/plugins/haml/test/sass/templates/_partial.sass +2 -0
  776. data/vendor/plugins/haml/test/sass/templates/alt.sass +16 -0
  777. data/vendor/plugins/haml/test/sass/templates/basic.sass +23 -0
  778. data/vendor/plugins/haml/test/sass/templates/bork2.sass +2 -0
  779. data/vendor/plugins/haml/test/sass/templates/compact.sass +17 -0
  780. data/vendor/plugins/haml/test/sass/templates/complex.sass +305 -0
  781. data/vendor/plugins/haml/test/sass/templates/compressed.sass +15 -0
  782. data/vendor/plugins/haml/test/sass/templates/expanded.sass +17 -0
  783. data/vendor/plugins/haml/test/sass/templates/import.sass +12 -0
  784. data/vendor/plugins/haml/test/sass/templates/importee.sass +19 -0
  785. data/vendor/plugins/haml/test/sass/templates/line_numbers.sass +13 -0
  786. data/vendor/plugins/haml/test/sass/templates/mixins.sass +76 -0
  787. data/vendor/plugins/haml/test/sass/templates/multiline.sass +20 -0
  788. data/vendor/plugins/haml/test/sass/templates/nested.sass +25 -0
  789. data/vendor/plugins/haml/test/sass/templates/parent_ref.sass +25 -0
  790. data/vendor/plugins/haml/test/sass/templates/script.sass +101 -0
  791. data/vendor/plugins/haml/test/sass/templates/subdir/nested_subdir/_nested_partial.sass +2 -0
  792. data/vendor/plugins/haml/test/sass/templates/subdir/nested_subdir/nested_subdir.sass +3 -0
  793. data/vendor/plugins/haml/test/sass/templates/subdir/subdir.sass +6 -0
  794. data/vendor/plugins/haml/test/sass/templates/units.sass +11 -0
  795. data/vendor/plugins/haml/test/test_helper.rb +98 -0
  796. data/vendor/plugins/haml/yard/default/fulldoc/html/css/common.sass +26 -0
  797. data/vendor/plugins/haml/yard/default/layout/html/footer.erb +12 -0
  798. data/vendor/plugins/haml/yard/inherited_hash.rb +41 -0
  799. data/vendor/rack-cache/CHANGES +128 -0
  800. data/vendor/rack-cache/COPYING +18 -0
  801. data/vendor/rack-cache/README +110 -0
  802. data/vendor/rack-cache/Rakefile +137 -0
  803. data/vendor/rack-cache/TODO +31 -0
  804. data/vendor/rack-cache/doc/configuration.markdown +86 -0
  805. data/vendor/rack-cache/doc/faq.markdown +141 -0
  806. data/vendor/rack-cache/doc/index.markdown +118 -0
  807. data/vendor/rack-cache/doc/layout.html.erb +34 -0
  808. data/vendor/rack-cache/doc/license.markdown +24 -0
  809. data/vendor/rack-cache/doc/rack-cache.css +362 -0
  810. data/vendor/rack-cache/doc/server.ru +34 -0
  811. data/vendor/rack-cache/doc/storage.markdown +162 -0
  812. data/vendor/rack-cache/example/sinatra/app.rb +25 -0
  813. data/vendor/rack-cache/example/sinatra/views/index.erb +44 -0
  814. data/vendor/rack-cache/lib/rack/cache.rb +45 -0
  815. data/vendor/rack-cache/lib/rack/cache/cachecontrol.rb +193 -0
  816. data/vendor/rack-cache/lib/rack/cache/context.rb +233 -0
  817. data/vendor/rack-cache/lib/rack/cache/entitystore.rb +253 -0
  818. data/vendor/rack-cache/lib/rack/cache/key.rb +52 -0
  819. data/vendor/rack-cache/lib/rack/cache/metastore.rb +328 -0
  820. data/vendor/rack-cache/lib/rack/cache/options.rb +150 -0
  821. data/vendor/rack-cache/lib/rack/cache/request.rb +33 -0
  822. data/vendor/rack-cache/lib/rack/cache/response.rb +267 -0
  823. data/vendor/rack-cache/lib/rack/cache/storage.rb +49 -0
  824. data/vendor/rack-cache/rack-cache.gemspec +69 -0
  825. data/vendor/rack-cache/test/cache_test.rb +38 -0
  826. data/vendor/rack-cache/test/cachecontrol_test.rb +139 -0
  827. data/vendor/rack-cache/test/context_test.rb +727 -0
  828. data/vendor/rack-cache/test/entitystore_test.rb +189 -0
  829. data/vendor/rack-cache/test/key_test.rb +50 -0
  830. data/vendor/rack-cache/test/metastore_test.rb +263 -0
  831. data/vendor/rack-cache/test/options_test.rb +78 -0
  832. data/vendor/rack-cache/test/pony.jpg +0 -0
  833. data/vendor/rack-cache/test/request_test.rb +19 -0
  834. data/vendor/rack-cache/test/response_test.rb +178 -0
  835. data/vendor/rack-cache/test/spec_setup.rb +202 -0
  836. data/vendor/rack-cache/test/storage_test.rb +94 -0
  837. data/vendor/radius/CHANGELOG +33 -0
  838. data/vendor/radius/LICENSE +19 -0
  839. data/vendor/radius/QUICKSTART.rdoc +322 -0
  840. data/vendor/radius/README.rdoc +102 -0
  841. data/vendor/radius/Rakefile +8 -0
  842. data/vendor/radius/VERSION +1 -0
  843. data/vendor/radius/lib/radius.rb +10 -0
  844. data/vendor/radius/lib/radius/context.rb +139 -0
  845. data/vendor/radius/lib/radius/delegating_open_struct.rb +31 -0
  846. data/vendor/radius/lib/radius/error.rb +43 -0
  847. data/vendor/radius/lib/radius/parse_tag.rb +24 -0
  848. data/vendor/radius/lib/radius/parser.rb +65 -0
  849. data/vendor/radius/lib/radius/parser/scan.rb +678 -0
  850. data/vendor/radius/lib/radius/parser/scan.rl +124 -0
  851. data/vendor/radius/lib/radius/tag_binding.rb +71 -0
  852. data/vendor/radius/lib/radius/tag_definitions.rb +78 -0
  853. data/vendor/radius/lib/radius/utility.rb +30 -0
  854. data/vendor/radius/lib/radius/version.rb +8 -0
  855. data/vendor/radius/radius.gemspec +71 -0
  856. data/vendor/radius/tasks/jeweler.rake +21 -0
  857. data/vendor/radius/tasks/rdoc.rake +13 -0
  858. data/vendor/radius/tasks/scan.rake +27 -0
  859. data/vendor/radius/tasks/test.rake +7 -0
  860. data/vendor/radius/test/context_test.rb +61 -0
  861. data/vendor/radius/test/parser_test.rb +295 -0
  862. data/vendor/radius/test/quickstart_test.rb +153 -0
  863. data/vendor/radius/test/test_helper.rb +29 -0
  864. data/vendor/rails/actionmailer/CHANGELOG +388 -0
  865. data/vendor/rails/actionmailer/MIT-LICENSE +21 -0
  866. data/vendor/rails/actionmailer/README +149 -0
  867. data/vendor/rails/actionmailer/Rakefile +99 -0
  868. data/vendor/rails/actionmailer/install.rb +30 -0
  869. data/vendor/rails/actionmailer/lib/action_mailer.rb +62 -0
  870. data/vendor/rails/actionmailer/lib/action_mailer/adv_attr_accessor.rb +30 -0
  871. data/vendor/rails/actionmailer/lib/action_mailer/base.rb +706 -0
  872. data/vendor/rails/actionmailer/lib/action_mailer/helpers.rb +113 -0
  873. data/vendor/rails/actionmailer/lib/action_mailer/mail_helper.rb +17 -0
  874. data/vendor/rails/actionmailer/lib/action_mailer/part.rb +107 -0
  875. data/vendor/rails/actionmailer/lib/action_mailer/part_container.rb +55 -0
  876. data/vendor/rails/actionmailer/lib/action_mailer/quoting.rb +62 -0
  877. data/vendor/rails/actionmailer/lib/action_mailer/test_case.rb +64 -0
  878. data/vendor/rails/actionmailer/lib/action_mailer/test_helper.rb +68 -0
  879. data/vendor/rails/actionmailer/lib/action_mailer/utils.rb +7 -0
  880. data/vendor/rails/actionmailer/lib/action_mailer/vendor/text-format-0.6.3/text/format.rb +1466 -0
  881. data/vendor/rails/actionmailer/lib/action_mailer/vendor/text_format.rb +10 -0
  882. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail.rb +6 -0
  883. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/Makefile +18 -0
  884. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/address.rb +392 -0
  885. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/attachments.rb +65 -0
  886. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/base64.rb +46 -0
  887. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/compat.rb +41 -0
  888. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/config.rb +67 -0
  889. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/core_extensions.rb +63 -0
  890. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/encode.rb +590 -0
  891. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/header.rb +962 -0
  892. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/index.rb +9 -0
  893. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/interface.rb +1162 -0
  894. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/loader.rb +3 -0
  895. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/mail.rb +578 -0
  896. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/mailbox.rb +496 -0
  897. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/main.rb +6 -0
  898. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/mbox.rb +3 -0
  899. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/net.rb +250 -0
  900. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/obsolete.rb +132 -0
  901. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/parser.rb +1060 -0
  902. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/parser.y +416 -0
  903. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/port.rb +379 -0
  904. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/quoting.rb +164 -0
  905. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/require_arch.rb +58 -0
  906. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/scanner.rb +49 -0
  907. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/scanner_r.rb +262 -0
  908. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/stringio.rb +280 -0
  909. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/utils.rb +362 -0
  910. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/COPYING +504 -0
  911. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/README +12 -0
  912. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet.rb +67 -0
  913. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/big5freq.rb +927 -0
  914. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/big5prober.rb +42 -0
  915. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/chardistribution.rb +238 -0
  916. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/charsetgroupprober.rb +112 -0
  917. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/charsetprober.rb +75 -0
  918. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/codingstatemachine.rb +64 -0
  919. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/constants.rb +42 -0
  920. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/escprober.rb +89 -0
  921. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/escsm.rb +244 -0
  922. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/eucjpprober.rb +88 -0
  923. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/euckrfreq.rb +596 -0
  924. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/euckrprober.rb +42 -0
  925. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/euctwfreq.rb +430 -0
  926. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/euctwprober.rb +42 -0
  927. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/gb2312freq.rb +474 -0
  928. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/gb2312prober.rb +42 -0
  929. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/hebrewprober.rb +289 -0
  930. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/jisfreq.rb +570 -0
  931. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/jpcntx.rb +229 -0
  932. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/langbulgarianmodel.rb +229 -0
  933. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/langcyrillicmodel.rb +330 -0
  934. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/langgreekmodel.rb +227 -0
  935. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/langhebrewmodel.rb +202 -0
  936. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/langhungarianmodel.rb +226 -0
  937. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/langthaimodel.rb +201 -0
  938. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/latin1prober.rb +147 -0
  939. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/mbcharsetprober.rb +89 -0
  940. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/mbcsgroupprober.rb +45 -0
  941. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/mbcssm.rb +542 -0
  942. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/sbcharsetprober.rb +124 -0
  943. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/sbcsgroupprober.rb +56 -0
  944. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/sjisprober.rb +88 -0
  945. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/universaldetector.rb +168 -0
  946. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/vendor/rchardet-1.3/lib/rchardet/utf8prober.rb +87 -0
  947. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.7/tmail/version.rb +39 -0
  948. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail.rb +17 -0
  949. data/vendor/rails/actionmailer/lib/action_mailer/version.rb +9 -0
  950. data/vendor/rails/actionmailer/lib/actionmailer.rb +2 -0
  951. data/vendor/rails/actionmailer/test/abstract_unit.rb +62 -0
  952. data/vendor/rails/actionmailer/test/asset_host_test.rb +54 -0
  953. data/vendor/rails/actionmailer/test/delivery_method_test.rb +51 -0
  954. data/vendor/rails/actionmailer/test/fixtures/asset_host_mailer/email_with_asset.html.erb +1 -0
  955. data/vendor/rails/actionmailer/test/fixtures/auto_layout_mailer/hello.html.erb +1 -0
  956. data/vendor/rails/actionmailer/test/fixtures/auto_layout_mailer/multipart.text.html.erb +1 -0
  957. data/vendor/rails/actionmailer/test/fixtures/auto_layout_mailer/multipart.text.plain.erb +1 -0
  958. data/vendor/rails/actionmailer/test/fixtures/explicit_layout_mailer/logout.html.erb +1 -0
  959. data/vendor/rails/actionmailer/test/fixtures/explicit_layout_mailer/signup.html.erb +1 -0
  960. data/vendor/rails/actionmailer/test/fixtures/first_mailer/share.erb +1 -0
  961. data/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_example_helper.erb +1 -0
  962. data/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_helper.erb +1 -0
  963. data/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_helper_method.erb +1 -0
  964. data/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_mail_helper.erb +5 -0
  965. data/vendor/rails/actionmailer/test/fixtures/helpers/example_helper.rb +5 -0
  966. data/vendor/rails/actionmailer/test/fixtures/layouts/auto_layout_mailer.html.erb +1 -0
  967. data/vendor/rails/actionmailer/test/fixtures/layouts/auto_layout_mailer.text.erb +1 -0
  968. data/vendor/rails/actionmailer/test/fixtures/layouts/spam.html.erb +1 -0
  969. data/vendor/rails/actionmailer/test/fixtures/path.with.dots/funky_path_mailer/multipart_with_template_path_with_dots.erb +1 -0
  970. data/vendor/rails/actionmailer/test/fixtures/raw_email +14 -0
  971. data/vendor/rails/actionmailer/test/fixtures/raw_email10 +20 -0
  972. data/vendor/rails/actionmailer/test/fixtures/raw_email12 +32 -0
  973. data/vendor/rails/actionmailer/test/fixtures/raw_email13 +29 -0
  974. data/vendor/rails/actionmailer/test/fixtures/raw_email2 +114 -0
  975. data/vendor/rails/actionmailer/test/fixtures/raw_email3 +70 -0
  976. data/vendor/rails/actionmailer/test/fixtures/raw_email4 +59 -0
  977. data/vendor/rails/actionmailer/test/fixtures/raw_email5 +19 -0
  978. data/vendor/rails/actionmailer/test/fixtures/raw_email6 +20 -0
  979. data/vendor/rails/actionmailer/test/fixtures/raw_email7 +66 -0
  980. data/vendor/rails/actionmailer/test/fixtures/raw_email8 +47 -0
  981. data/vendor/rails/actionmailer/test/fixtures/raw_email9 +28 -0
  982. data/vendor/rails/actionmailer/test/fixtures/raw_email_quoted_with_0d0a +14 -0
  983. data/vendor/rails/actionmailer/test/fixtures/raw_email_with_invalid_characters_in_content_type +104 -0
  984. data/vendor/rails/actionmailer/test/fixtures/raw_email_with_nested_attachment +100 -0
  985. data/vendor/rails/actionmailer/test/fixtures/raw_email_with_partially_quoted_subject +14 -0
  986. data/vendor/rails/actionmailer/test/fixtures/second_mailer/share.erb +1 -0
  987. data/vendor/rails/actionmailer/test/fixtures/templates/signed_up.erb +3 -0
  988. data/vendor/rails/actionmailer/test/fixtures/test_mailer/_subtemplate.text.plain.erb +1 -0
  989. data/vendor/rails/actionmailer/test/fixtures/test_mailer/body_ivar.erb +2 -0
  990. data/vendor/rails/actionmailer/test/fixtures/test_mailer/custom_templating_extension.text.html.haml +6 -0
  991. data/vendor/rails/actionmailer/test/fixtures/test_mailer/custom_templating_extension.text.plain.haml +6 -0
  992. data/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.ignored.erb +1 -0
  993. data/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.html.erb +10 -0
  994. data/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.plain.erb +2 -0
  995. data/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.yaml.erb +1 -0
  996. data/vendor/rails/actionmailer/test/fixtures/test_mailer/included_subtemplate.text.plain.erb +1 -0
  997. data/vendor/rails/actionmailer/test/fixtures/test_mailer/rxml_template.builder +2 -0
  998. data/vendor/rails/actionmailer/test/fixtures/test_mailer/rxml_template.rxml +2 -0
  999. data/vendor/rails/actionmailer/test/fixtures/test_mailer/signed_up.html.erb +3 -0
  1000. data/vendor/rails/actionmailer/test/fixtures/test_mailer/signed_up_with_url.erb +5 -0
  1001. data/vendor/rails/actionmailer/test/mail_helper_test.rb +95 -0
  1002. data/vendor/rails/actionmailer/test/mail_layout_test.rb +123 -0
  1003. data/vendor/rails/actionmailer/test/mail_render_test.rb +116 -0
  1004. data/vendor/rails/actionmailer/test/mail_service_test.rb +1145 -0
  1005. data/vendor/rails/actionmailer/test/quoting_test.rb +105 -0
  1006. data/vendor/rails/actionmailer/test/test_helper_test.rb +129 -0
  1007. data/vendor/rails/actionmailer/test/tmail_test.rb +22 -0
  1008. data/vendor/rails/actionmailer/test/url_test.rb +76 -0
  1009. data/vendor/rails/actionpack/CHANGELOG +5239 -0
  1010. data/vendor/rails/actionpack/MIT-LICENSE +21 -0
  1011. data/vendor/rails/actionpack/README +409 -0
  1012. data/vendor/rails/actionpack/RUNNING_UNIT_TESTS +24 -0
  1013. data/vendor/rails/actionpack/Rakefile +160 -0
  1014. data/vendor/rails/actionpack/install.rb +30 -0
  1015. data/vendor/rails/actionpack/lib/action_controller.rb +113 -0
  1016. data/vendor/rails/actionpack/lib/action_controller/assertions/dom_assertions.rb +55 -0
  1017. data/vendor/rails/actionpack/lib/action_controller/assertions/model_assertions.rb +21 -0
  1018. data/vendor/rails/actionpack/lib/action_controller/assertions/response_assertions.rb +169 -0
  1019. data/vendor/rails/actionpack/lib/action_controller/assertions/routing_assertions.rb +146 -0
  1020. data/vendor/rails/actionpack/lib/action_controller/assertions/selector_assertions.rb +638 -0
  1021. data/vendor/rails/actionpack/lib/action_controller/assertions/tag_assertions.rb +127 -0
  1022. data/vendor/rails/actionpack/lib/action_controller/base.rb +1423 -0
  1023. data/vendor/rails/actionpack/lib/action_controller/benchmarking.rb +107 -0
  1024. data/vendor/rails/actionpack/lib/action_controller/caching.rb +71 -0
  1025. data/vendor/rails/actionpack/lib/action_controller/caching/actions.rb +177 -0
  1026. data/vendor/rails/actionpack/lib/action_controller/caching/fragments.rb +120 -0
  1027. data/vendor/rails/actionpack/lib/action_controller/caching/pages.rb +152 -0
  1028. data/vendor/rails/actionpack/lib/action_controller/caching/sweeper.rb +45 -0
  1029. data/vendor/rails/actionpack/lib/action_controller/caching/sweeping.rb +55 -0
  1030. data/vendor/rails/actionpack/lib/action_controller/cgi_ext.rb +15 -0
  1031. data/vendor/rails/actionpack/lib/action_controller/cgi_ext/cookie.rb +112 -0
  1032. data/vendor/rails/actionpack/lib/action_controller/cgi_ext/query_extension.rb +22 -0
  1033. data/vendor/rails/actionpack/lib/action_controller/cgi_ext/stdinput.rb +24 -0
  1034. data/vendor/rails/actionpack/lib/action_controller/cgi_process.rb +77 -0
  1035. data/vendor/rails/actionpack/lib/action_controller/cookies.rb +191 -0
  1036. data/vendor/rails/actionpack/lib/action_controller/dispatcher.rb +133 -0
  1037. data/vendor/rails/actionpack/lib/action_controller/failsafe.rb +87 -0
  1038. data/vendor/rails/actionpack/lib/action_controller/filters.rb +680 -0
  1039. data/vendor/rails/actionpack/lib/action_controller/flash.rb +213 -0
  1040. data/vendor/rails/actionpack/lib/action_controller/headers.rb +33 -0
  1041. data/vendor/rails/actionpack/lib/action_controller/helpers.rb +225 -0
  1042. data/vendor/rails/actionpack/lib/action_controller/http_authentication.rb +309 -0
  1043. data/vendor/rails/actionpack/lib/action_controller/integration.rb +696 -0
  1044. data/vendor/rails/actionpack/lib/action_controller/layout.rb +286 -0
  1045. data/vendor/rails/actionpack/lib/action_controller/middleware_stack.rb +119 -0
  1046. data/vendor/rails/actionpack/lib/action_controller/middlewares.rb +14 -0
  1047. data/vendor/rails/actionpack/lib/action_controller/mime_responds.rb +193 -0
  1048. data/vendor/rails/actionpack/lib/action_controller/mime_type.rb +212 -0
  1049. data/vendor/rails/actionpack/lib/action_controller/mime_types.rb +21 -0
  1050. data/vendor/rails/actionpack/lib/action_controller/params_parser.rb +77 -0
  1051. data/vendor/rails/actionpack/lib/action_controller/performance_test.rb +15 -0
  1052. data/vendor/rails/actionpack/lib/action_controller/polymorphic_routes.rb +189 -0
  1053. data/vendor/rails/actionpack/lib/action_controller/rack_lint_patch.rb +36 -0
  1054. data/vendor/rails/actionpack/lib/action_controller/record_identifier.rb +104 -0
  1055. data/vendor/rails/actionpack/lib/action_controller/reloader.rb +54 -0
  1056. data/vendor/rails/actionpack/lib/action_controller/request.rb +493 -0
  1057. data/vendor/rails/actionpack/lib/action_controller/request_forgery_protection.rb +113 -0
  1058. data/vendor/rails/actionpack/lib/action_controller/rescue.rb +183 -0
  1059. data/vendor/rails/actionpack/lib/action_controller/resources.rb +682 -0
  1060. data/vendor/rails/actionpack/lib/action_controller/response.rb +236 -0
  1061. data/vendor/rails/actionpack/lib/action_controller/routing.rb +388 -0
  1062. data/vendor/rails/actionpack/lib/action_controller/routing/builder.rb +197 -0
  1063. data/vendor/rails/actionpack/lib/action_controller/routing/optimisations.rb +130 -0
  1064. data/vendor/rails/actionpack/lib/action_controller/routing/recognition_optimisation.rb +167 -0
  1065. data/vendor/rails/actionpack/lib/action_controller/routing/route.rb +265 -0
  1066. data/vendor/rails/actionpack/lib/action_controller/routing/route_set.rb +503 -0
  1067. data/vendor/rails/actionpack/lib/action_controller/routing/routing_ext.rb +49 -0
  1068. data/vendor/rails/actionpack/lib/action_controller/routing/segments.rb +343 -0
  1069. data/vendor/rails/actionpack/lib/action_controller/session/abstract_store.rb +187 -0
  1070. data/vendor/rails/actionpack/lib/action_controller/session/cookie_store.rb +227 -0
  1071. data/vendor/rails/actionpack/lib/action_controller/session/mem_cache_store.rb +51 -0
  1072. data/vendor/rails/actionpack/lib/action_controller/session_management.rb +54 -0
  1073. data/vendor/rails/actionpack/lib/action_controller/status_codes.rb +88 -0
  1074. data/vendor/rails/actionpack/lib/action_controller/streaming.rb +181 -0
  1075. data/vendor/rails/actionpack/lib/action_controller/string_coercion.rb +29 -0
  1076. data/vendor/rails/actionpack/lib/action_controller/templates/rescues/_request_and_response.erb +24 -0
  1077. data/vendor/rails/actionpack/lib/action_controller/templates/rescues/_trace.erb +26 -0
  1078. data/vendor/rails/actionpack/lib/action_controller/templates/rescues/diagnostics.erb +11 -0
  1079. data/vendor/rails/actionpack/lib/action_controller/templates/rescues/layout.erb +29 -0
  1080. data/vendor/rails/actionpack/lib/action_controller/templates/rescues/missing_template.erb +2 -0
  1081. data/vendor/rails/actionpack/lib/action_controller/templates/rescues/routing_error.erb +10 -0
  1082. data/vendor/rails/actionpack/lib/action_controller/templates/rescues/template_error.erb +21 -0
  1083. data/vendor/rails/actionpack/lib/action_controller/templates/rescues/unknown_action.erb +2 -0
  1084. data/vendor/rails/actionpack/lib/action_controller/test_case.rb +209 -0
  1085. data/vendor/rails/actionpack/lib/action_controller/test_process.rb +580 -0
  1086. data/vendor/rails/actionpack/lib/action_controller/translation.rb +13 -0
  1087. data/vendor/rails/actionpack/lib/action_controller/uploaded_file.rb +44 -0
  1088. data/vendor/rails/actionpack/lib/action_controller/url_rewriter.rb +219 -0
  1089. data/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner.rb +16 -0
  1090. data/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/document.rb +68 -0
  1091. data/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/node.rb +537 -0
  1092. data/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/sanitizer.rb +173 -0
  1093. data/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/selector.rb +828 -0
  1094. data/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/tokenizer.rb +105 -0
  1095. data/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/version.rb +11 -0
  1096. data/vendor/rails/actionpack/lib/action_controller/verification.rb +130 -0
  1097. data/vendor/rails/actionpack/lib/action_pack.rb +24 -0
  1098. data/vendor/rails/actionpack/lib/action_pack/version.rb +9 -0
  1099. data/vendor/rails/actionpack/lib/action_view.rb +58 -0
  1100. data/vendor/rails/actionpack/lib/action_view/base.rb +362 -0
  1101. data/vendor/rails/actionpack/lib/action_view/helpers.rb +59 -0
  1102. data/vendor/rails/actionpack/lib/action_view/helpers/active_record_helper.rb +305 -0
  1103. data/vendor/rails/actionpack/lib/action_view/helpers/asset_tag_helper.rb +694 -0
  1104. data/vendor/rails/actionpack/lib/action_view/helpers/atom_feed_helper.rb +198 -0
  1105. data/vendor/rails/actionpack/lib/action_view/helpers/benchmark_helper.rb +54 -0
  1106. data/vendor/rails/actionpack/lib/action_view/helpers/cache_helper.rb +39 -0
  1107. data/vendor/rails/actionpack/lib/action_view/helpers/capture_helper.rb +136 -0
  1108. data/vendor/rails/actionpack/lib/action_view/helpers/date_helper.rb +989 -0
  1109. data/vendor/rails/actionpack/lib/action_view/helpers/debug_helper.rb +38 -0
  1110. data/vendor/rails/actionpack/lib/action_view/helpers/form_helper.rb +1111 -0
  1111. data/vendor/rails/actionpack/lib/action_view/helpers/form_options_helper.rb +599 -0
  1112. data/vendor/rails/actionpack/lib/action_view/helpers/form_tag_helper.rb +490 -0
  1113. data/vendor/rails/actionpack/lib/action_view/helpers/javascript_helper.rb +208 -0
  1114. data/vendor/rails/actionpack/lib/action_view/helpers/number_helper.rb +308 -0
  1115. data/vendor/rails/actionpack/lib/action_view/helpers/prototype_helper.rb +1305 -0
  1116. data/vendor/rails/actionpack/lib/action_view/helpers/raw_output_helper.rb +9 -0
  1117. data/vendor/rails/actionpack/lib/action_view/helpers/record_identification_helper.rb +20 -0
  1118. data/vendor/rails/actionpack/lib/action_view/helpers/record_tag_helper.rb +58 -0
  1119. data/vendor/rails/actionpack/lib/action_view/helpers/sanitize_helper.rb +251 -0
  1120. data/vendor/rails/actionpack/lib/action_view/helpers/scriptaculous_helper.rb +226 -0
  1121. data/vendor/rails/actionpack/lib/action_view/helpers/tag_helper.rb +151 -0
  1122. data/vendor/rails/actionpack/lib/action_view/helpers/text_helper.rb +587 -0
  1123. data/vendor/rails/actionpack/lib/action_view/helpers/translation_helper.rb +67 -0
  1124. data/vendor/rails/actionpack/lib/action_view/helpers/url_helper.rb +636 -0
  1125. data/vendor/rails/actionpack/lib/action_view/inline_template.rb +19 -0
  1126. data/vendor/rails/actionpack/lib/action_view/locale/en.yml +117 -0
  1127. data/vendor/rails/actionpack/lib/action_view/partials.rb +241 -0
  1128. data/vendor/rails/actionpack/lib/action_view/paths.rb +77 -0
  1129. data/vendor/rails/actionpack/lib/action_view/reloadable_template.rb +117 -0
  1130. data/vendor/rails/actionpack/lib/action_view/renderable.rb +109 -0
  1131. data/vendor/rails/actionpack/lib/action_view/renderable_partial.rb +47 -0
  1132. data/vendor/rails/actionpack/lib/action_view/template.rb +252 -0
  1133. data/vendor/rails/actionpack/lib/action_view/template_error.rb +99 -0
  1134. data/vendor/rails/actionpack/lib/action_view/template_handler.rb +34 -0
  1135. data/vendor/rails/actionpack/lib/action_view/template_handlers.rb +48 -0
  1136. data/vendor/rails/actionpack/lib/action_view/template_handlers/builder.rb +17 -0
  1137. data/vendor/rails/actionpack/lib/action_view/template_handlers/erb.rb +25 -0
  1138. data/vendor/rails/actionpack/lib/action_view/template_handlers/rjs.rb +13 -0
  1139. data/vendor/rails/actionpack/lib/action_view/test_case.rb +162 -0
  1140. data/vendor/rails/actionpack/lib/actionpack.rb +2 -0
  1141. data/vendor/rails/actionpack/test/abstract_unit.rb +61 -0
  1142. data/vendor/rails/actionpack/test/active_record_unit.rb +104 -0
  1143. data/vendor/rails/actionpack/test/activerecord/active_record_store_test.rb +174 -0
  1144. data/vendor/rails/actionpack/test/activerecord/render_partial_with_record_identification_test.rb +188 -0
  1145. data/vendor/rails/actionpack/test/adv_attr_test.rb +20 -0
  1146. data/vendor/rails/actionpack/test/controller/action_pack_assertions_test.rb +545 -0
  1147. data/vendor/rails/actionpack/test/controller/addresses_render_test.rb +37 -0
  1148. data/vendor/rails/actionpack/test/controller/assert_select_test.rb +735 -0
  1149. data/vendor/rails/actionpack/test/controller/base_test.rb +217 -0
  1150. data/vendor/rails/actionpack/test/controller/benchmark_test.rb +32 -0
  1151. data/vendor/rails/actionpack/test/controller/caching_test.rb +743 -0
  1152. data/vendor/rails/actionpack/test/controller/capture_test.rb +66 -0
  1153. data/vendor/rails/actionpack/test/controller/content_type_test.rb +168 -0
  1154. data/vendor/rails/actionpack/test/controller/controller_fixtures/app/controllers/admin/user_controller.rb +0 -0
  1155. data/vendor/rails/actionpack/test/controller/controller_fixtures/app/controllers/user_controller.rb +0 -0
  1156. data/vendor/rails/actionpack/test/controller/controller_fixtures/vendor/plugins/bad_plugin/lib/plugin_controller.rb +0 -0
  1157. data/vendor/rails/actionpack/test/controller/cookie_test.rb +170 -0
  1158. data/vendor/rails/actionpack/test/controller/deprecation/deprecated_base_methods_test.rb +32 -0
  1159. data/vendor/rails/actionpack/test/controller/dispatcher_test.rb +144 -0
  1160. data/vendor/rails/actionpack/test/controller/dom_assertions_test.rb +53 -0
  1161. data/vendor/rails/actionpack/test/controller/failsafe_test.rb +60 -0
  1162. data/vendor/rails/actionpack/test/controller/fake_controllers.rb +33 -0
  1163. data/vendor/rails/actionpack/test/controller/fake_models.rb +19 -0
  1164. data/vendor/rails/actionpack/test/controller/filter_params_test.rb +52 -0
  1165. data/vendor/rails/actionpack/test/controller/filters_test.rb +885 -0
  1166. data/vendor/rails/actionpack/test/controller/flash_test.rb +174 -0
  1167. data/vendor/rails/actionpack/test/controller/header_test.rb +14 -0
  1168. data/vendor/rails/actionpack/test/controller/helper_test.rb +224 -0
  1169. data/vendor/rails/actionpack/test/controller/html-scanner/cdata_node_test.rb +15 -0
  1170. data/vendor/rails/actionpack/test/controller/html-scanner/document_test.rb +148 -0
  1171. data/vendor/rails/actionpack/test/controller/html-scanner/node_test.rb +89 -0
  1172. data/vendor/rails/actionpack/test/controller/html-scanner/sanitizer_test.rb +274 -0
  1173. data/vendor/rails/actionpack/test/controller/html-scanner/tag_node_test.rb +238 -0
  1174. data/vendor/rails/actionpack/test/controller/html-scanner/text_node_test.rb +50 -0
  1175. data/vendor/rails/actionpack/test/controller/html-scanner/tokenizer_test.rb +131 -0
  1176. data/vendor/rails/actionpack/test/controller/http_basic_authentication_test.rb +113 -0
  1177. data/vendor/rails/actionpack/test/controller/http_digest_authentication_test.rb +254 -0
  1178. data/vendor/rails/actionpack/test/controller/integration_test.rb +482 -0
  1179. data/vendor/rails/actionpack/test/controller/layout_test.rb +215 -0
  1180. data/vendor/rails/actionpack/test/controller/localized_templates_test.rb +24 -0
  1181. data/vendor/rails/actionpack/test/controller/logging_test.rb +46 -0
  1182. data/vendor/rails/actionpack/test/controller/middleware_stack_test.rb +90 -0
  1183. data/vendor/rails/actionpack/test/controller/mime_responds_test.rb +536 -0
  1184. data/vendor/rails/actionpack/test/controller/mime_type_test.rb +93 -0
  1185. data/vendor/rails/actionpack/test/controller/output_escaping_test.rb +19 -0
  1186. data/vendor/rails/actionpack/test/controller/polymorphic_routes_test.rb +297 -0
  1187. data/vendor/rails/actionpack/test/controller/rack_test.rb +308 -0
  1188. data/vendor/rails/actionpack/test/controller/record_identifier_test.rb +139 -0
  1189. data/vendor/rails/actionpack/test/controller/redirect_test.rb +285 -0
  1190. data/vendor/rails/actionpack/test/controller/reloader_test.rb +124 -0
  1191. data/vendor/rails/actionpack/test/controller/render_test.rb +1771 -0
  1192. data/vendor/rails/actionpack/test/controller/request/json_params_parsing_test.rb +65 -0
  1193. data/vendor/rails/actionpack/test/controller/request/multipart_params_parsing_test.rb +162 -0
  1194. data/vendor/rails/actionpack/test/controller/request/query_string_parsing_test.rb +120 -0
  1195. data/vendor/rails/actionpack/test/controller/request/test_request_test.rb +35 -0
  1196. data/vendor/rails/actionpack/test/controller/request/url_encoded_params_parsing_test.rb +146 -0
  1197. data/vendor/rails/actionpack/test/controller/request/xml_params_parsing_test.rb +103 -0
  1198. data/vendor/rails/actionpack/test/controller/request_forgery_protection_test.rb +265 -0
  1199. data/vendor/rails/actionpack/test/controller/request_test.rb +395 -0
  1200. data/vendor/rails/actionpack/test/controller/rescue_test.rb +542 -0
  1201. data/vendor/rails/actionpack/test/controller/resources_test.rb +1393 -0
  1202. data/vendor/rails/actionpack/test/controller/routing_test.rb +2592 -0
  1203. data/vendor/rails/actionpack/test/controller/selector_test.rb +628 -0
  1204. data/vendor/rails/actionpack/test/controller/send_file_test.rb +171 -0
  1205. data/vendor/rails/actionpack/test/controller/session/cookie_store_test.rb +216 -0
  1206. data/vendor/rails/actionpack/test/controller/session/mem_cache_store_test.rb +127 -0
  1207. data/vendor/rails/actionpack/test/controller/session/test_session_test.rb +58 -0
  1208. data/vendor/rails/actionpack/test/controller/test_test.rb +700 -0
  1209. data/vendor/rails/actionpack/test/controller/translation_test.rb +26 -0
  1210. data/vendor/rails/actionpack/test/controller/url_rewriter_test.rb +389 -0
  1211. data/vendor/rails/actionpack/test/controller/verification_test.rb +270 -0
  1212. data/vendor/rails/actionpack/test/controller/view_paths_test.rb +141 -0
  1213. data/vendor/rails/actionpack/test/controller/webservice_test.rb +260 -0
  1214. data/vendor/rails/actionpack/test/fixtures/_top_level_partial.html.erb +1 -0
  1215. data/vendor/rails/actionpack/test/fixtures/_top_level_partial_only.erb +1 -0
  1216. data/vendor/rails/actionpack/test/fixtures/addresses/list.erb +1 -0
  1217. data/vendor/rails/actionpack/test/fixtures/alternate_helpers/foo_helper.rb +3 -0
  1218. data/vendor/rails/actionpack/test/fixtures/bad_customers/_bad_customer.html.erb +1 -0
  1219. data/vendor/rails/actionpack/test/fixtures/companies.yml +24 -0
  1220. data/vendor/rails/actionpack/test/fixtures/company.rb +10 -0
  1221. data/vendor/rails/actionpack/test/fixtures/content_type/render_default_content_types_for_respond_to.rhtml +1 -0
  1222. data/vendor/rails/actionpack/test/fixtures/content_type/render_default_for_rhtml.rhtml +1 -0
  1223. data/vendor/rails/actionpack/test/fixtures/content_type/render_default_for_rjs.rjs +1 -0
  1224. data/vendor/rails/actionpack/test/fixtures/content_type/render_default_for_rxml.rxml +1 -0
  1225. data/vendor/rails/actionpack/test/fixtures/customers/_customer.html.erb +1 -0
  1226. data/vendor/rails/actionpack/test/fixtures/db_definitions/sqlite.sql +49 -0
  1227. data/vendor/rails/actionpack/test/fixtures/developer.rb +9 -0
  1228. data/vendor/rails/actionpack/test/fixtures/developers.yml +21 -0
  1229. data/vendor/rails/actionpack/test/fixtures/developers/_developer.erb +1 -0
  1230. data/vendor/rails/actionpack/test/fixtures/developers_projects.yml +13 -0
  1231. data/vendor/rails/actionpack/test/fixtures/failsafe/500.html +1 -0
  1232. data/vendor/rails/actionpack/test/fixtures/fun/games/_game.erb +1 -0
  1233. data/vendor/rails/actionpack/test/fixtures/fun/games/hello_world.erb +1 -0
  1234. data/vendor/rails/actionpack/test/fixtures/fun/serious/games/_game.erb +1 -0
  1235. data/vendor/rails/actionpack/test/fixtures/functional_caching/_partial.erb +3 -0
  1236. data/vendor/rails/actionpack/test/fixtures/functional_caching/formatted_fragment_cached.html.erb +3 -0
  1237. data/vendor/rails/actionpack/test/fixtures/functional_caching/formatted_fragment_cached.js.rjs +6 -0
  1238. data/vendor/rails/actionpack/test/fixtures/functional_caching/formatted_fragment_cached.xml.builder +5 -0
  1239. data/vendor/rails/actionpack/test/fixtures/functional_caching/fragment_cached.html.erb +2 -0
  1240. data/vendor/rails/actionpack/test/fixtures/functional_caching/html_fragment_cached_with_partial.html.erb +1 -0
  1241. data/vendor/rails/actionpack/test/fixtures/functional_caching/inline_fragment_cached.html.erb +2 -0
  1242. data/vendor/rails/actionpack/test/fixtures/functional_caching/js_fragment_cached_with_partial.js.rjs +1 -0
  1243. data/vendor/rails/actionpack/test/fixtures/good_customers/_good_customer.html.erb +1 -0
  1244. data/vendor/rails/actionpack/test/fixtures/helpers/abc_helper.rb +5 -0
  1245. data/vendor/rails/actionpack/test/fixtures/helpers/fun/games_helper.rb +3 -0
  1246. data/vendor/rails/actionpack/test/fixtures/helpers/fun/pdf_helper.rb +3 -0
  1247. data/vendor/rails/actionpack/test/fixtures/layout_tests/abs_path_layout.rhtml +1 -0
  1248. data/vendor/rails/actionpack/test/fixtures/layout_tests/alt/hello.rhtml +1 -0
  1249. data/vendor/rails/actionpack/test/fixtures/layout_tests/alt/layouts/alt.rhtml +0 -0
  1250. data/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/controller_name_space/nested.rhtml +1 -0
  1251. data/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/item.rhtml +1 -0
  1252. data/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/layout_test.rhtml +1 -0
  1253. data/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/multiple_extensions.html.erb +1 -0
  1254. data/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/third_party_template_library.mab +1 -0
  1255. data/vendor/rails/actionpack/test/fixtures/layout_tests/views/hello.rhtml +1 -0
  1256. data/vendor/rails/actionpack/test/fixtures/layouts/_column.html.erb +2 -0
  1257. data/vendor/rails/actionpack/test/fixtures/layouts/block_with_layout.erb +3 -0
  1258. data/vendor/rails/actionpack/test/fixtures/layouts/builder.builder +3 -0
  1259. data/vendor/rails/actionpack/test/fixtures/layouts/default_html.html.erb +1 -0
  1260. data/vendor/rails/actionpack/test/fixtures/layouts/partial_with_layout.erb +3 -0
  1261. data/vendor/rails/actionpack/test/fixtures/layouts/standard.erb +1 -0
  1262. data/vendor/rails/actionpack/test/fixtures/layouts/talk_from_action.erb +2 -0
  1263. data/vendor/rails/actionpack/test/fixtures/layouts/xhr.html.erb +2 -0
  1264. data/vendor/rails/actionpack/test/fixtures/layouts/yield.erb +2 -0
  1265. data/vendor/rails/actionpack/test/fixtures/localized/hello_world.de.html +1 -0
  1266. data/vendor/rails/actionpack/test/fixtures/localized/hello_world.en.html +1 -0
  1267. data/vendor/rails/actionpack/test/fixtures/mascot.rb +3 -0
  1268. data/vendor/rails/actionpack/test/fixtures/mascots.yml +4 -0
  1269. data/vendor/rails/actionpack/test/fixtures/mascots/_mascot.html.erb +1 -0
  1270. data/vendor/rails/actionpack/test/fixtures/multipart/binary_file +0 -0
  1271. data/vendor/rails/actionpack/test/fixtures/multipart/boundary_problem_file +10 -0
  1272. data/vendor/rails/actionpack/test/fixtures/multipart/bracketed_param +5 -0
  1273. data/vendor/rails/actionpack/test/fixtures/multipart/empty +10 -0
  1274. data/vendor/rails/actionpack/test/fixtures/multipart/hello.txt +1 -0
  1275. data/vendor/rails/actionpack/test/fixtures/multipart/large_text_file +10 -0
  1276. data/vendor/rails/actionpack/test/fixtures/multipart/mixed_files +0 -0
  1277. data/vendor/rails/actionpack/test/fixtures/multipart/mona_lisa.jpg +0 -0
  1278. data/vendor/rails/actionpack/test/fixtures/multipart/none +9 -0
  1279. data/vendor/rails/actionpack/test/fixtures/multipart/single_parameter +5 -0
  1280. data/vendor/rails/actionpack/test/fixtures/multipart/text_file +10 -0
  1281. data/vendor/rails/actionpack/test/fixtures/override/test/hello_world.erb +1 -0
  1282. data/vendor/rails/actionpack/test/fixtures/override2/layouts/test/sub.erb +1 -0
  1283. data/vendor/rails/actionpack/test/fixtures/post_test/layouts/post.html.erb +1 -0
  1284. data/vendor/rails/actionpack/test/fixtures/post_test/layouts/super_post.iphone.erb +1 -0
  1285. data/vendor/rails/actionpack/test/fixtures/post_test/post/index.html.erb +1 -0
  1286. data/vendor/rails/actionpack/test/fixtures/post_test/post/index.iphone.erb +1 -0
  1287. data/vendor/rails/actionpack/test/fixtures/post_test/super_post/index.html.erb +1 -0
  1288. data/vendor/rails/actionpack/test/fixtures/post_test/super_post/index.iphone.erb +1 -0
  1289. data/vendor/rails/actionpack/test/fixtures/project.rb +3 -0
  1290. data/vendor/rails/actionpack/test/fixtures/projects.yml +7 -0
  1291. data/vendor/rails/actionpack/test/fixtures/projects/_project.erb +1 -0
  1292. data/vendor/rails/actionpack/test/fixtures/public/404.html +1 -0
  1293. data/vendor/rails/actionpack/test/fixtures/public/500.da.html +1 -0
  1294. data/vendor/rails/actionpack/test/fixtures/public/500.html +1 -0
  1295. data/vendor/rails/actionpack/test/fixtures/public/absolute/test.css +23 -0
  1296. data/vendor/rails/actionpack/test/fixtures/public/absolute/test.js +63 -0
  1297. data/vendor/rails/actionpack/test/fixtures/public/images/rails.png +0 -0
  1298. data/vendor/rails/actionpack/test/fixtures/public/javascripts/application.js +1 -0
  1299. data/vendor/rails/actionpack/test/fixtures/public/javascripts/bank.js +1 -0
  1300. data/vendor/rails/actionpack/test/fixtures/public/javascripts/controls.js +1 -0
  1301. data/vendor/rails/actionpack/test/fixtures/public/javascripts/dragdrop.js +1 -0
  1302. data/vendor/rails/actionpack/test/fixtures/public/javascripts/effects.js +1 -0
  1303. data/vendor/rails/actionpack/test/fixtures/public/javascripts/prototype.js +1 -0
  1304. data/vendor/rails/actionpack/test/fixtures/public/javascripts/robber.js +1 -0
  1305. data/vendor/rails/actionpack/test/fixtures/public/javascripts/subdir/subdir.js +1 -0
  1306. data/vendor/rails/actionpack/test/fixtures/public/javascripts/version.1.0.js +1 -0
  1307. data/vendor/rails/actionpack/test/fixtures/public/stylesheets/bank.css +1 -0
  1308. data/vendor/rails/actionpack/test/fixtures/public/stylesheets/robber.css +1 -0
  1309. data/vendor/rails/actionpack/test/fixtures/public/stylesheets/subdir/subdir.css +1 -0
  1310. data/vendor/rails/actionpack/test/fixtures/public/stylesheets/version.1.0.css +1 -0
  1311. data/vendor/rails/actionpack/test/fixtures/quiz/questions/_question.html.erb +1 -0
  1312. data/vendor/rails/actionpack/test/fixtures/replies.yml +15 -0
  1313. data/vendor/rails/actionpack/test/fixtures/replies/_reply.erb +1 -0
  1314. data/vendor/rails/actionpack/test/fixtures/reply.rb +7 -0
  1315. data/vendor/rails/actionpack/test/fixtures/respond_to/all_types_with_layout.html.erb +1 -0
  1316. data/vendor/rails/actionpack/test/fixtures/respond_to/all_types_with_layout.js.rjs +1 -0
  1317. data/vendor/rails/actionpack/test/fixtures/respond_to/custom_constant_handling_without_block.mobile.erb +1 -0
  1318. data/vendor/rails/actionpack/test/fixtures/respond_to/iphone_with_html_response_type.html.erb +1 -0
  1319. data/vendor/rails/actionpack/test/fixtures/respond_to/iphone_with_html_response_type.iphone.erb +1 -0
  1320. data/vendor/rails/actionpack/test/fixtures/respond_to/layouts/missing.html.erb +1 -0
  1321. data/vendor/rails/actionpack/test/fixtures/respond_to/layouts/standard.html.erb +1 -0
  1322. data/vendor/rails/actionpack/test/fixtures/respond_to/layouts/standard.iphone.erb +1 -0
  1323. data/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults.html.erb +1 -0
  1324. data/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults.js.rjs +1 -0
  1325. data/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults.xml.builder +1 -0
  1326. data/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults_with_type_list.html.erb +1 -0
  1327. data/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults_with_type_list.js.rjs +1 -0
  1328. data/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults_with_type_list.xml.builder +1 -0
  1329. data/vendor/rails/actionpack/test/fixtures/scope/test/modgreet.erb +1 -0
  1330. data/vendor/rails/actionpack/test/fixtures/shared.html.erb +1 -0
  1331. data/vendor/rails/actionpack/test/fixtures/symlink_parent/symlinked_layout.erb +5 -0
  1332. data/vendor/rails/actionpack/test/fixtures/test/_counter.html.erb +1 -0
  1333. data/vendor/rails/actionpack/test/fixtures/test/_customer.erb +1 -0
  1334. data/vendor/rails/actionpack/test/fixtures/test/_customer_counter.erb +1 -0
  1335. data/vendor/rails/actionpack/test/fixtures/test/_customer_counter_with_as.erb +1 -0
  1336. data/vendor/rails/actionpack/test/fixtures/test/_customer_greeting.erb +1 -0
  1337. data/vendor/rails/actionpack/test/fixtures/test/_customer_with_var.erb +1 -0
  1338. data/vendor/rails/actionpack/test/fixtures/test/_form.erb +1 -0
  1339. data/vendor/rails/actionpack/test/fixtures/test/_from_helper.erb +1 -0
  1340. data/vendor/rails/actionpack/test/fixtures/test/_hash_greeting.erb +1 -0
  1341. data/vendor/rails/actionpack/test/fixtures/test/_hash_object.erb +2 -0
  1342. data/vendor/rails/actionpack/test/fixtures/test/_hello.builder +1 -0
  1343. data/vendor/rails/actionpack/test/fixtures/test/_labelling_form.erb +1 -0
  1344. data/vendor/rails/actionpack/test/fixtures/test/_layout_for_block_with_args.html.erb +3 -0
  1345. data/vendor/rails/actionpack/test/fixtures/test/_layout_for_partial.html.erb +3 -0
  1346. data/vendor/rails/actionpack/test/fixtures/test/_local_inspector.html.erb +1 -0
  1347. data/vendor/rails/actionpack/test/fixtures/test/_one.html.erb +1 -0
  1348. data/vendor/rails/actionpack/test/fixtures/test/_partial.erb +1 -0
  1349. data/vendor/rails/actionpack/test/fixtures/test/_partial.html.erb +1 -0
  1350. data/vendor/rails/actionpack/test/fixtures/test/_partial.js.erb +1 -0
  1351. data/vendor/rails/actionpack/test/fixtures/test/_partial_for_use_in_layout.html.erb +1 -0
  1352. data/vendor/rails/actionpack/test/fixtures/test/_partial_only.erb +1 -0
  1353. data/vendor/rails/actionpack/test/fixtures/test/_partial_with_only_html_version.html.erb +1 -0
  1354. data/vendor/rails/actionpack/test/fixtures/test/_person.erb +2 -0
  1355. data/vendor/rails/actionpack/test/fixtures/test/_raise.html.erb +1 -0
  1356. data/vendor/rails/actionpack/test/fixtures/test/_two.html.erb +1 -0
  1357. data/vendor/rails/actionpack/test/fixtures/test/_utf8_partial.html.erb +1 -0
  1358. data/vendor/rails/actionpack/test/fixtures/test/_utf8_partial_magic.html.erb +2 -0
  1359. data/vendor/rails/actionpack/test/fixtures/test/action_talk_to_layout.erb +2 -0
  1360. data/vendor/rails/actionpack/test/fixtures/test/array_translation.erb +1 -0
  1361. data/vendor/rails/actionpack/test/fixtures/test/calling_partial_with_layout.html.erb +1 -0
  1362. data/vendor/rails/actionpack/test/fixtures/test/capturing.erb +4 -0
  1363. data/vendor/rails/actionpack/test/fixtures/test/content_for.erb +2 -0
  1364. data/vendor/rails/actionpack/test/fixtures/test/content_for_concatenated.erb +3 -0
  1365. data/vendor/rails/actionpack/test/fixtures/test/content_for_with_parameter.erb +2 -0
  1366. data/vendor/rails/actionpack/test/fixtures/test/delete_with_js.rjs +2 -0
  1367. data/vendor/rails/actionpack/test/fixtures/test/dont_pick_me +1 -0
  1368. data/vendor/rails/actionpack/test/fixtures/test/dot.directory/render_file_with_ivar.erb +1 -0
  1369. data/vendor/rails/actionpack/test/fixtures/test/enum_rjs_test.rjs +6 -0
  1370. data/vendor/rails/actionpack/test/fixtures/test/formatted_html_erb.html.erb +1 -0
  1371. data/vendor/rails/actionpack/test/fixtures/test/formatted_xml_erb.builder +1 -0
  1372. data/vendor/rails/actionpack/test/fixtures/test/formatted_xml_erb.html.erb +1 -0
  1373. data/vendor/rails/actionpack/test/fixtures/test/formatted_xml_erb.xml.erb +1 -0
  1374. data/vendor/rails/actionpack/test/fixtures/test/greeting.erb +1 -0
  1375. data/vendor/rails/actionpack/test/fixtures/test/greeting.js.rjs +1 -0
  1376. data/vendor/rails/actionpack/test/fixtures/test/hello.builder +4 -0
  1377. data/vendor/rails/actionpack/test/fixtures/test/hello_world.da.html.erb +1 -0
  1378. data/vendor/rails/actionpack/test/fixtures/test/hello_world.erb +1 -0
  1379. data/vendor/rails/actionpack/test/fixtures/test/hello_world.pt-BR.html.erb +1 -0
  1380. data/vendor/rails/actionpack/test/fixtures/test/hello_world_container.builder +3 -0
  1381. data/vendor/rails/actionpack/test/fixtures/test/hello_world_from_rxml.builder +4 -0
  1382. data/vendor/rails/actionpack/test/fixtures/test/hello_world_with_layout_false.erb +1 -0
  1383. data/vendor/rails/actionpack/test/fixtures/test/hello_xml_world.builder +11 -0
  1384. data/vendor/rails/actionpack/test/fixtures/test/hyphen-ated.erb +1 -0
  1385. data/vendor/rails/actionpack/test/fixtures/test/implicit_content_type.atom.builder +2 -0
  1386. data/vendor/rails/actionpack/test/fixtures/test/list.erb +1 -0
  1387. data/vendor/rails/actionpack/test/fixtures/test/nested_layout.erb +3 -0
  1388. data/vendor/rails/actionpack/test/fixtures/test/non_erb_block_content_for.builder +4 -0
  1389. data/vendor/rails/actionpack/test/fixtures/test/potential_conflicts.erb +4 -0
  1390. data/vendor/rails/actionpack/test/fixtures/test/render_explicit_html_template.js.rjs +1 -0
  1391. data/vendor/rails/actionpack/test/fixtures/test/render_file_from_template.html.erb +1 -0
  1392. data/vendor/rails/actionpack/test/fixtures/test/render_file_with_ivar.erb +1 -0
  1393. data/vendor/rails/actionpack/test/fixtures/test/render_file_with_locals.erb +1 -0
  1394. data/vendor/rails/actionpack/test/fixtures/test/render_implicit_html_template.js.rjs +1 -0
  1395. data/vendor/rails/actionpack/test/fixtures/test/render_implicit_html_template_from_xhr_request.da.html.erb +1 -0
  1396. data/vendor/rails/actionpack/test/fixtures/test/render_implicit_html_template_from_xhr_request.html.erb +1 -0
  1397. data/vendor/rails/actionpack/test/fixtures/test/render_implicit_js_template_without_layout.js.erb +1 -0
  1398. data/vendor/rails/actionpack/test/fixtures/test/render_to_string_test.erb +1 -0
  1399. data/vendor/rails/actionpack/test/fixtures/test/scoped_array_translation.erb +1 -0
  1400. data/vendor/rails/actionpack/test/fixtures/test/sub_template_raise.html.erb +1 -0
  1401. data/vendor/rails/actionpack/test/fixtures/test/template.erb +1 -0
  1402. data/vendor/rails/actionpack/test/fixtures/test/translation.erb +1 -0
  1403. data/vendor/rails/actionpack/test/fixtures/test/update_element_with_capture.erb +9 -0
  1404. data/vendor/rails/actionpack/test/fixtures/test/using_layout_around_block.html.erb +1 -0
  1405. data/vendor/rails/actionpack/test/fixtures/test/using_layout_around_block_with_args.html.erb +1 -0
  1406. data/vendor/rails/actionpack/test/fixtures/test/utf8.html.erb +4 -0
  1407. data/vendor/rails/actionpack/test/fixtures/test/utf8_magic.html.erb +5 -0
  1408. data/vendor/rails/actionpack/test/fixtures/test/utf8_magic_with_bare_partial.html.erb +5 -0
  1409. data/vendor/rails/actionpack/test/fixtures/topic.rb +3 -0
  1410. data/vendor/rails/actionpack/test/fixtures/topics.yml +22 -0
  1411. data/vendor/rails/actionpack/test/fixtures/topics/_topic.html.erb +1 -0
  1412. data/vendor/rails/actionpack/test/template/active_record_helper_i18n_test.rb +51 -0
  1413. data/vendor/rails/actionpack/test/template/active_record_helper_test.rb +302 -0
  1414. data/vendor/rails/actionpack/test/template/asset_tag_helper_test.rb +770 -0
  1415. data/vendor/rails/actionpack/test/template/atom_feed_helper_test.rb +315 -0
  1416. data/vendor/rails/actionpack/test/template/benchmark_helper_test.rb +86 -0
  1417. data/vendor/rails/actionpack/test/template/compiled_templates_test.rb +204 -0
  1418. data/vendor/rails/actionpack/test/template/date_helper_i18n_test.rb +121 -0
  1419. data/vendor/rails/actionpack/test/template/date_helper_test.rb +2603 -0
  1420. data/vendor/rails/actionpack/test/template/erb_util_test.rb +36 -0
  1421. data/vendor/rails/actionpack/test/template/form_helper_test.rb +1447 -0
  1422. data/vendor/rails/actionpack/test/template/form_options_helper_i18n_test.rb +27 -0
  1423. data/vendor/rails/actionpack/test/template/form_options_helper_test.rb +807 -0
  1424. data/vendor/rails/actionpack/test/template/form_tag_helper_test.rb +356 -0
  1425. data/vendor/rails/actionpack/test/template/javascript_helper_test.rb +106 -0
  1426. data/vendor/rails/actionpack/test/template/number_helper_i18n_test.rb +69 -0
  1427. data/vendor/rails/actionpack/test/template/number_helper_test.rb +132 -0
  1428. data/vendor/rails/actionpack/test/template/prototype_helper_test.rb +639 -0
  1429. data/vendor/rails/actionpack/test/template/raw_output_helper_test.rb +21 -0
  1430. data/vendor/rails/actionpack/test/template/record_tag_helper_test.rb +58 -0
  1431. data/vendor/rails/actionpack/test/template/render_test.rb +329 -0
  1432. data/vendor/rails/actionpack/test/template/sanitize_helper_test.rb +57 -0
  1433. data/vendor/rails/actionpack/test/template/scriptaculous_helper_test.rb +90 -0
  1434. data/vendor/rails/actionpack/test/template/tag_helper_test.rb +98 -0
  1435. data/vendor/rails/actionpack/test/template/template_test.rb +32 -0
  1436. data/vendor/rails/actionpack/test/template/test_test.rb +54 -0
  1437. data/vendor/rails/actionpack/test/template/text_helper_test.rb +568 -0
  1438. data/vendor/rails/actionpack/test/template/translation_helper_test.rb +95 -0
  1439. data/vendor/rails/actionpack/test/template/url_helper_test.rb +641 -0
  1440. data/vendor/rails/actionpack/test/testing_sandbox.rb +15 -0
  1441. data/vendor/rails/actionpack/test/view/test_case_test.rb +176 -0
  1442. data/vendor/rails/activerecord/CHANGELOG +5901 -0
  1443. data/vendor/rails/activerecord/README +351 -0
  1444. data/vendor/rails/activerecord/RUNNING_UNIT_TESTS +36 -0
  1445. data/vendor/rails/activerecord/Rakefile +270 -0
  1446. data/vendor/rails/activerecord/examples/associations.png +0 -0
  1447. data/vendor/rails/activerecord/examples/performance.rb +162 -0
  1448. data/vendor/rails/activerecord/examples/performance.sql +85 -0
  1449. data/vendor/rails/activerecord/install.rb +30 -0
  1450. data/vendor/rails/activerecord/lib/active_record.rb +83 -0
  1451. data/vendor/rails/activerecord/lib/active_record/aggregations.rb +261 -0
  1452. data/vendor/rails/activerecord/lib/active_record/association_preload.rb +396 -0
  1453. data/vendor/rails/activerecord/lib/active_record/associations.rb +2251 -0
  1454. data/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb +479 -0
  1455. data/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb +288 -0
  1456. data/vendor/rails/activerecord/lib/active_record/associations/belongs_to_association.rb +86 -0
  1457. data/vendor/rails/activerecord/lib/active_record/associations/belongs_to_polymorphic_association.rb +77 -0
  1458. data/vendor/rails/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb +143 -0
  1459. data/vendor/rails/activerecord/lib/active_record/associations/has_many_association.rb +127 -0
  1460. data/vendor/rails/activerecord/lib/active_record/associations/has_many_through_association.rb +266 -0
  1461. data/vendor/rails/activerecord/lib/active_record/associations/has_one_association.rb +142 -0
  1462. data/vendor/rails/activerecord/lib/active_record/associations/has_one_through_association.rb +37 -0
  1463. data/vendor/rails/activerecord/lib/active_record/attribute_methods.rb +392 -0
  1464. data/vendor/rails/activerecord/lib/active_record/autosave_association.rb +395 -0
  1465. data/vendor/rails/activerecord/lib/active_record/base.rb +3206 -0
  1466. data/vendor/rails/activerecord/lib/active_record/batches.rb +85 -0
  1467. data/vendor/rails/activerecord/lib/active_record/calculations.rb +314 -0
  1468. data/vendor/rails/activerecord/lib/active_record/callbacks.rb +360 -0
  1469. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb +371 -0
  1470. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb +139 -0
  1471. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_limits.rb +57 -0
  1472. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb +289 -0
  1473. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb +94 -0
  1474. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb +65 -0
  1475. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb +722 -0
  1476. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb +488 -0
  1477. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb +243 -0
  1478. data/vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb +660 -0
  1479. data/vendor/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb +1078 -0
  1480. data/vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb +34 -0
  1481. data/vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb +453 -0
  1482. data/vendor/rails/activerecord/lib/active_record/dirty.rb +183 -0
  1483. data/vendor/rails/activerecord/lib/active_record/dynamic_finder_match.rb +41 -0
  1484. data/vendor/rails/activerecord/lib/active_record/dynamic_scope_match.rb +25 -0
  1485. data/vendor/rails/activerecord/lib/active_record/fixtures.rb +997 -0
  1486. data/vendor/rails/activerecord/lib/active_record/locale/en.yml +58 -0
  1487. data/vendor/rails/activerecord/lib/active_record/locking/optimistic.rb +181 -0
  1488. data/vendor/rails/activerecord/lib/active_record/locking/pessimistic.rb +55 -0
  1489. data/vendor/rails/activerecord/lib/active_record/migration.rb +571 -0
  1490. data/vendor/rails/activerecord/lib/active_record/named_scope.rb +192 -0
  1491. data/vendor/rails/activerecord/lib/active_record/nested_attributes.rb +404 -0
  1492. data/vendor/rails/activerecord/lib/active_record/observer.rb +197 -0
  1493. data/vendor/rails/activerecord/lib/active_record/query_cache.rb +33 -0
  1494. data/vendor/rails/activerecord/lib/active_record/reflection.rb +385 -0
  1495. data/vendor/rails/activerecord/lib/active_record/schema.rb +55 -0
  1496. data/vendor/rails/activerecord/lib/active_record/schema_dumper.rb +185 -0
  1497. data/vendor/rails/activerecord/lib/active_record/serialization.rb +101 -0
  1498. data/vendor/rails/activerecord/lib/active_record/serializers/json_serializer.rb +91 -0
  1499. data/vendor/rails/activerecord/lib/active_record/serializers/xml_serializer.rb +357 -0
  1500. data/vendor/rails/activerecord/lib/active_record/session_store.rb +326 -0
  1501. data/vendor/rails/activerecord/lib/active_record/test_case.rb +66 -0
  1502. data/vendor/rails/activerecord/lib/active_record/timestamp.rb +71 -0
  1503. data/vendor/rails/activerecord/lib/active_record/transactions.rb +235 -0
  1504. data/vendor/rails/activerecord/lib/active_record/validations.rb +1147 -0
  1505. data/vendor/rails/activerecord/lib/active_record/version.rb +9 -0
  1506. data/vendor/rails/activerecord/lib/activerecord.rb +2 -0
  1507. data/vendor/rails/activerecord/test/assets/example.log +1 -0
  1508. data/vendor/rails/activerecord/test/assets/flowers.jpg +0 -0
  1509. data/vendor/rails/activerecord/test/cases/aaa_create_tables_test.rb +24 -0
  1510. data/vendor/rails/activerecord/test/cases/active_schema_test_mysql.rb +122 -0
  1511. data/vendor/rails/activerecord/test/cases/active_schema_test_postgresql.rb +24 -0
  1512. data/vendor/rails/activerecord/test/cases/adapter_test.rb +145 -0
  1513. data/vendor/rails/activerecord/test/cases/aggregations_test.rb +167 -0
  1514. data/vendor/rails/activerecord/test/cases/ar_schema_test.rb +32 -0
  1515. data/vendor/rails/activerecord/test/cases/associations/belongs_to_associations_test.rb +438 -0
  1516. data/vendor/rails/activerecord/test/cases/associations/callbacks_test.rb +161 -0
  1517. data/vendor/rails/activerecord/test/cases/associations/cascaded_eager_loading_test.rb +131 -0
  1518. data/vendor/rails/activerecord/test/cases/associations/eager_load_includes_full_sti_class_test.rb +36 -0
  1519. data/vendor/rails/activerecord/test/cases/associations/eager_load_nested_include_test.rb +131 -0
  1520. data/vendor/rails/activerecord/test/cases/associations/eager_singularization_test.rb +145 -0
  1521. data/vendor/rails/activerecord/test/cases/associations/eager_test.rb +840 -0
  1522. data/vendor/rails/activerecord/test/cases/associations/extension_test.rb +62 -0
  1523. data/vendor/rails/activerecord/test/cases/associations/habtm_join_table_test.rb +56 -0
  1524. data/vendor/rails/activerecord/test/cases/associations/has_and_belongs_to_many_associations_test.rb +822 -0
  1525. data/vendor/rails/activerecord/test/cases/associations/has_many_associations_test.rb +1160 -0
  1526. data/vendor/rails/activerecord/test/cases/associations/has_many_through_associations_test.rb +346 -0
  1527. data/vendor/rails/activerecord/test/cases/associations/has_one_associations_test.rb +330 -0
  1528. data/vendor/rails/activerecord/test/cases/associations/has_one_through_associations_test.rb +209 -0
  1529. data/vendor/rails/activerecord/test/cases/associations/inner_join_association_test.rb +93 -0
  1530. data/vendor/rails/activerecord/test/cases/associations/inverse_associations_test.rb +566 -0
  1531. data/vendor/rails/activerecord/test/cases/associations/join_model_test.rb +712 -0
  1532. data/vendor/rails/activerecord/test/cases/associations_test.rb +272 -0
  1533. data/vendor/rails/activerecord/test/cases/attribute_methods_test.rb +305 -0
  1534. data/vendor/rails/activerecord/test/cases/autosave_association_test.rb +1218 -0
  1535. data/vendor/rails/activerecord/test/cases/base_test.rb +2183 -0
  1536. data/vendor/rails/activerecord/test/cases/batches_test.rb +81 -0
  1537. data/vendor/rails/activerecord/test/cases/binary_test.rb +30 -0
  1538. data/vendor/rails/activerecord/test/cases/calculations_test.rb +347 -0
  1539. data/vendor/rails/activerecord/test/cases/callbacks_observers_test.rb +38 -0
  1540. data/vendor/rails/activerecord/test/cases/callbacks_test.rb +438 -0
  1541. data/vendor/rails/activerecord/test/cases/class_inheritable_attributes_test.rb +32 -0
  1542. data/vendor/rails/activerecord/test/cases/column_alias_test.rb +17 -0
  1543. data/vendor/rails/activerecord/test/cases/column_definition_test.rb +70 -0
  1544. data/vendor/rails/activerecord/test/cases/connection_pool_test.rb +25 -0
  1545. data/vendor/rails/activerecord/test/cases/connection_test_firebird.rb +8 -0
  1546. data/vendor/rails/activerecord/test/cases/connection_test_mysql.rb +64 -0
  1547. data/vendor/rails/activerecord/test/cases/copy_table_test_sqlite.rb +80 -0
  1548. data/vendor/rails/activerecord/test/cases/database_statements_test.rb +12 -0
  1549. data/vendor/rails/activerecord/test/cases/datatype_test_postgresql.rb +204 -0
  1550. data/vendor/rails/activerecord/test/cases/date_time_test.rb +37 -0
  1551. data/vendor/rails/activerecord/test/cases/default_test_firebird.rb +16 -0
  1552. data/vendor/rails/activerecord/test/cases/defaults_test.rb +111 -0
  1553. data/vendor/rails/activerecord/test/cases/deprecated_finder_test.rb +30 -0
  1554. data/vendor/rails/activerecord/test/cases/dirty_test.rb +316 -0
  1555. data/vendor/rails/activerecord/test/cases/encoding_test.rb +6 -0
  1556. data/vendor/rails/activerecord/test/cases/finder_respond_to_test.rb +76 -0
  1557. data/vendor/rails/activerecord/test/cases/finder_test.rb +1070 -0
  1558. data/vendor/rails/activerecord/test/cases/fixtures_test.rb +661 -0
  1559. data/vendor/rails/activerecord/test/cases/helper.rb +68 -0
  1560. data/vendor/rails/activerecord/test/cases/i18n_test.rb +46 -0
  1561. data/vendor/rails/activerecord/test/cases/inheritance_test.rb +262 -0
  1562. data/vendor/rails/activerecord/test/cases/invalid_date_test.rb +24 -0
  1563. data/vendor/rails/activerecord/test/cases/json_serialization_test.rb +219 -0
  1564. data/vendor/rails/activerecord/test/cases/lifecycle_test.rb +193 -0
  1565. data/vendor/rails/activerecord/test/cases/locking_test.rb +349 -0
  1566. data/vendor/rails/activerecord/test/cases/method_scoping_test.rb +704 -0
  1567. data/vendor/rails/activerecord/test/cases/migration_test.rb +1638 -0
  1568. data/vendor/rails/activerecord/test/cases/migration_test_firebird.rb +124 -0
  1569. data/vendor/rails/activerecord/test/cases/mixin_test.rb +96 -0
  1570. data/vendor/rails/activerecord/test/cases/modules_test.rb +109 -0
  1571. data/vendor/rails/activerecord/test/cases/multiple_db_test.rb +85 -0
  1572. data/vendor/rails/activerecord/test/cases/named_scope_test.rb +361 -0
  1573. data/vendor/rails/activerecord/test/cases/nested_attributes_test.rb +813 -0
  1574. data/vendor/rails/activerecord/test/cases/pk_test.rb +119 -0
  1575. data/vendor/rails/activerecord/test/cases/pooled_connections_test.rb +103 -0
  1576. data/vendor/rails/activerecord/test/cases/query_cache_test.rb +129 -0
  1577. data/vendor/rails/activerecord/test/cases/readonly_test.rb +107 -0
  1578. data/vendor/rails/activerecord/test/cases/reflection_test.rb +234 -0
  1579. data/vendor/rails/activerecord/test/cases/reload_models_test.rb +22 -0
  1580. data/vendor/rails/activerecord/test/cases/repair_helper.rb +50 -0
  1581. data/vendor/rails/activerecord/test/cases/reserved_word_test_mysql.rb +176 -0
  1582. data/vendor/rails/activerecord/test/cases/sanitize_test.rb +25 -0
  1583. data/vendor/rails/activerecord/test/cases/schema_authorization_test_postgresql.rb +75 -0
  1584. data/vendor/rails/activerecord/test/cases/schema_dumper_test.rb +211 -0
  1585. data/vendor/rails/activerecord/test/cases/schema_test_postgresql.rb +178 -0
  1586. data/vendor/rails/activerecord/test/cases/serialization_test.rb +47 -0
  1587. data/vendor/rails/activerecord/test/cases/synonym_test_oracle.rb +17 -0
  1588. data/vendor/rails/activerecord/test/cases/timestamp_test.rb +75 -0
  1589. data/vendor/rails/activerecord/test/cases/transactions_test.rb +522 -0
  1590. data/vendor/rails/activerecord/test/cases/unconnected_test.rb +32 -0
  1591. data/vendor/rails/activerecord/test/cases/validations_i18n_test.rb +925 -0
  1592. data/vendor/rails/activerecord/test/cases/validations_test.rb +1672 -0
  1593. data/vendor/rails/activerecord/test/cases/xml_serialization_test.rb +240 -0
  1594. data/vendor/rails/activerecord/test/cases/yaml_serialization_test.rb +11 -0
  1595. data/vendor/rails/activerecord/test/config.rb +5 -0
  1596. data/vendor/rails/activerecord/test/connections/jdbc_jdbcderby/connection.rb +18 -0
  1597. data/vendor/rails/activerecord/test/connections/jdbc_jdbch2/connection.rb +18 -0
  1598. data/vendor/rails/activerecord/test/connections/jdbc_jdbchsqldb/connection.rb +18 -0
  1599. data/vendor/rails/activerecord/test/connections/jdbc_jdbcmysql/connection.rb +26 -0
  1600. data/vendor/rails/activerecord/test/connections/jdbc_jdbcpostgresql/connection.rb +26 -0
  1601. data/vendor/rails/activerecord/test/connections/jdbc_jdbcsqlite3/connection.rb +25 -0
  1602. data/vendor/rails/activerecord/test/connections/native_db2/connection.rb +25 -0
  1603. data/vendor/rails/activerecord/test/connections/native_firebird/connection.rb +26 -0
  1604. data/vendor/rails/activerecord/test/connections/native_frontbase/connection.rb +27 -0
  1605. data/vendor/rails/activerecord/test/connections/native_mysql/connection.rb +25 -0
  1606. data/vendor/rails/activerecord/test/connections/native_openbase/connection.rb +21 -0
  1607. data/vendor/rails/activerecord/test/connections/native_oracle/connection.rb +27 -0
  1608. data/vendor/rails/activerecord/test/connections/native_postgresql/connection.rb +21 -0
  1609. data/vendor/rails/activerecord/test/connections/native_sqlite/connection.rb +25 -0
  1610. data/vendor/rails/activerecord/test/connections/native_sqlite3/connection.rb +25 -0
  1611. data/vendor/rails/activerecord/test/connections/native_sqlite3/in_memory_connection.rb +18 -0
  1612. data/vendor/rails/activerecord/test/connections/native_sybase/connection.rb +23 -0
  1613. data/vendor/rails/activerecord/test/fixtures/accounts.yml +29 -0
  1614. data/vendor/rails/activerecord/test/fixtures/all/developers.yml +0 -0
  1615. data/vendor/rails/activerecord/test/fixtures/all/people.csv +0 -0
  1616. data/vendor/rails/activerecord/test/fixtures/all/tasks.yml +0 -0
  1617. data/vendor/rails/activerecord/test/fixtures/author_addresses.yml +5 -0
  1618. data/vendor/rails/activerecord/test/fixtures/author_favorites.yml +4 -0
  1619. data/vendor/rails/activerecord/test/fixtures/authors.yml +9 -0
  1620. data/vendor/rails/activerecord/test/fixtures/binaries.yml +132 -0
  1621. data/vendor/rails/activerecord/test/fixtures/books.yml +7 -0
  1622. data/vendor/rails/activerecord/test/fixtures/categories.yml +14 -0
  1623. data/vendor/rails/activerecord/test/fixtures/categories/special_categories.yml +9 -0
  1624. data/vendor/rails/activerecord/test/fixtures/categories/subsubdir/arbitrary_filename.yml +4 -0
  1625. data/vendor/rails/activerecord/test/fixtures/categories_ordered.yml +7 -0
  1626. data/vendor/rails/activerecord/test/fixtures/categories_posts.yml +23 -0
  1627. data/vendor/rails/activerecord/test/fixtures/categorizations.yml +17 -0
  1628. data/vendor/rails/activerecord/test/fixtures/clubs.yml +6 -0
  1629. data/vendor/rails/activerecord/test/fixtures/comments.yml +59 -0
  1630. data/vendor/rails/activerecord/test/fixtures/companies.yml +56 -0
  1631. data/vendor/rails/activerecord/test/fixtures/computers.yml +4 -0
  1632. data/vendor/rails/activerecord/test/fixtures/courses.yml +7 -0
  1633. data/vendor/rails/activerecord/test/fixtures/customers.yml +26 -0
  1634. data/vendor/rails/activerecord/test/fixtures/developers.yml +21 -0
  1635. data/vendor/rails/activerecord/test/fixtures/developers_projects.yml +17 -0
  1636. data/vendor/rails/activerecord/test/fixtures/edges.yml +6 -0
  1637. data/vendor/rails/activerecord/test/fixtures/entrants.yml +14 -0
  1638. data/vendor/rails/activerecord/test/fixtures/faces.yml +11 -0
  1639. data/vendor/rails/activerecord/test/fixtures/fixture_database.sqlite +0 -0
  1640. data/vendor/rails/activerecord/test/fixtures/fixture_database.sqlite3 +0 -0
  1641. data/vendor/rails/activerecord/test/fixtures/fixture_database_2.sqlite +0 -0
  1642. data/vendor/rails/activerecord/test/fixtures/fixture_database_2.sqlite3 +0 -0
  1643. data/vendor/rails/activerecord/test/fixtures/fk_test_has_fk.yml +3 -0
  1644. data/vendor/rails/activerecord/test/fixtures/fk_test_has_pk.yml +2 -0
  1645. data/vendor/rails/activerecord/test/fixtures/funny_jokes.yml +10 -0
  1646. data/vendor/rails/activerecord/test/fixtures/interests.yml +33 -0
  1647. data/vendor/rails/activerecord/test/fixtures/items.yml +4 -0
  1648. data/vendor/rails/activerecord/test/fixtures/jobs.yml +7 -0
  1649. data/vendor/rails/activerecord/test/fixtures/legacy_things.yml +3 -0
  1650. data/vendor/rails/activerecord/test/fixtures/mateys.yml +4 -0
  1651. data/vendor/rails/activerecord/test/fixtures/member_types.yml +6 -0
  1652. data/vendor/rails/activerecord/test/fixtures/members.yml +6 -0
  1653. data/vendor/rails/activerecord/test/fixtures/memberships.yml +20 -0
  1654. data/vendor/rails/activerecord/test/fixtures/men.yml +5 -0
  1655. data/vendor/rails/activerecord/test/fixtures/minimalistics.yml +2 -0
  1656. data/vendor/rails/activerecord/test/fixtures/mixed_case_monkeys.yml +6 -0
  1657. data/vendor/rails/activerecord/test/fixtures/mixins.yml +29 -0
  1658. data/vendor/rails/activerecord/test/fixtures/movies.yml +7 -0
  1659. data/vendor/rails/activerecord/test/fixtures/naked/csv/accounts.csv +1 -0
  1660. data/vendor/rails/activerecord/test/fixtures/naked/yml/accounts.yml +1 -0
  1661. data/vendor/rails/activerecord/test/fixtures/naked/yml/companies.yml +1 -0
  1662. data/vendor/rails/activerecord/test/fixtures/naked/yml/courses.yml +1 -0
  1663. data/vendor/rails/activerecord/test/fixtures/organizations.yml +5 -0
  1664. data/vendor/rails/activerecord/test/fixtures/owners.yml +7 -0
  1665. data/vendor/rails/activerecord/test/fixtures/parrots.yml +27 -0
  1666. data/vendor/rails/activerecord/test/fixtures/parrots_pirates.yml +7 -0
  1667. data/vendor/rails/activerecord/test/fixtures/people.yml +15 -0
  1668. data/vendor/rails/activerecord/test/fixtures/pets.yml +14 -0
  1669. data/vendor/rails/activerecord/test/fixtures/pirates.yml +9 -0
  1670. data/vendor/rails/activerecord/test/fixtures/posts.yml +52 -0
  1671. data/vendor/rails/activerecord/test/fixtures/price_estimates.yml +7 -0
  1672. data/vendor/rails/activerecord/test/fixtures/projects.yml +7 -0
  1673. data/vendor/rails/activerecord/test/fixtures/readers.yml +9 -0
  1674. data/vendor/rails/activerecord/test/fixtures/references.yml +17 -0
  1675. data/vendor/rails/activerecord/test/fixtures/reserved_words/distinct.yml +5 -0
  1676. data/vendor/rails/activerecord/test/fixtures/reserved_words/distincts_selects.yml +11 -0
  1677. data/vendor/rails/activerecord/test/fixtures/reserved_words/group.yml +14 -0
  1678. data/vendor/rails/activerecord/test/fixtures/reserved_words/select.yml +8 -0
  1679. data/vendor/rails/activerecord/test/fixtures/reserved_words/values.yml +7 -0
  1680. data/vendor/rails/activerecord/test/fixtures/ships.yml +5 -0
  1681. data/vendor/rails/activerecord/test/fixtures/sponsors.yml +9 -0
  1682. data/vendor/rails/activerecord/test/fixtures/subscribers.yml +7 -0
  1683. data/vendor/rails/activerecord/test/fixtures/subscriptions.yml +12 -0
  1684. data/vendor/rails/activerecord/test/fixtures/taggings.yml +28 -0
  1685. data/vendor/rails/activerecord/test/fixtures/tags.yml +7 -0
  1686. data/vendor/rails/activerecord/test/fixtures/tasks.yml +7 -0
  1687. data/vendor/rails/activerecord/test/fixtures/topics.yml +42 -0
  1688. data/vendor/rails/activerecord/test/fixtures/toys.yml +4 -0
  1689. data/vendor/rails/activerecord/test/fixtures/treasures.yml +10 -0
  1690. data/vendor/rails/activerecord/test/fixtures/vertices.yml +4 -0
  1691. data/vendor/rails/activerecord/test/fixtures/warehouse-things.yml +3 -0
  1692. data/vendor/rails/activerecord/test/fixtures/zines.yml +5 -0
  1693. data/vendor/rails/activerecord/test/migrations/broken/100_migration_that_raises_exception.rb +10 -0
  1694. data/vendor/rails/activerecord/test/migrations/decimal/1_give_me_big_numbers.rb +15 -0
  1695. data/vendor/rails/activerecord/test/migrations/duplicate/1_people_have_last_names.rb +9 -0
  1696. data/vendor/rails/activerecord/test/migrations/duplicate/2_we_need_reminders.rb +12 -0
  1697. data/vendor/rails/activerecord/test/migrations/duplicate/3_foo.rb +7 -0
  1698. data/vendor/rails/activerecord/test/migrations/duplicate/3_innocent_jointable.rb +12 -0
  1699. data/vendor/rails/activerecord/test/migrations/duplicate_names/20080507052938_chunky.rb +7 -0
  1700. data/vendor/rails/activerecord/test/migrations/duplicate_names/20080507053028_chunky.rb +7 -0
  1701. data/vendor/rails/activerecord/test/migrations/interleaved/pass_1/3_innocent_jointable.rb +12 -0
  1702. data/vendor/rails/activerecord/test/migrations/interleaved/pass_2/1_people_have_last_names.rb +9 -0
  1703. data/vendor/rails/activerecord/test/migrations/interleaved/pass_2/3_innocent_jointable.rb +12 -0
  1704. data/vendor/rails/activerecord/test/migrations/interleaved/pass_3/1_people_have_last_names.rb +9 -0
  1705. data/vendor/rails/activerecord/test/migrations/interleaved/pass_3/2_i_raise_on_down.rb +8 -0
  1706. data/vendor/rails/activerecord/test/migrations/interleaved/pass_3/3_innocent_jointable.rb +12 -0
  1707. data/vendor/rails/activerecord/test/migrations/missing/1000_people_have_middle_names.rb +9 -0
  1708. data/vendor/rails/activerecord/test/migrations/missing/1_people_have_last_names.rb +9 -0
  1709. data/vendor/rails/activerecord/test/migrations/missing/3_we_need_reminders.rb +12 -0
  1710. data/vendor/rails/activerecord/test/migrations/missing/4_innocent_jointable.rb +12 -0
  1711. data/vendor/rails/activerecord/test/migrations/valid/1_people_have_last_names.rb +9 -0
  1712. data/vendor/rails/activerecord/test/migrations/valid/2_we_need_reminders.rb +12 -0
  1713. data/vendor/rails/activerecord/test/migrations/valid/3_innocent_jointable.rb +12 -0
  1714. data/vendor/rails/activerecord/test/models/author.rb +149 -0
  1715. data/vendor/rails/activerecord/test/models/auto_id.rb +4 -0
  1716. data/vendor/rails/activerecord/test/models/binary.rb +2 -0
  1717. data/vendor/rails/activerecord/test/models/bird.rb +9 -0
  1718. data/vendor/rails/activerecord/test/models/book.rb +4 -0
  1719. data/vendor/rails/activerecord/test/models/categorization.rb +5 -0
  1720. data/vendor/rails/activerecord/test/models/category.rb +34 -0
  1721. data/vendor/rails/activerecord/test/models/citation.rb +6 -0
  1722. data/vendor/rails/activerecord/test/models/club.rb +13 -0
  1723. data/vendor/rails/activerecord/test/models/column_name.rb +3 -0
  1724. data/vendor/rails/activerecord/test/models/comment.rb +29 -0
  1725. data/vendor/rails/activerecord/test/models/company.rb +171 -0
  1726. data/vendor/rails/activerecord/test/models/company_in_module.rb +78 -0
  1727. data/vendor/rails/activerecord/test/models/computer.rb +3 -0
  1728. data/vendor/rails/activerecord/test/models/contact.rb +16 -0
  1729. data/vendor/rails/activerecord/test/models/contract.rb +5 -0
  1730. data/vendor/rails/activerecord/test/models/course.rb +3 -0
  1731. data/vendor/rails/activerecord/test/models/customer.rb +73 -0
  1732. data/vendor/rails/activerecord/test/models/default.rb +2 -0
  1733. data/vendor/rails/activerecord/test/models/developer.rb +101 -0
  1734. data/vendor/rails/activerecord/test/models/edge.rb +5 -0
  1735. data/vendor/rails/activerecord/test/models/entrant.rb +3 -0
  1736. data/vendor/rails/activerecord/test/models/essay.rb +3 -0
  1737. data/vendor/rails/activerecord/test/models/event.rb +3 -0
  1738. data/vendor/rails/activerecord/test/models/event_author.rb +5 -0
  1739. data/vendor/rails/activerecord/test/models/face.rb +7 -0
  1740. data/vendor/rails/activerecord/test/models/guid.rb +2 -0
  1741. data/vendor/rails/activerecord/test/models/interest.rb +5 -0
  1742. data/vendor/rails/activerecord/test/models/invoice.rb +4 -0
  1743. data/vendor/rails/activerecord/test/models/item.rb +7 -0
  1744. data/vendor/rails/activerecord/test/models/job.rb +5 -0
  1745. data/vendor/rails/activerecord/test/models/joke.rb +3 -0
  1746. data/vendor/rails/activerecord/test/models/keyboard.rb +3 -0
  1747. data/vendor/rails/activerecord/test/models/legacy_thing.rb +3 -0
  1748. data/vendor/rails/activerecord/test/models/line_item.rb +3 -0
  1749. data/vendor/rails/activerecord/test/models/man.rb +9 -0
  1750. data/vendor/rails/activerecord/test/models/matey.rb +4 -0
  1751. data/vendor/rails/activerecord/test/models/member.rb +12 -0
  1752. data/vendor/rails/activerecord/test/models/member_detail.rb +5 -0
  1753. data/vendor/rails/activerecord/test/models/member_type.rb +3 -0
  1754. data/vendor/rails/activerecord/test/models/membership.rb +9 -0
  1755. data/vendor/rails/activerecord/test/models/minimalistic.rb +2 -0
  1756. data/vendor/rails/activerecord/test/models/mixed_case_monkey.rb +3 -0
  1757. data/vendor/rails/activerecord/test/models/movie.rb +5 -0
  1758. data/vendor/rails/activerecord/test/models/order.rb +4 -0
  1759. data/vendor/rails/activerecord/test/models/organization.rb +6 -0
  1760. data/vendor/rails/activerecord/test/models/owner.rb +5 -0
  1761. data/vendor/rails/activerecord/test/models/parrot.rb +22 -0
  1762. data/vendor/rails/activerecord/test/models/person.rb +16 -0
  1763. data/vendor/rails/activerecord/test/models/pet.rb +5 -0
  1764. data/vendor/rails/activerecord/test/models/pirate.rb +80 -0
  1765. data/vendor/rails/activerecord/test/models/post.rb +100 -0
  1766. data/vendor/rails/activerecord/test/models/price_estimate.rb +3 -0
  1767. data/vendor/rails/activerecord/test/models/project.rb +30 -0
  1768. data/vendor/rails/activerecord/test/models/reader.rb +4 -0
  1769. data/vendor/rails/activerecord/test/models/reference.rb +4 -0
  1770. data/vendor/rails/activerecord/test/models/reply.rb +46 -0
  1771. data/vendor/rails/activerecord/test/models/ship.rb +19 -0
  1772. data/vendor/rails/activerecord/test/models/ship_part.rb +7 -0
  1773. data/vendor/rails/activerecord/test/models/sponsor.rb +4 -0
  1774. data/vendor/rails/activerecord/test/models/subject.rb +4 -0
  1775. data/vendor/rails/activerecord/test/models/subscriber.rb +8 -0
  1776. data/vendor/rails/activerecord/test/models/subscription.rb +4 -0
  1777. data/vendor/rails/activerecord/test/models/tag.rb +7 -0
  1778. data/vendor/rails/activerecord/test/models/tagging.rb +10 -0
  1779. data/vendor/rails/activerecord/test/models/task.rb +3 -0
  1780. data/vendor/rails/activerecord/test/models/topic.rb +80 -0
  1781. data/vendor/rails/activerecord/test/models/toy.rb +6 -0
  1782. data/vendor/rails/activerecord/test/models/treasure.rb +8 -0
  1783. data/vendor/rails/activerecord/test/models/vertex.rb +9 -0
  1784. data/vendor/rails/activerecord/test/models/warehouse_thing.rb +5 -0
  1785. data/vendor/rails/activerecord/test/models/zine.rb +3 -0
  1786. data/vendor/rails/activerecord/test/schema/mysql_specific_schema.rb +24 -0
  1787. data/vendor/rails/activerecord/test/schema/postgresql_specific_schema.rb +114 -0
  1788. data/vendor/rails/activerecord/test/schema/schema.rb +534 -0
  1789. data/vendor/rails/activerecord/test/schema/schema2.rb +6 -0
  1790. data/vendor/rails/activerecord/test/schema/sqlite_specific_schema.rb +25 -0
  1791. data/vendor/rails/activeresource/CHANGELOG +307 -0
  1792. data/vendor/rails/activeresource/README +165 -0
  1793. data/vendor/rails/activeresource/Rakefile +139 -0
  1794. data/vendor/rails/activeresource/lib/active_resource.rb +44 -0
  1795. data/vendor/rails/activeresource/lib/active_resource/base.rb +1166 -0
  1796. data/vendor/rails/activeresource/lib/active_resource/connection.rb +283 -0
  1797. data/vendor/rails/activeresource/lib/active_resource/custom_methods.rb +120 -0
  1798. data/vendor/rails/activeresource/lib/active_resource/exceptions.rb +66 -0
  1799. data/vendor/rails/activeresource/lib/active_resource/formats.rb +14 -0
  1800. data/vendor/rails/activeresource/lib/active_resource/formats/json_format.rb +23 -0
  1801. data/vendor/rails/activeresource/lib/active_resource/formats/xml_format.rb +34 -0
  1802. data/vendor/rails/activeresource/lib/active_resource/http_mock.rb +207 -0
  1803. data/vendor/rails/activeresource/lib/active_resource/validations.rb +290 -0
  1804. data/vendor/rails/activeresource/lib/active_resource/version.rb +9 -0
  1805. data/vendor/rails/activeresource/lib/activeresource.rb +2 -0
  1806. data/vendor/rails/activeresource/test/abstract_unit.rb +21 -0
  1807. data/vendor/rails/activeresource/test/authorization_test.rb +122 -0
  1808. data/vendor/rails/activeresource/test/base/custom_methods_test.rb +100 -0
  1809. data/vendor/rails/activeresource/test/base/equality_test.rb +52 -0
  1810. data/vendor/rails/activeresource/test/base/load_test.rb +161 -0
  1811. data/vendor/rails/activeresource/test/base_errors_test.rb +98 -0
  1812. data/vendor/rails/activeresource/test/base_test.rb +1087 -0
  1813. data/vendor/rails/activeresource/test/connection_test.rb +238 -0
  1814. data/vendor/rails/activeresource/test/debug.log +80350 -0
  1815. data/vendor/rails/activeresource/test/fixtures/beast.rb +14 -0
  1816. data/vendor/rails/activeresource/test/fixtures/customer.rb +3 -0
  1817. data/vendor/rails/activeresource/test/fixtures/person.rb +3 -0
  1818. data/vendor/rails/activeresource/test/fixtures/proxy.rb +4 -0
  1819. data/vendor/rails/activeresource/test/fixtures/street_address.rb +4 -0
  1820. data/vendor/rails/activeresource/test/format_test.rb +112 -0
  1821. data/vendor/rails/activeresource/test/setter_trap.rb +26 -0
  1822. data/vendor/rails/activesupport/CHANGELOG +1367 -0
  1823. data/vendor/rails/activesupport/README +43 -0
  1824. data/vendor/rails/activesupport/lib/active_support.rb +60 -0
  1825. data/vendor/rails/activesupport/lib/active_support/all.rb +8 -0
  1826. data/vendor/rails/activesupport/lib/active_support/backtrace_cleaner.rb +72 -0
  1827. data/vendor/rails/activesupport/lib/active_support/base64.rb +33 -0
  1828. data/vendor/rails/activesupport/lib/active_support/basic_object.rb +24 -0
  1829. data/vendor/rails/activesupport/lib/active_support/buffered_logger.rb +127 -0
  1830. data/vendor/rails/activesupport/lib/active_support/cache.rb +248 -0
  1831. data/vendor/rails/activesupport/lib/active_support/cache/compressed_mem_cache_store.rb +20 -0
  1832. data/vendor/rails/activesupport/lib/active_support/cache/drb_store.rb +14 -0
  1833. data/vendor/rails/activesupport/lib/active_support/cache/file_store.rb +72 -0
  1834. data/vendor/rails/activesupport/lib/active_support/cache/mem_cache_store.rb +143 -0
  1835. data/vendor/rails/activesupport/lib/active_support/cache/memory_store.rb +58 -0
  1836. data/vendor/rails/activesupport/lib/active_support/cache/strategy/local_cache.rb +104 -0
  1837. data/vendor/rails/activesupport/lib/active_support/cache/synchronized_memory_store.rb +47 -0
  1838. data/vendor/rails/activesupport/lib/active_support/callbacks.rb +279 -0
  1839. data/vendor/rails/activesupport/lib/active_support/core_ext.rb +8 -0
  1840. data/vendor/rails/activesupport/lib/active_support/core_ext/array.rb +15 -0
  1841. data/vendor/rails/activesupport/lib/active_support/core_ext/array/access.rb +53 -0
  1842. data/vendor/rails/activesupport/lib/active_support/core_ext/array/conversions.rb +197 -0
  1843. data/vendor/rails/activesupport/lib/active_support/core_ext/array/extract_options.rb +20 -0
  1844. data/vendor/rails/activesupport/lib/active_support/core_ext/array/grouping.rb +106 -0
  1845. data/vendor/rails/activesupport/lib/active_support/core_ext/array/random_access.rb +22 -0
  1846. data/vendor/rails/activesupport/lib/active_support/core_ext/array/wrapper.rb +24 -0
  1847. data/vendor/rails/activesupport/lib/active_support/core_ext/base64.rb +4 -0
  1848. data/vendor/rails/activesupport/lib/active_support/core_ext/base64/encoding.rb +16 -0
  1849. data/vendor/rails/activesupport/lib/active_support/core_ext/benchmark.rb +19 -0
  1850. data/vendor/rails/activesupport/lib/active_support/core_ext/bigdecimal.rb +6 -0
  1851. data/vendor/rails/activesupport/lib/active_support/core_ext/bigdecimal/conversions.rb +37 -0
  1852. data/vendor/rails/activesupport/lib/active_support/core_ext/blank.rb +2 -0
  1853. data/vendor/rails/activesupport/lib/active_support/core_ext/cgi.rb +5 -0
  1854. data/vendor/rails/activesupport/lib/active_support/core_ext/cgi/escape_skipping_slashes.rb +23 -0
  1855. data/vendor/rails/activesupport/lib/active_support/core_ext/class.rb +4 -0
  1856. data/vendor/rails/activesupport/lib/active_support/core_ext/class/attribute_accessors.rb +61 -0
  1857. data/vendor/rails/activesupport/lib/active_support/core_ext/class/delegating_attributes.rb +47 -0
  1858. data/vendor/rails/activesupport/lib/active_support/core_ext/class/inheritable_attributes.rb +140 -0
  1859. data/vendor/rails/activesupport/lib/active_support/core_ext/class/removal.rb +50 -0
  1860. data/vendor/rails/activesupport/lib/active_support/core_ext/date.rb +10 -0
  1861. data/vendor/rails/activesupport/lib/active_support/core_ext/date/behavior.rb +42 -0
  1862. data/vendor/rails/activesupport/lib/active_support/core_ext/date/calculations.rb +241 -0
  1863. data/vendor/rails/activesupport/lib/active_support/core_ext/date/conversions.rb +107 -0
  1864. data/vendor/rails/activesupport/lib/active_support/core_ext/date_time.rb +12 -0
  1865. data/vendor/rails/activesupport/lib/active_support/core_ext/date_time/calculations.rb +126 -0
  1866. data/vendor/rails/activesupport/lib/active_support/core_ext/date_time/conversions.rb +107 -0
  1867. data/vendor/rails/activesupport/lib/active_support/core_ext/duplicable.rb +43 -0
  1868. data/vendor/rails/activesupport/lib/active_support/core_ext/enumerable.rb +120 -0
  1869. data/vendor/rails/activesupport/lib/active_support/core_ext/exception.rb +45 -0
  1870. data/vendor/rails/activesupport/lib/active_support/core_ext/file.rb +5 -0
  1871. data/vendor/rails/activesupport/lib/active_support/core_ext/file/atomic.rb +47 -0
  1872. data/vendor/rails/activesupport/lib/active_support/core_ext/float.rb +7 -0
  1873. data/vendor/rails/activesupport/lib/active_support/core_ext/float/rounding.rb +24 -0
  1874. data/vendor/rails/activesupport/lib/active_support/core_ext/float/time.rb +27 -0
  1875. data/vendor/rails/activesupport/lib/active_support/core_ext/hash.rb +14 -0
  1876. data/vendor/rails/activesupport/lib/active_support/core_ext/hash/conversions.rb +247 -0
  1877. data/vendor/rails/activesupport/lib/active_support/core_ext/hash/deep_merge.rb +23 -0
  1878. data/vendor/rails/activesupport/lib/active_support/core_ext/hash/diff.rb +19 -0
  1879. data/vendor/rails/activesupport/lib/active_support/core_ext/hash/except.rb +25 -0
  1880. data/vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb +143 -0
  1881. data/vendor/rails/activesupport/lib/active_support/core_ext/hash/keys.rb +52 -0
  1882. data/vendor/rails/activesupport/lib/active_support/core_ext/hash/reverse_merge.rb +35 -0
  1883. data/vendor/rails/activesupport/lib/active_support/core_ext/hash/slice.rb +40 -0
  1884. data/vendor/rails/activesupport/lib/active_support/core_ext/integer.rb +9 -0
  1885. data/vendor/rails/activesupport/lib/active_support/core_ext/integer/even_odd.rb +29 -0
  1886. data/vendor/rails/activesupport/lib/active_support/core_ext/integer/inflections.rb +20 -0
  1887. data/vendor/rails/activesupport/lib/active_support/core_ext/integer/time.rb +45 -0
  1888. data/vendor/rails/activesupport/lib/active_support/core_ext/kernel.rb +5 -0
  1889. data/vendor/rails/activesupport/lib/active_support/core_ext/kernel/agnostics.rb +11 -0
  1890. data/vendor/rails/activesupport/lib/active_support/core_ext/kernel/daemonizing.rb +7 -0
  1891. data/vendor/rails/activesupport/lib/active_support/core_ext/kernel/debugger.rb +16 -0
  1892. data/vendor/rails/activesupport/lib/active_support/core_ext/kernel/reporting.rb +59 -0
  1893. data/vendor/rails/activesupport/lib/active_support/core_ext/kernel/requires.rb +24 -0
  1894. data/vendor/rails/activesupport/lib/active_support/core_ext/load_error.rb +38 -0
  1895. data/vendor/rails/activesupport/lib/active_support/core_ext/logger.rb +145 -0
  1896. data/vendor/rails/activesupport/lib/active_support/core_ext/module.rb +23 -0
  1897. data/vendor/rails/activesupport/lib/active_support/core_ext/module/aliasing.rb +74 -0
  1898. data/vendor/rails/activesupport/lib/active_support/core_ext/module/attr_accessor_with_default.rb +31 -0
  1899. data/vendor/rails/activesupport/lib/active_support/core_ext/module/attr_internal.rb +32 -0
  1900. data/vendor/rails/activesupport/lib/active_support/core_ext/module/attribute_accessors.rb +67 -0
  1901. data/vendor/rails/activesupport/lib/active_support/core_ext/module/delegation.rb +135 -0
  1902. data/vendor/rails/activesupport/lib/active_support/core_ext/module/inclusion.rb +30 -0
  1903. data/vendor/rails/activesupport/lib/active_support/core_ext/module/introspection.rb +90 -0
  1904. data/vendor/rails/activesupport/lib/active_support/core_ext/module/loading.rb +23 -0
  1905. data/vendor/rails/activesupport/lib/active_support/core_ext/module/model_naming.rb +25 -0
  1906. data/vendor/rails/activesupport/lib/active_support/core_ext/module/synchronization.rb +39 -0
  1907. data/vendor/rails/activesupport/lib/active_support/core_ext/name_error.rb +19 -0
  1908. data/vendor/rails/activesupport/lib/active_support/core_ext/numeric.rb +9 -0
  1909. data/vendor/rails/activesupport/lib/active_support/core_ext/numeric/bytes.rb +50 -0
  1910. data/vendor/rails/activesupport/lib/active_support/core_ext/numeric/conversions.rb +19 -0
  1911. data/vendor/rails/activesupport/lib/active_support/core_ext/numeric/time.rb +81 -0
  1912. data/vendor/rails/activesupport/lib/active_support/core_ext/object.rb +7 -0
  1913. data/vendor/rails/activesupport/lib/active_support/core_ext/object/blank.rb +76 -0
  1914. data/vendor/rails/activesupport/lib/active_support/core_ext/object/conversions.rb +15 -0
  1915. data/vendor/rails/activesupport/lib/active_support/core_ext/object/extending.rb +80 -0
  1916. data/vendor/rails/activesupport/lib/active_support/core_ext/object/instance_variables.rb +74 -0
  1917. data/vendor/rails/activesupport/lib/active_support/core_ext/object/metaclass.rb +14 -0
  1918. data/vendor/rails/activesupport/lib/active_support/core_ext/object/misc.rb +90 -0
  1919. data/vendor/rails/activesupport/lib/active_support/core_ext/object/singleton_class.rb +13 -0
  1920. data/vendor/rails/activesupport/lib/active_support/core_ext/pathname.rb +7 -0
  1921. data/vendor/rails/activesupport/lib/active_support/core_ext/pathname/clean_within.rb +14 -0
  1922. data/vendor/rails/activesupport/lib/active_support/core_ext/proc.rb +12 -0
  1923. data/vendor/rails/activesupport/lib/active_support/core_ext/process.rb +1 -0
  1924. data/vendor/rails/activesupport/lib/active_support/core_ext/process/daemon.rb +25 -0
  1925. data/vendor/rails/activesupport/lib/active_support/core_ext/range.rb +11 -0
  1926. data/vendor/rails/activesupport/lib/active_support/core_ext/range/blockless_step.rb +32 -0
  1927. data/vendor/rails/activesupport/lib/active_support/core_ext/range/conversions.rb +27 -0
  1928. data/vendor/rails/activesupport/lib/active_support/core_ext/range/include_range.rb +30 -0
  1929. data/vendor/rails/activesupport/lib/active_support/core_ext/range/overlaps.rb +15 -0
  1930. data/vendor/rails/activesupport/lib/active_support/core_ext/rexml.rb +41 -0
  1931. data/vendor/rails/activesupport/lib/active_support/core_ext/string.rb +24 -0
  1932. data/vendor/rails/activesupport/lib/active_support/core_ext/string/access.rb +106 -0
  1933. data/vendor/rails/activesupport/lib/active_support/core_ext/string/behavior.rb +13 -0
  1934. data/vendor/rails/activesupport/lib/active_support/core_ext/string/bytesize.rb +5 -0
  1935. data/vendor/rails/activesupport/lib/active_support/core_ext/string/conversions.rb +28 -0
  1936. data/vendor/rails/activesupport/lib/active_support/core_ext/string/filters.rb +26 -0
  1937. data/vendor/rails/activesupport/lib/active_support/core_ext/string/inflections.rb +167 -0
  1938. data/vendor/rails/activesupport/lib/active_support/core_ext/string/iterators.rb +23 -0
  1939. data/vendor/rails/activesupport/lib/active_support/core_ext/string/multibyte.rb +81 -0
  1940. data/vendor/rails/activesupport/lib/active_support/core_ext/string/output_safety.rb +112 -0
  1941. data/vendor/rails/activesupport/lib/active_support/core_ext/string/starts_ends_with.rb +33 -0
  1942. data/vendor/rails/activesupport/lib/active_support/core_ext/string/xchar.rb +11 -0
  1943. data/vendor/rails/activesupport/lib/active_support/core_ext/symbol.rb +14 -0
  1944. data/vendor/rails/activesupport/lib/active_support/core_ext/time.rb +46 -0
  1945. data/vendor/rails/activesupport/lib/active_support/core_ext/time/behavior.rb +13 -0
  1946. data/vendor/rails/activesupport/lib/active_support/core_ext/time/calculations.rb +313 -0
  1947. data/vendor/rails/activesupport/lib/active_support/core_ext/time/conversions.rb +90 -0
  1948. data/vendor/rails/activesupport/lib/active_support/core_ext/time/zones.rb +86 -0
  1949. data/vendor/rails/activesupport/lib/active_support/core_ext/try.rb +36 -0
  1950. data/vendor/rails/activesupport/lib/active_support/core_ext/uri.rb +16 -0
  1951. data/vendor/rails/activesupport/lib/active_support/dependencies.rb +625 -0
  1952. data/vendor/rails/activesupport/lib/active_support/deprecation.rb +197 -0
  1953. data/vendor/rails/activesupport/lib/active_support/duration.rb +100 -0
  1954. data/vendor/rails/activesupport/lib/active_support/gzip.rb +25 -0
  1955. data/vendor/rails/activesupport/lib/active_support/inflections.rb +56 -0
  1956. data/vendor/rails/activesupport/lib/active_support/inflector.rb +409 -0
  1957. data/vendor/rails/activesupport/lib/active_support/json.rb +2 -0
  1958. data/vendor/rails/activesupport/lib/active_support/json/backends/jsongem.rb +37 -0
  1959. data/vendor/rails/activesupport/lib/active_support/json/backends/yajl.rb +40 -0
  1960. data/vendor/rails/activesupport/lib/active_support/json/backends/yaml.rb +87 -0
  1961. data/vendor/rails/activesupport/lib/active_support/json/decoding.rb +50 -0
  1962. data/vendor/rails/activesupport/lib/active_support/json/encoders/date.rb +22 -0
  1963. data/vendor/rails/activesupport/lib/active_support/json/encoders/date_time.rb +22 -0
  1964. data/vendor/rails/activesupport/lib/active_support/json/encoders/enumerable.rb +17 -0
  1965. data/vendor/rails/activesupport/lib/active_support/json/encoders/false_class.rb +7 -0
  1966. data/vendor/rails/activesupport/lib/active_support/json/encoders/hash.rb +56 -0
  1967. data/vendor/rails/activesupport/lib/active_support/json/encoders/nil_class.rb +7 -0
  1968. data/vendor/rails/activesupport/lib/active_support/json/encoders/numeric.rb +21 -0
  1969. data/vendor/rails/activesupport/lib/active_support/json/encoders/object.rb +10 -0
  1970. data/vendor/rails/activesupport/lib/active_support/json/encoders/regexp.rb +9 -0
  1971. data/vendor/rails/activesupport/lib/active_support/json/encoders/string.rb +9 -0
  1972. data/vendor/rails/activesupport/lib/active_support/json/encoders/symbol.rb +5 -0
  1973. data/vendor/rails/activesupport/lib/active_support/json/encoders/time.rb +22 -0
  1974. data/vendor/rails/activesupport/lib/active_support/json/encoders/true_class.rb +7 -0
  1975. data/vendor/rails/activesupport/lib/active_support/json/encoding.rb +111 -0
  1976. data/vendor/rails/activesupport/lib/active_support/json/variable.rb +10 -0
  1977. data/vendor/rails/activesupport/lib/active_support/locale/en.yml +33 -0
  1978. data/vendor/rails/activesupport/lib/active_support/memoizable.rb +100 -0
  1979. data/vendor/rails/activesupport/lib/active_support/message_encryptor.rb +70 -0
  1980. data/vendor/rails/activesupport/lib/active_support/message_verifier.rb +79 -0
  1981. data/vendor/rails/activesupport/lib/active_support/multibyte.rb +57 -0
  1982. data/vendor/rails/activesupport/lib/active_support/multibyte/chars.rb +707 -0
  1983. data/vendor/rails/activesupport/lib/active_support/multibyte/exceptions.rb +8 -0
  1984. data/vendor/rails/activesupport/lib/active_support/multibyte/unicode_database.rb +71 -0
  1985. data/vendor/rails/activesupport/lib/active_support/multibyte/utils.rb +60 -0
  1986. data/vendor/rails/activesupport/lib/active_support/option_merger.rb +23 -0
  1987. data/vendor/rails/activesupport/lib/active_support/ordered_hash.rb +158 -0
  1988. data/vendor/rails/activesupport/lib/active_support/ordered_options.rb +19 -0
  1989. data/vendor/rails/activesupport/lib/active_support/rescuable.rb +108 -0
  1990. data/vendor/rails/activesupport/lib/active_support/secure_random.rb +199 -0
  1991. data/vendor/rails/activesupport/lib/active_support/string_inquirer.rb +21 -0
  1992. data/vendor/rails/activesupport/lib/active_support/test_case.rb +40 -0
  1993. data/vendor/rails/activesupport/lib/active_support/testing/assertions.rb +79 -0
  1994. data/vendor/rails/activesupport/lib/active_support/testing/declarative.rb +21 -0
  1995. data/vendor/rails/activesupport/lib/active_support/testing/default.rb +9 -0
  1996. data/vendor/rails/activesupport/lib/active_support/testing/deprecation.rb +57 -0
  1997. data/vendor/rails/activesupport/lib/active_support/testing/performance.rb +452 -0
  1998. data/vendor/rails/activesupport/lib/active_support/testing/setup_and_teardown.rb +91 -0
  1999. data/vendor/rails/activesupport/lib/active_support/time_with_zone.rb +335 -0
  2000. data/vendor/rails/activesupport/lib/active_support/values/time_zone.rb +412 -0
  2001. data/vendor/rails/activesupport/lib/active_support/values/unicode_tables.dat +0 -0
  2002. data/vendor/rails/activesupport/lib/active_support/vendor.rb +36 -0
  2003. data/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/blankslate.rb +113 -0
  2004. data/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder.rb +13 -0
  2005. data/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/blankslate.rb +20 -0
  2006. data/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/css.rb +250 -0
  2007. data/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xchar.rb +115 -0
  2008. data/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xmlbase.rb +139 -0
  2009. data/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xmlevents.rb +63 -0
  2010. data/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xmlmarkup.rb +328 -0
  2011. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n.rb +335 -0
  2012. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend.rb +19 -0
  2013. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/active_record.rb +66 -0
  2014. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/active_record/missing.rb +67 -0
  2015. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/active_record/store_procs.rb +38 -0
  2016. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/active_record/translation.rb +88 -0
  2017. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/base.rb +266 -0
  2018. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/cache.rb +76 -0
  2019. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/cascade.rb +58 -0
  2020. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/chain.rb +75 -0
  2021. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/cldr.rb +100 -0
  2022. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/fallbacks.rb +69 -0
  2023. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/fast.rb +69 -0
  2024. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/gettext.rb +75 -0
  2025. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/helpers.rb +68 -0
  2026. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/interpolation_compiler.rb +119 -0
  2027. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/links.rb +34 -0
  2028. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/metadata.rb +73 -0
  2029. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/pluralization.rb +57 -0
  2030. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/backend/simple.rb +22 -0
  2031. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/core_ext/hash/except.rb +8 -0
  2032. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/core_ext/hash/slice.rb +8 -0
  2033. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/core_ext/object/meta_class.rb +5 -0
  2034. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/core_ext/string/interpolate.rb +99 -0
  2035. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/exceptions.rb +61 -0
  2036. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/gettext.rb +25 -0
  2037. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/gettext/po_parser.rb +329 -0
  2038. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/helpers.rb +5 -0
  2039. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/helpers/gettext.rb +65 -0
  2040. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/locale.rb +6 -0
  2041. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/locale/fallbacks.rb +98 -0
  2042. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/locale/tag.rb +28 -0
  2043. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/locale/tag/parents.rb +24 -0
  2044. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/locale/tag/rfc4646.rb +76 -0
  2045. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/locale/tag/simple.rb +41 -0
  2046. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.3.7/i18n/version.rb +3 -0
  2047. data/vendor/rails/activesupport/lib/active_support/vendor/memcache-client-1.7.4/memcache.rb +1107 -0
  2048. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo.rb +33 -0
  2049. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/data_timezone.rb +47 -0
  2050. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/data_timezone_info.rb +228 -0
  2051. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Algiers.rb +55 -0
  2052. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Cairo.rb +219 -0
  2053. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Casablanca.rb +40 -0
  2054. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Harare.rb +18 -0
  2055. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Johannesburg.rb +25 -0
  2056. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Monrovia.rb +22 -0
  2057. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Nairobi.rb +23 -0
  2058. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Argentina/Buenos_Aires.rb +166 -0
  2059. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Argentina/San_Juan.rb +86 -0
  2060. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Bogota.rb +23 -0
  2061. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Caracas.rb +23 -0
  2062. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Chicago.rb +283 -0
  2063. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Chihuahua.rb +136 -0
  2064. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Denver.rb +204 -0
  2065. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Godthab.rb +161 -0
  2066. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Guatemala.rb +27 -0
  2067. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Halifax.rb +274 -0
  2068. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Indiana/Indianapolis.rb +149 -0
  2069. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Juneau.rb +194 -0
  2070. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/La_Paz.rb +22 -0
  2071. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Lima.rb +35 -0
  2072. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Los_Angeles.rb +232 -0
  2073. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Mazatlan.rb +139 -0
  2074. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Mexico_City.rb +144 -0
  2075. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Monterrey.rb +131 -0
  2076. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/New_York.rb +282 -0
  2077. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Phoenix.rb +30 -0
  2078. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Regina.rb +74 -0
  2079. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Santiago.rb +205 -0
  2080. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Sao_Paulo.rb +171 -0
  2081. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/St_Johns.rb +288 -0
  2082. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Tijuana.rb +196 -0
  2083. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Almaty.rb +67 -0
  2084. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Baghdad.rb +73 -0
  2085. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Baku.rb +161 -0
  2086. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Bangkok.rb +20 -0
  2087. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Chongqing.rb +33 -0
  2088. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Colombo.rb +30 -0
  2089. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Dhaka.rb +27 -0
  2090. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Hong_Kong.rb +87 -0
  2091. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Irkutsk.rb +165 -0
  2092. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Jakarta.rb +30 -0
  2093. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Jerusalem.rb +163 -0
  2094. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kabul.rb +20 -0
  2095. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kamchatka.rb +163 -0
  2096. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Karachi.rb +30 -0
  2097. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Katmandu.rb +20 -0
  2098. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kolkata.rb +25 -0
  2099. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Krasnoyarsk.rb +163 -0
  2100. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kuala_Lumpur.rb +31 -0
  2101. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kuwait.rb +18 -0
  2102. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Magadan.rb +163 -0
  2103. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Muscat.rb +18 -0
  2104. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Novosibirsk.rb +164 -0
  2105. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Rangoon.rb +24 -0
  2106. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Riyadh.rb +18 -0
  2107. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Seoul.rb +34 -0
  2108. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Shanghai.rb +35 -0
  2109. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Singapore.rb +33 -0
  2110. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Taipei.rb +59 -0
  2111. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tashkent.rb +47 -0
  2112. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tbilisi.rb +78 -0
  2113. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tehran.rb +121 -0
  2114. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tokyo.rb +30 -0
  2115. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Ulaanbaatar.rb +65 -0
  2116. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Urumqi.rb +33 -0
  2117. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Vladivostok.rb +164 -0
  2118. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yakutsk.rb +163 -0
  2119. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yekaterinburg.rb +165 -0
  2120. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yerevan.rb +165 -0
  2121. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/Azores.rb +270 -0
  2122. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/Cape_Verde.rb +23 -0
  2123. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/South_Georgia.rb +18 -0
  2124. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Adelaide.rb +187 -0
  2125. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Brisbane.rb +35 -0
  2126. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Darwin.rb +29 -0
  2127. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Hobart.rb +193 -0
  2128. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Melbourne.rb +185 -0
  2129. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Perth.rb +37 -0
  2130. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Sydney.rb +185 -0
  2131. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Etc/UTC.rb +16 -0
  2132. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Amsterdam.rb +228 -0
  2133. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Athens.rb +185 -0
  2134. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Belgrade.rb +163 -0
  2135. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Berlin.rb +188 -0
  2136. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Bratislava.rb +13 -0
  2137. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Brussels.rb +232 -0
  2138. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Bucharest.rb +181 -0
  2139. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Budapest.rb +197 -0
  2140. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Copenhagen.rb +179 -0
  2141. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Dublin.rb +276 -0
  2142. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Helsinki.rb +163 -0
  2143. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Istanbul.rb +218 -0
  2144. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Kiev.rb +168 -0
  2145. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Lisbon.rb +268 -0
  2146. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Ljubljana.rb +13 -0
  2147. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/London.rb +288 -0
  2148. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Madrid.rb +211 -0
  2149. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Minsk.rb +170 -0
  2150. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Moscow.rb +181 -0
  2151. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Paris.rb +232 -0
  2152. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Prague.rb +187 -0
  2153. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Riga.rb +176 -0
  2154. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Rome.rb +215 -0
  2155. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Sarajevo.rb +13 -0
  2156. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Skopje.rb +13 -0
  2157. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Sofia.rb +173 -0
  2158. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Stockholm.rb +165 -0
  2159. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Tallinn.rb +172 -0
  2160. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Vienna.rb +183 -0
  2161. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Vilnius.rb +170 -0
  2162. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Warsaw.rb +212 -0
  2163. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Zagreb.rb +13 -0
  2164. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Auckland.rb +202 -0
  2165. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Fiji.rb +23 -0
  2166. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Guam.rb +22 -0
  2167. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Honolulu.rb +28 -0
  2168. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Majuro.rb +20 -0
  2169. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Midway.rb +25 -0
  2170. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Noumea.rb +25 -0
  2171. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Pago_Pago.rb +26 -0
  2172. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Port_Moresby.rb +20 -0
  2173. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Tongatapu.rb +27 -0
  2174. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/info_timezone.rb +52 -0
  2175. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/linked_timezone.rb +51 -0
  2176. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/linked_timezone_info.rb +44 -0
  2177. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/offset_rationals.rb +98 -0
  2178. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/ruby_core_support.rb +56 -0
  2179. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/time_or_datetime.rb +292 -0
  2180. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone.rb +508 -0
  2181. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_definition.rb +56 -0
  2182. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_info.rb +40 -0
  2183. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_offset_info.rb +94 -0
  2184. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_period.rb +198 -0
  2185. data/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_transition_info.rb +129 -0
  2186. data/vendor/rails/activesupport/lib/active_support/version.rb +9 -0
  2187. data/vendor/rails/activesupport/lib/active_support/whiny_nil.rb +64 -0
  2188. data/vendor/rails/activesupport/lib/active_support/xml_mini.rb +31 -0
  2189. data/vendor/rails/activesupport/lib/active_support/xml_mini/jdom.rb +162 -0
  2190. data/vendor/rails/activesupport/lib/active_support/xml_mini/libxml.rb +73 -0
  2191. data/vendor/rails/activesupport/lib/active_support/xml_mini/libxmlsax.rb +74 -0
  2192. data/vendor/rails/activesupport/lib/active_support/xml_mini/nokogiri.rb +72 -0
  2193. data/vendor/rails/activesupport/lib/active_support/xml_mini/nokogirisax.rb +73 -0
  2194. data/vendor/rails/activesupport/lib/active_support/xml_mini/rexml.rb +108 -0
  2195. data/vendor/rails/activesupport/lib/activesupport.rb +2 -0
  2196. data/vendor/rails/railties/CHANGELOG +2188 -0
  2197. data/vendor/rails/railties/MIT-LICENSE +20 -0
  2198. data/vendor/rails/railties/README +243 -0
  2199. data/vendor/rails/railties/Rakefile +368 -0
  2200. data/vendor/rails/railties/bin/about +4 -0
  2201. data/vendor/rails/railties/bin/console +3 -0
  2202. data/vendor/rails/railties/bin/dbconsole +3 -0
  2203. data/vendor/rails/railties/bin/destroy +3 -0
  2204. data/vendor/rails/railties/bin/generate +3 -0
  2205. data/vendor/rails/railties/bin/performance/benchmarker +3 -0
  2206. data/vendor/rails/railties/bin/performance/profiler +3 -0
  2207. data/vendor/rails/railties/bin/plugin +3 -0
  2208. data/vendor/rails/railties/bin/rails +21 -0
  2209. data/vendor/rails/railties/bin/runner +3 -0
  2210. data/vendor/rails/railties/bin/server +3 -0
  2211. data/vendor/rails/railties/builtin/rails_info/rails/info.rb +131 -0
  2212. data/vendor/rails/railties/builtin/rails_info/rails/info_controller.rb +9 -0
  2213. data/vendor/rails/railties/builtin/rails_info/rails/info_helper.rb +2 -0
  2214. data/vendor/rails/railties/builtin/rails_info/rails_info_controller.rb +2 -0
  2215. data/vendor/rails/railties/configs/databases/frontbase.yml +28 -0
  2216. data/vendor/rails/railties/configs/databases/ibm_db.yml +62 -0
  2217. data/vendor/rails/railties/configs/databases/mysql.yml +60 -0
  2218. data/vendor/rails/railties/configs/databases/oracle.yml +39 -0
  2219. data/vendor/rails/railties/configs/databases/postgresql.yml +51 -0
  2220. data/vendor/rails/railties/configs/databases/sqlite2.yml +19 -0
  2221. data/vendor/rails/railties/configs/databases/sqlite3.yml +22 -0
  2222. data/vendor/rails/railties/configs/empty.log +0 -0
  2223. data/vendor/rails/railties/configs/initializers/backtrace_silencers.rb +7 -0
  2224. data/vendor/rails/railties/configs/initializers/cookie_verification_secret.rb +7 -0
  2225. data/vendor/rails/railties/configs/initializers/inflections.rb +10 -0
  2226. data/vendor/rails/railties/configs/initializers/mime_types.rb +5 -0
  2227. data/vendor/rails/railties/configs/initializers/new_rails_defaults.rb +21 -0
  2228. data/vendor/rails/railties/configs/initializers/session_store.rb +15 -0
  2229. data/vendor/rails/railties/configs/locales/en.yml +5 -0
  2230. data/vendor/rails/railties/configs/routes.rb +43 -0
  2231. data/vendor/rails/railties/configs/seeds.rb +7 -0
  2232. data/vendor/rails/railties/dispatches/config.ru +7 -0
  2233. data/vendor/rails/railties/dispatches/dispatch.fcgi +24 -0
  2234. data/vendor/rails/railties/dispatches/dispatch.rb +10 -0
  2235. data/vendor/rails/railties/dispatches/gateway.cgi +97 -0
  2236. data/vendor/rails/railties/doc/README_FOR_APP +2 -0
  2237. data/vendor/rails/railties/environments/boot.rb +110 -0
  2238. data/vendor/rails/railties/environments/development.rb +17 -0
  2239. data/vendor/rails/railties/environments/environment.rb +41 -0
  2240. data/vendor/rails/railties/environments/production.rb +28 -0
  2241. data/vendor/rails/railties/environments/test.rb +28 -0
  2242. data/vendor/rails/railties/fresh_rakefile +10 -0
  2243. data/vendor/rails/railties/guides/files/javascripts/code_highlighter.js +188 -0
  2244. data/vendor/rails/railties/guides/files/javascripts/guides.js +8 -0
  2245. data/vendor/rails/railties/guides/files/javascripts/highlighters.js +90 -0
  2246. data/vendor/rails/railties/guides/files/stylesheets/main.css +441 -0
  2247. data/vendor/rails/railties/guides/files/stylesheets/print.css +52 -0
  2248. data/vendor/rails/railties/guides/files/stylesheets/reset.css +43 -0
  2249. data/vendor/rails/railties/guides/files/stylesheets/style.css +13 -0
  2250. data/vendor/rails/railties/guides/files/stylesheets/syntax.css +31 -0
  2251. data/vendor/rails/railties/guides/images/belongs_to.png +0 -0
  2252. data/vendor/rails/railties/guides/images/book_icon.gif +0 -0
  2253. data/vendor/rails/railties/guides/images/bullet.gif +0 -0
  2254. data/vendor/rails/railties/guides/images/chapters_icon.gif +0 -0
  2255. data/vendor/rails/railties/guides/images/check_bullet.gif +0 -0
  2256. data/vendor/rails/railties/guides/images/credits_pic_blank.gif +0 -0
  2257. data/vendor/rails/railties/guides/images/csrf.png +0 -0
  2258. data/vendor/rails/railties/guides/images/customized_error_messages.png +0 -0
  2259. data/vendor/rails/railties/guides/images/error_messages.png +0 -0
  2260. data/vendor/rails/railties/guides/images/feature_tile.gif +0 -0
  2261. data/vendor/rails/railties/guides/images/footer_tile.gif +0 -0
  2262. data/vendor/rails/railties/guides/images/fxn.jpg +0 -0
  2263. data/vendor/rails/railties/guides/images/grey_bullet.gif +0 -0
  2264. data/vendor/rails/railties/guides/images/habtm.png +0 -0
  2265. data/vendor/rails/railties/guides/images/has_many.png +0 -0
  2266. data/vendor/rails/railties/guides/images/has_many_through.png +0 -0
  2267. data/vendor/rails/railties/guides/images/has_one.png +0 -0
  2268. data/vendor/rails/railties/guides/images/has_one_through.png +0 -0
  2269. data/vendor/rails/railties/guides/images/header_backdrop.png +0 -0
  2270. data/vendor/rails/railties/guides/images/header_tile.gif +0 -0
  2271. data/vendor/rails/railties/guides/images/i18n/demo_localized_pirate.png +0 -0
  2272. data/vendor/rails/railties/guides/images/i18n/demo_translated_en.png +0 -0
  2273. data/vendor/rails/railties/guides/images/i18n/demo_translated_pirate.png +0 -0
  2274. data/vendor/rails/railties/guides/images/i18n/demo_translation_missing.png +0 -0
  2275. data/vendor/rails/railties/guides/images/i18n/demo_untranslated.png +0 -0
  2276. data/vendor/rails/railties/guides/images/icons/README +5 -0
  2277. data/vendor/rails/railties/guides/images/icons/callouts/1.png +0 -0
  2278. data/vendor/rails/railties/guides/images/icons/callouts/10.png +0 -0
  2279. data/vendor/rails/railties/guides/images/icons/callouts/11.png +0 -0
  2280. data/vendor/rails/railties/guides/images/icons/callouts/12.png +0 -0
  2281. data/vendor/rails/railties/guides/images/icons/callouts/13.png +0 -0
  2282. data/vendor/rails/railties/guides/images/icons/callouts/14.png +0 -0
  2283. data/vendor/rails/railties/guides/images/icons/callouts/15.png +0 -0
  2284. data/vendor/rails/railties/guides/images/icons/callouts/2.png +0 -0
  2285. data/vendor/rails/railties/guides/images/icons/callouts/3.png +0 -0
  2286. data/vendor/rails/railties/guides/images/icons/callouts/4.png +0 -0
  2287. data/vendor/rails/railties/guides/images/icons/callouts/5.png +0 -0
  2288. data/vendor/rails/railties/guides/images/icons/callouts/6.png +0 -0
  2289. data/vendor/rails/railties/guides/images/icons/callouts/7.png +0 -0
  2290. data/vendor/rails/railties/guides/images/icons/callouts/8.png +0 -0
  2291. data/vendor/rails/railties/guides/images/icons/callouts/9.png +0 -0
  2292. data/vendor/rails/railties/guides/images/icons/caution.png +0 -0
  2293. data/vendor/rails/railties/guides/images/icons/example.png +0 -0
  2294. data/vendor/rails/railties/guides/images/icons/home.png +0 -0
  2295. data/vendor/rails/railties/guides/images/icons/important.png +0 -0
  2296. data/vendor/rails/railties/guides/images/icons/next.png +0 -0
  2297. data/vendor/rails/railties/guides/images/icons/note.png +0 -0
  2298. data/vendor/rails/railties/guides/images/icons/prev.png +0 -0
  2299. data/vendor/rails/railties/guides/images/icons/tip.png +0 -0
  2300. data/vendor/rails/railties/guides/images/icons/up.png +0 -0
  2301. data/vendor/rails/railties/guides/images/icons/warning.png +0 -0
  2302. data/vendor/rails/railties/guides/images/nav_arrow.gif +0 -0
  2303. data/vendor/rails/railties/guides/images/polymorphic.png +0 -0
  2304. data/vendor/rails/railties/guides/images/posts_index.png +0 -0
  2305. data/vendor/rails/railties/guides/images/rails_guides_logo.gif +0 -0
  2306. data/vendor/rails/railties/guides/images/rails_logo_remix.gif +0 -0
  2307. data/vendor/rails/railties/guides/images/rails_welcome.png +0 -0
  2308. data/vendor/rails/railties/guides/images/session_fixation.png +0 -0
  2309. data/vendor/rails/railties/guides/images/tab_grey.gif +0 -0
  2310. data/vendor/rails/railties/guides/images/tab_info.gif +0 -0
  2311. data/vendor/rails/railties/guides/images/tab_note.gif +0 -0
  2312. data/vendor/rails/railties/guides/images/tab_red.gif +0 -0
  2313. data/vendor/rails/railties/guides/images/tab_yellow.gif +0 -0
  2314. data/vendor/rails/railties/guides/images/tab_yellow.png +0 -0
  2315. data/vendor/rails/railties/guides/images/validation_error_messages.png +0 -0
  2316. data/vendor/rails/railties/guides/rails_guides.rb +42 -0
  2317. data/vendor/rails/railties/guides/rails_guides/generator.rb +138 -0
  2318. data/vendor/rails/railties/guides/rails_guides/helpers.rb +34 -0
  2319. data/vendor/rails/railties/guides/rails_guides/indexer.rb +55 -0
  2320. data/vendor/rails/railties/guides/rails_guides/textile_extensions.rb +41 -0
  2321. data/vendor/rails/railties/guides/source/2_2_release_notes.textile +422 -0
  2322. data/vendor/rails/railties/guides/source/2_3_release_notes.textile +610 -0
  2323. data/vendor/rails/railties/guides/source/action_controller_overview.textile +776 -0
  2324. data/vendor/rails/railties/guides/source/action_mailer_basics.textile +424 -0
  2325. data/vendor/rails/railties/guides/source/active_record_basics.textile +135 -0
  2326. data/vendor/rails/railties/guides/source/active_record_querying.textile +969 -0
  2327. data/vendor/rails/railties/guides/source/activerecord_validations_callbacks.textile +1086 -0
  2328. data/vendor/rails/railties/guides/source/association_basics.textile +1781 -0
  2329. data/vendor/rails/railties/guides/source/caching_with_rails.textile +524 -0
  2330. data/vendor/rails/railties/guides/source/command_line.textile +589 -0
  2331. data/vendor/rails/railties/guides/source/configuring.textile +234 -0
  2332. data/vendor/rails/railties/guides/source/contribute.textile +71 -0
  2333. data/vendor/rails/railties/guides/source/contributing_to_rails.textile +239 -0
  2334. data/vendor/rails/railties/guides/source/credits.erb.textile +52 -0
  2335. data/vendor/rails/railties/guides/source/debugging_rails_applications.textile +709 -0
  2336. data/vendor/rails/railties/guides/source/form_helpers.textile +766 -0
  2337. data/vendor/rails/railties/guides/source/getting_started.textile +1297 -0
  2338. data/vendor/rails/railties/guides/source/i18n.textile +912 -0
  2339. data/vendor/rails/railties/guides/source/index.erb.textile +124 -0
  2340. data/vendor/rails/railties/guides/source/layout.html.erb +103 -0
  2341. data/vendor/rails/railties/guides/source/layouts_and_rendering.textile +979 -0
  2342. data/vendor/rails/railties/guides/source/migrations.textile +591 -0
  2343. data/vendor/rails/railties/guides/source/nested_model_forms.textile +222 -0
  2344. data/vendor/rails/railties/guides/source/performance_testing.textile +531 -0
  2345. data/vendor/rails/railties/guides/source/plugins.textile +1512 -0
  2346. data/vendor/rails/railties/guides/source/rails_on_rack.textile +309 -0
  2347. data/vendor/rails/railties/guides/source/routing.textile +903 -0
  2348. data/vendor/rails/railties/guides/source/security.textile +986 -0
  2349. data/vendor/rails/railties/guides/source/testing.textile +951 -0
  2350. data/vendor/rails/railties/helpers/application_controller.rb +10 -0
  2351. data/vendor/rails/railties/helpers/application_helper.rb +3 -0
  2352. data/vendor/rails/railties/helpers/performance_test.rb +9 -0
  2353. data/vendor/rails/railties/helpers/test_helper.rb +38 -0
  2354. data/vendor/rails/railties/html/404.html +30 -0
  2355. data/vendor/rails/railties/html/422.html +30 -0
  2356. data/vendor/rails/railties/html/500.html +30 -0
  2357. data/vendor/rails/railties/html/favicon.ico +0 -0
  2358. data/vendor/rails/railties/html/images/rails.png +0 -0
  2359. data/vendor/rails/railties/html/index.html +275 -0
  2360. data/vendor/rails/railties/html/javascripts/application.js +2 -0
  2361. data/vendor/rails/railties/html/javascripts/controls.js +963 -0
  2362. data/vendor/rails/railties/html/javascripts/dragdrop.js +973 -0
  2363. data/vendor/rails/railties/html/javascripts/effects.js +1128 -0
  2364. data/vendor/rails/railties/html/javascripts/prototype.js +4320 -0
  2365. data/vendor/rails/railties/html/robots.txt +5 -0
  2366. data/vendor/rails/railties/lib/code_statistics.rb +107 -0
  2367. data/vendor/rails/railties/lib/commands.rb +17 -0
  2368. data/vendor/rails/railties/lib/commands/about.rb +3 -0
  2369. data/vendor/rails/railties/lib/commands/console.rb +45 -0
  2370. data/vendor/rails/railties/lib/commands/dbconsole.rb +87 -0
  2371. data/vendor/rails/railties/lib/commands/destroy.rb +6 -0
  2372. data/vendor/rails/railties/lib/commands/generate.rb +6 -0
  2373. data/vendor/rails/railties/lib/commands/ncgi/listener +86 -0
  2374. data/vendor/rails/railties/lib/commands/ncgi/tracker +69 -0
  2375. data/vendor/rails/railties/lib/commands/performance/benchmarker.rb +24 -0
  2376. data/vendor/rails/railties/lib/commands/performance/profiler.rb +50 -0
  2377. data/vendor/rails/railties/lib/commands/plugin.rb +968 -0
  2378. data/vendor/rails/railties/lib/commands/runner.rb +54 -0
  2379. data/vendor/rails/railties/lib/commands/server.rb +114 -0
  2380. data/vendor/rails/railties/lib/commands/update.rb +4 -0
  2381. data/vendor/rails/railties/lib/console_app.rb +30 -0
  2382. data/vendor/rails/railties/lib/console_sandbox.rb +6 -0
  2383. data/vendor/rails/railties/lib/console_with_helpers.rb +5 -0
  2384. data/vendor/rails/railties/lib/dispatcher.rb +24 -0
  2385. data/vendor/rails/railties/lib/fcgi_handler.rb +239 -0
  2386. data/vendor/rails/railties/lib/initializer.rb +1128 -0
  2387. data/vendor/rails/railties/lib/performance_test_help.rb +5 -0
  2388. data/vendor/rails/railties/lib/rails/backtrace_cleaner.rb +54 -0
  2389. data/vendor/rails/railties/lib/rails/gem_builder.rb +21 -0
  2390. data/vendor/rails/railties/lib/rails/gem_dependency.rb +318 -0
  2391. data/vendor/rails/railties/lib/rails/plugin.rb +179 -0
  2392. data/vendor/rails/railties/lib/rails/plugin/loader.rb +198 -0
  2393. data/vendor/rails/railties/lib/rails/plugin/locator.rb +100 -0
  2394. data/vendor/rails/railties/lib/rails/rack.rb +8 -0
  2395. data/vendor/rails/railties/lib/rails/rack/debugger.rb +23 -0
  2396. data/vendor/rails/railties/lib/rails/rack/log_tailer.rb +35 -0
  2397. data/vendor/rails/railties/lib/rails/rack/metal.rb +51 -0
  2398. data/vendor/rails/railties/lib/rails/rack/static.rb +46 -0
  2399. data/vendor/rails/railties/lib/rails/vendor_gem_source_index.rb +140 -0
  2400. data/vendor/rails/railties/lib/rails/version.rb +9 -0
  2401. data/vendor/rails/railties/lib/rails_generator.rb +46 -0
  2402. data/vendor/rails/railties/lib/rails_generator/base.rb +266 -0
  2403. data/vendor/rails/railties/lib/rails_generator/commands.rb +621 -0
  2404. data/vendor/rails/railties/lib/rails_generator/generated_attribute.rb +47 -0
  2405. data/vendor/rails/railties/lib/rails_generator/generators/applications/app/USAGE +9 -0
  2406. data/vendor/rails/railties/lib/rails_generator/generators/applications/app/app_generator.rb +266 -0
  2407. data/vendor/rails/railties/lib/rails_generator/generators/applications/app/scm/scm.rb +8 -0
  2408. data/vendor/rails/railties/lib/rails_generator/generators/applications/app/scm/svn.rb +7 -0
  2409. data/vendor/rails/railties/lib/rails_generator/generators/applications/app/template_runner.rb +401 -0
  2410. data/vendor/rails/railties/lib/rails_generator/generators/components/controller/USAGE +30 -0
  2411. data/vendor/rails/railties/lib/rails_generator/generators/components/controller/controller_generator.rb +43 -0
  2412. data/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/controller.rb +7 -0
  2413. data/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/functional_test.rb +8 -0
  2414. data/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/helper.rb +2 -0
  2415. data/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/helper_test.rb +4 -0
  2416. data/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/view.html.erb +2 -0
  2417. data/vendor/rails/railties/lib/rails_generator/generators/components/helper/USAGE +24 -0
  2418. data/vendor/rails/railties/lib/rails_generator/generators/components/helper/helper_generator.rb +25 -0
  2419. data/vendor/rails/railties/lib/rails_generator/generators/components/helper/templates/helper.rb +2 -0
  2420. data/vendor/rails/railties/lib/rails_generator/generators/components/helper/templates/helper_test.rb +4 -0
  2421. data/vendor/rails/railties/lib/rails_generator/generators/components/integration_test/USAGE +8 -0
  2422. data/vendor/rails/railties/lib/rails_generator/generators/components/integration_test/integration_test_generator.rb +16 -0
  2423. data/vendor/rails/railties/lib/rails_generator/generators/components/integration_test/templates/integration_test.rb +10 -0
  2424. data/vendor/rails/railties/lib/rails_generator/generators/components/mailer/USAGE +16 -0
  2425. data/vendor/rails/railties/lib/rails_generator/generators/components/mailer/mailer_generator.rb +30 -0
  2426. data/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/fixture.erb +3 -0
  2427. data/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/fixture.rhtml +0 -0
  2428. data/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/mailer.rb +15 -0
  2429. data/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/unit_test.rb +20 -0
  2430. data/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/view.erb +3 -0
  2431. data/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/view.rhtml +0 -0
  2432. data/vendor/rails/railties/lib/rails_generator/generators/components/metal/USAGE +8 -0
  2433. data/vendor/rails/railties/lib/rails_generator/generators/components/metal/metal_generator.rb +8 -0
  2434. data/vendor/rails/railties/lib/rails_generator/generators/components/metal/templates/metal.rb +12 -0
  2435. data/vendor/rails/railties/lib/rails_generator/generators/components/migration/USAGE +29 -0
  2436. data/vendor/rails/railties/lib/rails_generator/generators/components/migration/migration_generator.rb +20 -0
  2437. data/vendor/rails/railties/lib/rails_generator/generators/components/migration/templates/migration.rb +11 -0
  2438. data/vendor/rails/railties/lib/rails_generator/generators/components/model/USAGE +27 -0
  2439. data/vendor/rails/railties/lib/rails_generator/generators/components/model/model_generator.rb +52 -0
  2440. data/vendor/rails/railties/lib/rails_generator/generators/components/model/templates/fixtures.yml +23 -0
  2441. data/vendor/rails/railties/lib/rails_generator/generators/components/model/templates/migration.rb +16 -0
  2442. data/vendor/rails/railties/lib/rails_generator/generators/components/model/templates/model.rb +5 -0
  2443. data/vendor/rails/railties/lib/rails_generator/generators/components/model/templates/unit_test.rb +8 -0
  2444. data/vendor/rails/railties/lib/rails_generator/generators/components/observer/USAGE +13 -0
  2445. data/vendor/rails/railties/lib/rails_generator/generators/components/observer/observer_generator.rb +16 -0
  2446. data/vendor/rails/railties/lib/rails_generator/generators/components/observer/templates/observer.rb +2 -0
  2447. data/vendor/rails/railties/lib/rails_generator/generators/components/observer/templates/unit_test.rb +8 -0
  2448. data/vendor/rails/railties/lib/rails_generator/generators/components/performance_test/USAGE +8 -0
  2449. data/vendor/rails/railties/lib/rails_generator/generators/components/performance_test/performance_test_generator.rb +16 -0
  2450. data/vendor/rails/railties/lib/rails_generator/generators/components/performance_test/templates/performance_test.rb +9 -0
  2451. data/vendor/rails/railties/lib/rails_generator/generators/components/plugin/USAGE +25 -0
  2452. data/vendor/rails/railties/lib/rails_generator/generators/components/plugin/plugin_generator.rb +39 -0
  2453. data/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/MIT-LICENSE +20 -0
  2454. data/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/README +13 -0
  2455. data/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/Rakefile +23 -0
  2456. data/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/USAGE +8 -0
  2457. data/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/generator.rb +8 -0
  2458. data/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/init.rb +1 -0
  2459. data/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/install.rb +1 -0
  2460. data/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/plugin.rb +1 -0
  2461. data/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/tasks.rake +4 -0
  2462. data/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/test_helper.rb +3 -0
  2463. data/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/uninstall.rb +1 -0
  2464. data/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/unit_test.rb +8 -0
  2465. data/vendor/rails/railties/lib/rails_generator/generators/components/resource/USAGE +23 -0
  2466. data/vendor/rails/railties/lib/rails_generator/generators/components/resource/resource_generator.rb +76 -0
  2467. data/vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/controller.rb +2 -0
  2468. data/vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/functional_test.rb +8 -0
  2469. data/vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/helper.rb +2 -0
  2470. data/vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/helper_test.rb +4 -0
  2471. data/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/USAGE +29 -0
  2472. data/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/scaffold_generator.rb +103 -0
  2473. data/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/controller.rb +83 -0
  2474. data/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/functional_test.rb +45 -0
  2475. data/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/helper.rb +2 -0
  2476. data/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/helper_test.rb +4 -0
  2477. data/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/layout.html.erb +17 -0
  2478. data/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/style.css +54 -0
  2479. data/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_edit.html.erb +18 -0
  2480. data/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_index.html.erb +24 -0
  2481. data/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_new.html.erb +17 -0
  2482. data/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_show.html.erb +10 -0
  2483. data/vendor/rails/railties/lib/rails_generator/generators/components/session_migration/USAGE +10 -0
  2484. data/vendor/rails/railties/lib/rails_generator/generators/components/session_migration/session_migration_generator.rb +18 -0
  2485. data/vendor/rails/railties/lib/rails_generator/generators/components/session_migration/templates/migration.rb +16 -0
  2486. data/vendor/rails/railties/lib/rails_generator/lookup.rb +249 -0
  2487. data/vendor/rails/railties/lib/rails_generator/manifest.rb +53 -0
  2488. data/vendor/rails/railties/lib/rails_generator/options.rb +150 -0
  2489. data/vendor/rails/railties/lib/rails_generator/scripts.rb +89 -0
  2490. data/vendor/rails/railties/lib/rails_generator/scripts/destroy.rb +29 -0
  2491. data/vendor/rails/railties/lib/rails_generator/scripts/generate.rb +7 -0
  2492. data/vendor/rails/railties/lib/rails_generator/scripts/update.rb +12 -0
  2493. data/vendor/rails/railties/lib/rails_generator/secret_key_generator.rb +24 -0
  2494. data/vendor/rails/railties/lib/rails_generator/simple_logger.rb +46 -0
  2495. data/vendor/rails/railties/lib/rails_generator/spec.rb +44 -0
  2496. data/vendor/rails/railties/lib/railties_path.rb +1 -0
  2497. data/vendor/rails/railties/lib/ruby_version_check.rb +17 -0
  2498. data/vendor/rails/railties/lib/rubyprof_ext.rb +35 -0
  2499. data/vendor/rails/railties/lib/source_annotation_extractor.rb +102 -0
  2500. data/vendor/rails/railties/lib/tasks/annotations.rake +20 -0
  2501. data/vendor/rails/railties/lib/tasks/databases.rake +436 -0
  2502. data/vendor/rails/railties/lib/tasks/documentation.rake +88 -0
  2503. data/vendor/rails/railties/lib/tasks/framework.rake +146 -0
  2504. data/vendor/rails/railties/lib/tasks/gems.rake +78 -0
  2505. data/vendor/rails/railties/lib/tasks/log.rake +9 -0
  2506. data/vendor/rails/railties/lib/tasks/middleware.rake +7 -0
  2507. data/vendor/rails/railties/lib/tasks/misc.rake +63 -0
  2508. data/vendor/rails/railties/lib/tasks/rails.rb +14 -0
  2509. data/vendor/rails/railties/lib/tasks/routes.rake +18 -0
  2510. data/vendor/rails/railties/lib/tasks/statistics.rake +17 -0
  2511. data/vendor/rails/railties/lib/tasks/testing.rake +139 -0
  2512. data/vendor/rails/railties/lib/test_help.rb +38 -0
  2513. data/vendor/rails/railties/lib/webrick_server.rb +156 -0
  2514. data/vendor/redcloth/Rakefile +196 -0
  2515. data/vendor/redcloth/bin/redcloth +3 -0
  2516. data/vendor/redcloth/doc/CHANGELOG +160 -0
  2517. data/vendor/redcloth/doc/COPYING +25 -0
  2518. data/vendor/redcloth/doc/README +106 -0
  2519. data/vendor/redcloth/doc/REFERENCE +216 -0
  2520. data/vendor/redcloth/doc/make.rb +359 -0
  2521. data/vendor/redcloth/lib/rctodb.rb +1107 -0
  2522. data/vendor/redcloth/lib/redcloth.rb +1130 -0
  2523. data/vendor/redcloth/run-tests.rb +28 -0
  2524. data/vendor/redcloth/setup.rb +1376 -0
  2525. data/vendor/redcloth/tests/code.yml +105 -0
  2526. data/vendor/redcloth/tests/images.yml +171 -0
  2527. data/vendor/redcloth/tests/instiki.yml +39 -0
  2528. data/vendor/redcloth/tests/links.yml +155 -0
  2529. data/vendor/redcloth/tests/lists.yml +77 -0
  2530. data/vendor/redcloth/tests/markdown.yml +218 -0
  2531. data/vendor/redcloth/tests/poignant.yml +64 -0
  2532. data/vendor/redcloth/tests/table.yml +198 -0
  2533. data/vendor/redcloth/tests/textism.yml +406 -0
  2534. metadata +2741 -0
@@ -0,0 +1,2183 @@
1
+ require "cases/helper"
2
+ require 'models/post'
3
+ require 'models/author'
4
+ require 'models/event_author'
5
+ require 'models/topic'
6
+ require 'models/reply'
7
+ require 'models/category'
8
+ require 'models/company'
9
+ require 'models/customer'
10
+ require 'models/developer'
11
+ require 'models/project'
12
+ require 'models/default'
13
+ require 'models/auto_id'
14
+ require 'models/column_name'
15
+ require 'models/subscriber'
16
+ require 'models/keyboard'
17
+ require 'models/comment'
18
+ require 'models/minimalistic'
19
+ require 'models/warehouse_thing'
20
+ require 'models/parrot'
21
+ require 'rexml/document'
22
+
23
+ class Category < ActiveRecord::Base; end
24
+ class Categorization < ActiveRecord::Base; end
25
+ class Smarts < ActiveRecord::Base; end
26
+ class CreditCard < ActiveRecord::Base
27
+ class PinNumber < ActiveRecord::Base
28
+ class CvvCode < ActiveRecord::Base; end
29
+ class SubCvvCode < CvvCode; end
30
+ end
31
+ class SubPinNumber < PinNumber; end
32
+ class Brand < Category; end
33
+ end
34
+ class MasterCreditCard < ActiveRecord::Base; end
35
+ class Post < ActiveRecord::Base; end
36
+ class Computer < ActiveRecord::Base; end
37
+ class NonExistentTable < ActiveRecord::Base; end
38
+ class TestOracleDefault < ActiveRecord::Base; end
39
+
40
+ class LoosePerson < ActiveRecord::Base
41
+ self.table_name = 'people'
42
+ self.abstract_class = true
43
+ attr_protected :credit_rating, :administrator
44
+ end
45
+
46
+ class LooseDescendant < LoosePerson
47
+ attr_protected :phone_number
48
+ end
49
+
50
+ class LooseDescendantSecond< LoosePerson
51
+ attr_protected :phone_number
52
+ attr_protected :name
53
+ end
54
+
55
+ class TightPerson < ActiveRecord::Base
56
+ self.table_name = 'people'
57
+ attr_accessible :name, :address
58
+ end
59
+
60
+ class TightDescendant < TightPerson
61
+ attr_accessible :phone_number
62
+ end
63
+
64
+ class ReadonlyTitlePost < Post
65
+ attr_readonly :title
66
+ end
67
+
68
+ class Booleantest < ActiveRecord::Base; end
69
+
70
+ class Task < ActiveRecord::Base
71
+ attr_protected :starting
72
+ end
73
+
74
+ class TopicWithProtectedContentAndAccessibleAuthorName < ActiveRecord::Base
75
+ self.table_name = 'topics'
76
+ attr_accessible :author_name
77
+ attr_protected :content
78
+ end
79
+
80
+ class BasicsTest < ActiveRecord::TestCase
81
+ fixtures :topics, :companies, :developers, :projects, :computers, :accounts, :minimalistics, 'warehouse-things', :authors, :categorizations, :categories, :posts
82
+
83
+ def test_table_exists
84
+ assert !NonExistentTable.table_exists?
85
+ assert Topic.table_exists?
86
+ end
87
+
88
+ def test_set_attributes
89
+ topic = Topic.find(1)
90
+ topic.attributes = { "title" => "Budget", "author_name" => "Jason" }
91
+ topic.save
92
+ assert_equal("Budget", topic.title)
93
+ assert_equal("Jason", topic.author_name)
94
+ assert_equal(topics(:first).author_email_address, Topic.find(1).author_email_address)
95
+ end
96
+
97
+ def test_integers_as_nil
98
+ test = AutoId.create('value' => '')
99
+ assert_nil AutoId.find(test.id).value
100
+ end
101
+
102
+ def test_set_attributes_with_block
103
+ topic = Topic.new do |t|
104
+ t.title = "Budget"
105
+ t.author_name = "Jason"
106
+ end
107
+
108
+ assert_equal("Budget", topic.title)
109
+ assert_equal("Jason", topic.author_name)
110
+ end
111
+
112
+ def test_respond_to?
113
+ topic = Topic.find(1)
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?(:title=)
120
+ assert topic.respond_to?("author_name")
121
+ assert topic.respond_to?("attribute_names")
122
+ assert !topic.respond_to?("nothingness")
123
+ assert !topic.respond_to?(:nothingness)
124
+ end
125
+
126
+ def test_array_content
127
+ topic = Topic.new
128
+ topic.content = %w( one two three )
129
+ topic.save
130
+
131
+ assert_equal(%w( one two three ), Topic.find(topic.id).content)
132
+ end
133
+
134
+ def test_read_attributes_before_type_cast
135
+ category = Category.new({:name=>"Test categoty", :type => nil})
136
+ category_attrs = {"name"=>"Test categoty", "type" => nil, "categorizations_count" => nil}
137
+ assert_equal category_attrs , category.attributes_before_type_cast
138
+ end
139
+
140
+ if current_adapter?(:MysqlAdapter)
141
+ def test_read_attributes_before_type_cast_on_boolean
142
+ bool = Booleantest.create({ "value" => false })
143
+ assert_equal "0", bool.reload.attributes_before_type_cast["value"]
144
+ end
145
+ end
146
+
147
+ def test_read_attributes_before_type_cast_on_datetime
148
+ developer = Developer.find(:first)
149
+ assert_equal developer.created_at.to_s(:db) , developer.attributes_before_type_cast["created_at"]
150
+ end
151
+
152
+ def test_hash_content
153
+ topic = Topic.new
154
+ topic.content = { "one" => 1, "two" => 2 }
155
+ topic.save
156
+
157
+ assert_equal 2, Topic.find(topic.id).content["two"]
158
+
159
+ topic.content_will_change!
160
+ topic.content["three"] = 3
161
+ topic.save
162
+
163
+ assert_equal 3, Topic.find(topic.id).content["three"]
164
+ end
165
+
166
+ def test_update_array_content
167
+ topic = Topic.new
168
+ topic.content = %w( one two three )
169
+
170
+ topic.content.push "four"
171
+ assert_equal(%w( one two three four ), topic.content)
172
+
173
+ topic.save
174
+
175
+ topic = Topic.find(topic.id)
176
+ topic.content << "five"
177
+ assert_equal(%w( one two three four five ), topic.content)
178
+ end
179
+
180
+ def test_case_sensitive_attributes_hash
181
+ # DB2 is not case-sensitive
182
+ return true if current_adapter?(:DB2Adapter)
183
+
184
+ assert_equal @loaded_fixtures['computers']['workstation'].to_hash, Computer.find(:first).attributes
185
+ end
186
+
187
+ def test_create
188
+ topic = Topic.new
189
+ topic.title = "New Topic"
190
+ topic.save
191
+ topic_reloaded = Topic.find(topic.id)
192
+ assert_equal("New Topic", topic_reloaded.title)
193
+ end
194
+
195
+ def test_save!
196
+ topic = Topic.new(:title => "New Topic")
197
+ assert topic.save!
198
+
199
+ reply = Reply.new
200
+ assert_raise(ActiveRecord::RecordInvalid) { reply.save! }
201
+ end
202
+
203
+ def test_save_null_string_attributes
204
+ topic = Topic.find(1)
205
+ topic.attributes = { "title" => "null", "author_name" => "null" }
206
+ topic.save!
207
+ topic.reload
208
+ assert_equal("null", topic.title)
209
+ assert_equal("null", topic.author_name)
210
+ end
211
+
212
+ def test_save_nil_string_attributes
213
+ topic = Topic.find(1)
214
+ topic.title = nil
215
+ topic.save!
216
+ topic.reload
217
+ assert_nil topic.title
218
+ end
219
+
220
+ def test_save_for_record_with_only_primary_key
221
+ minimalistic = Minimalistic.new
222
+ assert_nothing_raised { minimalistic.save }
223
+ end
224
+
225
+ def test_save_for_record_with_only_primary_key_that_is_provided
226
+ assert_nothing_raised { Minimalistic.create!(:id => 2) }
227
+ end
228
+
229
+ def test_hashes_not_mangled
230
+ new_topic = { :title => "New Topic" }
231
+ new_topic_values = { :title => "AnotherTopic" }
232
+
233
+ topic = Topic.new(new_topic)
234
+ assert_equal new_topic[:title], topic.title
235
+
236
+ topic.attributes= new_topic_values
237
+ assert_equal new_topic_values[:title], topic.title
238
+ end
239
+
240
+ def test_create_many
241
+ topics = Topic.create([ { "title" => "first" }, { "title" => "second" }])
242
+ assert_equal 2, topics.size
243
+ assert_equal "first", topics.first.title
244
+ end
245
+
246
+ def test_create_columns_not_equal_attributes
247
+ topic = Topic.new
248
+ topic.title = 'Another New Topic'
249
+ topic.send :write_attribute, 'does_not_exist', 'test'
250
+ assert_nothing_raised { topic.save }
251
+ end
252
+
253
+ def test_create_through_factory
254
+ topic = Topic.create("title" => "New Topic")
255
+ topicReloaded = Topic.find(topic.id)
256
+ assert_equal(topic, topicReloaded)
257
+ end
258
+
259
+ def test_create_through_factory_with_block
260
+ topic = Topic.create("title" => "New Topic") do |t|
261
+ t.author_name = "David"
262
+ end
263
+ topicReloaded = Topic.find(topic.id)
264
+ assert_equal("New Topic", topic.title)
265
+ assert_equal("David", topic.author_name)
266
+ end
267
+
268
+ def test_create_many_through_factory_with_block
269
+ topics = Topic.create([ { "title" => "first" }, { "title" => "second" }]) do |t|
270
+ t.author_name = "David"
271
+ end
272
+ assert_equal 2, topics.size
273
+ topic1, topic2 = Topic.find(topics[0].id), Topic.find(topics[1].id)
274
+ assert_equal "first", topic1.title
275
+ assert_equal "David", topic1.author_name
276
+ assert_equal "second", topic2.title
277
+ assert_equal "David", topic2.author_name
278
+ end
279
+
280
+ def test_update
281
+ topic = Topic.new
282
+ topic.title = "Another New Topic"
283
+ topic.written_on = "2003-12-12 23:23:00"
284
+ topic.save
285
+ topicReloaded = Topic.find(topic.id)
286
+ assert_equal("Another New Topic", topicReloaded.title)
287
+
288
+ topicReloaded.title = "Updated topic"
289
+ topicReloaded.save
290
+
291
+ topicReloadedAgain = Topic.find(topic.id)
292
+
293
+ assert_equal("Updated topic", topicReloadedAgain.title)
294
+ end
295
+
296
+ def test_update_columns_not_equal_attributes
297
+ topic = Topic.new
298
+ topic.title = "Still another topic"
299
+ topic.save
300
+
301
+ topicReloaded = Topic.find(topic.id)
302
+ topicReloaded.title = "A New Topic"
303
+ topicReloaded.send :write_attribute, 'does_not_exist', 'test'
304
+ assert_nothing_raised { topicReloaded.save }
305
+ end
306
+
307
+ def test_update_for_record_with_only_primary_key
308
+ minimalistic = minimalistics(:first)
309
+ assert_nothing_raised { minimalistic.save }
310
+ end
311
+
312
+ def test_write_attribute
313
+ topic = Topic.new
314
+ topic.send(:write_attribute, :title, "Still another topic")
315
+ assert_equal "Still another topic", topic.title
316
+
317
+ topic.send(:write_attribute, "title", "Still another topic: part 2")
318
+ assert_equal "Still another topic: part 2", topic.title
319
+ end
320
+
321
+ def test_read_attribute
322
+ topic = Topic.new
323
+ topic.title = "Don't change the topic"
324
+ assert_equal "Don't change the topic", topic.send(:read_attribute, "title")
325
+ assert_equal "Don't change the topic", topic["title"]
326
+
327
+ assert_equal "Don't change the topic", topic.send(:read_attribute, :title)
328
+ assert_equal "Don't change the topic", topic[:title]
329
+ end
330
+
331
+ def test_read_attribute_when_false
332
+ topic = topics(:first)
333
+ topic.approved = false
334
+ assert !topic.approved?, "approved should be false"
335
+ topic.approved = "false"
336
+ assert !topic.approved?, "approved should be false"
337
+ end
338
+
339
+ def test_read_attribute_when_true
340
+ topic = topics(:first)
341
+ topic.approved = true
342
+ assert topic.approved?, "approved should be true"
343
+ topic.approved = "true"
344
+ assert topic.approved?, "approved should be true"
345
+ end
346
+
347
+ def test_read_write_boolean_attribute
348
+ topic = Topic.new
349
+ # puts ""
350
+ # puts "New Topic"
351
+ # puts topic.inspect
352
+ topic.approved = "false"
353
+ # puts "Expecting false"
354
+ # puts topic.inspect
355
+ assert !topic.approved?, "approved should be false"
356
+ topic.approved = "false"
357
+ # puts "Expecting false"
358
+ # puts topic.inspect
359
+ assert !topic.approved?, "approved should be false"
360
+ topic.approved = "true"
361
+ # puts "Expecting true"
362
+ # puts topic.inspect
363
+ assert topic.approved?, "approved should be true"
364
+ topic.approved = "true"
365
+ # puts "Expecting true"
366
+ # puts topic.inspect
367
+ assert topic.approved?, "approved should be true"
368
+ # puts ""
369
+ end
370
+
371
+ def test_query_attribute_string
372
+ [nil, "", " "].each do |value|
373
+ assert_equal false, Topic.new(:author_name => value).author_name?
374
+ end
375
+
376
+ assert_equal true, Topic.new(:author_name => "Name").author_name?
377
+ end
378
+
379
+ def test_query_attribute_number
380
+ [nil, 0, "0"].each do |value|
381
+ assert_equal false, Developer.new(:salary => value).salary?
382
+ end
383
+
384
+ assert_equal true, Developer.new(:salary => 1).salary?
385
+ assert_equal true, Developer.new(:salary => "1").salary?
386
+ end
387
+
388
+ def test_query_attribute_boolean
389
+ [nil, "", false, "false", "f", 0].each do |value|
390
+ assert_equal false, Topic.new(:approved => value).approved?
391
+ end
392
+
393
+ [true, "true", "1", 1].each do |value|
394
+ assert_equal true, Topic.new(:approved => value).approved?
395
+ end
396
+ end
397
+
398
+ def test_query_attribute_with_custom_fields
399
+ object = Company.find_by_sql(<<-SQL).first
400
+ SELECT c1.*, c2.ruby_type as string_value, c2.rating as int_value
401
+ FROM companies c1, companies c2
402
+ WHERE c1.firm_id = c2.id
403
+ AND c1.id = 2
404
+ SQL
405
+
406
+ assert_equal "Firm", object.string_value
407
+ assert object.string_value?
408
+
409
+ object.string_value = " "
410
+ assert !object.string_value?
411
+
412
+ assert_equal 1, object.int_value.to_i
413
+ assert object.int_value?
414
+
415
+ object.int_value = "0"
416
+ assert !object.int_value?
417
+ end
418
+
419
+
420
+ def test_reader_for_invalid_column_names
421
+ Topic.send(:define_read_method, "mumub-jumbo".to_sym, "mumub-jumbo", nil)
422
+ assert !Topic.generated_methods.include?("mumub-jumbo")
423
+ end
424
+
425
+ def test_non_attribute_access_and_assignment
426
+ topic = Topic.new
427
+ assert !topic.respond_to?("mumbo")
428
+ assert_raise(NoMethodError) { topic.mumbo }
429
+ assert_raise(NoMethodError) { topic.mumbo = 5 }
430
+ end
431
+
432
+ def test_preserving_date_objects
433
+ if current_adapter?(:SybaseAdapter, :OracleAdapter)
434
+ # Sybase ctlib does not (yet?) support the date type; use datetime instead.
435
+ # Oracle treats all dates/times as Time.
436
+ assert_kind_of(
437
+ Time, Topic.find(1).last_read,
438
+ "The last_read attribute should be of the Time class"
439
+ )
440
+ else
441
+ assert_kind_of(
442
+ Date, Topic.find(1).last_read,
443
+ "The last_read attribute should be of the Date class"
444
+ )
445
+ end
446
+ end
447
+
448
+ def test_preserving_time_objects
449
+ assert_kind_of(
450
+ Time, Topic.find(1).bonus_time,
451
+ "The bonus_time attribute should be of the Time class"
452
+ )
453
+
454
+ assert_kind_of(
455
+ Time, Topic.find(1).written_on,
456
+ "The written_on attribute should be of the Time class"
457
+ )
458
+
459
+ # For adapters which support microsecond resolution.
460
+ if current_adapter?(:PostgreSQLAdapter)
461
+ assert_equal 11, Topic.find(1).written_on.sec
462
+ assert_equal 223300, Topic.find(1).written_on.usec
463
+ assert_equal 9900, Topic.find(2).written_on.usec
464
+ end
465
+ end
466
+
467
+ def test_custom_mutator
468
+ topic = Topic.find(1)
469
+ # This mutator is protected in the class definition
470
+ topic.send(:approved=, true)
471
+ assert topic.instance_variable_get("@custom_approved")
472
+ end
473
+
474
+ def test_delete
475
+ topic = Topic.find(1)
476
+ assert_equal topic, topic.delete, 'topic.delete did not return self'
477
+ assert topic.frozen?, 'topic not frozen after delete'
478
+ assert topic.destroyed?, 'topic not marked as being destroyed'
479
+ assert_raise(ActiveRecord::RecordNotFound) { Topic.find(topic.id) }
480
+ end
481
+
482
+ def test_delete_doesnt_run_callbacks
483
+ Topic.find(1).delete
484
+ assert_not_nil Topic.find(2)
485
+ end
486
+
487
+ def test_destroy
488
+ topic = Topic.find(1)
489
+ assert_equal topic, topic.destroy, 'topic.destroy did not return self'
490
+ assert topic.frozen?, 'topic not frozen after destroy'
491
+ assert topic.destroyed?, 'topic not marked as being destroyed'
492
+ assert_raise(ActiveRecord::RecordNotFound) { Topic.find(topic.id) }
493
+ end
494
+
495
+ def test_record_not_found_exception
496
+ assert_raise(ActiveRecord::RecordNotFound) { topicReloaded = Topic.find(99999) }
497
+ end
498
+
499
+ def test_initialize_with_attributes
500
+ topic = Topic.new({
501
+ "title" => "initialized from attributes", "written_on" => "2003-12-12 23:23"
502
+ })
503
+
504
+ assert_equal("initialized from attributes", topic.title)
505
+ end
506
+
507
+ def test_initialize_with_invalid_attribute
508
+ begin
509
+ topic = Topic.new({ "title" => "test",
510
+ "last_read(1i)" => "2005", "last_read(2i)" => "2", "last_read(3i)" => "31"})
511
+ rescue ActiveRecord::MultiparameterAssignmentErrors => ex
512
+ assert_equal(1, ex.errors.size)
513
+ assert_equal("last_read", ex.errors[0].attribute)
514
+ end
515
+ end
516
+
517
+ def test_load
518
+ topics = Topic.find(:all, :order => 'id')
519
+ assert_equal(4, topics.size)
520
+ assert_equal(topics(:first).title, topics.first.title)
521
+ end
522
+
523
+ def test_load_with_condition
524
+ topics = Topic.find(:all, :conditions => "author_name = 'Mary'")
525
+
526
+ assert_equal(1, topics.size)
527
+ assert_equal(topics(:second).title, topics.first.title)
528
+ end
529
+
530
+ def test_table_name_guesses
531
+ classes = [Category, Smarts, CreditCard, CreditCard::PinNumber, CreditCard::PinNumber::CvvCode, CreditCard::SubPinNumber, CreditCard::Brand, MasterCreditCard]
532
+
533
+ assert_equal "topics", Topic.table_name
534
+
535
+ assert_equal "categories", Category.table_name
536
+ assert_equal "smarts", Smarts.table_name
537
+ assert_equal "credit_cards", CreditCard.table_name
538
+ assert_equal "credit_card_pin_numbers", CreditCard::PinNumber.table_name
539
+ assert_equal "credit_card_pin_number_cvv_codes", CreditCard::PinNumber::CvvCode.table_name
540
+ assert_equal "credit_card_pin_numbers", CreditCard::SubPinNumber.table_name
541
+ assert_equal "categories", CreditCard::Brand.table_name
542
+ assert_equal "master_credit_cards", MasterCreditCard.table_name
543
+
544
+ ActiveRecord::Base.pluralize_table_names = false
545
+ classes.each(&:reset_table_name)
546
+
547
+ assert_equal "category", Category.table_name
548
+ assert_equal "smarts", Smarts.table_name
549
+ assert_equal "credit_card", CreditCard.table_name
550
+ assert_equal "credit_card_pin_number", CreditCard::PinNumber.table_name
551
+ assert_equal "credit_card_pin_number_cvv_code", CreditCard::PinNumber::CvvCode.table_name
552
+ assert_equal "credit_card_pin_number", CreditCard::SubPinNumber.table_name
553
+ assert_equal "category", CreditCard::Brand.table_name
554
+ assert_equal "master_credit_card", MasterCreditCard.table_name
555
+
556
+ ActiveRecord::Base.pluralize_table_names = true
557
+ classes.each(&:reset_table_name)
558
+
559
+ ActiveRecord::Base.table_name_prefix = "test_"
560
+ Category.reset_table_name
561
+ assert_equal "test_categories", Category.table_name
562
+ ActiveRecord::Base.table_name_suffix = "_test"
563
+ Category.reset_table_name
564
+ assert_equal "test_categories_test", Category.table_name
565
+ ActiveRecord::Base.table_name_prefix = ""
566
+ Category.reset_table_name
567
+ assert_equal "categories_test", Category.table_name
568
+ ActiveRecord::Base.table_name_suffix = ""
569
+ Category.reset_table_name
570
+ assert_equal "categories", Category.table_name
571
+
572
+ ActiveRecord::Base.pluralize_table_names = false
573
+ ActiveRecord::Base.table_name_prefix = "test_"
574
+ Category.reset_table_name
575
+ assert_equal "test_category", Category.table_name
576
+ ActiveRecord::Base.table_name_suffix = "_test"
577
+ Category.reset_table_name
578
+ assert_equal "test_category_test", Category.table_name
579
+ ActiveRecord::Base.table_name_prefix = ""
580
+ Category.reset_table_name
581
+ assert_equal "category_test", Category.table_name
582
+ ActiveRecord::Base.table_name_suffix = ""
583
+ Category.reset_table_name
584
+ assert_equal "category", Category.table_name
585
+
586
+ ActiveRecord::Base.pluralize_table_names = true
587
+ classes.each(&:reset_table_name)
588
+ end
589
+
590
+ def test_destroy_all
591
+ original_count = Topic.count
592
+ topics_by_mary = Topic.count(:conditions => mary = "author_name = 'Mary'")
593
+
594
+ Topic.destroy_all mary
595
+ assert_equal original_count - topics_by_mary, Topic.count
596
+ end
597
+
598
+ def test_destroy_many
599
+ assert_equal 3, Client.count
600
+ Client.destroy([2, 3])
601
+ assert_equal 1, Client.count
602
+ end
603
+
604
+ def test_delete_many
605
+ original_count = Topic.count
606
+ Topic.delete(deleting = [1, 2])
607
+ assert_equal original_count - deleting.size, Topic.count
608
+ end
609
+
610
+ def test_boolean_attributes
611
+ assert ! Topic.find(1).approved?
612
+ assert Topic.find(2).approved?
613
+ end
614
+
615
+ def test_increment_counter
616
+ Topic.increment_counter("replies_count", 1)
617
+ assert_equal 2, Topic.find(1).replies_count
618
+
619
+ Topic.increment_counter("replies_count", 1)
620
+ assert_equal 3, Topic.find(1).replies_count
621
+ end
622
+
623
+ def test_decrement_counter
624
+ Topic.decrement_counter("replies_count", 2)
625
+ assert_equal -1, Topic.find(2).replies_count
626
+
627
+ Topic.decrement_counter("replies_count", 2)
628
+ assert_equal -2, Topic.find(2).replies_count
629
+ end
630
+
631
+ def test_reset_counters
632
+ assert_equal 1, Topic.find(1).replies_count
633
+
634
+ Topic.increment_counter("replies_count", 1)
635
+ assert_equal 2, Topic.find(1).replies_count
636
+
637
+ Topic.reset_counters(1, :replies)
638
+ assert_equal 1, Topic.find(1).replies_count
639
+ end
640
+
641
+ def test_update_counter
642
+ category = categories(:general)
643
+ assert_nil category.categorizations_count
644
+ assert_equal 2, category.categorizations.count
645
+
646
+ Category.update_counters(category.id, "categorizations_count" => category.categorizations.count)
647
+ category.reload
648
+ assert_not_nil category.categorizations_count
649
+ assert_equal 2, category.categorizations_count
650
+
651
+ Category.update_counters(category.id, "categorizations_count" => category.categorizations.count)
652
+ category.reload
653
+ assert_not_nil category.categorizations_count
654
+ assert_equal 4, category.categorizations_count
655
+
656
+ category_2 = categories(:technology)
657
+ count_1, count_2 = (category.categorizations_count || 0), (category_2.categorizations_count || 0)
658
+ Category.update_counters([category.id, category_2.id], "categorizations_count" => 2)
659
+ category.reload; category_2.reload
660
+ assert_equal count_1 + 2, category.categorizations_count
661
+ assert_equal count_2 + 2, category_2.categorizations_count
662
+ end
663
+
664
+ def test_update_all
665
+ assert_equal Topic.count, Topic.update_all("content = 'bulk updated!'")
666
+ assert_equal "bulk updated!", Topic.find(1).content
667
+ assert_equal "bulk updated!", Topic.find(2).content
668
+
669
+ assert_equal Topic.count, Topic.update_all(['content = ?', 'bulk updated again!'])
670
+ assert_equal "bulk updated again!", Topic.find(1).content
671
+ assert_equal "bulk updated again!", Topic.find(2).content
672
+
673
+ assert_equal Topic.count, Topic.update_all(['content = ?', nil])
674
+ assert_nil Topic.find(1).content
675
+ end
676
+
677
+ def test_update_all_with_hash
678
+ assert_not_nil Topic.find(1).last_read
679
+ assert_equal Topic.count, Topic.update_all(:content => 'bulk updated with hash!', :last_read => nil)
680
+ assert_equal "bulk updated with hash!", Topic.find(1).content
681
+ assert_equal "bulk updated with hash!", Topic.find(2).content
682
+ assert_nil Topic.find(1).last_read
683
+ assert_nil Topic.find(2).last_read
684
+ end
685
+
686
+ def test_update_all_with_non_standard_table_name
687
+ assert_equal 1, WarehouseThing.update_all(['value = ?', 0], ['id = ?', 1])
688
+ assert_equal 0, WarehouseThing.find(1).value
689
+ end
690
+
691
+ if current_adapter?(:MysqlAdapter)
692
+ def test_update_all_with_order_and_limit
693
+ assert_equal 1, Topic.update_all("content = 'bulk updated!'", nil, :limit => 1, :order => 'id DESC')
694
+ end
695
+ end
696
+
697
+ def test_update_all_ignores_order_without_limit_from_association
698
+ author = authors(:david)
699
+ assert_nothing_raised do
700
+ assert_equal author.posts_with_comments_and_categories.length, author.posts_with_comments_and_categories.update_all([ "body = ?", "bulk update!" ])
701
+ end
702
+ end
703
+
704
+ def test_update_all_with_order_and_limit_updates_subset_only
705
+ author = authors(:david)
706
+ assert_nothing_raised do
707
+ assert_equal 1, author.posts_sorted_by_id_limited.size
708
+ assert_equal 2, author.posts_sorted_by_id_limited.find(:all, :limit => 2).size
709
+ assert_equal 1, author.posts_sorted_by_id_limited.update_all([ "body = ?", "bulk update!" ])
710
+ assert_equal "bulk update!", posts(:welcome).body
711
+ assert_not_equal "bulk update!", posts(:thinking).body
712
+ end
713
+ end
714
+
715
+ def test_update_many
716
+ topic_data = { 1 => { "content" => "1 updated" }, 2 => { "content" => "2 updated" } }
717
+ updated = Topic.update(topic_data.keys, topic_data.values)
718
+
719
+ assert_equal 2, updated.size
720
+ assert_equal "1 updated", Topic.find(1).content
721
+ assert_equal "2 updated", Topic.find(2).content
722
+ end
723
+
724
+ def test_delete_all
725
+ assert Topic.count > 0
726
+
727
+ assert_equal Topic.count, Topic.delete_all
728
+ end
729
+
730
+ def test_update_by_condition
731
+ Topic.update_all "content = 'bulk updated!'", ["approved = ?", true]
732
+ assert_equal "Have a nice day", Topic.find(1).content
733
+ assert_equal "bulk updated!", Topic.find(2).content
734
+ end
735
+
736
+ def test_attribute_present
737
+ t = Topic.new
738
+ t.title = "hello there!"
739
+ t.written_on = Time.now
740
+ assert t.attribute_present?("title")
741
+ assert t.attribute_present?("written_on")
742
+ assert !t.attribute_present?("content")
743
+ end
744
+
745
+ def test_attribute_keys_on_new_instance
746
+ t = Topic.new
747
+ assert_equal nil, t.title, "The topics table has a title column, so it should be nil"
748
+ assert_raise(NoMethodError) { t.title2 }
749
+ end
750
+
751
+ def test_class_name
752
+ assert_equal "Firm", ActiveRecord::Base.class_name("firms")
753
+ assert_equal "Category", ActiveRecord::Base.class_name("categories")
754
+ assert_equal "AccountHolder", ActiveRecord::Base.class_name("account_holder")
755
+
756
+ ActiveRecord::Base.pluralize_table_names = false
757
+ assert_equal "Firms", ActiveRecord::Base.class_name( "firms" )
758
+ ActiveRecord::Base.pluralize_table_names = true
759
+
760
+ ActiveRecord::Base.table_name_prefix = "test_"
761
+ assert_equal "Firm", ActiveRecord::Base.class_name( "test_firms" )
762
+ ActiveRecord::Base.table_name_suffix = "_tests"
763
+ assert_equal "Firm", ActiveRecord::Base.class_name( "test_firms_tests" )
764
+ ActiveRecord::Base.table_name_prefix = ""
765
+ assert_equal "Firm", ActiveRecord::Base.class_name( "firms_tests" )
766
+ ActiveRecord::Base.table_name_suffix = ""
767
+ assert_equal "Firm", ActiveRecord::Base.class_name( "firms" )
768
+ end
769
+
770
+ def test_null_fields
771
+ assert_nil Topic.find(1).parent_id
772
+ assert_nil Topic.create("title" => "Hey you").parent_id
773
+ end
774
+
775
+ def test_default_values
776
+ topic = Topic.new
777
+ assert topic.approved?
778
+ assert_nil topic.written_on
779
+ assert_nil topic.bonus_time
780
+ assert_nil topic.last_read
781
+
782
+ topic.save
783
+
784
+ topic = Topic.find(topic.id)
785
+ assert topic.approved?
786
+ assert_nil topic.last_read
787
+
788
+ # Oracle has some funky default handling, so it requires a bit of
789
+ # extra testing. See ticket #2788.
790
+ if current_adapter?(:OracleAdapter)
791
+ test = TestOracleDefault.new
792
+ assert_equal "X", test.test_char
793
+ assert_equal "hello", test.test_string
794
+ assert_equal 3, test.test_int
795
+ end
796
+ end
797
+
798
+ # Oracle, and Sybase do not have a TIME datatype.
799
+ unless current_adapter?(:OracleAdapter, :SybaseAdapter)
800
+ def test_utc_as_time_zone
801
+ Topic.default_timezone = :utc
802
+ attributes = { "bonus_time" => "5:42:00AM" }
803
+ topic = Topic.find(1)
804
+ topic.attributes = attributes
805
+ assert_equal Time.utc(2000, 1, 1, 5, 42, 0), topic.bonus_time
806
+ Topic.default_timezone = :local
807
+ end
808
+
809
+ def test_utc_as_time_zone_and_new
810
+ Topic.default_timezone = :utc
811
+ attributes = { "bonus_time(1i)"=>"2000",
812
+ "bonus_time(2i)"=>"1",
813
+ "bonus_time(3i)"=>"1",
814
+ "bonus_time(4i)"=>"10",
815
+ "bonus_time(5i)"=>"35",
816
+ "bonus_time(6i)"=>"50" }
817
+ topic = Topic.new(attributes)
818
+ assert_equal Time.utc(2000, 1, 1, 10, 35, 50), topic.bonus_time
819
+ Topic.default_timezone = :local
820
+ end
821
+ end
822
+
823
+ def test_default_values_on_empty_strings
824
+ topic = Topic.new
825
+ topic.approved = nil
826
+ topic.last_read = nil
827
+
828
+ topic.save
829
+
830
+ topic = Topic.find(topic.id)
831
+ assert_nil topic.last_read
832
+
833
+ # Sybase adapter does not allow nulls in boolean columns
834
+ if current_adapter?(:SybaseAdapter)
835
+ assert topic.approved == false
836
+ else
837
+ assert_nil topic.approved
838
+ end
839
+ end
840
+
841
+ def test_equality
842
+ assert_equal Topic.find(1), Topic.find(2).topic
843
+ end
844
+
845
+ def test_equality_of_new_records
846
+ assert_not_equal Topic.new, Topic.new
847
+ end
848
+
849
+ def test_hashing
850
+ assert_equal [ Topic.find(1) ], [ Topic.find(2).topic ] & [ Topic.find(1) ]
851
+ end
852
+
853
+ def test_delete_new_record
854
+ client = Client.new
855
+ client.delete
856
+ assert client.frozen?
857
+ end
858
+
859
+ def test_delete_record_with_associations
860
+ client = Client.find(3)
861
+ client.delete
862
+ assert client.frozen?
863
+ assert_kind_of Firm, client.firm
864
+ assert_raise(ActiveSupport::FrozenObjectError) { client.name = "something else" }
865
+ end
866
+
867
+ def test_destroy_new_record
868
+ client = Client.new
869
+ client.destroy
870
+ assert client.frozen?
871
+ end
872
+
873
+ def test_destroy_record_with_associations
874
+ client = Client.find(3)
875
+ client.destroy
876
+ assert client.frozen?
877
+ assert_kind_of Firm, client.firm
878
+ assert_raise(ActiveSupport::FrozenObjectError) { client.name = "something else" }
879
+ end
880
+
881
+ def test_update_attribute
882
+ assert !Topic.find(1).approved?
883
+ Topic.find(1).update_attribute("approved", true)
884
+ assert Topic.find(1).approved?
885
+
886
+ Topic.find(1).update_attribute(:approved, false)
887
+ assert !Topic.find(1).approved?
888
+ end
889
+
890
+ def test_update_attributes
891
+ topic = Topic.find(1)
892
+ assert !topic.approved?
893
+ assert_equal "The First Topic", topic.title
894
+
895
+ topic.update_attributes("approved" => true, "title" => "The First Topic Updated")
896
+ topic.reload
897
+ assert topic.approved?
898
+ assert_equal "The First Topic Updated", topic.title
899
+
900
+ topic.update_attributes(:approved => false, :title => "The First Topic")
901
+ topic.reload
902
+ assert !topic.approved?
903
+ assert_equal "The First Topic", topic.title
904
+ end
905
+
906
+ def test_update_attributes!
907
+ reply = Reply.find(2)
908
+ assert_equal "The Second Topic of the day", reply.title
909
+ assert_equal "Have a nice day", reply.content
910
+
911
+ reply.update_attributes!("title" => "The Second Topic of the day updated", "content" => "Have a nice evening")
912
+ reply.reload
913
+ assert_equal "The Second Topic of the day updated", reply.title
914
+ assert_equal "Have a nice evening", reply.content
915
+
916
+ reply.update_attributes!(:title => "The Second Topic of the day", :content => "Have a nice day")
917
+ reply.reload
918
+ assert_equal "The Second Topic of the day", reply.title
919
+ assert_equal "Have a nice day", reply.content
920
+
921
+ assert_raise(ActiveRecord::RecordInvalid) { reply.update_attributes!(:title => nil, :content => "Have a nice evening") }
922
+ end
923
+
924
+ def test_mass_assignment_should_raise_exception_if_accessible_and_protected_attribute_writers_are_both_used
925
+ topic = TopicWithProtectedContentAndAccessibleAuthorName.new
926
+ assert_raise(RuntimeError) { topic.attributes = { "author_name" => "me" } }
927
+ assert_raise(RuntimeError) { topic.attributes = { "content" => "stuff" } }
928
+ end
929
+
930
+ def test_mass_assignment_protection
931
+ firm = Firm.new
932
+ firm.attributes = { "name" => "Next Angle", "rating" => 5 }
933
+ assert_equal 1, firm.rating
934
+ end
935
+
936
+ def test_mass_assignment_protection_against_class_attribute_writers
937
+ [:logger, :configurations, :primary_key_prefix_type, :table_name_prefix, :table_name_suffix, :pluralize_table_names, :colorize_logging,
938
+ :default_timezone, :schema_format, :lock_optimistically, :record_timestamps].each do |method|
939
+ assert Task.respond_to?(method)
940
+ assert Task.respond_to?("#{method}=")
941
+ assert Task.new.respond_to?(method)
942
+ assert !Task.new.respond_to?("#{method}=")
943
+ end
944
+ end
945
+
946
+ def test_customized_primary_key_remains_protected
947
+ subscriber = Subscriber.new(:nick => 'webster123', :name => 'nice try')
948
+ assert_nil subscriber.id
949
+
950
+ keyboard = Keyboard.new(:key_number => 9, :name => 'nice try')
951
+ assert_nil keyboard.id
952
+ end
953
+
954
+ def test_customized_primary_key_remains_protected_when_referred_to_as_id
955
+ subscriber = Subscriber.new(:id => 'webster123', :name => 'nice try')
956
+ assert_nil subscriber.id
957
+
958
+ keyboard = Keyboard.new(:id => 9, :name => 'nice try')
959
+ assert_nil keyboard.id
960
+ end
961
+
962
+ def test_mass_assigning_invalid_attribute
963
+ firm = Firm.new
964
+
965
+ assert_raise(ActiveRecord::UnknownAttributeError) do
966
+ firm.attributes = { "id" => 5, "type" => "Client", "i_dont_even_exist" => 20 }
967
+ end
968
+ end
969
+
970
+ def test_mass_assignment_protection_on_defaults
971
+ firm = Firm.new
972
+ firm.attributes = { "id" => 5, "type" => "Client" }
973
+ assert_nil firm.id
974
+ assert_equal "Firm", firm[:type]
975
+ end
976
+
977
+ def test_mass_assignment_accessible
978
+ reply = Reply.new("title" => "hello", "content" => "world", "approved" => true)
979
+ reply.save
980
+
981
+ assert reply.approved?
982
+
983
+ reply.approved = false
984
+ reply.save
985
+
986
+ assert !reply.approved?
987
+ end
988
+
989
+ def test_mass_assignment_protection_inheritance
990
+ assert_nil LoosePerson.accessible_attributes
991
+ assert_equal Set.new([ 'credit_rating', 'administrator' ]), LoosePerson.protected_attributes
992
+
993
+ assert_nil LooseDescendant.accessible_attributes
994
+ assert_equal Set.new([ 'credit_rating', 'administrator', 'phone_number' ]), LooseDescendant.protected_attributes
995
+
996
+ assert_nil LooseDescendantSecond.accessible_attributes
997
+ assert_equal Set.new([ 'credit_rating', 'administrator', 'phone_number', 'name' ]), LooseDescendantSecond.protected_attributes, 'Running attr_protected twice in one class should merge the protections'
998
+
999
+ assert_nil TightPerson.protected_attributes
1000
+ assert_equal Set.new([ 'name', 'address' ]), TightPerson.accessible_attributes
1001
+
1002
+ assert_nil TightDescendant.protected_attributes
1003
+ assert_equal Set.new([ 'name', 'address', 'phone_number' ]), TightDescendant.accessible_attributes
1004
+ end
1005
+
1006
+ def test_readonly_attributes
1007
+ assert_equal Set.new([ 'title' , 'comments_count' ]), ReadonlyTitlePost.readonly_attributes
1008
+
1009
+ post = ReadonlyTitlePost.create(:title => "cannot change this", :body => "changeable")
1010
+ post.reload
1011
+ assert_equal "cannot change this", post.title
1012
+
1013
+ post.update_attributes(:title => "try to change", :body => "changed")
1014
+ post.reload
1015
+ assert_equal "cannot change this", post.title
1016
+ assert_equal "changed", post.body
1017
+ end
1018
+
1019
+ def test_multiparameter_attribute_assignment_via_association_proxy
1020
+ multiparameter_date_attribute = {
1021
+ "ends_on(1i)" => "2004", "ends_on(2i)" => "6", "ends_on(3i)" => "24",
1022
+ "ends_on(4i)" => "16", "ends_on(5i)" => "24", "ends_on(6i)" => "00"
1023
+ }
1024
+
1025
+ author = Author.create(:name => "dhh")
1026
+ event = author.events.create(multiparameter_date_attribute)
1027
+
1028
+ assert_equal Time.local(2004,6,24,16,24,0),event.ends_on
1029
+ end
1030
+
1031
+ def test_multiparameter_attributes_on_date
1032
+ attributes = { "last_read(1i)" => "2004", "last_read(2i)" => "6", "last_read(3i)" => "24" }
1033
+ topic = Topic.find(1)
1034
+ topic.attributes = attributes
1035
+ # note that extra #to_date call allows test to pass for Oracle, which
1036
+ # treats dates/times the same
1037
+ assert_date_from_db Date.new(2004, 6, 24), topic.last_read.to_date
1038
+ end
1039
+
1040
+ def test_multiparameter_attributes_on_date_with_empty_year
1041
+ attributes = { "last_read(1i)" => "", "last_read(2i)" => "6", "last_read(3i)" => "24" }
1042
+ topic = Topic.find(1)
1043
+ topic.attributes = attributes
1044
+ # note that extra #to_date call allows test to pass for Oracle, which
1045
+ # treats dates/times the same
1046
+ assert_date_from_db Date.new(1, 6, 24), topic.last_read.to_date
1047
+ end
1048
+
1049
+ def test_multiparameter_attributes_on_date_with_empty_month
1050
+ attributes = { "last_read(1i)" => "2004", "last_read(2i)" => "", "last_read(3i)" => "24" }
1051
+ topic = Topic.find(1)
1052
+ topic.attributes = attributes
1053
+ # note that extra #to_date call allows test to pass for Oracle, which
1054
+ # treats dates/times the same
1055
+ assert_date_from_db Date.new(2004, 1, 24), topic.last_read.to_date
1056
+ end
1057
+
1058
+ def test_multiparameter_attributes_on_date_with_empty_day
1059
+ attributes = { "last_read(1i)" => "2004", "last_read(2i)" => "6", "last_read(3i)" => "" }
1060
+ topic = Topic.find(1)
1061
+ topic.attributes = attributes
1062
+ # note that extra #to_date call allows test to pass for Oracle, which
1063
+ # treats dates/times the same
1064
+ assert_date_from_db Date.new(2004, 6, 1), topic.last_read.to_date
1065
+ end
1066
+
1067
+ def test_multiparameter_attributes_on_date_with_empty_day_and_year
1068
+ attributes = { "last_read(1i)" => "", "last_read(2i)" => "6", "last_read(3i)" => "" }
1069
+ topic = Topic.find(1)
1070
+ topic.attributes = attributes
1071
+ # note that extra #to_date call allows test to pass for Oracle, which
1072
+ # treats dates/times the same
1073
+ assert_date_from_db Date.new(1, 6, 1), topic.last_read.to_date
1074
+ end
1075
+
1076
+ def test_multiparameter_attributes_on_date_with_empty_day_and_month
1077
+ attributes = { "last_read(1i)" => "2004", "last_read(2i)" => "", "last_read(3i)" => "" }
1078
+ topic = Topic.find(1)
1079
+ topic.attributes = attributes
1080
+ # note that extra #to_date call allows test to pass for Oracle, which
1081
+ # treats dates/times the same
1082
+ assert_date_from_db Date.new(2004, 1, 1), topic.last_read.to_date
1083
+ end
1084
+
1085
+ def test_multiparameter_attributes_on_date_with_empty_year_and_month
1086
+ attributes = { "last_read(1i)" => "", "last_read(2i)" => "", "last_read(3i)" => "24" }
1087
+ topic = Topic.find(1)
1088
+ topic.attributes = attributes
1089
+ # note that extra #to_date call allows test to pass for Oracle, which
1090
+ # treats dates/times the same
1091
+ assert_date_from_db Date.new(1, 1, 24), topic.last_read.to_date
1092
+ end
1093
+
1094
+ def test_multiparameter_attributes_on_date_with_all_empty
1095
+ attributes = { "last_read(1i)" => "", "last_read(2i)" => "", "last_read(3i)" => "" }
1096
+ topic = Topic.find(1)
1097
+ topic.attributes = attributes
1098
+ assert_nil topic.last_read
1099
+ end
1100
+
1101
+ def test_multiparameter_attributes_on_time
1102
+ attributes = {
1103
+ "written_on(1i)" => "2004", "written_on(2i)" => "6", "written_on(3i)" => "24",
1104
+ "written_on(4i)" => "16", "written_on(5i)" => "24", "written_on(6i)" => "00"
1105
+ }
1106
+ topic = Topic.find(1)
1107
+ topic.attributes = attributes
1108
+ assert_equal Time.local(2004, 6, 24, 16, 24, 0), topic.written_on
1109
+ end
1110
+
1111
+ def test_multiparameter_attributes_on_time_with_old_date
1112
+ attributes = {
1113
+ "written_on(1i)" => "1850", "written_on(2i)" => "6", "written_on(3i)" => "24",
1114
+ "written_on(4i)" => "16", "written_on(5i)" => "24", "written_on(6i)" => "00"
1115
+ }
1116
+ topic = Topic.find(1)
1117
+ topic.attributes = attributes
1118
+ # testing against to_s(:db) representation because either a Time or a DateTime might be returned, depending on platform
1119
+ assert_equal "1850-06-24 16:24:00", topic.written_on.to_s(:db)
1120
+ end
1121
+
1122
+ def test_multiparameter_attributes_on_time_with_utc
1123
+ ActiveRecord::Base.default_timezone = :utc
1124
+ attributes = {
1125
+ "written_on(1i)" => "2004", "written_on(2i)" => "6", "written_on(3i)" => "24",
1126
+ "written_on(4i)" => "16", "written_on(5i)" => "24", "written_on(6i)" => "00"
1127
+ }
1128
+ topic = Topic.find(1)
1129
+ topic.attributes = attributes
1130
+ assert_equal Time.utc(2004, 6, 24, 16, 24, 0), topic.written_on
1131
+ ensure
1132
+ ActiveRecord::Base.default_timezone = :local
1133
+ end
1134
+
1135
+ def test_multiparameter_attributes_on_time_with_time_zone_aware_attributes
1136
+ ActiveRecord::Base.time_zone_aware_attributes = true
1137
+ ActiveRecord::Base.default_timezone = :utc
1138
+ Time.zone = ActiveSupport::TimeZone[-28800]
1139
+ attributes = {
1140
+ "written_on(1i)" => "2004", "written_on(2i)" => "6", "written_on(3i)" => "24",
1141
+ "written_on(4i)" => "16", "written_on(5i)" => "24", "written_on(6i)" => "00"
1142
+ }
1143
+ topic = Topic.find(1)
1144
+ topic.attributes = attributes
1145
+ assert_equal Time.utc(2004, 6, 24, 23, 24, 0), topic.written_on
1146
+ assert_equal Time.utc(2004, 6, 24, 16, 24, 0), topic.written_on.time
1147
+ assert_equal Time.zone, topic.written_on.time_zone
1148
+ ensure
1149
+ ActiveRecord::Base.time_zone_aware_attributes = false
1150
+ ActiveRecord::Base.default_timezone = :local
1151
+ Time.zone = nil
1152
+ end
1153
+
1154
+ def test_multiparameter_attributes_on_time_with_time_zone_aware_attributes_false
1155
+ ActiveRecord::Base.time_zone_aware_attributes = false
1156
+ Time.zone = ActiveSupport::TimeZone[-28800]
1157
+ attributes = {
1158
+ "written_on(1i)" => "2004", "written_on(2i)" => "6", "written_on(3i)" => "24",
1159
+ "written_on(4i)" => "16", "written_on(5i)" => "24", "written_on(6i)" => "00"
1160
+ }
1161
+ topic = Topic.find(1)
1162
+ topic.attributes = attributes
1163
+ assert_equal Time.local(2004, 6, 24, 16, 24, 0), topic.written_on
1164
+ assert_equal false, topic.written_on.respond_to?(:time_zone)
1165
+ ensure
1166
+ Time.zone = nil
1167
+ end
1168
+
1169
+ def test_multiparameter_attributes_on_time_with_skip_time_zone_conversion_for_attributes
1170
+ ActiveRecord::Base.time_zone_aware_attributes = true
1171
+ ActiveRecord::Base.default_timezone = :utc
1172
+ Time.zone = ActiveSupport::TimeZone[-28800]
1173
+ Topic.skip_time_zone_conversion_for_attributes = [:written_on]
1174
+ attributes = {
1175
+ "written_on(1i)" => "2004", "written_on(2i)" => "6", "written_on(3i)" => "24",
1176
+ "written_on(4i)" => "16", "written_on(5i)" => "24", "written_on(6i)" => "00"
1177
+ }
1178
+ topic = Topic.find(1)
1179
+ topic.attributes = attributes
1180
+ assert_equal Time.utc(2004, 6, 24, 16, 24, 0), topic.written_on
1181
+ assert_equal false, topic.written_on.respond_to?(:time_zone)
1182
+ ensure
1183
+ ActiveRecord::Base.time_zone_aware_attributes = false
1184
+ ActiveRecord::Base.default_timezone = :local
1185
+ Time.zone = nil
1186
+ Topic.skip_time_zone_conversion_for_attributes = []
1187
+ end
1188
+
1189
+ def test_multiparameter_attributes_on_time_only_column_with_time_zone_aware_attributes_does_not_do_time_zone_conversion
1190
+ ActiveRecord::Base.time_zone_aware_attributes = true
1191
+ ActiveRecord::Base.default_timezone = :utc
1192
+ Time.zone = ActiveSupport::TimeZone[-28800]
1193
+ attributes = {
1194
+ "bonus_time(1i)" => "2000", "bonus_time(2i)" => "1", "bonus_time(3i)" => "1",
1195
+ "bonus_time(4i)" => "16", "bonus_time(5i)" => "24"
1196
+ }
1197
+ topic = Topic.find(1)
1198
+ topic.attributes = attributes
1199
+ assert_equal Time.utc(2000, 1, 1, 16, 24, 0), topic.bonus_time
1200
+ assert topic.bonus_time.utc?
1201
+ ensure
1202
+ ActiveRecord::Base.time_zone_aware_attributes = false
1203
+ ActiveRecord::Base.default_timezone = :local
1204
+ Time.zone = nil
1205
+ end
1206
+
1207
+ def test_multiparameter_attributes_on_time_with_empty_seconds
1208
+ attributes = {
1209
+ "written_on(1i)" => "2004", "written_on(2i)" => "6", "written_on(3i)" => "24",
1210
+ "written_on(4i)" => "16", "written_on(5i)" => "24", "written_on(6i)" => ""
1211
+ }
1212
+ topic = Topic.find(1)
1213
+ topic.attributes = attributes
1214
+ assert_equal Time.local(2004, 6, 24, 16, 24, 0), topic.written_on
1215
+ end
1216
+
1217
+ def test_multiparameter_mass_assignment_protector
1218
+ task = Task.new
1219
+ time = Time.mktime(2000, 1, 1, 1)
1220
+ task.starting = time
1221
+ attributes = { "starting(1i)" => "2004", "starting(2i)" => "6", "starting(3i)" => "24" }
1222
+ task.attributes = attributes
1223
+ assert_equal time, task.starting
1224
+ end
1225
+
1226
+ def test_multiparameter_assignment_of_aggregation
1227
+ customer = Customer.new
1228
+ address = Address.new("The Street", "The City", "The Country")
1229
+ attributes = { "address(1)" => address.street, "address(2)" => address.city, "address(3)" => address.country }
1230
+ customer.attributes = attributes
1231
+ assert_equal address, customer.address
1232
+ end
1233
+
1234
+ def test_attributes_on_dummy_time
1235
+ # Oracle, and Sybase do not have a TIME datatype.
1236
+ return true if current_adapter?(:OracleAdapter, :SybaseAdapter)
1237
+
1238
+ attributes = {
1239
+ "bonus_time" => "5:42:00AM"
1240
+ }
1241
+ topic = Topic.find(1)
1242
+ topic.attributes = attributes
1243
+ assert_equal Time.local(2000, 1, 1, 5, 42, 0), topic.bonus_time
1244
+ end
1245
+
1246
+ def test_boolean
1247
+ b_nil = Booleantest.create({ "value" => nil })
1248
+ nil_id = b_nil.id
1249
+ b_false = Booleantest.create({ "value" => false })
1250
+ false_id = b_false.id
1251
+ b_true = Booleantest.create({ "value" => true })
1252
+ true_id = b_true.id
1253
+
1254
+ b_nil = Booleantest.find(nil_id)
1255
+ assert_nil b_nil.value
1256
+ b_false = Booleantest.find(false_id)
1257
+ assert !b_false.value?
1258
+ b_true = Booleantest.find(true_id)
1259
+ assert b_true.value?
1260
+ end
1261
+
1262
+ def test_boolean_cast_from_string
1263
+ b_blank = Booleantest.create({ "value" => "" })
1264
+ blank_id = b_blank.id
1265
+ b_false = Booleantest.create({ "value" => "0" })
1266
+ false_id = b_false.id
1267
+ b_true = Booleantest.create({ "value" => "1" })
1268
+ true_id = b_true.id
1269
+
1270
+ b_blank = Booleantest.find(blank_id)
1271
+ assert_nil b_blank.value
1272
+ b_false = Booleantest.find(false_id)
1273
+ assert !b_false.value?
1274
+ b_true = Booleantest.find(true_id)
1275
+ assert b_true.value?
1276
+ end
1277
+
1278
+ def test_new_record_returns_boolean
1279
+ assert_equal Topic.new.new_record?, true
1280
+ assert_equal Topic.find(1).new_record?, false
1281
+ end
1282
+
1283
+ def test_clone
1284
+ topic = Topic.find(1)
1285
+ cloned_topic = nil
1286
+ assert_nothing_raised { cloned_topic = topic.clone }
1287
+ assert_equal topic.title, cloned_topic.title
1288
+ assert cloned_topic.new_record?
1289
+
1290
+ # test if the attributes have been cloned
1291
+ topic.title = "a"
1292
+ cloned_topic.title = "b"
1293
+ assert_equal "a", topic.title
1294
+ assert_equal "b", cloned_topic.title
1295
+
1296
+ # test if the attribute values have been cloned
1297
+ topic.title = {"a" => "b"}
1298
+ cloned_topic = topic.clone
1299
+ cloned_topic.title["a"] = "c"
1300
+ assert_equal "b", topic.title["a"]
1301
+
1302
+ #test if attributes set as part of after_initialize are cloned correctly
1303
+ assert_equal topic.author_email_address, cloned_topic.author_email_address
1304
+
1305
+ # test if saved clone object differs from original
1306
+ cloned_topic.save
1307
+ assert !cloned_topic.new_record?
1308
+ assert cloned_topic.id != topic.id
1309
+ end
1310
+
1311
+ def test_clone_with_aggregate_of_same_name_as_attribute
1312
+ dev = DeveloperWithAggregate.find(1)
1313
+ assert_kind_of DeveloperSalary, dev.salary
1314
+
1315
+ clone = nil
1316
+ assert_nothing_raised { clone = dev.clone }
1317
+ assert_kind_of DeveloperSalary, clone.salary
1318
+ assert_equal dev.salary.amount, clone.salary.amount
1319
+ assert clone.new_record?
1320
+
1321
+ # test if the attributes have been cloned
1322
+ original_amount = clone.salary.amount
1323
+ dev.salary.amount = 1
1324
+ assert_equal original_amount, clone.salary.amount
1325
+
1326
+ assert clone.save
1327
+ assert !clone.new_record?
1328
+ assert clone.id != dev.id
1329
+ end
1330
+
1331
+ def test_clone_preserves_subtype
1332
+ clone = nil
1333
+ assert_nothing_raised { clone = Company.find(3).clone }
1334
+ assert_kind_of Client, clone
1335
+ end
1336
+
1337
+ def test_bignum
1338
+ company = Company.find(1)
1339
+ company.rating = 2147483647
1340
+ company.save
1341
+ company = Company.find(1)
1342
+ assert_equal 2147483647, company.rating
1343
+ end
1344
+
1345
+ # TODO: extend defaults tests to other databases!
1346
+ if current_adapter?(:PostgreSQLAdapter)
1347
+ def test_default
1348
+ default = Default.new
1349
+
1350
+ # fixed dates / times
1351
+ assert_equal Date.new(2004, 1, 1), default.fixed_date
1352
+ assert_equal Time.local(2004, 1,1,0,0,0,0), default.fixed_time
1353
+
1354
+ # char types
1355
+ assert_equal 'Y', default.char1
1356
+ assert_equal 'a varchar field', default.char2
1357
+ assert_equal 'a text field', default.char3
1358
+ end
1359
+
1360
+ class Geometric < ActiveRecord::Base; end
1361
+ def test_geometric_content
1362
+
1363
+ # accepted format notes:
1364
+ # ()'s aren't required
1365
+ # values can be a mix of float or integer
1366
+
1367
+ g = Geometric.new(
1368
+ :a_point => '(5.0, 6.1)',
1369
+ #:a_line => '((2.0, 3), (5.5, 7.0))' # line type is currently unsupported in postgresql
1370
+ :a_line_segment => '(2.0, 3), (5.5, 7.0)',
1371
+ :a_box => '2.0, 3, 5.5, 7.0',
1372
+ :a_path => '[(2.0, 3), (5.5, 7.0), (8.5, 11.0)]', # [ ] is an open path
1373
+ :a_polygon => '((2.0, 3), (5.5, 7.0), (8.5, 11.0))',
1374
+ :a_circle => '<(5.3, 10.4), 2>'
1375
+ )
1376
+
1377
+ assert g.save
1378
+
1379
+ # Reload and check that we have all the geometric attributes.
1380
+ h = Geometric.find(g.id)
1381
+
1382
+ assert_equal '(5,6.1)', h.a_point
1383
+ assert_equal '[(2,3),(5.5,7)]', h.a_line_segment
1384
+ assert_equal '(5.5,7),(2,3)', h.a_box # reordered to store upper right corner then bottom left corner
1385
+ assert_equal '[(2,3),(5.5,7),(8.5,11)]', h.a_path
1386
+ assert_equal '((2,3),(5.5,7),(8.5,11))', h.a_polygon
1387
+ assert_equal '<(5.3,10.4),2>', h.a_circle
1388
+
1389
+ # use a geometric function to test for an open path
1390
+ objs = Geometric.find_by_sql ["select isopen(a_path) from geometrics where id = ?", g.id]
1391
+ assert_equal objs[0].isopen, 't'
1392
+
1393
+ # test alternate formats when defining the geometric types
1394
+
1395
+ g = Geometric.new(
1396
+ :a_point => '5.0, 6.1',
1397
+ #:a_line => '((2.0, 3), (5.5, 7.0))' # line type is currently unsupported in postgresql
1398
+ :a_line_segment => '((2.0, 3), (5.5, 7.0))',
1399
+ :a_box => '(2.0, 3), (5.5, 7.0)',
1400
+ :a_path => '((2.0, 3), (5.5, 7.0), (8.5, 11.0))', # ( ) is a closed path
1401
+ :a_polygon => '2.0, 3, 5.5, 7.0, 8.5, 11.0',
1402
+ :a_circle => '((5.3, 10.4), 2)'
1403
+ )
1404
+
1405
+ assert g.save
1406
+
1407
+ # Reload and check that we have all the geometric attributes.
1408
+ h = Geometric.find(g.id)
1409
+
1410
+ assert_equal '(5,6.1)', h.a_point
1411
+ assert_equal '[(2,3),(5.5,7)]', h.a_line_segment
1412
+ assert_equal '(5.5,7),(2,3)', h.a_box # reordered to store upper right corner then bottom left corner
1413
+ assert_equal '((2,3),(5.5,7),(8.5,11))', h.a_path
1414
+ assert_equal '((2,3),(5.5,7),(8.5,11))', h.a_polygon
1415
+ assert_equal '<(5.3,10.4),2>', h.a_circle
1416
+
1417
+ # use a geometric function to test for an closed path
1418
+ objs = Geometric.find_by_sql ["select isclosed(a_path) from geometrics where id = ?", g.id]
1419
+ assert_equal objs[0].isclosed, 't'
1420
+ end
1421
+ end
1422
+
1423
+ class NumericData < ActiveRecord::Base
1424
+ self.table_name = 'numeric_data'
1425
+ end
1426
+
1427
+ def test_numeric_fields
1428
+ m = NumericData.new(
1429
+ :bank_balance => 1586.43,
1430
+ :big_bank_balance => BigDecimal("1000234000567.95"),
1431
+ :world_population => 6000000000,
1432
+ :my_house_population => 3
1433
+ )
1434
+ assert m.save
1435
+
1436
+ m1 = NumericData.find(m.id)
1437
+ assert_not_nil m1
1438
+
1439
+ # As with migration_test.rb, we should make world_population >= 2**62
1440
+ # to cover 64-bit platforms and test it is a Bignum, but the main thing
1441
+ # is that it's an Integer.
1442
+ assert_kind_of Integer, m1.world_population
1443
+ assert_equal 6000000000, m1.world_population
1444
+
1445
+ assert_kind_of Fixnum, m1.my_house_population
1446
+ assert_equal 3, m1.my_house_population
1447
+
1448
+ assert_kind_of BigDecimal, m1.bank_balance
1449
+ assert_equal BigDecimal("1586.43"), m1.bank_balance
1450
+
1451
+ assert_kind_of BigDecimal, m1.big_bank_balance
1452
+ assert_equal BigDecimal("1000234000567.95"), m1.big_bank_balance
1453
+ end
1454
+
1455
+ def test_auto_id
1456
+ auto = AutoId.new
1457
+ auto.save
1458
+ assert (auto.id > 0)
1459
+ end
1460
+
1461
+ def quote_column_name(name)
1462
+ "<#{name}>"
1463
+ end
1464
+
1465
+ def test_quote_keys
1466
+ ar = AutoId.new
1467
+ source = {"foo" => "bar", "baz" => "quux"}
1468
+ actual = ar.send(:quote_columns, self, source)
1469
+ inverted = actual.invert
1470
+ assert_equal("<foo>", inverted["bar"])
1471
+ assert_equal("<baz>", inverted["quux"])
1472
+ end
1473
+
1474
+ def test_sql_injection_via_find
1475
+ assert_raise(ActiveRecord::RecordNotFound, ActiveRecord::StatementInvalid) do
1476
+ Topic.find("123456 OR id > 0")
1477
+ end
1478
+ end
1479
+
1480
+ def test_column_name_properly_quoted
1481
+ col_record = ColumnName.new
1482
+ col_record.references = 40
1483
+ assert col_record.save
1484
+ col_record.references = 41
1485
+ assert col_record.save
1486
+ assert_not_nil c2 = ColumnName.find(col_record.id)
1487
+ assert_equal(41, c2.references)
1488
+ end
1489
+
1490
+ def test_quoting_arrays
1491
+ replies = Reply.find(:all, :conditions => [ "id IN (?)", topics(:first).replies.collect(&:id) ])
1492
+ assert_equal topics(:first).replies.size, replies.size
1493
+
1494
+ replies = Reply.find(:all, :conditions => [ "id IN (?)", [] ])
1495
+ assert_equal 0, replies.size
1496
+ end
1497
+
1498
+ MyObject = Struct.new :attribute1, :attribute2
1499
+
1500
+ def test_serialized_attribute
1501
+ myobj = MyObject.new('value1', 'value2')
1502
+ topic = Topic.create("content" => myobj)
1503
+ Topic.serialize("content", MyObject)
1504
+ assert_equal(myobj, topic.content)
1505
+ end
1506
+
1507
+ def test_serialized_time_attribute
1508
+ myobj = Time.local(2008,1,1,1,0)
1509
+ topic = Topic.create("content" => myobj).reload
1510
+ assert_equal(myobj, topic.content)
1511
+ end
1512
+
1513
+ def test_serialized_string_attribute
1514
+ myobj = "Yes"
1515
+ topic = Topic.create("content" => myobj).reload
1516
+ assert_equal(myobj, topic.content)
1517
+ end
1518
+
1519
+ def test_nil_serialized_attribute_with_class_constraint
1520
+ myobj = MyObject.new('value1', 'value2')
1521
+ topic = Topic.new
1522
+ assert_nil topic.content
1523
+ end
1524
+
1525
+ def test_should_raise_exception_on_serialized_attribute_with_type_mismatch
1526
+ myobj = MyObject.new('value1', 'value2')
1527
+ topic = Topic.new(:content => myobj)
1528
+ assert topic.save
1529
+ Topic.serialize(:content, Hash)
1530
+ assert_raise(ActiveRecord::SerializationTypeMismatch) { Topic.find(topic.id).content }
1531
+ ensure
1532
+ Topic.serialize(:content)
1533
+ end
1534
+
1535
+ def test_serialized_attribute_with_class_constraint
1536
+ settings = { "color" => "blue" }
1537
+ Topic.serialize(:content, Hash)
1538
+ topic = Topic.new(:content => settings)
1539
+ assert topic.save
1540
+ assert_equal(settings, Topic.find(topic.id).content)
1541
+ ensure
1542
+ Topic.serialize(:content)
1543
+ end
1544
+
1545
+ def test_quote
1546
+ author_name = "\\ \001 ' \n \\n \""
1547
+ topic = Topic.create('author_name' => author_name)
1548
+ assert_equal author_name, Topic.find(topic.id).author_name
1549
+ end
1550
+
1551
+ if RUBY_VERSION < '1.9'
1552
+ def test_quote_chars
1553
+ with_kcode('UTF8') do
1554
+ str = 'The Narrator'
1555
+ topic = Topic.create(:author_name => str)
1556
+ assert_equal str, topic.author_name
1557
+
1558
+ assert_kind_of ActiveSupport::Multibyte.proxy_class, str.mb_chars
1559
+ topic = Topic.find_by_author_name(str.mb_chars)
1560
+
1561
+ assert_kind_of Topic, topic
1562
+ assert_equal str, topic.author_name, "The right topic should have been found by name even with name passed as Chars"
1563
+ end
1564
+ end
1565
+ end
1566
+
1567
+ def test_class_level_destroy
1568
+ should_be_destroyed_reply = Reply.create("title" => "hello", "content" => "world")
1569
+ Topic.find(1).replies << should_be_destroyed_reply
1570
+
1571
+ Topic.destroy(1)
1572
+ assert_raise(ActiveRecord::RecordNotFound) { Topic.find(1) }
1573
+ assert_raise(ActiveRecord::RecordNotFound) { Reply.find(should_be_destroyed_reply.id) }
1574
+ end
1575
+
1576
+ def test_class_level_delete
1577
+ should_be_destroyed_reply = Reply.create("title" => "hello", "content" => "world")
1578
+ Topic.find(1).replies << should_be_destroyed_reply
1579
+
1580
+ Topic.delete(1)
1581
+ assert_raise(ActiveRecord::RecordNotFound) { Topic.find(1) }
1582
+ assert_nothing_raised { Reply.find(should_be_destroyed_reply.id) }
1583
+ end
1584
+
1585
+ def test_increment_attribute
1586
+ assert_equal 50, accounts(:signals37).credit_limit
1587
+ accounts(:signals37).increment! :credit_limit
1588
+ assert_equal 51, accounts(:signals37, :reload).credit_limit
1589
+
1590
+ accounts(:signals37).increment(:credit_limit).increment!(:credit_limit)
1591
+ assert_equal 53, accounts(:signals37, :reload).credit_limit
1592
+ end
1593
+
1594
+ def test_increment_nil_attribute
1595
+ assert_nil topics(:first).parent_id
1596
+ topics(:first).increment! :parent_id
1597
+ assert_equal 1, topics(:first).parent_id
1598
+ end
1599
+
1600
+ def test_increment_attribute_by
1601
+ assert_equal 50, accounts(:signals37).credit_limit
1602
+ accounts(:signals37).increment! :credit_limit, 5
1603
+ assert_equal 55, accounts(:signals37, :reload).credit_limit
1604
+
1605
+ accounts(:signals37).increment(:credit_limit, 1).increment!(:credit_limit, 3)
1606
+ assert_equal 59, accounts(:signals37, :reload).credit_limit
1607
+ end
1608
+
1609
+ def test_decrement_attribute
1610
+ assert_equal 50, accounts(:signals37).credit_limit
1611
+
1612
+ accounts(:signals37).decrement!(:credit_limit)
1613
+ assert_equal 49, accounts(:signals37, :reload).credit_limit
1614
+
1615
+ accounts(:signals37).decrement(:credit_limit).decrement!(:credit_limit)
1616
+ assert_equal 47, accounts(:signals37, :reload).credit_limit
1617
+ end
1618
+
1619
+ def test_decrement_attribute_by
1620
+ assert_equal 50, accounts(:signals37).credit_limit
1621
+ accounts(:signals37).decrement! :credit_limit, 5
1622
+ assert_equal 45, accounts(:signals37, :reload).credit_limit
1623
+
1624
+ accounts(:signals37).decrement(:credit_limit, 1).decrement!(:credit_limit, 3)
1625
+ assert_equal 41, accounts(:signals37, :reload).credit_limit
1626
+ end
1627
+
1628
+ def test_toggle_attribute
1629
+ assert !topics(:first).approved?
1630
+ topics(:first).toggle!(:approved)
1631
+ assert topics(:first).approved?
1632
+ topic = topics(:first)
1633
+ topic.toggle(:approved)
1634
+ assert !topic.approved?
1635
+ topic.reload
1636
+ assert topic.approved?
1637
+ end
1638
+
1639
+ def test_reload
1640
+ t1 = Topic.find(1)
1641
+ t2 = Topic.find(1)
1642
+ t1.title = "something else"
1643
+ t1.save
1644
+ t2.reload
1645
+ assert_equal t1.title, t2.title
1646
+ end
1647
+
1648
+ def test_reload_with_exclusive_scope
1649
+ dev = DeveloperCalledDavid.first
1650
+ dev.update_attributes!( :name => "NotDavid" )
1651
+ assert_equal dev, dev.reload
1652
+ end
1653
+
1654
+ def test_define_attr_method_with_value
1655
+ k = Class.new( ActiveRecord::Base )
1656
+ k.send(:define_attr_method, :table_name, "foo")
1657
+ assert_equal "foo", k.table_name
1658
+ end
1659
+
1660
+ def test_define_attr_method_with_block
1661
+ k = Class.new( ActiveRecord::Base )
1662
+ k.send(:define_attr_method, :primary_key) { "sys_" + original_primary_key }
1663
+ assert_equal "sys_id", k.primary_key
1664
+ end
1665
+
1666
+ def test_set_table_name_with_value
1667
+ k = Class.new( ActiveRecord::Base )
1668
+ k.table_name = "foo"
1669
+ assert_equal "foo", k.table_name
1670
+ k.set_table_name "bar"
1671
+ assert_equal "bar", k.table_name
1672
+ end
1673
+
1674
+ def test_set_table_name_with_block
1675
+ k = Class.new( ActiveRecord::Base )
1676
+ k.set_table_name { "ks" }
1677
+ assert_equal "ks", k.table_name
1678
+ end
1679
+
1680
+ def test_set_primary_key_with_value
1681
+ k = Class.new( ActiveRecord::Base )
1682
+ k.primary_key = "foo"
1683
+ assert_equal "foo", k.primary_key
1684
+ k.set_primary_key "bar"
1685
+ assert_equal "bar", k.primary_key
1686
+ end
1687
+
1688
+ def test_set_primary_key_with_block
1689
+ k = Class.new( ActiveRecord::Base )
1690
+ k.set_primary_key { "sys_" + original_primary_key }
1691
+ assert_equal "sys_id", k.primary_key
1692
+ end
1693
+
1694
+ def test_set_inheritance_column_with_value
1695
+ k = Class.new( ActiveRecord::Base )
1696
+ k.inheritance_column = "foo"
1697
+ assert_equal "foo", k.inheritance_column
1698
+ k.set_inheritance_column "bar"
1699
+ assert_equal "bar", k.inheritance_column
1700
+ end
1701
+
1702
+ def test_set_inheritance_column_with_block
1703
+ k = Class.new( ActiveRecord::Base )
1704
+ k.set_inheritance_column { original_inheritance_column + "_id" }
1705
+ assert_equal "type_id", k.inheritance_column
1706
+ end
1707
+
1708
+ def test_count_with_join
1709
+ res = Post.count_by_sql "SELECT COUNT(*) FROM posts LEFT JOIN comments ON posts.id=comments.post_id WHERE posts.#{QUOTED_TYPE} = 'Post'"
1710
+
1711
+ res2 = Post.count(:conditions => "posts.#{QUOTED_TYPE} = 'Post'", :joins => "LEFT JOIN comments ON posts.id=comments.post_id")
1712
+ assert_equal res, res2
1713
+
1714
+ res3 = nil
1715
+ assert_nothing_raised do
1716
+ res3 = Post.count(:conditions => "posts.#{QUOTED_TYPE} = 'Post'",
1717
+ :joins => "LEFT JOIN comments ON posts.id=comments.post_id")
1718
+ end
1719
+ assert_equal res, res3
1720
+
1721
+ 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"
1722
+ res5 = nil
1723
+ assert_nothing_raised do
1724
+ res5 = Post.count(:conditions => "p.#{QUOTED_TYPE} = 'Post' AND p.id=co.post_id",
1725
+ :joins => "p, comments co",
1726
+ :select => "p.id")
1727
+ end
1728
+
1729
+ assert_equal res4, res5
1730
+
1731
+ unless current_adapter?(:SQLite2Adapter, :DeprecatedSQLiteAdapter)
1732
+ 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"
1733
+ res7 = nil
1734
+ assert_nothing_raised do
1735
+ res7 = Post.count(:conditions => "p.#{QUOTED_TYPE} = 'Post' AND p.id=co.post_id",
1736
+ :joins => "p, comments co",
1737
+ :select => "p.id",
1738
+ :distinct => true)
1739
+ end
1740
+ assert_equal res6, res7
1741
+ end
1742
+ end
1743
+
1744
+ def test_clear_association_cache_stored
1745
+ firm = Firm.find(1)
1746
+ assert_kind_of Firm, firm
1747
+
1748
+ firm.clear_association_cache
1749
+ assert_equal Firm.find(1).clients.collect{ |x| x.name }.sort, firm.clients.collect{ |x| x.name }.sort
1750
+ end
1751
+
1752
+ def test_clear_association_cache_new_record
1753
+ firm = Firm.new
1754
+ client_stored = Client.find(3)
1755
+ client_new = Client.new
1756
+ client_new.name = "The Joneses"
1757
+ clients = [ client_stored, client_new ]
1758
+
1759
+ firm.clients << clients
1760
+ assert_equal clients.map(&:name).to_set, firm.clients.map(&:name).to_set
1761
+
1762
+ firm.clear_association_cache
1763
+ assert_equal clients.map(&:name).to_set, firm.clients.map(&:name).to_set
1764
+ end
1765
+
1766
+ def test_interpolate_sql
1767
+ assert_nothing_raised { Category.new.send(:interpolate_sql, 'foo@bar') }
1768
+ assert_nothing_raised { Category.new.send(:interpolate_sql, 'foo bar) baz') }
1769
+ assert_nothing_raised { Category.new.send(:interpolate_sql, 'foo bar} baz') }
1770
+ end
1771
+
1772
+ def test_scoped_find_conditions
1773
+ scoped_developers = Developer.with_scope(:find => { :conditions => 'salary > 90000' }) do
1774
+ Developer.find(:all, :conditions => 'id < 5')
1775
+ end
1776
+ assert !scoped_developers.include?(developers(:david)) # David's salary is less than 90,000
1777
+ assert_equal 3, scoped_developers.size
1778
+ end
1779
+
1780
+ def test_scoped_find_limit_offset
1781
+ scoped_developers = Developer.with_scope(:find => { :limit => 3, :offset => 2 }) do
1782
+ Developer.find(:all, :order => 'id')
1783
+ end
1784
+ assert !scoped_developers.include?(developers(:david))
1785
+ assert !scoped_developers.include?(developers(:jamis))
1786
+ assert_equal 3, scoped_developers.size
1787
+
1788
+ # Test without scoped find conditions to ensure we get the whole thing
1789
+ developers = Developer.find(:all, :order => 'id')
1790
+ assert_equal Developer.count, developers.size
1791
+ end
1792
+
1793
+ def test_scoped_find_order
1794
+ # Test order in scope
1795
+ scoped_developers = Developer.with_scope(:find => { :limit => 1, :order => 'salary DESC' }) do
1796
+ Developer.find(:all)
1797
+ end
1798
+ assert_equal 'Jamis', scoped_developers.first.name
1799
+ assert scoped_developers.include?(developers(:jamis))
1800
+ # Test scope without order and order in find
1801
+ scoped_developers = Developer.with_scope(:find => { :limit => 1 }) do
1802
+ Developer.find(:all, :order => 'salary DESC')
1803
+ end
1804
+ # Test scope order + find order, find has priority
1805
+ scoped_developers = Developer.with_scope(:find => { :limit => 3, :order => 'id DESC' }) do
1806
+ Developer.find(:all, :order => 'salary ASC')
1807
+ end
1808
+ assert scoped_developers.include?(developers(:poor_jamis))
1809
+ assert scoped_developers.include?(developers(:david))
1810
+ assert scoped_developers.include?(developers(:dev_10))
1811
+ # Test without scoped find conditions to ensure we get the right thing
1812
+ developers = Developer.find(:all, :order => 'id', :limit => 1)
1813
+ assert scoped_developers.include?(developers(:david))
1814
+ end
1815
+
1816
+ def test_scoped_find_limit_offset_including_has_many_association
1817
+ topics = Topic.with_scope(:find => {:limit => 1, :offset => 1, :include => :replies}) do
1818
+ Topic.find(:all, :order => "topics.id")
1819
+ end
1820
+ assert_equal 1, topics.size
1821
+ assert_equal 2, topics.first.id
1822
+ end
1823
+
1824
+ def test_scoped_find_order_including_has_many_association
1825
+ developers = Developer.with_scope(:find => { :order => 'developers.salary DESC', :include => :projects }) do
1826
+ Developer.find(:all)
1827
+ end
1828
+ assert developers.size >= 2
1829
+ for i in 1...developers.size
1830
+ assert developers[i-1].salary >= developers[i].salary
1831
+ end
1832
+ end
1833
+
1834
+ def test_scoped_find_with_group_and_having
1835
+ developers = Developer.with_scope(:find => { :group => 'developers.salary', :having => "SUM(salary) > 10000", :select => "SUM(salary) as salary" }) do
1836
+ Developer.find(:all)
1837
+ end
1838
+ assert_equal 3, developers.size
1839
+ end
1840
+
1841
+ def test_find_last
1842
+ last = Developer.find :last
1843
+ assert_equal last, Developer.find(:first, :order => 'id desc')
1844
+ end
1845
+
1846
+ def test_last
1847
+ assert_equal Developer.find(:first, :order => 'id desc'), Developer.last
1848
+ end
1849
+
1850
+ def test_all_with_conditions
1851
+ assert_equal Developer.find(:all, :order => 'id desc'), Developer.all(:order => 'id desc')
1852
+ end
1853
+
1854
+ def test_find_ordered_last
1855
+ last = Developer.find :last, :order => 'developers.salary ASC'
1856
+ assert_equal last, Developer.find(:all, :order => 'developers.salary ASC').last
1857
+ end
1858
+
1859
+ def test_find_reverse_ordered_last
1860
+ last = Developer.find :last, :order => 'developers.salary DESC'
1861
+ assert_equal last, Developer.find(:all, :order => 'developers.salary DESC').last
1862
+ end
1863
+
1864
+ def test_find_multiple_ordered_last
1865
+ last = Developer.find :last, :order => 'developers.name, developers.salary DESC'
1866
+ assert_equal last, Developer.find(:all, :order => 'developers.name, developers.salary DESC').last
1867
+ end
1868
+
1869
+ def test_find_symbol_ordered_last
1870
+ last = Developer.find :last, :order => :salary
1871
+ assert_equal last, Developer.find(:all, :order => :salary).last
1872
+ end
1873
+
1874
+ def test_find_scoped_ordered_last
1875
+ last_developer = Developer.with_scope(:find => { :order => 'developers.salary ASC' }) do
1876
+ Developer.find(:last)
1877
+ end
1878
+ assert_equal last_developer, Developer.find(:all, :order => 'developers.salary ASC').last
1879
+ end
1880
+
1881
+ def test_abstract_class
1882
+ assert !ActiveRecord::Base.abstract_class?
1883
+ assert LoosePerson.abstract_class?
1884
+ assert !LooseDescendant.abstract_class?
1885
+ end
1886
+
1887
+ def test_base_class
1888
+ assert_equal LoosePerson, LoosePerson.base_class
1889
+ assert_equal LooseDescendant, LooseDescendant.base_class
1890
+ assert_equal TightPerson, TightPerson.base_class
1891
+ assert_equal TightPerson, TightDescendant.base_class
1892
+
1893
+ assert_equal Post, Post.base_class
1894
+ assert_equal Post, SpecialPost.base_class
1895
+ assert_equal Post, StiPost.base_class
1896
+ assert_equal SubStiPost, SubStiPost.base_class
1897
+ end
1898
+
1899
+ def test_descends_from_active_record
1900
+ # Tries to call Object.abstract_class?
1901
+ assert_raise(NoMethodError) do
1902
+ ActiveRecord::Base.descends_from_active_record?
1903
+ end
1904
+
1905
+ # Abstract subclass of AR::Base.
1906
+ assert LoosePerson.descends_from_active_record?
1907
+
1908
+ # Concrete subclass of an abstract class.
1909
+ assert LooseDescendant.descends_from_active_record?
1910
+
1911
+ # Concrete subclass of AR::Base.
1912
+ assert TightPerson.descends_from_active_record?
1913
+
1914
+ # Concrete subclass of a concrete class but has no type column.
1915
+ assert TightDescendant.descends_from_active_record?
1916
+
1917
+ # Concrete subclass of AR::Base.
1918
+ assert Post.descends_from_active_record?
1919
+
1920
+ # Abstract subclass of a concrete class which has a type column.
1921
+ # This is pathological, as you'll never have Sub < Abstract < Concrete.
1922
+ assert !StiPost.descends_from_active_record?
1923
+
1924
+ # Concrete subclasses an abstract class which has a type column.
1925
+ assert !SubStiPost.descends_from_active_record?
1926
+ end
1927
+
1928
+ def test_find_on_abstract_base_class_doesnt_use_type_condition
1929
+ old_class = LooseDescendant
1930
+ Object.send :remove_const, :LooseDescendant
1931
+
1932
+ descendant = old_class.create! :first_name => 'bob'
1933
+ assert_not_nil LoosePerson.find(descendant.id), "Should have found instance of LooseDescendant when finding abstract LoosePerson: #{descendant.inspect}"
1934
+ ensure
1935
+ unless Object.const_defined?(:LooseDescendant)
1936
+ Object.const_set :LooseDescendant, old_class
1937
+ end
1938
+ end
1939
+
1940
+ def test_assert_queries
1941
+ query = lambda { ActiveRecord::Base.connection.execute 'select count(*) from developers' }
1942
+ assert_queries(2) { 2.times { query.call } }
1943
+ assert_queries 1, &query
1944
+ assert_no_queries { assert true }
1945
+ end
1946
+
1947
+ def test_to_xml
1948
+ xml = REXML::Document.new(topics(:first).to_xml(:indent => 0))
1949
+ bonus_time_in_current_timezone = topics(:first).bonus_time.xmlschema
1950
+ written_on_in_current_timezone = topics(:first).written_on.xmlschema
1951
+ last_read_in_current_timezone = topics(:first).last_read.xmlschema
1952
+
1953
+ assert_equal "topic", xml.root.name
1954
+ assert_equal "The First Topic" , xml.elements["//title"].text
1955
+ assert_equal "David" , xml.elements["//author-name"].text
1956
+
1957
+ assert_equal "1", xml.elements["//id"].text
1958
+ assert_equal "integer" , xml.elements["//id"].attributes['type']
1959
+
1960
+ assert_equal "1", xml.elements["//replies-count"].text
1961
+ assert_equal "integer" , xml.elements["//replies-count"].attributes['type']
1962
+
1963
+ assert_equal written_on_in_current_timezone, xml.elements["//written-on"].text
1964
+ assert_equal "datetime" , xml.elements["//written-on"].attributes['type']
1965
+
1966
+ assert_equal "--- Have a nice day\n" , xml.elements["//content"].text
1967
+ assert_equal "yaml" , xml.elements["//content"].attributes['type']
1968
+
1969
+ assert_equal "david@loudthinking.com", xml.elements["//author-email-address"].text
1970
+
1971
+ assert_equal nil, xml.elements["//parent-id"].text
1972
+ assert_equal "integer", xml.elements["//parent-id"].attributes['type']
1973
+ assert_equal "true", xml.elements["//parent-id"].attributes['nil']
1974
+
1975
+ if current_adapter?(:SybaseAdapter, :OracleAdapter)
1976
+ assert_equal last_read_in_current_timezone, xml.elements["//last-read"].text
1977
+ assert_equal "datetime" , xml.elements["//last-read"].attributes['type']
1978
+ else
1979
+ assert_equal "2004-04-15", xml.elements["//last-read"].text
1980
+ assert_equal "date" , xml.elements["//last-read"].attributes['type']
1981
+ end
1982
+
1983
+ # Oracle and DB2 don't have true boolean or time-only fields
1984
+ unless current_adapter?(:OracleAdapter, :DB2Adapter)
1985
+ assert_equal "false", xml.elements["//approved"].text
1986
+ assert_equal "boolean" , xml.elements["//approved"].attributes['type']
1987
+
1988
+ assert_equal bonus_time_in_current_timezone, xml.elements["//bonus-time"].text
1989
+ assert_equal "datetime" , xml.elements["//bonus-time"].attributes['type']
1990
+ end
1991
+ end
1992
+
1993
+ def test_to_xml_skipping_attributes
1994
+ xml = topics(:first).to_xml(:indent => 0, :skip_instruct => true, :except => [:title, :replies_count])
1995
+ assert_equal "<topic>", xml.first(7)
1996
+ assert !xml.include?(%(<title>The First Topic</title>))
1997
+ assert xml.include?(%(<author-name>David</author-name>))
1998
+
1999
+ xml = topics(:first).to_xml(:indent => 0, :skip_instruct => true, :except => [:title, :author_name, :replies_count])
2000
+ assert !xml.include?(%(<title>The First Topic</title>))
2001
+ assert !xml.include?(%(<author-name>David</author-name>))
2002
+ end
2003
+
2004
+ def test_to_xml_including_has_many_association
2005
+ xml = topics(:first).to_xml(:indent => 0, :skip_instruct => true, :include => :replies, :except => :replies_count)
2006
+ assert_equal "<topic>", xml.first(7)
2007
+ assert xml.include?(%(<replies type="array"><reply>))
2008
+ assert xml.include?(%(<title>The Second Topic of the day</title>))
2009
+ end
2010
+
2011
+ def test_array_to_xml_including_has_many_association
2012
+ xml = [ topics(:first), topics(:second) ].to_xml(:indent => 0, :skip_instruct => true, :include => :replies)
2013
+ assert xml.include?(%(<replies type="array"><reply>))
2014
+ end
2015
+
2016
+ def test_array_to_xml_including_methods
2017
+ xml = [ topics(:first), topics(:second) ].to_xml(:indent => 0, :skip_instruct => true, :methods => [ :topic_id ])
2018
+ assert xml.include?(%(<topic-id type="integer">#{topics(:first).topic_id}</topic-id>)), xml
2019
+ assert xml.include?(%(<topic-id type="integer">#{topics(:second).topic_id}</topic-id>)), xml
2020
+ end
2021
+
2022
+ def test_array_to_xml_including_has_one_association
2023
+ xml = [ companies(:first_firm), companies(:rails_core) ].to_xml(:indent => 0, :skip_instruct => true, :include => :account)
2024
+ assert xml.include?(companies(:first_firm).account.to_xml(:indent => 0, :skip_instruct => true))
2025
+ assert xml.include?(companies(:rails_core).account.to_xml(:indent => 0, :skip_instruct => true))
2026
+ end
2027
+
2028
+ def test_array_to_xml_including_belongs_to_association
2029
+ xml = [ companies(:first_client), companies(:second_client), companies(:another_client) ].to_xml(:indent => 0, :skip_instruct => true, :include => :firm)
2030
+ assert xml.include?(companies(:first_client).to_xml(:indent => 0, :skip_instruct => true))
2031
+ assert xml.include?(companies(:second_client).firm.to_xml(:indent => 0, :skip_instruct => true))
2032
+ assert xml.include?(companies(:another_client).firm.to_xml(:indent => 0, :skip_instruct => true))
2033
+ end
2034
+
2035
+ def test_to_xml_including_belongs_to_association
2036
+ xml = companies(:first_client).to_xml(:indent => 0, :skip_instruct => true, :include => :firm)
2037
+ assert !xml.include?("<firm>")
2038
+
2039
+ xml = companies(:second_client).to_xml(:indent => 0, :skip_instruct => true, :include => :firm)
2040
+ assert xml.include?("<firm>")
2041
+ end
2042
+
2043
+ def test_to_xml_including_multiple_associations
2044
+ xml = companies(:first_firm).to_xml(:indent => 0, :skip_instruct => true, :include => [ :clients, :account ])
2045
+ assert_equal "<firm>", xml.first(6)
2046
+ assert xml.include?(%(<account>))
2047
+ assert xml.include?(%(<clients type="array"><client>))
2048
+ end
2049
+
2050
+ def test_to_xml_including_multiple_associations_with_options
2051
+ xml = companies(:first_firm).to_xml(
2052
+ :indent => 0, :skip_instruct => true,
2053
+ :include => { :clients => { :only => :name } }
2054
+ )
2055
+
2056
+ assert_equal "<firm>", xml.first(6)
2057
+ assert xml.include?(%(<client><name>Summit</name></client>))
2058
+ assert xml.include?(%(<clients type="array"><client>))
2059
+ end
2060
+
2061
+ def test_to_xml_including_methods
2062
+ xml = Company.new.to_xml(:methods => :arbitrary_method, :skip_instruct => true)
2063
+ assert_equal "<company>", xml.first(9)
2064
+ assert xml.include?(%(<arbitrary-method>I am Jack's profound disappointment</arbitrary-method>))
2065
+ end
2066
+
2067
+ def test_to_xml_with_block
2068
+ value = "Rockin' the block"
2069
+ xml = Company.new.to_xml(:skip_instruct => true) do |xml|
2070
+ xml.tag! "arbitrary-element", value
2071
+ end
2072
+ assert_equal "<company>", xml.first(9)
2073
+ assert xml.include?(%(<arbitrary-element>#{value}</arbitrary-element>))
2074
+ end
2075
+
2076
+ def test_type_name_with_module_should_handle_beginning
2077
+ assert_equal 'ActiveRecord::Person', ActiveRecord::Base.send(:type_name_with_module, 'Person')
2078
+ assert_equal '::Person', ActiveRecord::Base.send(:type_name_with_module, '::Person')
2079
+ end
2080
+
2081
+ def test_to_param_should_return_string
2082
+ assert_kind_of String, Client.find(:first).to_param
2083
+ end
2084
+
2085
+ def test_inspect_class
2086
+ assert_equal 'ActiveRecord::Base', ActiveRecord::Base.inspect
2087
+ assert_equal 'LoosePerson(abstract)', LoosePerson.inspect
2088
+ assert_match(/^Topic\(id: integer, title: string/, Topic.inspect)
2089
+ end
2090
+
2091
+ def test_inspect_instance
2092
+ topic = topics(:first)
2093
+ 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
2094
+ end
2095
+
2096
+ def test_inspect_new_instance
2097
+ assert_match /Topic id: nil/, Topic.new.inspect
2098
+ end
2099
+
2100
+ def test_inspect_limited_select_instance
2101
+ assert_equal %(#<Topic id: 1>), Topic.find(:first, :select => 'id', :conditions => 'id = 1').inspect
2102
+ assert_equal %(#<Topic id: 1, title: "The First Topic">), Topic.find(:first, :select => 'id, title', :conditions => 'id = 1').inspect
2103
+ end
2104
+
2105
+ def test_inspect_class_without_table
2106
+ assert_equal "NonExistentTable(Table doesn't exist)", NonExistentTable.inspect
2107
+ end
2108
+
2109
+ def test_attribute_for_inspect
2110
+ t = topics(:first)
2111
+ t.title = "The First Topic Now Has A Title With\nNewlines And More Than 50 Characters"
2112
+
2113
+ assert_equal %("#{t.written_on.to_s(:db)}"), t.attribute_for_inspect(:written_on)
2114
+ assert_equal '"The First Topic Now Has A Title With\nNewlines And M..."', t.attribute_for_inspect(:title)
2115
+ end
2116
+
2117
+ def test_becomes
2118
+ assert_kind_of Reply, topics(:first).becomes(Reply)
2119
+ assert_equal "The First Topic", topics(:first).becomes(Reply).title
2120
+ end
2121
+
2122
+ def test_silence_sets_log_level_to_error_in_block
2123
+ original_logger = ActiveRecord::Base.logger
2124
+ log = StringIO.new
2125
+ ActiveRecord::Base.logger = Logger.new(log)
2126
+ ActiveRecord::Base.logger.level = Logger::DEBUG
2127
+ ActiveRecord::Base.silence do
2128
+ ActiveRecord::Base.logger.warn "warn"
2129
+ ActiveRecord::Base.logger.error "error"
2130
+ end
2131
+ assert_equal "error\n", log.string
2132
+ ensure
2133
+ ActiveRecord::Base.logger = original_logger
2134
+ end
2135
+
2136
+ def test_silence_sets_log_level_back_to_level_before_yield
2137
+ original_logger = ActiveRecord::Base.logger
2138
+ log = StringIO.new
2139
+ ActiveRecord::Base.logger = Logger.new(log)
2140
+ ActiveRecord::Base.logger.level = Logger::WARN
2141
+ ActiveRecord::Base.silence do
2142
+ end
2143
+ assert_equal Logger::WARN, ActiveRecord::Base.logger.level
2144
+ ensure
2145
+ ActiveRecord::Base.logger = original_logger
2146
+ end
2147
+
2148
+ def test_benchmark_with_log_level
2149
+ original_logger = ActiveRecord::Base.logger
2150
+ log = StringIO.new
2151
+ ActiveRecord::Base.logger = Logger.new(log)
2152
+ ActiveRecord::Base.logger.level = Logger::WARN
2153
+ ActiveRecord::Base.benchmark("Debug Topic Count", Logger::DEBUG) { Topic.count }
2154
+ ActiveRecord::Base.benchmark("Warn Topic Count", Logger::WARN) { Topic.count }
2155
+ ActiveRecord::Base.benchmark("Error Topic Count", Logger::ERROR) { Topic.count }
2156
+ assert_no_match /Debug Topic Count/, log.string
2157
+ assert_match /Warn Topic Count/, log.string
2158
+ assert_match /Error Topic Count/, log.string
2159
+ ensure
2160
+ ActiveRecord::Base.logger = original_logger
2161
+ end
2162
+
2163
+ def test_benchmark_with_use_silence
2164
+ original_logger = ActiveRecord::Base.logger
2165
+ log = StringIO.new
2166
+ ActiveRecord::Base.logger = Logger.new(log)
2167
+ ActiveRecord::Base.benchmark("Logging", Logger::DEBUG, true) { ActiveRecord::Base.logger.debug "Loud" }
2168
+ ActiveRecord::Base.benchmark("Logging", Logger::DEBUG, false) { ActiveRecord::Base.logger.debug "Quiet" }
2169
+ assert_no_match /Loud/, log.string
2170
+ assert_match /Quiet/, log.string
2171
+ ensure
2172
+ ActiveRecord::Base.logger = original_logger
2173
+ end
2174
+
2175
+ def test_create_with_custom_timestamps
2176
+ custom_datetime = 1.hour.ago.beginning_of_day
2177
+
2178
+ %w(created_at created_on updated_at updated_on).each do |attribute|
2179
+ parrot = LiveParrot.create(:name => "colombian", attribute => custom_datetime)
2180
+ assert_equal custom_datetime, parrot[attribute]
2181
+ end
2182
+ end
2183
+ end