spree 0.0.8 → 0.0.9

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

Potentially problematic release.


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

Files changed (1960) hide show
  1. data/CHANGELOG +47 -0
  2. data/CONTRIBUTORS +27 -0
  3. data/INSTALL +27 -0
  4. data/{starter-app/vendor/plugins/spree/LICENSE → LICENSE} +0 -0
  5. data/{README.txt → README} +0 -0
  6. data/Rakefile +11 -4
  7. data/{starter-app/vendor/plugins/spree/app → app}/controllers/account_controller.rb +0 -0
  8. data/{starter-app/vendor/plugins/spree/app → app}/controllers/admin/base_controller.rb +0 -0
  9. data/{starter-app/vendor/plugins/spree/app → app}/controllers/admin/categories_controller.rb +0 -0
  10. data/{starter-app/vendor/plugins/spree/app → app}/controllers/admin/images_controller.rb +0 -0
  11. data/app/controllers/admin/inventory_units_controller.rb +27 -0
  12. data/{starter-app/vendor/plugins/spree/app → app}/controllers/admin/option_types_controller.rb +0 -0
  13. data/app/controllers/admin/orders_controller.rb +272 -0
  14. data/{starter-app/vendor/plugins/spree/app → app}/controllers/admin/overview_controller.rb +0 -0
  15. data/app/controllers/admin/products_controller.rb +169 -0
  16. data/{starter-app/vendor/plugins/spree/app → app}/controllers/admin/reports_controller.rb +0 -0
  17. data/{starter-app/vendor/plugins/spree/app → app}/controllers/admin/users_controller.rb +0 -0
  18. data/app/controllers/application.rb +24 -0
  19. data/app/controllers/cart_controller.rb +44 -0
  20. data/app/controllers/checkout_controller.rb +180 -0
  21. data/app/controllers/spree/base_controller.rb +47 -0
  22. data/{starter-app/vendor/plugins/spree/app → app}/controllers/store_controller.rb +0 -0
  23. data/{starter-app/vendor/plugins/spree/app → app}/helpers/account_helper.rb +0 -0
  24. data/{starter-app/vendor/plugins/spree/app → app}/helpers/admin/base_helper.rb +0 -0
  25. data/{starter-app/vendor/plugins/spree/app → app}/helpers/admin/categories_helper.rb +0 -0
  26. data/{starter-app/vendor/plugins/spree/app → app}/helpers/admin/option_values_helper.rb +0 -0
  27. data/{starter-app/vendor/plugins/spree/app → app}/helpers/admin/orders_helper.rb +0 -0
  28. data/{starter-app/vendor/plugins/spree/app → app}/helpers/admin/overview_helper.rb +0 -0
  29. data/{starter-app/vendor/plugins/spree/app → app}/helpers/admin/products_helper.rb +0 -0
  30. data/{starter-app/vendor/plugins/spree/app → app}/helpers/admin/users_helper.rb +0 -0
  31. data/app/helpers/application_helper.rb +9 -0
  32. data/{starter-app/vendor/plugins/spree/app → app}/helpers/cart_helper.rb +0 -0
  33. data/app/helpers/checkout_helper.rb +14 -0
  34. data/{starter-app/vendor/plugins/spree/app → app}/helpers/search_helper.rb +0 -0
  35. data/app/helpers/spree/base_helper.rb +105 -0
  36. data/{starter-app/vendor/plugins/spree/app → app}/helpers/store_helper.rb +0 -0
  37. data/{starter-app/vendor/plugins/spree/app → app}/models/address.rb +0 -0
  38. data/{starter-app/vendor/plugins/spree/app → app}/models/cart.rb +0 -0
  39. data/app/models/cart_item.rb +29 -0
  40. data/{starter-app/vendor/plugins/spree/app → app}/models/category.rb +0 -0
  41. data/{starter-app/vendor/plugins/spree/app → app}/models/country.rb +0 -0
  42. data/{starter-app/vendor/plugins/spree/app → app}/models/credit_card.rb +0 -0
  43. data/app/models/image.rb +13 -0
  44. data/app/models/inventory_level.rb +19 -0
  45. data/app/models/inventory_unit.rb +49 -0
  46. data/{starter-app/vendor/plugins/spree/app → app}/models/line_item.rb +0 -0
  47. data/{starter-app/vendor/plugins/spree/app → app}/models/option_type.rb +0 -0
  48. data/{starter-app/vendor/plugins/spree/app → app}/models/option_value.rb +0 -0
  49. data/app/models/order.rb +88 -0
  50. data/{starter-app/vendor/plugins/spree/app → app}/models/order_mailer.rb +0 -0
  51. data/{starter-app/vendor/plugins/spree/app → app}/models/order_operation.rb +0 -0
  52. data/{starter-app/vendor/plugins/spree/app → app}/models/payment.rb +0 -0
  53. data/app/models/product.rb +64 -0
  54. data/{starter-app/vendor/plugins/spree/app → app}/models/product_option_type.rb +0 -0
  55. data/{starter-app/app → app}/models/role.rb +0 -0
  56. data/{starter-app/vendor/plugins/spree/app → app}/models/search_criteria.rb +0 -0
  57. data/{starter-app/vendor/plugins/spree/app → app}/models/state.rb +0 -0
  58. data/{starter-app/vendor/plugins/spree/app → app}/models/tax_treatment.rb +0 -0
  59. data/{starter-app/vendor/plugins/spree/app → app}/models/txn.rb +0 -0
  60. data/{starter-app/app → app}/models/user.rb +0 -0
  61. data/app/models/variant.rb +11 -0
  62. data/{starter-app/vendor/plugins/spree/app → app}/views/account/index.rhtml +0 -0
  63. data/{starter-app/vendor/plugins/spree/app → app}/views/account/login.rhtml +0 -0
  64. data/{starter-app/vendor/plugins/spree/app → app}/views/account/signup.rhtml +0 -0
  65. data/{starter-app/vendor/plugins/spree/app → app}/views/admin/categories/_form.rhtml +0 -0
  66. data/{starter-app/vendor/plugins/spree/app → app}/views/admin/categories/edit.rhtml +0 -0
  67. data/{starter-app/vendor/plugins/spree/app → app}/views/admin/categories/list.rhtml +0 -0
  68. data/{starter-app/vendor/plugins/spree/app → app}/views/admin/categories/new.rhtml +0 -0
  69. data/{starter-app/vendor/plugins/spree/app → app}/views/admin/images/new.html.erb +0 -0
  70. data/app/views/admin/inventory_units/adjust.html.erb +32 -0
  71. data/{starter-app/vendor/plugins/spree/app → app}/views/admin/option_types/_form.rhtml +0 -0
  72. data/{starter-app/vendor/plugins/spree/app → app}/views/admin/option_types/_new_option_value.rhtml +0 -0
  73. data/{starter-app/vendor/plugins/spree/app → app}/views/admin/option_types/_option_values.rhtml +0 -0
  74. data/{starter-app/vendor/plugins/spree/app → app}/views/admin/option_types/edit.rhtml +0 -0
  75. data/{starter-app/vendor/plugins/spree/app → app}/views/admin/option_types/index.rhtml +0 -0
  76. data/{starter-app/vendor/plugins/spree/app → app}/views/admin/option_types/new.rhtml +0 -0
  77. data/{starter-app/vendor/plugins/spree/app → app}/views/admin/option_types/select.rhtml +0 -0
  78. data/{starter-app/vendor/plugins/spree/app → app}/views/admin/orders/_address.rhtml +0 -0
  79. data/{starter-app/vendor/plugins/spree/app → app}/views/admin/orders/index.rhtml +0 -0
  80. data/{starter-app/vendor/plugins/spree/app → app}/views/admin/orders/show.rhtml +0 -0
  81. data/{starter-app/vendor/plugins/spree/app → app}/views/admin/overview/index.rhtml +0 -0
  82. data/app/views/admin/products/_form.rhtml +70 -0
  83. data/{starter-app/vendor/plugins/spree/app → app}/views/admin/products/_menu.rhtml +0 -0
  84. data/{starter-app/vendor/plugins/spree/app → app}/views/admin/products/_new_variant.rhtml +0 -0
  85. data/app/views/admin/products/_option_types.rhtml +42 -0
  86. data/app/views/admin/products/_variants.rhtml +50 -0
  87. data/{starter-app/vendor/plugins/spree/app → app}/views/admin/products/edit.rhtml +0 -0
  88. data/app/views/admin/products/index.rhtml +62 -0
  89. data/{starter-app/vendor/plugins/spree/app → app}/views/admin/products/new.rhtml +0 -0
  90. data/{starter-app/vendor/plugins/spree/app → app}/views/admin/reports/index.rhtml +0 -0
  91. data/{starter-app/vendor/plugins/spree/app → app}/views/admin/reports/sales_total.rhtml +0 -0
  92. data/{starter-app/vendor/plugins/spree/app → app}/views/admin/users/_form.rhtml +0 -0
  93. data/{starter-app/vendor/plugins/spree/app → app}/views/admin/users/_menu.rhtml +0 -0
  94. data/{starter-app/vendor/plugins/spree/app → app}/views/admin/users/edit.rhtml +0 -0
  95. data/{starter-app/vendor/plugins/spree/app → app}/views/admin/users/index.rhtml +0 -0
  96. data/{starter-app/vendor/plugins/spree/app → app}/views/admin/users/new.rhtml +0 -0
  97. data/{starter-app/vendor/plugins/spree/app → app}/views/admin/users/show.rhtml +0 -0
  98. data/app/views/cart/index.rhtml +49 -0
  99. data/{starter-app/vendor/plugins/spree/app → app}/views/checkout/_address.rhtml +0 -0
  100. data/{starter-app/vendor/plugins/spree/app → app}/views/checkout/_address_ro.rhtml +0 -0
  101. data/{starter-app/vendor/plugins/spree/app → app}/views/checkout/_cart_item.rhtml +0 -0
  102. data/{starter-app/vendor/plugins/spree/app → app}/views/checkout/_extra.rhtml +0 -0
  103. data/{starter-app/vendor/plugins/spree/app → app}/views/checkout/addresses.rhtml +0 -0
  104. data/{starter-app/vendor/plugins/spree/app → app}/views/checkout/cvv.rhtml +0 -0
  105. data/{starter-app/vendor/plugins/spree/app → app}/views/checkout/empty_cart.rhtml +0 -0
  106. data/{starter-app/vendor/plugins/spree/app → app}/views/checkout/final_confirmation.rhtml +0 -0
  107. data/{starter-app/vendor/plugins/spree/app → app}/views/checkout/incomplete.rhtml +0 -0
  108. data/{starter-app/vendor/plugins/spree/app → app}/views/checkout/thank_you.rhtml +0 -0
  109. data/app/views/layouts/admin.rhtml +70 -0
  110. data/app/views/layouts/application.rhtml +50 -0
  111. data/app/views/layouts/products.rhtml +19 -0
  112. data/{starter-app/vendor/plugins/spree/app → app}/views/layouts/simple.rhtml +0 -0
  113. data/app/views/order_mailer/cancel.rhtml +15 -0
  114. data/app/views/order_mailer/confirm.rhtml +18 -0
  115. data/{starter-app/vendor/plugins/spree/app → app}/views/shared/_images.html.erb +0 -0
  116. data/{starter-app/vendor/plugins/spree/app → app}/views/shared/_order_details.rhtml +0 -0
  117. data/{starter-app/vendor/plugins/spree/app → app}/views/shared/_paginate.rhtml +0 -0
  118. data/{starter-app/vendor/plugins/spree/app → app}/views/shared/_report_criteria.rhtml +0 -0
  119. data/{starter-app/app → app}/views/shared/_store_menu.rhtml +0 -0
  120. data/{starter-app/vendor/plugins/spree/app → app}/views/shared/_tax_treatments.rhtml +0 -0
  121. data/{starter-app/vendor/plugins/spree/app → app}/views/store/_image.html.erb +0 -0
  122. data/{starter-app/vendor/plugins/spree/app → app}/views/store/_products.rhtml +0 -0
  123. data/{starter-app/vendor/plugins/spree/app → app}/views/store/_thumbnails.html.erb +0 -0
  124. data/app/views/store/list.rhtml +14 -0
  125. data/app/views/store/show.rhtml +60 -0
  126. data/bin/spree +35 -144
  127. data/config/boot.rb +148 -0
  128. data/{starter-app/config → config}/database.yml +0 -0
  129. data/config/environment.rb +143 -0
  130. data/config/environments/development.rb +24 -0
  131. data/{starter-app/config → config}/environments/production.rb +0 -0
  132. data/{starter-app/config → config}/environments/test.rb +0 -0
  133. data/config/routes.rb +31 -0
  134. data/db/development_structure.sql +267 -0
  135. data/{starter-app/vendor/plugins/spree/db → db}/migrate/001_create_addresses.rb +0 -0
  136. data/{starter-app/vendor/plugins/spree/db → db}/migrate/002_create_cart_items.rb +0 -0
  137. data/{starter-app/vendor/plugins/spree/db → db}/migrate/003_create_carts.rb +0 -0
  138. data/{starter-app/vendor/plugins/spree/db → db}/migrate/004_create_categories.rb +0 -0
  139. data/{starter-app/vendor/plugins/spree/db → db}/migrate/005_create_categories_products.rb +0 -0
  140. data/{starter-app/vendor/plugins/spree/db → db}/migrate/006_create_line_items.rb +0 -0
  141. data/{starter-app/vendor/plugins/spree/db → db}/migrate/007_create_option_values.rb +0 -0
  142. data/db/migrate/008_create_orders.rb +23 -0
  143. data/db/migrate/009_create_products.rb +16 -0
  144. data/{starter-app/vendor/plugins/spree/db → db}/migrate/010_create_txns.rb +0 -0
  145. data/db/migrate/011_create_variants.rb +12 -0
  146. data/{starter-app/vendor/plugins/spree/db → db}/migrate/012_create_tax_treatments.rb +0 -0
  147. data/{starter-app/vendor/plugins/spree/db/migrate/014_create_countries.rb → db/migrate/013_create_countries.rb} +0 -0
  148. data/{starter-app/vendor/plugins/spree/db/migrate/015_create_states.rb → db/migrate/014_create_states.rb} +0 -0
  149. data/{starter-app/vendor/plugins/spree/db/migrate/016_create_option_types.rb → db/migrate/015_create_option_types.rb} +0 -0
  150. data/{starter-app/vendor/plugins/spree/db/migrate/017_create_product_option_types.rb → db/migrate/016_create_product_option_types.rb} +0 -0
  151. data/{starter-app/vendor/plugins/spree/db/migrate/018_create_option_values_variants.rb → db/migrate/017_create_option_values_variants.rb} +0 -0
  152. data/db/migrate/018_create_images.rb +20 -0
  153. data/{starter-app/vendor/plugins/spree/db/migrate/020_create_credit_cards.rb → db/migrate/019_create_credit_cards.rb} +0 -0
  154. data/{starter-app/vendor/plugins/spree/db/migrate/021_create_order_operations.rb → db/migrate/020_create_order_operations.rb} +0 -0
  155. data/db/migrate/021_create_inventory_units.rb +15 -0
  156. data/{starter-app/db/migrate/001_create_users.rb → db/migrate/022_create_users.rb} +0 -0
  157. data/{starter-app/db/migrate/002_create_roles.rb → db/migrate/023_create_roles.rb} +0 -0
  158. data/{starter-app/db → db}/sample/addresses.yml +0 -0
  159. data/{starter-app/db → db}/sample/categories.yml +0 -0
  160. data/{starter-app/db → db}/sample/countries.yml +0 -0
  161. data/db/sample/credit_cards.yml +12 -0
  162. data/db/sample/images.yml +300 -0
  163. data/{starter-app/vendor/plugins/spree/assets/images/products → db/sample/images}/ror_bag.jpg +0 -0
  164. data/{starter-app/vendor/plugins/spree/assets/images/products → db/sample/images}/ror_baseball_jersey.jpg +0 -0
  165. data/{starter-app/vendor/plugins/spree/assets/images/products → db/sample/images}/ror_jr_spaghetti.jpg +0 -0
  166. data/{starter-app/vendor/plugins/spree/assets/images/products → db/sample/images}/ror_mug.jpg +0 -0
  167. data/{starter-app/vendor/plugins/spree/assets/images/products → db/sample/images}/ror_ringer_tshirt.jpg +0 -0
  168. data/{starter-app/vendor/plugins/spree/assets/images/products → db/sample/images}/ror_stein.jpg +0 -0
  169. data/{starter-app/vendor/plugins/spree/assets/images/products → db/sample/images}/ror_tote.jpg +0 -0
  170. data/db/sample/inventory_units.yml +98 -0
  171. data/db/sample/line_items.yml +25 -0
  172. data/{starter-app/db → db}/sample/option_types.yml +0 -0
  173. data/{starter-app/db → db}/sample/option_values.yml +0 -0
  174. data/db/sample/orders.yml +15 -0
  175. data/{starter-app/db → db}/sample/product_option_types.yml +0 -0
  176. data/{starter-app/db → db}/sample/products.yml +0 -0
  177. data/{starter-app/db → db}/sample/roles.yml +0 -0
  178. data/{starter-app/db → db}/sample/states.yml +0 -0
  179. data/{starter-app/db → db}/sample/txns.yml +0 -0
  180. data/{starter-app/db → db}/sample/users.yml +0 -0
  181. data/db/sample/variants.yml +61 -0
  182. data/{starter-app/lib → lib}/authenticated_system.rb +0 -0
  183. data/{starter-app/lib → lib}/authenticated_test_helper.rb +0 -0
  184. data/{starter-app/lib → lib}/custom_fixtures.rb +0 -0
  185. data/{starter-app/vendor/plugins/spree/lib/shipping → lib}/flat_rate.rb +0 -0
  186. data/{starter-app/vendor/plugins/spree/lib → lib}/format.rb +0 -0
  187. data/lib/generators/instance/instance_generator.rb +129 -0
  188. data/lib/generators/instance/templates/databases/mysql.yml +47 -0
  189. data/lib/generators/instance/templates/databases/postgresql.yml +44 -0
  190. data/lib/generators/instance/templates/databases/sqlite3.yml +16 -0
  191. data/lib/generators/instance/templates/databases/sqlserver.yml +20 -0
  192. data/lib/generators/instance/templates/demo_mongrel_cluster.yml +7 -0
  193. data/lib/generators/instance/templates/demo_robots.txt +2 -0
  194. data/lib/generators/instance/templates/instance_boot.rb +148 -0
  195. data/lib/generators/instance/templates/instance_environment.rb +136 -0
  196. data/lib/generators/instance/templates/instance_generate +16 -0
  197. data/lib/generators/instance/templates/instance_rakefile +3 -0
  198. data/lib/generators/instance/templates/instance_routes.rb +1 -0
  199. data/{starter-app/lib → lib}/hijacker.rb +0 -0
  200. data/lib/plugins/extension_patches/init.rb +7 -0
  201. data/lib/plugins/extension_patches/lib/fixture_loading_extension.rb +80 -0
  202. data/lib/plugins/extension_patches/lib/mailer_hack.rb +8 -0
  203. data/lib/plugins/extension_patches/lib/routing_extension.rb +37 -0
  204. data/{starter-app/vendor → lib}/plugins/paginating_find/CHANGELOG +0 -0
  205. data/{starter-app/vendor → lib}/plugins/paginating_find/README +0 -0
  206. data/{starter-app/vendor → lib}/plugins/paginating_find/init.rb +0 -0
  207. data/{starter-app/vendor → lib}/plugins/paginating_find/lib/paginating_find.rb +0 -0
  208. data/{starter-app/vendor → lib}/plugins/paginating_find/lib/paging_enumerator.rb +0 -0
  209. data/{starter-app/vendor → lib}/plugins/paginating_find/lib/paging_helper.rb +0 -0
  210. data/{starter-app → lib/plugins/paginating_find/test_app}/Rakefile +0 -0
  211. data/{starter-app/vendor → lib}/plugins/paginating_find/test_app/app/controllers/application.rb +0 -0
  212. data/{starter-app/vendor → lib}/plugins/paginating_find/test_app/config/boot.rb +0 -0
  213. data/{starter-app/vendor → lib}/plugins/paginating_find/test_app/config/database.yml +0 -0
  214. data/{starter-app/vendor → lib}/plugins/paginating_find/test_app/config/environment.rb +0 -0
  215. data/{starter-app/vendor → lib}/plugins/paginating_find/test_app/config/environments/test.rb +0 -0
  216. data/{starter-app/vendor → lib}/plugins/paginating_find/test_app/config/routes.rb +0 -0
  217. data/{starter-app → lib/plugins/paginating_find/test_app}/script/breakpointer +0 -0
  218. data/{starter-app → lib/plugins/paginating_find/test_app}/script/console +0 -0
  219. data/{starter-app/vendor → lib}/plugins/paginating_find/test_app/test/fixtures/articles.yml +0 -0
  220. data/{starter-app/vendor → lib}/plugins/paginating_find/test_app/test/fixtures/authors.yml +0 -0
  221. data/{starter-app/vendor → lib}/plugins/paginating_find/test_app/test/fixtures/edits.yml +0 -0
  222. data/{starter-app/vendor → lib}/plugins/paginating_find/test_app/test/fixtures/models.rb +0 -0
  223. data/{starter-app/vendor → lib}/plugins/paginating_find/test_app/test/test_helper.rb +0 -0
  224. data/{starter-app/vendor → lib}/plugins/paginating_find/test_app/test/unit/abstract_test.rb +0 -0
  225. data/{starter-app/vendor → lib}/plugins/paginating_find/test_app/test/unit/group_test.rb +0 -0
  226. data/{starter-app/vendor → lib}/plugins/paginating_find/test_app/test/unit/paginating_find_test.rb +0 -0
  227. data/{starter-app/vendor → lib}/plugins/paginating_find/test_app/test/unit/paging_enumerator_test.rb +0 -0
  228. data/{starter-app/lib → lib}/role_requirement_system.rb +0 -0
  229. data/{starter-app/lib → lib}/role_requirement_test_helper.rb +0 -0
  230. data/lib/sales_tax.rb +26 -0
  231. data/lib/spree.rb +22 -0
  232. data/{starter-app/vendor/plugins/spree/lib/gateway → lib/spree}/bogus_gateway.rb +0 -0
  233. data/lib/spree/initializer.rb +154 -0
  234. data/lib/spree/setup.rb +146 -0
  235. data/lib/tasks/database.rake +35 -0
  236. data/lib/tasks/environments.rake +11 -0
  237. data/lib/tasks/instance.rake +26 -0
  238. data/lib/tasks/release.rake +98 -0
  239. data/{starter-app/lib → lib}/tasks/sample/products/0000/0001/ror_tote.jpeg +0 -0
  240. data/{starter-app/lib → lib}/tasks/sample/products/0000/0001/ror_tote_mini.jpeg +0 -0
  241. data/{starter-app/lib → lib}/tasks/sample/products/0000/0001/ror_tote_product.jpeg +0 -0
  242. data/{starter-app/lib → lib}/tasks/sample/products/0000/0001/ror_tote_small.jpeg +0 -0
  243. data/{starter-app/lib → lib}/tasks/sample/products/0000/0002/ror_tote_back.jpeg +0 -0
  244. data/{starter-app/lib → lib}/tasks/sample/products/0000/0002/ror_tote_back_mini.jpeg +0 -0
  245. data/{starter-app/lib → lib}/tasks/sample/products/0000/0002/ror_tote_back_product.jpeg +0 -0
  246. data/{starter-app/lib → lib}/tasks/sample/products/0000/0002/ror_tote_back_small.jpeg +0 -0
  247. data/{starter-app/lib → lib}/tasks/sample/products/0000/0003/ror_bag.jpeg +0 -0
  248. data/{starter-app/lib → lib}/tasks/sample/products/0000/0003/ror_bag_mini.jpeg +0 -0
  249. data/{starter-app/lib → lib}/tasks/sample/products/0000/0003/ror_bag_product.jpeg +0 -0
  250. data/{starter-app/lib → lib}/tasks/sample/products/0000/0003/ror_bag_small.jpeg +0 -0
  251. data/{starter-app/lib → lib}/tasks/sample/products/0000/0004/ror_baseball.jpeg +0 -0
  252. data/{starter-app/lib → lib}/tasks/sample/products/0000/0004/ror_baseball_mini.jpeg +0 -0
  253. data/{starter-app/lib → lib}/tasks/sample/products/0000/0004/ror_baseball_product.jpeg +0 -0
  254. data/{starter-app/lib → lib}/tasks/sample/products/0000/0004/ror_baseball_small.jpeg +0 -0
  255. data/{starter-app/lib → lib}/tasks/sample/products/0000/0005/ror_baseball_back.jpeg +0 -0
  256. data/{starter-app/lib → lib}/tasks/sample/products/0000/0005/ror_baseball_back_mini.jpeg +0 -0
  257. data/{starter-app/lib → lib}/tasks/sample/products/0000/0005/ror_baseball_back_product.jpeg +0 -0
  258. data/{starter-app/lib → lib}/tasks/sample/products/0000/0005/ror_baseball_back_small.jpeg +0 -0
  259. data/{starter-app/lib → lib}/tasks/sample/products/0000/0006/ror_jr_spaghetti.jpeg +0 -0
  260. data/{starter-app/lib → lib}/tasks/sample/products/0000/0006/ror_jr_spaghetti_mini.jpeg +0 -0
  261. data/{starter-app/lib → lib}/tasks/sample/products/0000/0006/ror_jr_spaghetti_product.jpeg +0 -0
  262. data/{starter-app/lib → lib}/tasks/sample/products/0000/0006/ror_jr_spaghetti_small.jpeg +0 -0
  263. data/{starter-app/lib → lib}/tasks/sample/products/0000/0007/ror_mug.jpeg +0 -0
  264. data/{starter-app/lib → lib}/tasks/sample/products/0000/0007/ror_mug_mini.jpeg +0 -0
  265. data/{starter-app/lib → lib}/tasks/sample/products/0000/0007/ror_mug_product.jpeg +0 -0
  266. data/{starter-app/lib → lib}/tasks/sample/products/0000/0007/ror_mug_small.jpeg +0 -0
  267. data/{starter-app/lib → lib}/tasks/sample/products/0000/0008/ror_mug_back.jpeg +0 -0
  268. data/{starter-app/lib → lib}/tasks/sample/products/0000/0008/ror_mug_back_mini.jpeg +0 -0
  269. data/{starter-app/lib → lib}/tasks/sample/products/0000/0008/ror_mug_back_product.jpeg +0 -0
  270. data/{starter-app/lib → lib}/tasks/sample/products/0000/0008/ror_mug_back_small.jpeg +0 -0
  271. data/{starter-app/lib → lib}/tasks/sample/products/0000/0009/ror_ringer.jpeg +0 -0
  272. data/{starter-app/lib → lib}/tasks/sample/products/0000/0009/ror_ringer_mini.jpeg +0 -0
  273. data/{starter-app/lib → lib}/tasks/sample/products/0000/0009/ror_ringer_product.jpeg +0 -0
  274. data/{starter-app/lib → lib}/tasks/sample/products/0000/0009/ror_ringer_small.jpeg +0 -0
  275. data/{starter-app/lib → lib}/tasks/sample/products/0000/0010/ror_ringer_back.jpeg +0 -0
  276. data/{starter-app/lib → lib}/tasks/sample/products/0000/0010/ror_ringer_back_mini.jpeg +0 -0
  277. data/{starter-app/lib → lib}/tasks/sample/products/0000/0010/ror_ringer_back_product.jpeg +0 -0
  278. data/{starter-app/lib → lib}/tasks/sample/products/0000/0010/ror_ringer_back_small.jpeg +0 -0
  279. data/{starter-app/lib → lib}/tasks/sample/products/0000/0011/ror_stein.jpeg +0 -0
  280. data/{starter-app/lib → lib}/tasks/sample/products/0000/0011/ror_stein_mini.jpeg +0 -0
  281. data/{starter-app/lib → lib}/tasks/sample/products/0000/0011/ror_stein_product.jpeg +0 -0
  282. data/{starter-app/lib → lib}/tasks/sample/products/0000/0011/ror_stein_small.jpeg +0 -0
  283. data/{starter-app/lib → lib}/tasks/sample/products/0000/0012/ror_stein_back.jpeg +0 -0
  284. data/{starter-app/lib → lib}/tasks/sample/products/0000/0012/ror_stein_back_mini.jpeg +0 -0
  285. data/{starter-app/lib → lib}/tasks/sample/products/0000/0012/ror_stein_back_product.jpeg +0 -0
  286. data/{starter-app/lib → lib}/tasks/sample/products/0000/0012/ror_stein_back_small.jpeg +0 -0
  287. data/{starter-app/lib → lib}/tasks/spree_sample_data.rake +0 -0
  288. data/{starter-app/log → log}/README +0 -0
  289. data/{starter-app/public → public}/.htaccess +0 -0
  290. data/{starter-app/public → public}/404.html +0 -0
  291. data/{starter-app/public → public}/500.html +0 -0
  292. data/{starter-app/public → public}/dispatch.cgi +0 -0
  293. data/{starter-app/public → public}/dispatch.fcgi +0 -0
  294. data/{starter-app/public → public}/dispatch.rb +0 -0
  295. data/{starter-app/public → public}/favicon.ico +0 -0
  296. data/{starter-app/vendor/plugins/spree/assets → public}/images/amex_cid.gif +0 -0
  297. data/{starter-app/vendor/plugins/calendar_date_select/public → public}/images/calendar_date_select/calendar.gif +0 -0
  298. data/{starter-app/vendor/plugins/spree/assets → public}/images/creditcard.gif +0 -0
  299. data/{starter-app/vendor/plugins/spree/assets → public}/images/discover_cid.gif +0 -0
  300. data/{starter-app/vendor/plugins/spree/assets → public}/images/master_cid.jpg +0 -0
  301. data/{starter-app/public → public}/images/rails.png +0 -0
  302. data/{starter-app/vendor/plugins/spree/assets → public}/images/spinner.gif +0 -0
  303. data/{starter-app/public → public}/images/spree.jpg +0 -0
  304. data/{starter-app/vendor/plugins/spree/assets → public}/images/spree/progress.gif +0 -0
  305. data/{starter-app/vendor/plugins/spree/assets → public}/images/spree/spinner.gif +0 -0
  306. data/{starter-app/vendor/plugins/spree/assets → public}/images/spree/spree.jpg +0 -0
  307. data/{starter-app/vendor/plugins/spree/assets → public}/images/visa_cid.gif +0 -0
  308. data/{starter-app/public → public}/javascripts/application.js +0 -0
  309. data/{starter-app/vendor/plugins/calendar_date_select/public → public}/javascripts/calendar_date_select/calendar_date_select.js +0 -0
  310. data/{starter-app/vendor/plugins/calendar_date_select/public → public}/javascripts/calendar_date_select/format_american.js +0 -0
  311. data/{starter-app/vendor/plugins/calendar_date_select/public → public}/javascripts/calendar_date_select/format_euro_24hr.js +0 -0
  312. data/{starter-app/vendor/plugins/calendar_date_select/public → public}/javascripts/calendar_date_select/format_finnish.js +0 -0
  313. data/{starter-app/vendor/plugins/calendar_date_select/public → public}/javascripts/calendar_date_select/format_hyphen_ampm.js +0 -0
  314. data/{starter-app/vendor/plugins/calendar_date_select/public → public}/javascripts/calendar_date_select/format_italian.js +0 -0
  315. data/{starter-app/public → public}/javascripts/controls.js +0 -0
  316. data/{starter-app/public → public}/javascripts/dragdrop.js +0 -0
  317. data/{starter-app/public → public}/javascripts/effects.js +0 -0
  318. data/{starter-app/public → public}/javascripts/prototype.js +0 -0
  319. data/public/plugin_assets/README +5 -0
  320. data/public/plugin_assets/calendar_date_select/images/calendar_date_select/calendar.gif +0 -0
  321. data/public/plugin_assets/calendar_date_select/javascripts/calendar_date_select/calendar_date_select.js +439 -0
  322. data/public/plugin_assets/calendar_date_select/javascripts/calendar_date_select/format_american.js +34 -0
  323. data/public/plugin_assets/calendar_date_select/javascripts/calendar_date_select/format_euro_24hr.js +7 -0
  324. data/public/plugin_assets/calendar_date_select/javascripts/calendar_date_select/format_finnish.js +24 -0
  325. data/public/plugin_assets/calendar_date_select/javascripts/calendar_date_select/format_hyphen_ampm.js +36 -0
  326. data/public/plugin_assets/calendar_date_select/javascripts/calendar_date_select/format_italian.js +24 -0
  327. data/{starter-app/vendor/plugins/calendar_date_select/public → public/plugin_assets/calendar_date_select}/javascripts/calendar_date_select/locale/fi.js +0 -0
  328. data/{starter-app/vendor/plugins/calendar_date_select/public → public/plugin_assets/calendar_date_select}/stylesheets/calendar_date_select/blue.css +0 -0
  329. data/{starter-app/vendor/plugins/calendar_date_select/public → public/plugin_assets/calendar_date_select}/stylesheets/calendar_date_select/default.css +0 -0
  330. data/{starter-app/vendor/plugins/calendar_date_select/public → public/plugin_assets/calendar_date_select}/stylesheets/calendar_date_select/plain.css +0 -0
  331. data/{starter-app/vendor/plugins/calendar_date_select/public → public/plugin_assets/calendar_date_select}/stylesheets/calendar_date_select/red.css +0 -0
  332. data/{starter-app/vendor/plugins/calendar_date_select/public → public/plugin_assets/calendar_date_select}/stylesheets/calendar_date_select/silver.css +0 -0
  333. data/{starter-app/vendor/plugins/spree/assets → public/plugin_assets/spree}/404.html +0 -0
  334. data/{starter-app/vendor/plugins/spree/assets → public/plugin_assets/spree}/500.html +0 -0
  335. data/{starter-app/vendor/plugins/spree/assets → public/plugin_assets/spree}/dispatch.cgi +0 -0
  336. data/{starter-app/vendor/plugins/spree/assets → public/plugin_assets/spree}/dispatch.fcgi +0 -0
  337. data/{starter-app/vendor/plugins/spree/assets → public/plugin_assets/spree}/dispatch.rb +0 -0
  338. data/{starter-app/vendor/plugins/spree/assets → public/plugin_assets/spree}/favicon.ico +0 -0
  339. data/public/plugin_assets/spree/images/amex_cid.gif +0 -0
  340. data/public/plugin_assets/spree/images/creditcard.gif +0 -0
  341. data/public/plugin_assets/spree/images/discover_cid.gif +0 -0
  342. data/public/plugin_assets/spree/images/master_cid.jpg +0 -0
  343. data/public/plugin_assets/spree/images/products/ror_bag.jpg +0 -0
  344. data/public/plugin_assets/spree/images/products/ror_baseball_jersey.jpg +0 -0
  345. data/public/plugin_assets/spree/images/products/ror_jr_spaghetti.jpg +0 -0
  346. data/public/plugin_assets/spree/images/products/ror_mug.jpg +0 -0
  347. data/public/plugin_assets/spree/images/products/ror_ringer_tshirt.jpg +0 -0
  348. data/public/plugin_assets/spree/images/products/ror_stein.jpg +0 -0
  349. data/public/plugin_assets/spree/images/products/ror_tote.jpg +0 -0
  350. data/{starter-app/vendor/plugins/attachment_fu/test/fixtures/files → public/plugin_assets/spree/images}/rails.png +0 -0
  351. data/public/plugin_assets/spree/images/spinner.gif +0 -0
  352. data/public/plugin_assets/spree/images/spree/progress.gif +0 -0
  353. data/public/plugin_assets/spree/images/spree/spinner.gif +0 -0
  354. data/public/plugin_assets/spree/images/spree/spree.jpg +0 -0
  355. data/public/plugin_assets/spree/images/spree/spree_logo142x65.gif +0 -0
  356. data/public/plugin_assets/spree/images/spree/spree_logo245x112.gif +0 -0
  357. data/public/plugin_assets/spree/images/visa_cid.gif +0 -0
  358. data/{starter-app/vendor/plugins/spree/assets → public/plugin_assets/spree}/javascripts/application.js +0 -0
  359. data/{starter-app/vendor/plugins/spree/assets → public/plugin_assets/spree}/javascripts/controls.js +0 -0
  360. data/{starter-app/vendor/plugins/spree/assets → public/plugin_assets/spree}/javascripts/dragdrop.js +0 -0
  361. data/{starter-app/vendor/plugins/spree/assets → public/plugin_assets/spree}/javascripts/effects.js +0 -0
  362. data/{starter-app/vendor/plugins/spree/assets → public/plugin_assets/spree}/javascripts/lowpro.js +0 -0
  363. data/{starter-app/vendor/plugins/spree/assets → public/plugin_assets/spree}/javascripts/prototype.js +0 -0
  364. data/{starter-app/public → public/plugin_assets/spree}/robots.txt +0 -0
  365. data/{starter-app/vendor/plugins/spree/assets → public/plugin_assets/spree}/stylesheets/cart/_controller.css +0 -0
  366. data/{starter-app/vendor/plugins/spree/assets → public/plugin_assets/spree}/stylesheets/checkout/_controller.css +0 -0
  367. data/{starter-app/vendor/plugins/spree/assets → public/plugin_assets/spree}/stylesheets/fullscreen.css +0 -0
  368. data/{starter-app/vendor/plugins/spree/assets → public/plugin_assets/spree}/stylesheets/orders/_controller.css +0 -0
  369. data/{starter-app/vendor/plugins/spree/assets → public/plugin_assets/spree}/stylesheets/products/_controller.css +0 -0
  370. data/public/plugin_assets/spree/stylesheets/spree-admin.css +355 -0
  371. data/{starter-app/vendor/plugins/spree/assets → public/plugin_assets/spree}/stylesheets/spree.css +0 -0
  372. data/{starter-app/vendor/plugins/spree/assets → public/plugin_assets/spree}/stylesheets/store/_controller.css +0 -0
  373. data/{starter-app/vendor/plugins/spree/assets → public}/robots.txt +0 -0
  374. data/{starter-app/public → public}/stylesheets/application.css +0 -0
  375. data/public/stylesheets/calendar_date_select/blue.css +130 -0
  376. data/public/stylesheets/calendar_date_select/default.css +135 -0
  377. data/public/stylesheets/calendar_date_select/plain.css +128 -0
  378. data/public/stylesheets/calendar_date_select/red.css +135 -0
  379. data/public/stylesheets/calendar_date_select/silver.css +133 -0
  380. data/public/stylesheets/cart/_controller.css +71 -0
  381. data/{starter-app/public/stylesheets/checkout/_controller.css → public/stylesheets/checkout/_controller-override.css} +0 -0
  382. data/public/stylesheets/checkout/_controller.css +31 -0
  383. data/public/stylesheets/fullscreen.css +63 -0
  384. data/public/stylesheets/orders/_controller.css +3 -0
  385. data/public/stylesheets/products/_controller.css +38 -0
  386. data/public/stylesheets/spree-admin.css +355 -0
  387. data/public/stylesheets/spree.css +66 -0
  388. data/public/stylesheets/store/_controller.css +23 -0
  389. data/{starter-app/script → script}/about +0 -0
  390. data/{starter-app/vendor/plugins/paginating_find/test_app/script → script}/breakpointer +0 -0
  391. data/{starter-app/vendor/plugins/paginating_find/test_app/script → script}/console +0 -0
  392. data/script/destroy +2 -13
  393. data/script/generate +2 -13
  394. data/{starter-app/script → script}/performance/benchmarker +0 -0
  395. data/{starter-app/script → script}/performance/profiler +0 -0
  396. data/{starter-app/script → script}/plugin +0 -0
  397. data/{starter-app/script → script}/process/inspector +0 -0
  398. data/{starter-app/script → script}/process/reaper +0 -0
  399. data/{starter-app/script → script}/process/spawner +0 -0
  400. data/{starter-app/script → script}/runner +0 -0
  401. data/{starter-app/script → script}/server +0 -0
  402. data/{starter-app/script → script}/spec +0 -0
  403. data/{starter-app/script → script}/spec_server +0 -0
  404. data/spec/helpers/spree/base_helper_spec.rb +6 -0
  405. data/{starter-app/spec → spec}/models/cart_item_spec.rb +0 -0
  406. data/{starter-app/spec → spec}/models/cart_spec.rb +0 -0
  407. data/spec/models/inventory_unit_spec.rb +18 -0
  408. data/{starter-app/spec → spec}/models/line_item_spec.rb +0 -0
  409. data/spec/models/product_spec.rb +48 -0
  410. data/{starter-app/spec → spec}/rcov.opts +0 -0
  411. data/{starter-app/spec → spec}/spec.opts +0 -0
  412. data/{starter-app/spec → spec}/spec_helper.rb +0 -0
  413. data/spree.tmproj +444 -0
  414. data/{starter-app/stories → stories}/all.rb +0 -0
  415. data/{starter-app/stories → stories}/helper.rb +0 -0
  416. data/vendor/extensions/bogus_gateway/LICENSE +26 -0
  417. data/{starter-app/vendor → vendor}/plugins/acts_as_list/README +0 -0
  418. data/{starter-app/vendor → vendor}/plugins/acts_as_list/init.rb +0 -0
  419. data/{starter-app/vendor → vendor}/plugins/acts_as_list/lib/active_record/acts/list.rb +0 -0
  420. data/{starter-app/vendor → vendor}/plugins/acts_as_list/test/list_test.rb +0 -0
  421. data/{starter-app/vendor → vendor}/plugins/acts_as_tree/README +0 -0
  422. data/{starter-app/vendor → vendor}/plugins/acts_as_tree/Rakefile +0 -0
  423. data/{starter-app/vendor → vendor}/plugins/acts_as_tree/init.rb +0 -0
  424. data/{starter-app/vendor → vendor}/plugins/acts_as_tree/lib/active_record/acts/tree.rb +0 -0
  425. data/{starter-app/vendor → vendor}/plugins/acts_as_tree/test/abstract_unit.rb +0 -0
  426. data/{starter-app/vendor → vendor}/plugins/acts_as_tree/test/acts_as_tree_test.rb +0 -0
  427. data/{starter-app/vendor → vendor}/plugins/acts_as_tree/test/database.yml +0 -0
  428. data/{starter-app/vendor → vendor}/plugins/acts_as_tree/test/fixtures/mixin.rb +0 -0
  429. data/{starter-app/vendor → vendor}/plugins/acts_as_tree/test/fixtures/mixins.yml +0 -0
  430. data/{starter-app/vendor → vendor}/plugins/acts_as_tree/test/schema.rb +0 -0
  431. data/{starter-app/vendor → vendor}/plugins/attachment_fu/CHANGELOG +0 -0
  432. data/{starter-app/vendor → vendor}/plugins/attachment_fu/README +0 -0
  433. data/{starter-app/vendor → vendor}/plugins/attachment_fu/Rakefile +0 -0
  434. data/{starter-app/vendor → vendor}/plugins/attachment_fu/amazon_s3.yml.tpl +0 -0
  435. data/{starter-app/vendor → vendor}/plugins/attachment_fu/init.rb +0 -0
  436. data/{starter-app/vendor → vendor}/plugins/attachment_fu/install.rb +0 -0
  437. data/{starter-app/vendor → vendor}/plugins/attachment_fu/lib/geometry.rb +0 -0
  438. data/{starter-app/vendor → vendor}/plugins/attachment_fu/lib/technoweenie/attachment_fu.rb +0 -0
  439. data/{starter-app/vendor → vendor}/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/db_file_backend.rb +0 -0
  440. data/{starter-app/vendor → vendor}/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/file_system_backend.rb +0 -0
  441. data/{starter-app/vendor → vendor}/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/s3_backend.rb +0 -0
  442. data/{starter-app/vendor → vendor}/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/image_science_processor.rb +0 -0
  443. data/{starter-app/vendor → vendor}/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/mini_magick_processor.rb +0 -0
  444. data/{starter-app/vendor → vendor}/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/rmagick_processor.rb +0 -0
  445. data/{starter-app/vendor → vendor}/plugins/attachment_fu/test/amazon_s3.yml +0 -0
  446. data/{starter-app/vendor → vendor}/plugins/attachment_fu/test/backends/db_file_test.rb +0 -0
  447. data/{starter-app/vendor → vendor}/plugins/attachment_fu/test/backends/file_system_test.rb +0 -0
  448. data/{starter-app/vendor → vendor}/plugins/attachment_fu/test/backends/remote/s3_test.rb +0 -0
  449. data/{starter-app/vendor → vendor}/plugins/attachment_fu/test/base_attachment_tests.rb +0 -0
  450. data/{starter-app/vendor → vendor}/plugins/attachment_fu/test/basic_test.rb +0 -0
  451. data/{starter-app/vendor → vendor}/plugins/attachment_fu/test/database.yml +0 -0
  452. data/{starter-app/vendor → vendor}/plugins/attachment_fu/test/extra_attachment_test.rb +0 -0
  453. data/{starter-app/vendor → vendor}/plugins/attachment_fu/test/fixtures/attachment.rb +0 -0
  454. data/{starter-app/vendor → vendor}/plugins/attachment_fu/test/fixtures/files/fake/rails.png +0 -0
  455. data/{starter-app/vendor → vendor}/plugins/attachment_fu/test/fixtures/files/foo.txt +0 -0
  456. data/{starter-app/vendor/plugins/spree/assets/images → vendor/plugins/attachment_fu/test/fixtures/files}/rails.png +0 -0
  457. data/{starter-app/vendor → vendor}/plugins/attachment_fu/test/geometry_test.rb +0 -0
  458. data/{starter-app/vendor → vendor}/plugins/attachment_fu/test/processors/image_science_test.rb +0 -0
  459. data/{starter-app/vendor → vendor}/plugins/attachment_fu/test/processors/mini_magick_test.rb +0 -0
  460. data/{starter-app/vendor → vendor}/plugins/attachment_fu/test/processors/rmagick_test.rb +0 -0
  461. data/{starter-app/vendor → vendor}/plugins/attachment_fu/test/schema.rb +0 -0
  462. data/{starter-app/vendor → vendor}/plugins/attachment_fu/test/test_helper.rb +0 -0
  463. data/{starter-app/vendor → vendor}/plugins/attachment_fu/test/validation_test.rb +0 -0
  464. data/{starter-app/vendor → vendor}/plugins/calendar_date_select/CHANGELOG +0 -0
  465. data/{starter-app/vendor → vendor}/plugins/calendar_date_select/MIT-LICENSE +0 -0
  466. data/{starter-app/vendor → vendor}/plugins/calendar_date_select/README +0 -0
  467. data/{starter-app/vendor → vendor}/plugins/calendar_date_select/init.rb +0 -0
  468. data/{starter-app/vendor → vendor}/plugins/calendar_date_select/js_test/functional/cds_test.html +0 -0
  469. data/{starter-app/vendor → vendor}/plugins/calendar_date_select/js_test/prototype.js +0 -0
  470. data/{starter-app/vendor → vendor}/plugins/calendar_date_select/js_test/test.css +0 -0
  471. data/{starter-app/vendor → vendor}/plugins/calendar_date_select/js_test/unit/cds_helper_methods.html +0 -0
  472. data/{starter-app/vendor → vendor}/plugins/calendar_date_select/js_test/unittest.js +0 -0
  473. data/{starter-app/vendor → vendor}/plugins/calendar_date_select/lib/calendar_date_select.rb +0 -0
  474. data/{starter-app/vendor → vendor}/plugins/calendar_date_select/lib/includes_helper.rb +0 -0
  475. data/vendor/plugins/calendar_date_select/public/images/calendar_date_select/calendar.gif +0 -0
  476. data/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/calendar_date_select.js +439 -0
  477. data/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_american.js +34 -0
  478. data/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_euro_24hr.js +7 -0
  479. data/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_finnish.js +24 -0
  480. data/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_hyphen_ampm.js +36 -0
  481. data/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_italian.js +24 -0
  482. data/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/fi.js +10 -0
  483. data/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/blue.css +130 -0
  484. data/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/default.css +135 -0
  485. data/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/plain.css +128 -0
  486. data/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/red.css +135 -0
  487. data/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/silver.css +133 -0
  488. data/{starter-app/vendor → vendor}/plugins/calendar_date_select/test/functional/calendar_date_select_test.rb +0 -0
  489. data/{starter-app/vendor → vendor}/plugins/calendar_date_select/test/functional/helper_methods_test.rb +0 -0
  490. data/{starter-app/vendor → vendor}/plugins/calendar_date_select/test/test_helper.rb +0 -0
  491. data/vendor/plugins/enumerable_constants/README +4 -0
  492. data/vendor/plugins/enumerable_constants/Rakefile +22 -0
  493. data/vendor/plugins/enumerable_constants/init.rb +1 -0
  494. data/{starter-app/vendor/plugins/rspec_on_rails/generators/rspec/templates/previous_failures.txt → vendor/plugins/enumerable_constants/install.rb} +0 -0
  495. data/vendor/plugins/enumerable_constants/lib/enumerable_constants.rb +204 -0
  496. data/vendor/plugins/enumerable_constants/tasks/enumerable_constants_tasks.rake +4 -0
  497. data/vendor/plugins/enumerable_constants/test/enumerable_constants_test.rb +8 -0
  498. data/{starter-app/vendor → vendor}/plugins/in_place_editing/README +0 -0
  499. data/{starter-app/vendor → vendor}/plugins/in_place_editing/Rakefile +0 -0
  500. data/{starter-app/vendor → vendor}/plugins/in_place_editing/init.rb +0 -0
  501. data/{starter-app/vendor → vendor}/plugins/in_place_editing/lib/in_place_editing.rb +0 -0
  502. data/{starter-app/vendor → vendor}/plugins/in_place_editing/lib/in_place_macros_helper.rb +0 -0
  503. data/{starter-app/vendor → vendor}/plugins/in_place_editing/test/in_place_editing_test.rb +0 -0
  504. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/MIT-LICENSE +0 -0
  505. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/README +0 -0
  506. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/Rakefile +0 -0
  507. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/generators/rspec/CHANGES +0 -0
  508. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/generators/rspec/rspec_generator.rb +0 -0
  509. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/generators/rspec/templates/all_stories.rb +0 -0
  510. data/{starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/_partial.rhtml → vendor/plugins/rspec_on_rails/generators/rspec/templates/previous_failures.txt} +0 -0
  511. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/generators/rspec/templates/rcov.opts +0 -0
  512. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/generators/rspec/templates/script/spec +0 -0
  513. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/generators/rspec/templates/script/spec_server +0 -0
  514. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/generators/rspec/templates/spec.opts +0 -0
  515. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/generators/rspec/templates/spec_helper.rb +0 -0
  516. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/generators/rspec/templates/stories_helper.rb +0 -0
  517. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/generators/rspec_controller/USAGE +0 -0
  518. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/generators/rspec_controller/rspec_controller_generator.rb +0 -0
  519. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/generators/rspec_controller/templates/controller_spec.rb +0 -0
  520. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/generators/rspec_controller/templates/helper_spec.rb +0 -0
  521. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/generators/rspec_controller/templates/view_spec.rb +0 -0
  522. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/generators/rspec_model/USAGE +0 -0
  523. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/generators/rspec_model/rspec_model_generator.rb +0 -0
  524. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/generators/rspec_model/templates/model_spec.rb +0 -0
  525. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/generators/rspec_scaffold/rspec_scaffold_generator.rb +0 -0
  526. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/generators/rspec_scaffold/templates/controller_spec.rb +0 -0
  527. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/generators/rspec_scaffold/templates/edit_erb_spec.rb +0 -0
  528. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/generators/rspec_scaffold/templates/helper_spec.rb +0 -0
  529. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/generators/rspec_scaffold/templates/index_erb_spec.rb +0 -0
  530. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/generators/rspec_scaffold/templates/new_erb_spec.rb +0 -0
  531. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/generators/rspec_scaffold/templates/routing_spec.rb +0 -0
  532. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/generators/rspec_scaffold/templates/show_erb_spec.rb +0 -0
  533. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/init.rb +0 -0
  534. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/lib/autotest/discover.rb +0 -0
  535. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/lib/autotest/rails_rspec.rb +0 -0
  536. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/lib/spec/rails.rb +0 -0
  537. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/lib/spec/rails/example.rb +0 -0
  538. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/lib/spec/rails/example/assigns_hash_proxy.rb +0 -0
  539. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/lib/spec/rails/example/controller_example_group.rb +0 -0
  540. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/lib/spec/rails/example/functional_example_group.rb +0 -0
  541. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/lib/spec/rails/example/helper_example_group.rb +0 -0
  542. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/lib/spec/rails/example/ivar_proxy.rb +0 -0
  543. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/lib/spec/rails/example/model_example_group.rb +0 -0
  544. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/lib/spec/rails/example/rails_example_group.rb +0 -0
  545. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/lib/spec/rails/example/render_observer.rb +0 -0
  546. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/lib/spec/rails/example/view_example_group.rb +0 -0
  547. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/lib/spec/rails/extensions.rb +0 -0
  548. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/lib/spec/rails/extensions/action_controller/base.rb +0 -0
  549. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/lib/spec/rails/extensions/action_controller/rescue.rb +0 -0
  550. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/lib/spec/rails/extensions/action_controller/test_response.rb +0 -0
  551. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/lib/spec/rails/extensions/action_view/base.rb +0 -0
  552. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/lib/spec/rails/extensions/active_record/base.rb +0 -0
  553. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/lib/spec/rails/extensions/object.rb +0 -0
  554. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/lib/spec/rails/extensions/spec/example/configuration.rb +0 -0
  555. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/lib/spec/rails/extensions/spec/matchers/have.rb +0 -0
  556. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/lib/spec/rails/matchers.rb +0 -0
  557. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/lib/spec/rails/matchers/assert_select.rb +0 -0
  558. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/lib/spec/rails/matchers/have_text.rb +0 -0
  559. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/lib/spec/rails/matchers/redirect_to.rb +0 -0
  560. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/lib/spec/rails/matchers/render_template.rb +0 -0
  561. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/lib/spec/rails/story_adapter.rb +0 -0
  562. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/lib/spec/rails/version.rb +0 -0
  563. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec/rails/autotest/mappings_spec.rb +0 -0
  564. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec/rails/autotest/rails_rspec_spec.rb +0 -0
  565. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec/rails/example/assigns_hash_proxy_spec.rb +0 -0
  566. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec/rails/example/configuration_spec.rb +0 -0
  567. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec/rails/example/controller_isolation_spec.rb +0 -0
  568. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec/rails/example/controller_spec_spec.rb +0 -0
  569. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec/rails/example/example_group_factory_spec.rb +0 -0
  570. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec/rails/example/helper_spec_spec.rb +0 -0
  571. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec/rails/example/ivar_proxy_spec.rb +0 -0
  572. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec/rails/example/model_spec_spec.rb +0 -0
  573. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec/rails/example/shared_behaviour_spec.rb +0 -0
  574. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec/rails/example/test_unit_assertion_accessibility_spec.rb +0 -0
  575. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec/rails/example/view_spec_spec.rb +0 -0
  576. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec/rails/extensions/action_controller_rescue_action_spec.rb +0 -0
  577. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec/rails/extensions/action_view_base_spec.rb +0 -0
  578. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec/rails/extensions/active_record_spec.rb +0 -0
  579. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec/rails/matchers/assert_select_spec.rb +0 -0
  580. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec/rails/matchers/description_generation_spec.rb +0 -0
  581. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec/rails/matchers/errors_on_spec.rb +0 -0
  582. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec/rails/matchers/have_text_spec.rb +0 -0
  583. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec/rails/matchers/redirect_to_spec.rb +0 -0
  584. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec/rails/matchers/render_spec.rb +0 -0
  585. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec/rails/mocks/mock_model_spec.rb +0 -0
  586. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec/rails/sample_spec.rb +0 -0
  587. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec/rails/spec_server_spec.rb +0 -0
  588. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec/rails/spec_spec.rb +0 -0
  589. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec/rails_suite.rb +0 -0
  590. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec/spec_helper.rb +0 -0
  591. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/controllers/action_view_base_spec_controller.rb +0 -0
  592. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/controllers/controller_spec_controller.rb +0 -0
  593. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/controllers/redirect_spec_controller.rb +0 -0
  594. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/controllers/render_spec_controller.rb +0 -0
  595. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/controllers/rjs_spec_controller.rb +0 -0
  596. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/helpers/explicit_helper.rb +0 -0
  597. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/helpers/more_explicit_helper.rb +0 -0
  598. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/helpers/plugin_application_helper.rb +0 -0
  599. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/helpers/view_spec_helper.rb +0 -0
  600. data/{starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_setting_the_assigns_hash.rhtml → vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/_partial.rhtml} +0 -0
  601. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_setting_flash_after_session_reset.rhtml +0 -0
  602. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_setting_flash_before_session_reset.rhtml +0 -0
  603. data/{starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/_a_partial.rhtml → vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_setting_the_assigns_hash.rhtml} +0 -0
  604. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_with_errors_in_template.rhtml +0 -0
  605. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_with_template.rhtml +0 -0
  606. data/{starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/some_action.rhtml → vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/_a_partial.rhtml} +0 -0
  607. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/views/render_spec/some_action.js.rjs +0 -0
  608. data/{starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_partial_used_twice.rhtml → vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/some_action.rhtml} +0 -0
  609. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/views/render_spec/some_action.rjs +0 -0
  610. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/views/rjs_spec/_replacement_partial.rhtml +0 -0
  611. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/views/rjs_spec/hide_div.rjs +0 -0
  612. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/views/rjs_spec/hide_page_element.rjs +0 -0
  613. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/views/rjs_spec/insert_html.rjs +0 -0
  614. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/views/rjs_spec/replace.rjs +0 -0
  615. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/views/rjs_spec/replace_html.rjs +0 -0
  616. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/views/rjs_spec/replace_html_with_partial.rjs +0 -0
  617. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/views/rjs_spec/visual_effect.rjs +0 -0
  618. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/views/rjs_spec/visual_toggle_effect.rjs +0 -0
  619. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/views/tag_spec/no_tags.rhtml +0 -0
  620. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/views/tag_spec/single_div_with_no_attributes.rhtml +0 -0
  621. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/views/tag_spec/single_div_with_one_attribute.rhtml +0 -0
  622. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/views/view_spec/_partial.rhtml +0 -0
  623. data/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_partial_used_twice.rhtml +0 -0
  624. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/views/view_spec/_partial_with_local_variable.rhtml +0 -0
  625. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/views/view_spec/_partial_with_sub_partial.rhtml +0 -0
  626. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/views/view_spec/_spacer.rhtml +0 -0
  627. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/views/view_spec/accessor.rhtml +0 -0
  628. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/views/view_spec/entry_form.rhtml +0 -0
  629. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/views/view_spec/explicit_helper.rhtml +0 -0
  630. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/views/view_spec/foo/show.rhtml +0 -0
  631. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/views/view_spec/implicit_helper.rhtml +0 -0
  632. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/views/view_spec/multiple_helpers.rhtml +0 -0
  633. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/views/view_spec/template_with_partial.rhtml +0 -0
  634. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/views/view_spec/template_with_partial_using_collection.rhtml +0 -0
  635. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/spec_resources/views/view_spec/template_with_partial_with_array.rhtml +0 -0
  636. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/stories/all.rb +0 -0
  637. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/stories/helper.rb +0 -0
  638. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/stories/steps/people.rb +0 -0
  639. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/stories/transactions_should_rollback +0 -0
  640. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/stories/transactions_should_rollback.rb +0 -0
  641. data/{starter-app/vendor → vendor}/plugins/rspec_on_rails/tasks/rspec.rake +0 -0
  642. data/vendor/rails/TAG_rel_2-0-2 +0 -0
  643. data/vendor/rails/actionmailer/CHANGELOG +325 -0
  644. data/vendor/rails/actionmailer/MIT-LICENSE +21 -0
  645. data/vendor/rails/actionmailer/README +145 -0
  646. data/vendor/rails/actionmailer/Rakefile +96 -0
  647. data/vendor/rails/actionmailer/install.rb +30 -0
  648. data/vendor/rails/actionmailer/lib/action_mailer.rb +52 -0
  649. data/vendor/rails/actionmailer/lib/action_mailer/adv_attr_accessor.rb +30 -0
  650. data/vendor/rails/actionmailer/lib/action_mailer/base.rb +603 -0
  651. data/vendor/rails/actionmailer/lib/action_mailer/helpers.rb +111 -0
  652. data/vendor/rails/actionmailer/lib/action_mailer/mail_helper.rb +19 -0
  653. data/vendor/rails/actionmailer/lib/action_mailer/part.rb +110 -0
  654. data/vendor/rails/actionmailer/lib/action_mailer/part_container.rb +51 -0
  655. data/vendor/rails/actionmailer/lib/action_mailer/quoting.rb +59 -0
  656. data/vendor/rails/actionmailer/lib/action_mailer/test_case.rb +59 -0
  657. data/vendor/rails/actionmailer/lib/action_mailer/test_helper.rb +67 -0
  658. data/vendor/rails/actionmailer/lib/action_mailer/utils.rb +8 -0
  659. data/vendor/rails/actionmailer/lib/action_mailer/vendor.rb +14 -0
  660. data/vendor/rails/actionmailer/lib/action_mailer/vendor/text-format-0.6.3/text/format.rb +1466 -0
  661. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail.rb +4 -0
  662. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/Makefile +19 -0
  663. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/address.rb +245 -0
  664. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/attachments.rb +47 -0
  665. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/base64.rb +52 -0
  666. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/compat.rb +39 -0
  667. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/config.rb +71 -0
  668. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/core_extensions.rb +67 -0
  669. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/encode.rb +481 -0
  670. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/facade.rb +552 -0
  671. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/header.rb +931 -0
  672. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/info.rb +35 -0
  673. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/interface.rb +540 -0
  674. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/loader.rb +1 -0
  675. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/mail.rb +462 -0
  676. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/mailbox.rb +435 -0
  677. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/mbox.rb +1 -0
  678. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/net.rb +282 -0
  679. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/obsolete.rb +137 -0
  680. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/parser.rb +1475 -0
  681. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/parser.y +381 -0
  682. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/port.rb +379 -0
  683. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/quoting.rb +142 -0
  684. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/scanner.rb +43 -0
  685. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/scanner_r.rb +263 -0
  686. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/stringio.rb +279 -0
  687. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/tmail.rb +1 -0
  688. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/utils.rb +281 -0
  689. data/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.1.0/tmail/version.rb +38 -0
  690. data/vendor/rails/actionmailer/lib/action_mailer/version.rb +9 -0
  691. data/vendor/rails/actionmailer/lib/actionmailer.rb +1 -0
  692. data/vendor/rails/actionmailer/test/abstract_unit.rb +49 -0
  693. data/vendor/rails/actionmailer/test/delivery_method_test.rb +51 -0
  694. data/vendor/rails/actionmailer/test/fixtures/first_mailer/share.erb +1 -0
  695. data/vendor/rails/actionmailer/test/fixtures/first_mailer/share.rhtml +0 -0
  696. data/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_example_helper.erb +1 -0
  697. data/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_example_helper.rhtml +0 -0
  698. data/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_helper.erb +1 -0
  699. data/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_helper.rhtml +0 -0
  700. data/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_helper_method.erb +1 -0
  701. data/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_helper_method.rhtml +0 -0
  702. data/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_mail_helper.erb +5 -0
  703. data/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_mail_helper.rhtml +0 -0
  704. data/vendor/rails/actionmailer/test/fixtures/helpers/example_helper.rb +5 -0
  705. data/vendor/rails/actionmailer/test/fixtures/path.with.dots/funky_path_mailer/multipart_with_template_path_with_dots.erb +1 -0
  706. data/vendor/rails/actionmailer/test/fixtures/path.with.dots/funky_path_mailer/multipart_with_template_path_with_dots.rhtml +0 -0
  707. data/vendor/rails/actionmailer/test/fixtures/path.with.dots/multipart_with_template_path_with_dots.rhtml +0 -0
  708. data/vendor/rails/actionmailer/test/fixtures/raw_base64_decoded_string +0 -0
  709. data/vendor/rails/actionmailer/test/fixtures/raw_base64_encoded_string +1 -0
  710. data/vendor/rails/actionmailer/test/fixtures/raw_email +14 -0
  711. data/vendor/rails/actionmailer/test/fixtures/raw_email10 +20 -0
  712. data/vendor/rails/actionmailer/test/fixtures/raw_email12 +32 -0
  713. data/vendor/rails/actionmailer/test/fixtures/raw_email13 +29 -0
  714. data/vendor/rails/actionmailer/test/fixtures/raw_email2 +114 -0
  715. data/vendor/rails/actionmailer/test/fixtures/raw_email3 +70 -0
  716. data/vendor/rails/actionmailer/test/fixtures/raw_email4 +59 -0
  717. data/vendor/rails/actionmailer/test/fixtures/raw_email5 +19 -0
  718. data/vendor/rails/actionmailer/test/fixtures/raw_email6 +20 -0
  719. data/vendor/rails/actionmailer/test/fixtures/raw_email7 +66 -0
  720. data/vendor/rails/actionmailer/test/fixtures/raw_email8 +47 -0
  721. data/vendor/rails/actionmailer/test/fixtures/raw_email9 +28 -0
  722. data/vendor/rails/actionmailer/test/fixtures/raw_email_quoted_with_0d0a +14 -0
  723. data/vendor/rails/actionmailer/test/fixtures/raw_email_with_invalid_characters_in_content_type +104 -0
  724. data/vendor/rails/actionmailer/test/fixtures/raw_email_with_nested_attachment +100 -0
  725. data/vendor/rails/actionmailer/test/fixtures/raw_email_with_partially_quoted_subject +14 -0
  726. data/vendor/rails/actionmailer/test/fixtures/second_mailer/share.erb +1 -0
  727. data/vendor/rails/actionmailer/test/fixtures/second_mailer/share.rhtml +0 -0
  728. data/vendor/rails/actionmailer/test/fixtures/templates/signed_up.erb +3 -0
  729. data/vendor/rails/actionmailer/test/fixtures/templates/signed_up.rhtml +0 -0
  730. data/vendor/rails/actionmailer/test/fixtures/test_mailer/_subtemplate.text.plain.erb +1 -0
  731. data/vendor/rails/actionmailer/test/fixtures/test_mailer/custom_templating_extension.text.html.haml +6 -0
  732. data/vendor/rails/actionmailer/test/fixtures/test_mailer/custom_templating_extension.text.plain.haml +6 -0
  733. data/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.ignored.erb +1 -0
  734. data/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.ignored.rhtml +0 -0
  735. data/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.html.erb +10 -0
  736. data/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.html.rhtml +0 -0
  737. data/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.plain.erb +2 -0
  738. data/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.plain.rhtml +0 -0
  739. data/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.yaml.erb +1 -0
  740. data/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.yaml.rhtml +0 -0
  741. data/vendor/rails/actionmailer/test/fixtures/test_mailer/included_subtemplate.text.plain.erb +1 -0
  742. data/vendor/rails/actionmailer/test/fixtures/test_mailer/rxml_template.builder +2 -0
  743. data/vendor/rails/actionmailer/test/fixtures/test_mailer/rxml_template.rxml +2 -0
  744. data/vendor/rails/actionmailer/test/fixtures/test_mailer/signed_up.erb +3 -0
  745. data/vendor/rails/actionmailer/test/fixtures/test_mailer/signed_up.rhtml +0 -0
  746. data/vendor/rails/actionmailer/test/fixtures/test_mailer/signed_up_with_url.erb +5 -0
  747. data/vendor/rails/actionmailer/test/fixtures/test_mailer/signed_up_with_url.rhtml +0 -0
  748. data/vendor/rails/actionmailer/test/mail_helper_test.rb +95 -0
  749. data/vendor/rails/actionmailer/test/mail_render_test.rb +122 -0
  750. data/vendor/rails/actionmailer/test/mail_service_test.rb +939 -0
  751. data/vendor/rails/actionmailer/test/quoting_test.rb +111 -0
  752. data/vendor/rails/actionmailer/test/test_helper_test.rb +117 -0
  753. data/vendor/rails/actionmailer/test/tmail_test.rb +22 -0
  754. data/vendor/rails/actionmailer/test/url_test.rb +76 -0
  755. data/vendor/rails/actionpack/CHANGELOG +4606 -0
  756. data/vendor/rails/actionpack/MIT-LICENSE +21 -0
  757. data/vendor/rails/actionpack/README +469 -0
  758. data/vendor/rails/actionpack/RUNNING_UNIT_TESTS +24 -0
  759. data/vendor/rails/actionpack/Rakefile +153 -0
  760. data/vendor/rails/actionpack/install.rb +30 -0
  761. data/vendor/rails/actionpack/lib/action_controller.rb +79 -0
  762. data/vendor/rails/actionpack/lib/action_controller/assertions.rb +69 -0
  763. data/vendor/rails/actionpack/lib/action_controller/assertions/dom_assertions.rb +39 -0
  764. data/vendor/rails/actionpack/lib/action_controller/assertions/model_assertions.rb +19 -0
  765. data/vendor/rails/actionpack/lib/action_controller/assertions/response_assertions.rb +166 -0
  766. data/vendor/rails/actionpack/lib/action_controller/assertions/routing_assertions.rb +143 -0
  767. data/vendor/rails/actionpack/lib/action_controller/assertions/selector_assertions.rb +640 -0
  768. data/vendor/rails/actionpack/lib/action_controller/assertions/tag_assertions.rb +130 -0
  769. data/vendor/rails/actionpack/lib/action_controller/base.rb +1295 -0
  770. data/vendor/rails/actionpack/lib/action_controller/benchmarking.rb +94 -0
  771. data/vendor/rails/actionpack/lib/action_controller/caching.rb +683 -0
  772. data/vendor/rails/actionpack/lib/action_controller/cgi_ext.rb +16 -0
  773. data/vendor/rails/actionpack/lib/action_controller/cgi_ext/cookie.rb +106 -0
  774. data/vendor/rails/actionpack/lib/action_controller/cgi_ext/query_extension.rb +22 -0
  775. data/vendor/rails/actionpack/lib/action_controller/cgi_ext/session.rb +73 -0
  776. data/vendor/rails/actionpack/lib/action_controller/cgi_ext/stdinput.rb +23 -0
  777. data/vendor/rails/actionpack/lib/action_controller/cgi_process.rb +221 -0
  778. data/vendor/rails/actionpack/lib/action_controller/components.rb +165 -0
  779. data/vendor/rails/actionpack/lib/action_controller/cookies.rb +84 -0
  780. data/vendor/rails/actionpack/lib/action_controller/dispatcher.rb +195 -0
  781. data/vendor/rails/actionpack/lib/action_controller/filters.rb +767 -0
  782. data/vendor/rails/actionpack/lib/action_controller/flash.rb +177 -0
  783. data/vendor/rails/actionpack/lib/action_controller/helpers.rb +204 -0
  784. data/vendor/rails/actionpack/lib/action_controller/http_authentication.rb +126 -0
  785. data/vendor/rails/actionpack/lib/action_controller/integration.rb +581 -0
  786. data/vendor/rails/actionpack/lib/action_controller/layout.rb +326 -0
  787. data/vendor/rails/actionpack/lib/action_controller/mime_responds.rb +170 -0
  788. data/vendor/rails/actionpack/lib/action_controller/mime_type.rb +163 -0
  789. data/vendor/rails/actionpack/lib/action_controller/mime_types.rb +20 -0
  790. data/vendor/rails/actionpack/lib/action_controller/polymorphic_routes.rb +88 -0
  791. data/vendor/rails/actionpack/lib/action_controller/record_identifier.rb +91 -0
  792. data/vendor/rails/actionpack/lib/action_controller/request.rb +730 -0
  793. data/vendor/rails/actionpack/lib/action_controller/request_forgery_protection.rb +132 -0
  794. data/vendor/rails/actionpack/lib/action_controller/request_profiler.rb +138 -0
  795. data/vendor/rails/actionpack/lib/action_controller/rescue.rb +258 -0
  796. data/vendor/rails/actionpack/lib/action_controller/resources.rb +529 -0
  797. data/vendor/rails/actionpack/lib/action_controller/response.rb +76 -0
  798. data/vendor/rails/actionpack/lib/action_controller/routing.rb +1499 -0
  799. data/vendor/rails/actionpack/lib/action_controller/routing_optimisation.rb +119 -0
  800. data/vendor/rails/actionpack/lib/action_controller/session/active_record_store.rb +336 -0
  801. data/vendor/rails/actionpack/lib/action_controller/session/cookie_store.rb +164 -0
  802. data/vendor/rails/actionpack/lib/action_controller/session/drb_server.rb +32 -0
  803. data/vendor/rails/actionpack/lib/action_controller/session/drb_store.rb +35 -0
  804. data/vendor/rails/actionpack/lib/action_controller/session/mem_cache_store.rb +98 -0
  805. data/vendor/rails/actionpack/lib/action_controller/session_management.rb +151 -0
  806. data/vendor/rails/actionpack/lib/action_controller/status_codes.rb +88 -0
  807. data/vendor/rails/actionpack/lib/action_controller/streaming.rb +141 -0
  808. data/vendor/rails/actionpack/lib/action_controller/templates/rescues/_request_and_response.erb +24 -0
  809. data/vendor/rails/actionpack/lib/action_controller/templates/rescues/_trace.erb +26 -0
  810. data/vendor/rails/actionpack/lib/action_controller/templates/rescues/diagnostics.erb +11 -0
  811. data/vendor/rails/actionpack/lib/action_controller/templates/rescues/layout.erb +29 -0
  812. data/vendor/rails/actionpack/lib/action_controller/templates/rescues/missing_template.erb +2 -0
  813. data/vendor/rails/actionpack/lib/action_controller/templates/rescues/routing_error.erb +10 -0
  814. data/vendor/rails/actionpack/lib/action_controller/templates/rescues/template_error.erb +21 -0
  815. data/vendor/rails/actionpack/lib/action_controller/templates/rescues/unknown_action.erb +2 -0
  816. data/vendor/rails/actionpack/lib/action_controller/test_case.rb +53 -0
  817. data/vendor/rails/actionpack/lib/action_controller/test_process.rb +520 -0
  818. data/vendor/rails/actionpack/lib/action_controller/url_rewriter.rb +135 -0
  819. data/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/document.rb +68 -0
  820. data/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/node.rb +530 -0
  821. data/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/sanitizer.rb +173 -0
  822. data/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/selector.rb +828 -0
  823. data/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/tokenizer.rb +105 -0
  824. data/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/version.rb +11 -0
  825. data/vendor/rails/actionpack/lib/action_controller/verification.rb +114 -0
  826. data/vendor/rails/actionpack/lib/action_pack.rb +24 -0
  827. data/vendor/rails/actionpack/lib/action_pack/version.rb +9 -0
  828. data/vendor/rails/actionpack/lib/action_view.rb +37 -0
  829. data/vendor/rails/actionpack/lib/action_view/base.rb +642 -0
  830. data/vendor/rails/actionpack/lib/action_view/compiled_templates.rb +69 -0
  831. data/vendor/rails/actionpack/lib/action_view/helpers/active_record_helper.rb +255 -0
  832. data/vendor/rails/actionpack/lib/action_view/helpers/asset_tag_helper.rb +548 -0
  833. data/vendor/rails/actionpack/lib/action_view/helpers/atom_feed_helper.rb +111 -0
  834. data/vendor/rails/actionpack/lib/action_view/helpers/benchmark_helper.rb +31 -0
  835. data/vendor/rails/actionpack/lib/action_view/helpers/cache_helper.rb +39 -0
  836. data/vendor/rails/actionpack/lib/action_view/helpers/capture_helper.rb +162 -0
  837. data/vendor/rails/actionpack/lib/action_view/helpers/date_helper.rb +689 -0
  838. data/vendor/rails/actionpack/lib/action_view/helpers/debug_helper.rb +31 -0
  839. data/vendor/rails/actionpack/lib/action_view/helpers/form_helper.rb +689 -0
  840. data/vendor/rails/actionpack/lib/action_view/helpers/form_options_helper.rb +425 -0
  841. data/vendor/rails/actionpack/lib/action_view/helpers/form_tag_helper.rb +432 -0
  842. data/vendor/rails/actionpack/lib/action_view/helpers/javascript_helper.rb +217 -0
  843. data/vendor/rails/actionpack/lib/action_view/helpers/javascripts/controls.js +963 -0
  844. data/vendor/rails/actionpack/lib/action_view/helpers/javascripts/dragdrop.js +972 -0
  845. data/vendor/rails/actionpack/lib/action_view/helpers/javascripts/effects.js +1120 -0
  846. data/vendor/rails/actionpack/lib/action_view/helpers/javascripts/prototype.js +4225 -0
  847. data/vendor/rails/actionpack/lib/action_view/helpers/number_helper.rb +179 -0
  848. data/vendor/rails/actionpack/lib/action_view/helpers/prototype_helper.rb +1268 -0
  849. data/vendor/rails/actionpack/lib/action_view/helpers/record_identification_helper.rb +20 -0
  850. data/vendor/rails/actionpack/lib/action_view/helpers/record_tag_helper.rb +59 -0
  851. data/vendor/rails/actionpack/lib/action_view/helpers/sanitize_helper.rb +223 -0
  852. data/vendor/rails/actionpack/lib/action_view/helpers/scriptaculous_helper.rb +199 -0
  853. data/vendor/rails/actionpack/lib/action_view/helpers/tag_helper.rb +133 -0
  854. data/vendor/rails/actionpack/lib/action_view/helpers/text_helper.rb +479 -0
  855. data/vendor/rails/actionpack/lib/action_view/helpers/url_helper.rb +524 -0
  856. data/vendor/rails/actionpack/lib/action_view/partials.rb +200 -0
  857. data/vendor/rails/actionpack/lib/action_view/template_error.rb +102 -0
  858. data/vendor/rails/actionpack/lib/action_view/template_handler.rb +17 -0
  859. data/vendor/rails/actionpack/lib/action_view/template_handlers/builder.rb +19 -0
  860. data/vendor/rails/actionpack/lib/action_view/template_handlers/erb.rb +21 -0
  861. data/vendor/rails/actionpack/lib/action_view/template_handlers/rjs.rb +14 -0
  862. data/vendor/rails/actionpack/lib/actionpack.rb +1 -0
  863. data/vendor/rails/actionpack/test/abstract_unit.rb +36 -0
  864. data/vendor/rails/actionpack/test/action_view_test.rb +44 -0
  865. data/vendor/rails/actionpack/test/active_record_unit.rb +108 -0
  866. data/vendor/rails/actionpack/test/activerecord/active_record_store_test.rb +142 -0
  867. data/vendor/rails/actionpack/test/activerecord/render_partial_with_record_identification_test.rb +74 -0
  868. data/vendor/rails/actionpack/test/controller/action_pack_assertions_test.rb +492 -0
  869. data/vendor/rails/actionpack/test/controller/addresses_render_test.rb +43 -0
  870. data/vendor/rails/actionpack/test/controller/assert_select_test.rb +682 -0
  871. data/vendor/rails/actionpack/test/controller/base_test.rb +134 -0
  872. data/vendor/rails/actionpack/test/controller/benchmark_test.rb +33 -0
  873. data/vendor/rails/actionpack/test/controller/caching_test.rb +349 -0
  874. data/vendor/rails/actionpack/test/controller/capture_test.rb +89 -0
  875. data/vendor/rails/actionpack/test/controller/cgi_test.rb +115 -0
  876. data/vendor/rails/actionpack/test/controller/components_test.rb +140 -0
  877. data/vendor/rails/actionpack/test/controller/content_type_test.rb +139 -0
  878. data/vendor/rails/actionpack/test/controller/controller_fixtures/app/controllers/admin/user_controller.rb +0 -0
  879. data/vendor/rails/actionpack/test/controller/controller_fixtures/app/controllers/user_controller.rb +0 -0
  880. data/vendor/rails/actionpack/test/controller/controller_fixtures/vendor/plugins/bad_plugin/lib/plugin_controller.rb +0 -0
  881. data/vendor/rails/actionpack/test/controller/cookie_test.rb +135 -0
  882. data/vendor/rails/actionpack/test/controller/custom_handler_test.rb +41 -0
  883. data/vendor/rails/actionpack/test/controller/deprecation/deprecated_base_methods_test.rb +37 -0
  884. data/vendor/rails/actionpack/test/controller/dispatcher_test.rb +123 -0
  885. data/vendor/rails/actionpack/test/controller/fake_controllers.rb +16 -0
  886. data/vendor/rails/actionpack/test/controller/fake_models.rb +5 -0
  887. data/vendor/rails/actionpack/test/controller/filter_params_test.rb +43 -0
  888. data/vendor/rails/actionpack/test/controller/filters_test.rb +856 -0
  889. data/vendor/rails/actionpack/test/controller/flash_test.rb +146 -0
  890. data/vendor/rails/actionpack/test/controller/fragment_store_setting_test.rb +47 -0
  891. data/vendor/rails/actionpack/test/controller/helper_test.rb +206 -0
  892. data/vendor/rails/actionpack/test/controller/html-scanner/document_test.rb +124 -0
  893. data/vendor/rails/actionpack/test/controller/html-scanner/node_test.rb +69 -0
  894. data/vendor/rails/actionpack/test/controller/html-scanner/sanitizer_test.rb +250 -0
  895. data/vendor/rails/actionpack/test/controller/html-scanner/tag_node_test.rb +239 -0
  896. data/vendor/rails/actionpack/test/controller/html-scanner/text_node_test.rb +51 -0
  897. data/vendor/rails/actionpack/test/controller/html-scanner/tokenizer_test.rb +125 -0
  898. data/vendor/rails/actionpack/test/controller/http_authentication_test.rb +54 -0
  899. data/vendor/rails/actionpack/test/controller/integration_test.rb +255 -0
  900. data/vendor/rails/actionpack/test/controller/layout_test.rb +239 -0
  901. data/vendor/rails/actionpack/test/controller/mime_responds_test.rb +506 -0
  902. data/vendor/rails/actionpack/test/controller/mime_type_test.rb +55 -0
  903. data/vendor/rails/actionpack/test/controller/new_render_test.rb +832 -0
  904. data/vendor/rails/actionpack/test/controller/polymorphic_routes_test.rb +98 -0
  905. data/vendor/rails/actionpack/test/controller/record_identifier_test.rb +103 -0
  906. data/vendor/rails/actionpack/test/controller/redirect_test.rb +258 -0
  907. data/vendor/rails/actionpack/test/controller/render_test.rb +464 -0
  908. data/vendor/rails/actionpack/test/controller/request_forgery_protection_test.rb +217 -0
  909. data/vendor/rails/actionpack/test/controller/request_test.rb +836 -0
  910. data/vendor/rails/actionpack/test/controller/rescue_test.rb +501 -0
  911. data/vendor/rails/actionpack/test/controller/resources_test.rb +787 -0
  912. data/vendor/rails/actionpack/test/controller/routing_test.rb +2203 -0
  913. data/vendor/rails/actionpack/test/controller/selector_test.rb +628 -0
  914. data/vendor/rails/actionpack/test/controller/send_file_test.rb +127 -0
  915. data/vendor/rails/actionpack/test/controller/session/cookie_store_test.rb +246 -0
  916. data/vendor/rails/actionpack/test/controller/session/mem_cache_store_test.rb +182 -0
  917. data/vendor/rails/actionpack/test/controller/session_fixation_test.rb +89 -0
  918. data/vendor/rails/actionpack/test/controller/session_management_test.rb +156 -0
  919. data/vendor/rails/actionpack/test/controller/test_test.rb +623 -0
  920. data/vendor/rails/actionpack/test/controller/url_rewriter_test.rb +246 -0
  921. data/vendor/rails/actionpack/test/controller/verification_test.rb +253 -0
  922. data/vendor/rails/actionpack/test/controller/view_paths_test.rb +137 -0
  923. data/vendor/rails/actionpack/test/controller/webservice_test.rb +184 -0
  924. data/vendor/rails/actionpack/test/fixtures/addresses/list.erb +1 -0
  925. data/vendor/rails/actionpack/test/fixtures/companies.yml +24 -0
  926. data/vendor/rails/actionpack/test/fixtures/company.rb +9 -0
  927. data/vendor/rails/actionpack/test/fixtures/content_type/render_default_content_types_for_respond_to.rhtml +1 -0
  928. data/vendor/rails/actionpack/test/fixtures/content_type/render_default_for_rhtml.rhtml +1 -0
  929. data/vendor/rails/actionpack/test/fixtures/content_type/render_default_for_rjs.rjs +1 -0
  930. data/vendor/rails/actionpack/test/fixtures/content_type/render_default_for_rxml.rxml +1 -0
  931. data/vendor/rails/actionpack/test/fixtures/db_definitions/sqlite.sql +43 -0
  932. data/vendor/rails/actionpack/test/fixtures/developer.rb +9 -0
  933. data/vendor/rails/actionpack/test/fixtures/developers.yml +21 -0
  934. data/vendor/rails/actionpack/test/fixtures/developers_projects.yml +13 -0
  935. data/vendor/rails/actionpack/test/fixtures/fun/games/hello_world.erb +1 -0
  936. data/vendor/rails/actionpack/test/fixtures/helpers/abc_helper.rb +5 -0
  937. data/vendor/rails/actionpack/test/fixtures/helpers/fun/games_helper.rb +3 -0
  938. data/vendor/rails/actionpack/test/fixtures/helpers/fun/pdf_helper.rb +3 -0
  939. data/vendor/rails/actionpack/test/fixtures/layout_tests/alt/hello.rhtml +1 -0
  940. data/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/controller_name_space/nested.rhtml +1 -0
  941. data/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/item.rhtml +1 -0
  942. data/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/layout_test.rhtml +1 -0
  943. data/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/multiple_extensions.html.erb +1 -0
  944. data/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/third_party_template_library.mab +1 -0
  945. data/vendor/rails/actionpack/test/fixtures/layout_tests/views/hello.rhtml +1 -0
  946. data/vendor/rails/actionpack/test/fixtures/layouts/builder.builder +3 -0
  947. data/vendor/rails/actionpack/test/fixtures/layouts/standard.erb +1 -0
  948. data/vendor/rails/actionpack/test/fixtures/layouts/talk_from_action.erb +2 -0
  949. data/vendor/rails/actionpack/test/fixtures/layouts/yield.erb +2 -0
  950. data/vendor/rails/actionpack/test/fixtures/multipart/binary_file +0 -0
  951. data/vendor/rails/actionpack/test/fixtures/multipart/bracketed_param +5 -0
  952. data/vendor/rails/actionpack/test/fixtures/multipart/large_text_file +10 -0
  953. data/vendor/rails/actionpack/test/fixtures/multipart/mixed_files +0 -0
  954. data/vendor/rails/actionpack/test/fixtures/multipart/mona_lisa.jpg +0 -0
  955. data/vendor/rails/actionpack/test/fixtures/multipart/single_parameter +5 -0
  956. data/vendor/rails/actionpack/test/fixtures/multipart/text_file +10 -0
  957. data/vendor/rails/actionpack/test/fixtures/override/test/hello_world.erb +1 -0
  958. data/vendor/rails/actionpack/test/fixtures/override2/layouts/test/sub.erb +1 -0
  959. data/vendor/rails/actionpack/test/fixtures/post_test/layouts/post.html.erb +1 -0
  960. data/vendor/rails/actionpack/test/fixtures/post_test/layouts/super_post.iphone.erb +1 -0
  961. data/vendor/rails/actionpack/test/fixtures/post_test/post/index.html.erb +1 -0
  962. data/vendor/rails/actionpack/test/fixtures/post_test/post/index.iphone.erb +1 -0
  963. data/vendor/rails/actionpack/test/fixtures/post_test/super_post/index.html.erb +1 -0
  964. data/vendor/rails/actionpack/test/fixtures/post_test/super_post/index.iphone.erb +1 -0
  965. data/vendor/rails/actionpack/test/fixtures/project.rb +3 -0
  966. data/vendor/rails/actionpack/test/fixtures/projects.yml +7 -0
  967. data/vendor/rails/actionpack/test/fixtures/public/404.html +1 -0
  968. data/vendor/rails/actionpack/test/fixtures/public/500.html +1 -0
  969. data/vendor/rails/actionpack/test/fixtures/public/images/rails.png +0 -0
  970. data/vendor/rails/actionpack/test/fixtures/public/javascripts/application.js +0 -0
  971. data/vendor/rails/actionpack/test/fixtures/public/javascripts/bank.js +1 -0
  972. data/vendor/rails/actionpack/test/fixtures/public/javascripts/robber.js +1 -0
  973. data/vendor/rails/actionpack/test/fixtures/public/stylesheets/bank.css +1 -0
  974. data/vendor/rails/actionpack/test/fixtures/public/stylesheets/robber.css +1 -0
  975. data/vendor/rails/actionpack/test/fixtures/replies.yml +15 -0
  976. data/vendor/rails/actionpack/test/fixtures/reply.rb +6 -0
  977. data/vendor/rails/actionpack/test/fixtures/respond_to/all_types_with_layout.html.erb +1 -0
  978. data/vendor/rails/actionpack/test/fixtures/respond_to/all_types_with_layout.js.rjs +1 -0
  979. data/vendor/rails/actionpack/test/fixtures/respond_to/custom_constant_handling_without_block.mobile.erb +1 -0
  980. data/vendor/rails/actionpack/test/fixtures/respond_to/iphone_with_html_response_type.html.erb +1 -0
  981. data/vendor/rails/actionpack/test/fixtures/respond_to/iphone_with_html_response_type.iphone.erb +1 -0
  982. data/vendor/rails/actionpack/test/fixtures/respond_to/layouts/missing.html.erb +1 -0
  983. data/vendor/rails/actionpack/test/fixtures/respond_to/layouts/standard.html.erb +1 -0
  984. data/vendor/rails/actionpack/test/fixtures/respond_to/layouts/standard.iphone.erb +1 -0
  985. data/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults.html.erb +1 -0
  986. data/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults.js.rjs +1 -0
  987. data/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults.xml.builder +1 -0
  988. data/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults_with_type_list.html.erb +1 -0
  989. data/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults_with_type_list.js.rjs +1 -0
  990. data/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults_with_type_list.xml.builder +1 -0
  991. data/vendor/rails/actionpack/test/fixtures/scope/test/modgreet.erb +1 -0
  992. data/vendor/rails/actionpack/test/fixtures/test/_customer.erb +1 -0
  993. data/vendor/rails/actionpack/test/fixtures/test/_customer_greeting.erb +1 -0
  994. data/vendor/rails/actionpack/test/fixtures/test/_hash_greeting.erb +1 -0
  995. data/vendor/rails/actionpack/test/fixtures/test/_hash_object.erb +2 -0
  996. data/vendor/rails/actionpack/test/fixtures/test/_hello.builder +1 -0
  997. data/vendor/rails/actionpack/test/fixtures/test/_layout_for_partial.html.erb +3 -0
  998. data/vendor/rails/actionpack/test/fixtures/test/_partial.erb +1 -0
  999. data/vendor/rails/actionpack/test/fixtures/test/_partial.html.erb +1 -0
  1000. data/vendor/rails/actionpack/test/fixtures/test/_partial.js.erb +1 -0
  1001. data/vendor/rails/actionpack/test/fixtures/test/_partial_for_use_in_layout.html.erb +1 -0
  1002. data/vendor/rails/actionpack/test/fixtures/test/_partial_only.erb +1 -0
  1003. data/vendor/rails/actionpack/test/fixtures/test/_person.erb +2 -0
  1004. data/vendor/rails/actionpack/test/fixtures/test/action_talk_to_layout.erb +2 -0
  1005. data/vendor/rails/actionpack/test/fixtures/test/block_content_for.erb +2 -0
  1006. data/vendor/rails/actionpack/test/fixtures/test/calling_partial_with_layout.html.erb +1 -0
  1007. data/vendor/rails/actionpack/test/fixtures/test/capturing.erb +4 -0
  1008. data/vendor/rails/actionpack/test/fixtures/test/content_for.erb +2 -0
  1009. data/vendor/rails/actionpack/test/fixtures/test/content_for_concatenated.erb +3 -0
  1010. data/vendor/rails/actionpack/test/fixtures/test/content_for_with_parameter.erb +2 -0
  1011. data/vendor/rails/actionpack/test/fixtures/test/delete_with_js.rjs +2 -0
  1012. data/vendor/rails/actionpack/test/fixtures/test/dot.directory/render_file_with_ivar.erb +1 -0
  1013. data/vendor/rails/actionpack/test/fixtures/test/enum_rjs_test.rjs +6 -0
  1014. data/vendor/rails/actionpack/test/fixtures/test/erb_content_for.erb +2 -0
  1015. data/vendor/rails/actionpack/test/fixtures/test/formatted_html_erb.html.erb +1 -0
  1016. data/vendor/rails/actionpack/test/fixtures/test/formatted_xml_erb.builder +1 -0
  1017. data/vendor/rails/actionpack/test/fixtures/test/formatted_xml_erb.html.erb +1 -0
  1018. data/vendor/rails/actionpack/test/fixtures/test/formatted_xml_erb.xml.erb +1 -0
  1019. data/vendor/rails/actionpack/test/fixtures/test/greeting.erb +1 -0
  1020. data/vendor/rails/actionpack/test/fixtures/test/hello.builder +4 -0
  1021. data/vendor/rails/actionpack/test/fixtures/test/hello_world.erb +1 -0
  1022. data/vendor/rails/actionpack/test/fixtures/test/hello_world_container.builder +3 -0
  1023. data/vendor/rails/actionpack/test/fixtures/test/hello_world_from_rxml.builder +4 -0
  1024. data/vendor/rails/actionpack/test/fixtures/test/hello_world_with_layout_false.erb +1 -0
  1025. data/vendor/rails/actionpack/test/fixtures/test/hello_xml_world.builder +11 -0
  1026. data/vendor/rails/actionpack/test/fixtures/test/list.erb +1 -0
  1027. data/vendor/rails/actionpack/test/fixtures/test/non_erb_block_content_for.builder +4 -0
  1028. data/vendor/rails/actionpack/test/fixtures/test/potential_conflicts.erb +4 -0
  1029. data/vendor/rails/actionpack/test/fixtures/test/render_file_with_ivar.erb +1 -0
  1030. data/vendor/rails/actionpack/test/fixtures/test/render_file_with_locals.erb +1 -0
  1031. data/vendor/rails/actionpack/test/fixtures/test/render_to_string_test.erb +1 -0
  1032. data/vendor/rails/actionpack/test/fixtures/test/update_element_with_capture.erb +9 -0
  1033. data/vendor/rails/actionpack/test/fixtures/test/using_layout_around_block.html.erb +1 -0
  1034. data/vendor/rails/actionpack/test/fixtures/topic.rb +3 -0
  1035. data/vendor/rails/actionpack/test/fixtures/topics.yml +22 -0
  1036. data/vendor/rails/actionpack/test/template/active_record_helper_test.rb +251 -0
  1037. data/vendor/rails/actionpack/test/template/asset_tag_helper_test.rb +438 -0
  1038. data/vendor/rails/actionpack/test/template/atom_feed_helper_test.rb +101 -0
  1039. data/vendor/rails/actionpack/test/template/benchmark_helper_test.rb +72 -0
  1040. data/vendor/rails/actionpack/test/template/compiled_templates_test.rb +193 -0
  1041. data/vendor/rails/actionpack/test/template/date_helper_test.rb +1438 -0
  1042. data/vendor/rails/actionpack/test/template/erb_util_test.rb +56 -0
  1043. data/vendor/rails/actionpack/test/template/form_helper_test.rb +792 -0
  1044. data/vendor/rails/actionpack/test/template/form_options_helper_test.rb +1296 -0
  1045. data/vendor/rails/actionpack/test/template/form_tag_helper_test.rb +238 -0
  1046. data/vendor/rails/actionpack/test/template/javascript_helper_test.rb +115 -0
  1047. data/vendor/rails/actionpack/test/template/number_helper_test.rb +93 -0
  1048. data/vendor/rails/actionpack/test/template/prototype_helper_test.rb +627 -0
  1049. data/vendor/rails/actionpack/test/template/sanitize_helper_test.rb +49 -0
  1050. data/vendor/rails/actionpack/test/template/scriptaculous_helper_test.rb +96 -0
  1051. data/vendor/rails/actionpack/test/template/tag_helper_test.rb +80 -0
  1052. data/vendor/rails/actionpack/test/template/text_helper_test.rb +335 -0
  1053. data/vendor/rails/actionpack/test/template/url_helper_test.rb +536 -0
  1054. data/vendor/rails/actionpack/test/testing_sandbox.rb +11 -0
  1055. data/vendor/rails/activerecord/CHANGELOG +5527 -0
  1056. data/vendor/rails/activerecord/MIT-LICENSE +20 -0
  1057. data/vendor/rails/activerecord/README +346 -0
  1058. data/vendor/rails/activerecord/RUNNING_UNIT_TESTS +33 -0
  1059. data/vendor/rails/activerecord/Rakefile +248 -0
  1060. data/vendor/rails/activerecord/examples/associations.png +0 -0
  1061. data/vendor/rails/activerecord/install.rb +30 -0
  1062. data/vendor/rails/activerecord/lib/active_record.rb +76 -0
  1063. data/vendor/rails/activerecord/lib/active_record/aggregations.rb +180 -0
  1064. data/vendor/rails/activerecord/lib/active_record/associations.rb +1769 -0
  1065. data/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb +240 -0
  1066. data/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb +160 -0
  1067. data/vendor/rails/activerecord/lib/active_record/associations/belongs_to_association.rb +56 -0
  1068. data/vendor/rails/activerecord/lib/active_record/associations/belongs_to_polymorphic_association.rb +50 -0
  1069. data/vendor/rails/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb +164 -0
  1070. data/vendor/rails/activerecord/lib/active_record/associations/has_many_association.rb +174 -0
  1071. data/vendor/rails/activerecord/lib/active_record/associations/has_many_through_association.rb +284 -0
  1072. data/vendor/rails/activerecord/lib/active_record/associations/has_one_association.rb +96 -0
  1073. data/vendor/rails/activerecord/lib/active_record/attribute_methods.rb +328 -0
  1074. data/vendor/rails/activerecord/lib/active_record/base.rb +2471 -0
  1075. data/vendor/rails/activerecord/lib/active_record/calculations.rb +267 -0
  1076. data/vendor/rails/activerecord/lib/active_record/callbacks.rb +341 -0
  1077. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb +308 -0
  1078. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb +171 -0
  1079. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb +87 -0
  1080. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb +69 -0
  1081. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb +472 -0
  1082. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb +306 -0
  1083. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb +172 -0
  1084. data/vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb +496 -0
  1085. data/vendor/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb +847 -0
  1086. data/vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb +34 -0
  1087. data/vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb +391 -0
  1088. data/vendor/rails/activerecord/lib/active_record/fixtures.rb +1034 -0
  1089. data/vendor/rails/activerecord/lib/active_record/locking/optimistic.rb +144 -0
  1090. data/vendor/rails/activerecord/lib/active_record/locking/pessimistic.rb +77 -0
  1091. data/vendor/rails/activerecord/lib/active_record/migration.rb +417 -0
  1092. data/vendor/rails/activerecord/lib/active_record/observer.rb +181 -0
  1093. data/vendor/rails/activerecord/lib/active_record/query_cache.rb +21 -0
  1094. data/vendor/rails/activerecord/lib/active_record/reflection.rb +219 -0
  1095. data/vendor/rails/activerecord/lib/active_record/schema.rb +58 -0
  1096. data/vendor/rails/activerecord/lib/active_record/schema_dumper.rb +171 -0
  1097. data/vendor/rails/activerecord/lib/active_record/serialization.rb +98 -0
  1098. data/vendor/rails/activerecord/lib/active_record/serializers/json_serializer.rb +71 -0
  1099. data/vendor/rails/activerecord/lib/active_record/serializers/xml_serializer.rb +315 -0
  1100. data/vendor/rails/activerecord/lib/active_record/timestamp.rb +41 -0
  1101. data/vendor/rails/activerecord/lib/active_record/transactions.rb +132 -0
  1102. data/vendor/rails/activerecord/lib/active_record/validations.rb +1025 -0
  1103. data/vendor/rails/activerecord/lib/active_record/vendor/db2.rb +362 -0
  1104. data/vendor/rails/activerecord/lib/active_record/vendor/mysql.rb +1214 -0
  1105. data/vendor/rails/activerecord/lib/active_record/version.rb +9 -0
  1106. data/vendor/rails/activerecord/lib/activerecord.rb +1 -0
  1107. data/vendor/rails/activerecord/test/aaa_create_tables_test.rb +72 -0
  1108. data/vendor/rails/activerecord/test/abstract_unit.rb +84 -0
  1109. data/vendor/rails/activerecord/test/active_schema_test_mysql.rb +43 -0
  1110. data/vendor/rails/activerecord/test/adapter_test.rb +105 -0
  1111. data/vendor/rails/activerecord/test/adapter_test_sqlserver.rb +95 -0
  1112. data/vendor/rails/activerecord/test/aggregations_test.rb +128 -0
  1113. data/vendor/rails/activerecord/test/all.sh +8 -0
  1114. data/vendor/rails/activerecord/test/ar_schema_test.rb +33 -0
  1115. data/vendor/rails/activerecord/test/association_inheritance_reload.rb +14 -0
  1116. data/vendor/rails/activerecord/test/associations/callbacks_test.rb +147 -0
  1117. data/vendor/rails/activerecord/test/associations/cascaded_eager_loading_test.rb +110 -0
  1118. data/vendor/rails/activerecord/test/associations/eager_singularization_test.rb +145 -0
  1119. data/vendor/rails/activerecord/test/associations/eager_test.rb +442 -0
  1120. data/vendor/rails/activerecord/test/associations/extension_test.rb +47 -0
  1121. data/vendor/rails/activerecord/test/associations/inner_join_association_test.rb +88 -0
  1122. data/vendor/rails/activerecord/test/associations/join_model_test.rb +559 -0
  1123. data/vendor/rails/activerecord/test/associations_test.rb +2147 -0
  1124. data/vendor/rails/activerecord/test/attribute_methods_test.rb +146 -0
  1125. data/vendor/rails/activerecord/test/base_test.rb +1745 -0
  1126. data/vendor/rails/activerecord/test/binary_test.rb +32 -0
  1127. data/vendor/rails/activerecord/test/calculations_test.rb +251 -0
  1128. data/vendor/rails/activerecord/test/callbacks_test.rb +400 -0
  1129. data/vendor/rails/activerecord/test/class_inheritable_attributes_test.rb +32 -0
  1130. data/vendor/rails/activerecord/test/column_alias_test.rb +17 -0
  1131. data/vendor/rails/activerecord/test/connection_test_firebird.rb +8 -0
  1132. data/vendor/rails/activerecord/test/connection_test_mysql.rb +30 -0
  1133. data/vendor/rails/activerecord/test/connections/native_db2/connection.rb +25 -0
  1134. data/vendor/rails/activerecord/test/connections/native_firebird/connection.rb +26 -0
  1135. data/vendor/rails/activerecord/test/connections/native_frontbase/connection.rb +27 -0
  1136. data/vendor/rails/activerecord/test/connections/native_mysql/connection.rb +27 -0
  1137. data/vendor/rails/activerecord/test/connections/native_openbase/connection.rb +21 -0
  1138. data/vendor/rails/activerecord/test/connections/native_oracle/connection.rb +27 -0
  1139. data/vendor/rails/activerecord/test/connections/native_postgresql/connection.rb +23 -0
  1140. data/vendor/rails/activerecord/test/connections/native_sqlite/connection.rb +25 -0
  1141. data/vendor/rails/activerecord/test/connections/native_sqlite3/connection.rb +25 -0
  1142. data/vendor/rails/activerecord/test/connections/native_sqlite3/in_memory_connection.rb +18 -0
  1143. data/vendor/rails/activerecord/test/connections/native_sybase/connection.rb +23 -0
  1144. data/vendor/rails/activerecord/test/copy_table_test_sqlite.rb +69 -0
  1145. data/vendor/rails/activerecord/test/datatype_test_postgresql.rb +203 -0
  1146. data/vendor/rails/activerecord/test/date_time_test.rb +37 -0
  1147. data/vendor/rails/activerecord/test/default_test_firebird.rb +16 -0
  1148. data/vendor/rails/activerecord/test/defaults_test.rb +67 -0
  1149. data/vendor/rails/activerecord/test/deprecated_finder_test.rb +30 -0
  1150. data/vendor/rails/activerecord/test/finder_test.rb +650 -0
  1151. data/vendor/rails/activerecord/test/fixtures/accounts.yml +28 -0
  1152. data/vendor/rails/activerecord/test/fixtures/all/developers.yml +0 -0
  1153. data/vendor/rails/activerecord/test/fixtures/all/people.csv +0 -0
  1154. data/vendor/rails/activerecord/test/fixtures/all/tasks.yml +0 -0
  1155. data/vendor/rails/activerecord/test/fixtures/author.rb +109 -0
  1156. data/vendor/rails/activerecord/test/fixtures/author_favorites.yml +4 -0
  1157. data/vendor/rails/activerecord/test/fixtures/authors.yml +7 -0
  1158. data/vendor/rails/activerecord/test/fixtures/auto_id.rb +4 -0
  1159. data/vendor/rails/activerecord/test/fixtures/bad_fixtures/attr_with_numeric_first_char +1 -0
  1160. data/vendor/rails/activerecord/test/fixtures/bad_fixtures/attr_with_spaces +1 -0
  1161. data/vendor/rails/activerecord/test/fixtures/bad_fixtures/blank_line +3 -0
  1162. data/vendor/rails/activerecord/test/fixtures/bad_fixtures/duplicate_attributes +3 -0
  1163. data/vendor/rails/activerecord/test/fixtures/bad_fixtures/missing_value +1 -0
  1164. data/vendor/rails/activerecord/test/fixtures/binaries.yml +132 -0
  1165. data/vendor/rails/activerecord/test/fixtures/binary.rb +2 -0
  1166. data/vendor/rails/activerecord/test/fixtures/book.rb +4 -0
  1167. data/vendor/rails/activerecord/test/fixtures/books.yml +7 -0
  1168. data/vendor/rails/activerecord/test/fixtures/categories.yml +14 -0
  1169. data/vendor/rails/activerecord/test/fixtures/categories/special_categories.yml +9 -0
  1170. data/vendor/rails/activerecord/test/fixtures/categories/subsubdir/arbitrary_filename.yml +4 -0
  1171. data/vendor/rails/activerecord/test/fixtures/categories_ordered.yml +7 -0
  1172. data/vendor/rails/activerecord/test/fixtures/categories_posts.yml +23 -0
  1173. data/vendor/rails/activerecord/test/fixtures/categorization.rb +5 -0
  1174. data/vendor/rails/activerecord/test/fixtures/categorizations.yml +17 -0
  1175. data/vendor/rails/activerecord/test/fixtures/category.rb +26 -0
  1176. data/vendor/rails/activerecord/test/fixtures/citation.rb +6 -0
  1177. data/vendor/rails/activerecord/test/fixtures/column_name.rb +3 -0
  1178. data/vendor/rails/activerecord/test/fixtures/comment.rb +23 -0
  1179. data/vendor/rails/activerecord/test/fixtures/comments.yml +59 -0
  1180. data/vendor/rails/activerecord/test/fixtures/companies.yml +55 -0
  1181. data/vendor/rails/activerecord/test/fixtures/company.rb +114 -0
  1182. data/vendor/rails/activerecord/test/fixtures/company_in_module.rb +59 -0
  1183. data/vendor/rails/activerecord/test/fixtures/computer.rb +4 -0
  1184. data/vendor/rails/activerecord/test/fixtures/computers.yml +4 -0
  1185. data/vendor/rails/activerecord/test/fixtures/contact.rb +16 -0
  1186. data/vendor/rails/activerecord/test/fixtures/course.rb +3 -0
  1187. data/vendor/rails/activerecord/test/fixtures/courses.yml +7 -0
  1188. data/vendor/rails/activerecord/test/fixtures/customer.rb +55 -0
  1189. data/vendor/rails/activerecord/test/fixtures/customers.yml +17 -0
  1190. data/vendor/rails/activerecord/test/fixtures/db_definitions/db2.drop.sql +33 -0
  1191. data/vendor/rails/activerecord/test/fixtures/db_definitions/db2.sql +235 -0
  1192. data/vendor/rails/activerecord/test/fixtures/db_definitions/db22.drop.sql +2 -0
  1193. data/vendor/rails/activerecord/test/fixtures/db_definitions/db22.sql +5 -0
  1194. data/vendor/rails/activerecord/test/fixtures/db_definitions/firebird.drop.sql +65 -0
  1195. data/vendor/rails/activerecord/test/fixtures/db_definitions/firebird.sql +310 -0
  1196. data/vendor/rails/activerecord/test/fixtures/db_definitions/firebird2.drop.sql +2 -0
  1197. data/vendor/rails/activerecord/test/fixtures/db_definitions/firebird2.sql +6 -0
  1198. data/vendor/rails/activerecord/test/fixtures/db_definitions/frontbase.drop.sql +33 -0
  1199. data/vendor/rails/activerecord/test/fixtures/db_definitions/frontbase.sql +273 -0
  1200. data/vendor/rails/activerecord/test/fixtures/db_definitions/frontbase2.drop.sql +1 -0
  1201. data/vendor/rails/activerecord/test/fixtures/db_definitions/frontbase2.sql +4 -0
  1202. data/vendor/rails/activerecord/test/fixtures/db_definitions/openbase.drop.sql +2 -0
  1203. data/vendor/rails/activerecord/test/fixtures/db_definitions/openbase.sql +318 -0
  1204. data/vendor/rails/activerecord/test/fixtures/db_definitions/openbase2.drop.sql +2 -0
  1205. data/vendor/rails/activerecord/test/fixtures/db_definitions/openbase2.sql +7 -0
  1206. data/vendor/rails/activerecord/test/fixtures/db_definitions/oracle.drop.sql +67 -0
  1207. data/vendor/rails/activerecord/test/fixtures/db_definitions/oracle.sql +330 -0
  1208. data/vendor/rails/activerecord/test/fixtures/db_definitions/oracle2.drop.sql +2 -0
  1209. data/vendor/rails/activerecord/test/fixtures/db_definitions/oracle2.sql +6 -0
  1210. data/vendor/rails/activerecord/test/fixtures/db_definitions/postgresql.drop.sql +44 -0
  1211. data/vendor/rails/activerecord/test/fixtures/db_definitions/postgresql.sql +292 -0
  1212. data/vendor/rails/activerecord/test/fixtures/db_definitions/postgresql2.drop.sql +2 -0
  1213. data/vendor/rails/activerecord/test/fixtures/db_definitions/postgresql2.sql +4 -0
  1214. data/vendor/rails/activerecord/test/fixtures/db_definitions/schema.rb +354 -0
  1215. data/vendor/rails/activerecord/test/fixtures/db_definitions/schema2.rb +11 -0
  1216. data/vendor/rails/activerecord/test/fixtures/db_definitions/sqlite.drop.sql +33 -0
  1217. data/vendor/rails/activerecord/test/fixtures/db_definitions/sqlite.sql +219 -0
  1218. data/vendor/rails/activerecord/test/fixtures/db_definitions/sqlite2.drop.sql +2 -0
  1219. data/vendor/rails/activerecord/test/fixtures/db_definitions/sqlite2.sql +5 -0
  1220. data/vendor/rails/activerecord/test/fixtures/db_definitions/sybase.drop.sql +35 -0
  1221. data/vendor/rails/activerecord/test/fixtures/db_definitions/sybase.sql +222 -0
  1222. data/vendor/rails/activerecord/test/fixtures/db_definitions/sybase2.drop.sql +4 -0
  1223. data/vendor/rails/activerecord/test/fixtures/db_definitions/sybase2.sql +5 -0
  1224. data/vendor/rails/activerecord/test/fixtures/default.rb +2 -0
  1225. data/vendor/rails/activerecord/test/fixtures/developer.rb +72 -0
  1226. data/vendor/rails/activerecord/test/fixtures/developers.yml +21 -0
  1227. data/vendor/rails/activerecord/test/fixtures/developers_projects.yml +17 -0
  1228. data/vendor/rails/activerecord/test/fixtures/developers_projects/david_action_controller +3 -0
  1229. data/vendor/rails/activerecord/test/fixtures/developers_projects/david_active_record +3 -0
  1230. data/vendor/rails/activerecord/test/fixtures/developers_projects/jamis_active_record +2 -0
  1231. data/vendor/rails/activerecord/test/fixtures/edge.rb +5 -0
  1232. data/vendor/rails/activerecord/test/fixtures/edges.yml +6 -0
  1233. data/vendor/rails/activerecord/test/fixtures/entrant.rb +3 -0
  1234. data/vendor/rails/activerecord/test/fixtures/entrants.yml +14 -0
  1235. data/vendor/rails/activerecord/test/fixtures/example.log +1 -0
  1236. data/vendor/rails/activerecord/test/fixtures/fk_test_has_fk.yml +3 -0
  1237. data/vendor/rails/activerecord/test/fixtures/fk_test_has_pk.yml +2 -0
  1238. data/vendor/rails/activerecord/test/fixtures/flowers.jpg +0 -0
  1239. data/vendor/rails/activerecord/test/fixtures/funny_jokes.yml +10 -0
  1240. data/vendor/rails/activerecord/test/fixtures/item.rb +7 -0
  1241. data/vendor/rails/activerecord/test/fixtures/items.yml +4 -0
  1242. data/vendor/rails/activerecord/test/fixtures/joke.rb +3 -0
  1243. data/vendor/rails/activerecord/test/fixtures/keyboard.rb +3 -0
  1244. data/vendor/rails/activerecord/test/fixtures/legacy_thing.rb +3 -0
  1245. data/vendor/rails/activerecord/test/fixtures/legacy_things.yml +3 -0
  1246. data/vendor/rails/activerecord/test/fixtures/matey.rb +4 -0
  1247. data/vendor/rails/activerecord/test/fixtures/mateys.yml +4 -0
  1248. data/vendor/rails/activerecord/test/fixtures/migrations/1_people_have_last_names.rb +9 -0
  1249. data/vendor/rails/activerecord/test/fixtures/migrations/2_we_need_reminders.rb +12 -0
  1250. data/vendor/rails/activerecord/test/fixtures/migrations/3_innocent_jointable.rb +12 -0
  1251. data/vendor/rails/activerecord/test/fixtures/migrations_with_decimal/1_give_me_big_numbers.rb +15 -0
  1252. data/vendor/rails/activerecord/test/fixtures/migrations_with_duplicate/1_people_have_last_names.rb +9 -0
  1253. data/vendor/rails/activerecord/test/fixtures/migrations_with_duplicate/2_we_need_reminders.rb +12 -0
  1254. data/vendor/rails/activerecord/test/fixtures/migrations_with_duplicate/3_foo.rb +7 -0
  1255. data/vendor/rails/activerecord/test/fixtures/migrations_with_duplicate/3_innocent_jointable.rb +12 -0
  1256. data/vendor/rails/activerecord/test/fixtures/migrations_with_missing_versions/1000_people_have_middle_names.rb +9 -0
  1257. data/vendor/rails/activerecord/test/fixtures/migrations_with_missing_versions/1_people_have_last_names.rb +9 -0
  1258. data/vendor/rails/activerecord/test/fixtures/migrations_with_missing_versions/3_we_need_reminders.rb +12 -0
  1259. data/vendor/rails/activerecord/test/fixtures/migrations_with_missing_versions/4_innocent_jointable.rb +12 -0
  1260. data/vendor/rails/activerecord/test/fixtures/minimalistic.rb +2 -0
  1261. data/vendor/rails/activerecord/test/fixtures/minimalistics.yml +2 -0
  1262. data/vendor/rails/activerecord/test/fixtures/mixed_case_monkey.rb +3 -0
  1263. data/vendor/rails/activerecord/test/fixtures/mixed_case_monkeys.yml +6 -0
  1264. data/vendor/rails/activerecord/test/fixtures/mixins.yml +29 -0
  1265. data/vendor/rails/activerecord/test/fixtures/movie.rb +5 -0
  1266. data/vendor/rails/activerecord/test/fixtures/movies.yml +7 -0
  1267. data/vendor/rails/activerecord/test/fixtures/naked/csv/accounts.csv +1 -0
  1268. data/vendor/rails/activerecord/test/fixtures/naked/yml/accounts.yml +1 -0
  1269. data/vendor/rails/activerecord/test/fixtures/naked/yml/companies.yml +1 -0
  1270. data/vendor/rails/activerecord/test/fixtures/naked/yml/courses.yml +1 -0
  1271. data/vendor/rails/activerecord/test/fixtures/order.rb +4 -0
  1272. data/vendor/rails/activerecord/test/fixtures/parrot.rb +13 -0
  1273. data/vendor/rails/activerecord/test/fixtures/parrots.yml +27 -0
  1274. data/vendor/rails/activerecord/test/fixtures/parrots_pirates.yml +7 -0
  1275. data/vendor/rails/activerecord/test/fixtures/people.yml +3 -0
  1276. data/vendor/rails/activerecord/test/fixtures/person.rb +4 -0
  1277. data/vendor/rails/activerecord/test/fixtures/pirate.rb +5 -0
  1278. data/vendor/rails/activerecord/test/fixtures/pirates.yml +9 -0
  1279. data/vendor/rails/activerecord/test/fixtures/post.rb +59 -0
  1280. data/vendor/rails/activerecord/test/fixtures/posts.yml +48 -0
  1281. data/vendor/rails/activerecord/test/fixtures/project.rb +28 -0
  1282. data/vendor/rails/activerecord/test/fixtures/projects.yml +7 -0
  1283. data/vendor/rails/activerecord/test/fixtures/reader.rb +4 -0
  1284. data/vendor/rails/activerecord/test/fixtures/readers.yml +4 -0
  1285. data/vendor/rails/activerecord/test/fixtures/reply.rb +37 -0
  1286. data/vendor/rails/activerecord/test/fixtures/reserved_words/distinct.yml +5 -0
  1287. data/vendor/rails/activerecord/test/fixtures/reserved_words/distincts_selects.yml +11 -0
  1288. data/vendor/rails/activerecord/test/fixtures/reserved_words/group.yml +14 -0
  1289. data/vendor/rails/activerecord/test/fixtures/reserved_words/select.yml +8 -0
  1290. data/vendor/rails/activerecord/test/fixtures/reserved_words/values.yml +7 -0
  1291. data/vendor/rails/activerecord/test/fixtures/ship.rb +3 -0
  1292. data/vendor/rails/activerecord/test/fixtures/ships.yml +5 -0
  1293. data/vendor/rails/activerecord/test/fixtures/subject.rb +4 -0
  1294. data/vendor/rails/activerecord/test/fixtures/subscriber.rb +6 -0
  1295. data/vendor/rails/activerecord/test/fixtures/subscribers/first +2 -0
  1296. data/vendor/rails/activerecord/test/fixtures/subscribers/second +2 -0
  1297. data/vendor/rails/activerecord/test/fixtures/tag.rb +7 -0
  1298. data/vendor/rails/activerecord/test/fixtures/tagging.rb +10 -0
  1299. data/vendor/rails/activerecord/test/fixtures/taggings.yml +25 -0
  1300. data/vendor/rails/activerecord/test/fixtures/tags.yml +7 -0
  1301. data/vendor/rails/activerecord/test/fixtures/task.rb +3 -0
  1302. data/vendor/rails/activerecord/test/fixtures/tasks.yml +7 -0
  1303. data/vendor/rails/activerecord/test/fixtures/topic.rb +37 -0
  1304. data/vendor/rails/activerecord/test/fixtures/topics.yml +22 -0
  1305. data/vendor/rails/activerecord/test/fixtures/treasure.rb +4 -0
  1306. data/vendor/rails/activerecord/test/fixtures/treasures.yml +10 -0
  1307. data/vendor/rails/activerecord/test/fixtures/vertex.rb +9 -0
  1308. data/vendor/rails/activerecord/test/fixtures/vertices.yml +4 -0
  1309. data/vendor/rails/activerecord/test/fixtures_test.rb +602 -0
  1310. data/vendor/rails/activerecord/test/inheritance_test.rb +211 -0
  1311. data/vendor/rails/activerecord/test/json_serialization_test.rb +180 -0
  1312. data/vendor/rails/activerecord/test/lifecycle_test.rb +137 -0
  1313. data/vendor/rails/activerecord/test/locking_test.rb +282 -0
  1314. data/vendor/rails/activerecord/test/method_scoping_test.rb +416 -0
  1315. data/vendor/rails/activerecord/test/migration_test.rb +933 -0
  1316. data/vendor/rails/activerecord/test/migration_test_firebird.rb +124 -0
  1317. data/vendor/rails/activerecord/test/mixin_test.rb +95 -0
  1318. data/vendor/rails/activerecord/test/modules_test.rb +34 -0
  1319. data/vendor/rails/activerecord/test/multiple_db_test.rb +60 -0
  1320. data/vendor/rails/activerecord/test/pk_test.rb +101 -0
  1321. data/vendor/rails/activerecord/test/query_cache_test.rb +104 -0
  1322. data/vendor/rails/activerecord/test/readonly_test.rb +107 -0
  1323. data/vendor/rails/activerecord/test/reflection_test.rb +175 -0
  1324. data/vendor/rails/activerecord/test/reserved_word_test_mysql.rb +177 -0
  1325. data/vendor/rails/activerecord/test/schema_authorization_test_postgresql.rb +75 -0
  1326. data/vendor/rails/activerecord/test/schema_dumper_test.rb +131 -0
  1327. data/vendor/rails/activerecord/test/schema_test_postgresql.rb +64 -0
  1328. data/vendor/rails/activerecord/test/serialization_test.rb +47 -0
  1329. data/vendor/rails/activerecord/test/synonym_test_oracle.rb +17 -0
  1330. data/vendor/rails/activerecord/test/table_name_test_sqlserver.rb +23 -0
  1331. data/vendor/rails/activerecord/test/threaded_connections_test.rb +48 -0
  1332. data/vendor/rails/activerecord/test/transactions_test.rb +281 -0
  1333. data/vendor/rails/activerecord/test/unconnected_test.rb +32 -0
  1334. data/vendor/rails/activerecord/test/validations_test.rb +1395 -0
  1335. data/vendor/rails/activerecord/test/xml_serialization_test.rb +202 -0
  1336. data/vendor/rails/activeresource/CHANGELOG +223 -0
  1337. data/vendor/rails/activeresource/MIT-LICENSE +20 -0
  1338. data/vendor/rails/activeresource/README +165 -0
  1339. data/vendor/rails/activeresource/Rakefile +134 -0
  1340. data/vendor/rails/activeresource/lib/active_resource.rb +47 -0
  1341. data/vendor/rails/activeresource/lib/active_resource/base.rb +872 -0
  1342. data/vendor/rails/activeresource/lib/active_resource/connection.rb +172 -0
  1343. data/vendor/rails/activeresource/lib/active_resource/custom_methods.rb +105 -0
  1344. data/vendor/rails/activeresource/lib/active_resource/formats.rb +14 -0
  1345. data/vendor/rails/activeresource/lib/active_resource/formats/json_format.rb +23 -0
  1346. data/vendor/rails/activeresource/lib/active_resource/formats/xml_format.rb +34 -0
  1347. data/vendor/rails/activeresource/lib/active_resource/http_mock.rb +147 -0
  1348. data/vendor/rails/activeresource/lib/active_resource/validations.rb +288 -0
  1349. data/vendor/rails/activeresource/lib/active_resource/version.rb +9 -0
  1350. data/vendor/rails/activeresource/lib/activeresource.rb +1 -0
  1351. data/vendor/rails/activeresource/test/abstract_unit.rb +10 -0
  1352. data/vendor/rails/activeresource/test/authorization_test.rb +82 -0
  1353. data/vendor/rails/activeresource/test/base/custom_methods_test.rb +96 -0
  1354. data/vendor/rails/activeresource/test/base/equality_test.rb +43 -0
  1355. data/vendor/rails/activeresource/test/base/load_test.rb +111 -0
  1356. data/vendor/rails/activeresource/test/base_errors_test.rb +48 -0
  1357. data/vendor/rails/activeresource/test/base_test.rb +454 -0
  1358. data/vendor/rails/activeresource/test/connection_test.rb +170 -0
  1359. data/vendor/rails/activeresource/test/fixtures/beast.rb +14 -0
  1360. data/vendor/rails/activeresource/test/fixtures/person.rb +3 -0
  1361. data/vendor/rails/activeresource/test/fixtures/street_address.rb +4 -0
  1362. data/vendor/rails/activeresource/test/format_test.rb +42 -0
  1363. data/vendor/rails/activeresource/test/setter_trap.rb +27 -0
  1364. data/vendor/rails/activesupport/CHANGELOG +986 -0
  1365. data/vendor/rails/activesupport/MIT-LICENSE +20 -0
  1366. data/vendor/rails/activesupport/README +43 -0
  1367. data/vendor/rails/activesupport/Rakefile +84 -0
  1368. data/vendor/rails/activesupport/install.rb +30 -0
  1369. data/vendor/rails/activesupport/lib/active_support.rb +49 -0
  1370. data/vendor/rails/activesupport/lib/active_support/basic_object.rb +5 -0
  1371. data/vendor/rails/activesupport/lib/active_support/buffered_logger.rb +107 -0
  1372. data/vendor/rails/activesupport/lib/active_support/clean_logger.rb +127 -0
  1373. data/vendor/rails/activesupport/lib/active_support/core_ext.rb +4 -0
  1374. data/vendor/rails/activesupport/lib/active_support/core_ext/array.rb +13 -0
  1375. data/vendor/rails/activesupport/lib/active_support/core_ext/array/access.rb +28 -0
  1376. data/vendor/rails/activesupport/lib/active_support/core_ext/array/conversions.rb +94 -0
  1377. data/vendor/rails/activesupport/lib/active_support/core_ext/array/extract_options.rb +19 -0
  1378. data/vendor/rails/activesupport/lib/active_support/core_ext/array/grouping.rb +68 -0
  1379. data/vendor/rails/activesupport/lib/active_support/core_ext/array/random_access.rb +12 -0
  1380. data/vendor/rails/activesupport/lib/active_support/core_ext/bigdecimal.rb +2 -0
  1381. data/vendor/rails/activesupport/lib/active_support/core_ext/bigdecimal/conversions.rb +6 -0
  1382. data/vendor/rails/activesupport/lib/active_support/core_ext/blank.rb +50 -0
  1383. data/vendor/rails/activesupport/lib/active_support/core_ext/cgi.rb +5 -0
  1384. data/vendor/rails/activesupport/lib/active_support/core_ext/cgi/escape_skipping_slashes.rb +14 -0
  1385. data/vendor/rails/activesupport/lib/active_support/core_ext/class.rb +4 -0
  1386. data/vendor/rails/activesupport/lib/active_support/core_ext/class/attribute_accessors.rb +48 -0
  1387. data/vendor/rails/activesupport/lib/active_support/core_ext/class/delegating_attributes.rb +40 -0
  1388. data/vendor/rails/activesupport/lib/active_support/core_ext/class/inheritable_attributes.rb +140 -0
  1389. data/vendor/rails/activesupport/lib/active_support/core_ext/class/removal.rb +24 -0
  1390. data/vendor/rails/activesupport/lib/active_support/core_ext/date.rb +10 -0
  1391. data/vendor/rails/activesupport/lib/active_support/core_ext/date/behavior.rb +13 -0
  1392. data/vendor/rails/activesupport/lib/active_support/core_ext/date/calculations.rb +188 -0
  1393. data/vendor/rails/activesupport/lib/active_support/core_ext/date/conversions.rb +98 -0
  1394. data/vendor/rails/activesupport/lib/active_support/core_ext/date_time.rb +10 -0
  1395. data/vendor/rails/activesupport/lib/active_support/core_ext/date_time/calculations.rb +77 -0
  1396. data/vendor/rails/activesupport/lib/active_support/core_ext/date_time/conversions.rb +74 -0
  1397. data/vendor/rails/activesupport/lib/active_support/core_ext/duplicable.rb +37 -0
  1398. data/vendor/rails/activesupport/lib/active_support/core_ext/enumerable.rb +63 -0
  1399. data/vendor/rails/activesupport/lib/active_support/core_ext/exception.rb +33 -0
  1400. data/vendor/rails/activesupport/lib/active_support/core_ext/file.rb +21 -0
  1401. data/vendor/rails/activesupport/lib/active_support/core_ext/float.rb +5 -0
  1402. data/vendor/rails/activesupport/lib/active_support/core_ext/float/rounding.rb +24 -0
  1403. data/vendor/rails/activesupport/lib/active_support/core_ext/hash.rb +13 -0
  1404. data/vendor/rails/activesupport/lib/active_support/core_ext/hash/conversions.rb +242 -0
  1405. data/vendor/rails/activesupport/lib/active_support/core_ext/hash/diff.rb +19 -0
  1406. data/vendor/rails/activesupport/lib/active_support/core_ext/hash/except.rb +24 -0
  1407. data/vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb +102 -0
  1408. data/vendor/rails/activesupport/lib/active_support/core_ext/hash/keys.rb +54 -0
  1409. data/vendor/rails/activesupport/lib/active_support/core_ext/hash/reverse_merge.rb +25 -0
  1410. data/vendor/rails/activesupport/lib/active_support/core_ext/hash/slice.rb +28 -0
  1411. data/vendor/rails/activesupport/lib/active_support/core_ext/integer.rb +7 -0
  1412. data/vendor/rails/activesupport/lib/active_support/core_ext/integer/even_odd.rb +24 -0
  1413. data/vendor/rails/activesupport/lib/active_support/core_ext/integer/inflections.rb +21 -0
  1414. data/vendor/rails/activesupport/lib/active_support/core_ext/kernel.rb +5 -0
  1415. data/vendor/rails/activesupport/lib/active_support/core_ext/kernel/agnostics.rb +11 -0
  1416. data/vendor/rails/activesupport/lib/active_support/core_ext/kernel/daemonizing.rb +15 -0
  1417. data/vendor/rails/activesupport/lib/active_support/core_ext/kernel/debugger.rb +13 -0
  1418. data/vendor/rails/activesupport/lib/active_support/core_ext/kernel/reporting.rb +51 -0
  1419. data/vendor/rails/activesupport/lib/active_support/core_ext/kernel/requires.rb +24 -0
  1420. data/vendor/rails/activesupport/lib/active_support/core_ext/load_error.rb +38 -0
  1421. data/vendor/rails/activesupport/lib/active_support/core_ext/logger.rb +16 -0
  1422. data/vendor/rails/activesupport/lib/active_support/core_ext/module.rb +8 -0
  1423. data/vendor/rails/activesupport/lib/active_support/core_ext/module/aliasing.rb +70 -0
  1424. data/vendor/rails/activesupport/lib/active_support/core_ext/module/attr_accessor_with_default.rb +31 -0
  1425. data/vendor/rails/activesupport/lib/active_support/core_ext/module/attr_internal.rb +31 -0
  1426. data/vendor/rails/activesupport/lib/active_support/core_ext/module/attribute_accessors.rb +48 -0
  1427. data/vendor/rails/activesupport/lib/active_support/core_ext/module/delegation.rb +62 -0
  1428. data/vendor/rails/activesupport/lib/active_support/core_ext/module/inclusion.rb +11 -0
  1429. data/vendor/rails/activesupport/lib/active_support/core_ext/module/introspection.rb +35 -0
  1430. data/vendor/rails/activesupport/lib/active_support/core_ext/module/loading.rb +13 -0
  1431. data/vendor/rails/activesupport/lib/active_support/core_ext/name_error.rb +17 -0
  1432. data/vendor/rails/activesupport/lib/active_support/core_ext/numeric.rb +7 -0
  1433. data/vendor/rails/activesupport/lib/active_support/core_ext/numeric/bytes.rb +44 -0
  1434. data/vendor/rails/activesupport/lib/active_support/core_ext/numeric/time.rb +91 -0
  1435. data/vendor/rails/activesupport/lib/active_support/core_ext/object.rb +4 -0
  1436. data/vendor/rails/activesupport/lib/active_support/core_ext/object/conversions.rb +14 -0
  1437. data/vendor/rails/activesupport/lib/active_support/core_ext/object/extending.rb +58 -0
  1438. data/vendor/rails/activesupport/lib/active_support/core_ext/object/instance_variables.rb +22 -0
  1439. data/vendor/rails/activesupport/lib/active_support/core_ext/object/misc.rb +59 -0
  1440. data/vendor/rails/activesupport/lib/active_support/core_ext/pathname.rb +7 -0
  1441. data/vendor/rails/activesupport/lib/active_support/core_ext/pathname/clean_within.rb +14 -0
  1442. data/vendor/rails/activesupport/lib/active_support/core_ext/proc.rb +12 -0
  1443. data/vendor/rails/activesupport/lib/active_support/core_ext/range.rb +11 -0
  1444. data/vendor/rails/activesupport/lib/active_support/core_ext/range/blockless_step.rb +22 -0
  1445. data/vendor/rails/activesupport/lib/active_support/core_ext/range/conversions.rb +23 -0
  1446. data/vendor/rails/activesupport/lib/active_support/core_ext/range/include_range.rb +22 -0
  1447. data/vendor/rails/activesupport/lib/active_support/core_ext/range/overlaps.rb +12 -0
  1448. data/vendor/rails/activesupport/lib/active_support/core_ext/string.rb +23 -0
  1449. data/vendor/rails/activesupport/lib/active_support/core_ext/string/access.rb +58 -0
  1450. data/vendor/rails/activesupport/lib/active_support/core_ext/string/conversions.rb +28 -0
  1451. data/vendor/rails/activesupport/lib/active_support/core_ext/string/inflections.rb +153 -0
  1452. data/vendor/rails/activesupport/lib/active_support/core_ext/string/iterators.rb +17 -0
  1453. data/vendor/rails/activesupport/lib/active_support/core_ext/string/starts_ends_with.rb +27 -0
  1454. data/vendor/rails/activesupport/lib/active_support/core_ext/string/unicode.rb +42 -0
  1455. data/vendor/rails/activesupport/lib/active_support/core_ext/string/xchar.rb +11 -0
  1456. data/vendor/rails/activesupport/lib/active_support/core_ext/symbol.rb +14 -0
  1457. data/vendor/rails/activesupport/lib/active_support/core_ext/test.rb +1 -0
  1458. data/vendor/rails/activesupport/lib/active_support/core_ext/test/unit/assertions.rb +62 -0
  1459. data/vendor/rails/activesupport/lib/active_support/core_ext/time.rb +19 -0
  1460. data/vendor/rails/activesupport/lib/active_support/core_ext/time/behavior.rb +13 -0
  1461. data/vendor/rails/activesupport/lib/active_support/core_ext/time/calculations.rb +224 -0
  1462. data/vendor/rails/activesupport/lib/active_support/core_ext/time/conversions.rb +94 -0
  1463. data/vendor/rails/activesupport/lib/active_support/dependencies.rb +540 -0
  1464. data/vendor/rails/activesupport/lib/active_support/deprecation.rb +204 -0
  1465. data/vendor/rails/activesupport/lib/active_support/duration.rb +96 -0
  1466. data/vendor/rails/activesupport/lib/active_support/inflections.rb +53 -0
  1467. data/vendor/rails/activesupport/lib/active_support/inflector.rb +282 -0
  1468. data/vendor/rails/activesupport/lib/active_support/json.rb +31 -0
  1469. data/vendor/rails/activesupport/lib/active_support/json/decoding.rb +60 -0
  1470. data/vendor/rails/activesupport/lib/active_support/json/encoders/date.rb +5 -0
  1471. data/vendor/rails/activesupport/lib/active_support/json/encoders/date_time.rb +5 -0
  1472. data/vendor/rails/activesupport/lib/active_support/json/encoders/enumerable.rb +12 -0
  1473. data/vendor/rails/activesupport/lib/active_support/json/encoders/false_class.rb +5 -0
  1474. data/vendor/rails/activesupport/lib/active_support/json/encoders/hash.rb +50 -0
  1475. data/vendor/rails/activesupport/lib/active_support/json/encoders/nil_class.rb +5 -0
  1476. data/vendor/rails/activesupport/lib/active_support/json/encoders/numeric.rb +5 -0
  1477. data/vendor/rails/activesupport/lib/active_support/json/encoders/object.rb +6 -0
  1478. data/vendor/rails/activesupport/lib/active_support/json/encoders/regexp.rb +5 -0
  1479. data/vendor/rails/activesupport/lib/active_support/json/encoders/string.rb +30 -0
  1480. data/vendor/rails/activesupport/lib/active_support/json/encoders/symbol.rb +5 -0
  1481. data/vendor/rails/activesupport/lib/active_support/json/encoders/time.rb +5 -0
  1482. data/vendor/rails/activesupport/lib/active_support/json/encoders/true_class.rb +5 -0
  1483. data/vendor/rails/activesupport/lib/active_support/json/encoding.rb +38 -0
  1484. data/vendor/rails/activesupport/lib/active_support/json/variable.rb +10 -0
  1485. data/vendor/rails/activesupport/lib/active_support/multibyte.rb +9 -0
  1486. data/vendor/rails/activesupport/lib/active_support/multibyte/chars.rb +141 -0
  1487. data/vendor/rails/activesupport/lib/active_support/multibyte/generators/generate_tables.rb +149 -0
  1488. data/vendor/rails/activesupport/lib/active_support/multibyte/handlers/passthru_handler.rb +9 -0
  1489. data/vendor/rails/activesupport/lib/active_support/multibyte/handlers/utf8_handler.rb +564 -0
  1490. data/vendor/rails/activesupport/lib/active_support/multibyte/handlers/utf8_handler_proc.rb +43 -0
  1491. data/vendor/rails/activesupport/lib/active_support/option_merger.rb +25 -0
  1492. data/vendor/rails/activesupport/lib/active_support/ordered_options.rb +49 -0
  1493. data/vendor/rails/activesupport/lib/active_support/test_case.rb +5 -0
  1494. data/vendor/rails/activesupport/lib/active_support/testing.rb +1 -0
  1495. data/vendor/rails/activesupport/lib/active_support/testing/default.rb +12 -0
  1496. data/vendor/rails/activesupport/lib/active_support/values/time_zone.rb +181 -0
  1497. data/vendor/rails/activesupport/lib/active_support/values/unicode_tables.dat +0 -0
  1498. data/vendor/rails/activesupport/lib/active_support/vendor.rb +14 -0
  1499. data/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/blankslate.rb +113 -0
  1500. data/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder.rb +13 -0
  1501. data/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/blankslate.rb +20 -0
  1502. data/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/css.rb +250 -0
  1503. data/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xchar.rb +115 -0
  1504. data/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xmlbase.rb +139 -0
  1505. data/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xmlevents.rb +63 -0
  1506. data/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xmlmarkup.rb +328 -0
  1507. data/vendor/rails/activesupport/lib/active_support/vendor/xml-simple-1.0.11/xmlsimple.rb +1021 -0
  1508. data/vendor/rails/activesupport/lib/active_support/version.rb +9 -0
  1509. data/vendor/rails/activesupport/lib/active_support/whiny_nil.rb +38 -0
  1510. data/vendor/rails/activesupport/lib/activesupport.rb +1 -0
  1511. data/vendor/rails/activesupport/test/abstract_unit.rb +20 -0
  1512. data/vendor/rails/activesupport/test/autoloading_fixtures/a/b.rb +2 -0
  1513. data/vendor/rails/activesupport/test/autoloading_fixtures/a/c/d.rb +2 -0
  1514. data/vendor/rails/activesupport/test/autoloading_fixtures/a/c/e/f.rb +2 -0
  1515. data/vendor/rails/activesupport/test/autoloading_fixtures/application.rb +1 -0
  1516. data/vendor/rails/activesupport/test/autoloading_fixtures/class_folder.rb +3 -0
  1517. data/vendor/rails/activesupport/test/autoloading_fixtures/class_folder/class_folder_subclass.rb +3 -0
  1518. data/vendor/rails/activesupport/test/autoloading_fixtures/class_folder/inline_class.rb +2 -0
  1519. data/vendor/rails/activesupport/test/autoloading_fixtures/class_folder/nested_class.rb +7 -0
  1520. data/vendor/rails/activesupport/test/autoloading_fixtures/conflict.rb +1 -0
  1521. data/vendor/rails/activesupport/test/autoloading_fixtures/counting_loader.rb +5 -0
  1522. data/vendor/rails/activesupport/test/autoloading_fixtures/cross_site_dependency.rb +2 -0
  1523. data/vendor/rails/activesupport/test/autoloading_fixtures/e.rb +2 -0
  1524. data/vendor/rails/activesupport/test/autoloading_fixtures/module_folder/inline_class.rb +2 -0
  1525. data/vendor/rails/activesupport/test/autoloading_fixtures/module_folder/nested_class.rb +4 -0
  1526. data/vendor/rails/activesupport/test/autoloading_fixtures/module_folder/nested_sibling.rb +2 -0
  1527. data/vendor/rails/activesupport/test/autoloading_fixtures/module_with_custom_const_missing/a/b.rb +1 -0
  1528. data/vendor/rails/activesupport/test/autoloading_fixtures/multiple_constant_file.rb +2 -0
  1529. data/vendor/rails/activesupport/test/autoloading_fixtures/raises_name_error.rb +3 -0
  1530. data/vendor/rails/activesupport/test/autoloading_fixtures/raises_no_method_error.rb +3 -0
  1531. data/vendor/rails/activesupport/test/buffered_logger_test.rb +107 -0
  1532. data/vendor/rails/activesupport/test/clean_logger_test.rb +57 -0
  1533. data/vendor/rails/activesupport/test/core_ext/array_ext_test.rb +250 -0
  1534. data/vendor/rails/activesupport/test/core_ext/blank_test.rb +19 -0
  1535. data/vendor/rails/activesupport/test/core_ext/cgi_ext_test.rb +14 -0
  1536. data/vendor/rails/activesupport/test/core_ext/class/attribute_accessor_test.rb +31 -0
  1537. data/vendor/rails/activesupport/test/core_ext/class/class_inheritable_attributes_test.rb +224 -0
  1538. data/vendor/rails/activesupport/test/core_ext/class/delegating_attributes_test.rb +105 -0
  1539. data/vendor/rails/activesupport/test/core_ext/class_test.rb +46 -0
  1540. data/vendor/rails/activesupport/test/core_ext/date_ext_test.rb +196 -0
  1541. data/vendor/rails/activesupport/test/core_ext/date_time_ext_test.rb +230 -0
  1542. data/vendor/rails/activesupport/test/core_ext/duplicable_test.rb +22 -0
  1543. data/vendor/rails/activesupport/test/core_ext/duration_test.rb +21 -0
  1544. data/vendor/rails/activesupport/test/core_ext/enumerable_test.rb +61 -0
  1545. data/vendor/rails/activesupport/test/core_ext/exception_test.rb +64 -0
  1546. data/vendor/rails/activesupport/test/core_ext/file_test.rb +29 -0
  1547. data/vendor/rails/activesupport/test/core_ext/float_ext_test.rb +25 -0
  1548. data/vendor/rails/activesupport/test/core_ext/hash_ext_test.rb +743 -0
  1549. data/vendor/rails/activesupport/test/core_ext/integer_ext_test.rb +37 -0
  1550. data/vendor/rails/activesupport/test/core_ext/kernel_test.rb +43 -0
  1551. data/vendor/rails/activesupport/test/core_ext/load_error_tests.rb +16 -0
  1552. data/vendor/rails/activesupport/test/core_ext/module/attr_accessor_with_default_test.rb +30 -0
  1553. data/vendor/rails/activesupport/test/core_ext/module/attr_internal_test.rb +52 -0
  1554. data/vendor/rails/activesupport/test/core_ext/module/attribute_accessor_test.rb +33 -0
  1555. data/vendor/rails/activesupport/test/core_ext/module/attribute_aliasing_test.rb +58 -0
  1556. data/vendor/rails/activesupport/test/core_ext/module_test.rb +293 -0
  1557. data/vendor/rails/activesupport/test/core_ext/name_error_test.rb +24 -0
  1558. data/vendor/rails/activesupport/test/core_ext/numeric_ext_test.rb +147 -0
  1559. data/vendor/rails/activesupport/test/core_ext/object_and_class_ext_test.rb +242 -0
  1560. data/vendor/rails/activesupport/test/core_ext/pathname_test.rb +9 -0
  1561. data/vendor/rails/activesupport/test/core_ext/proc_test.rb +11 -0
  1562. data/vendor/rails/activesupport/test/core_ext/range_ext_test.rb +63 -0
  1563. data/vendor/rails/activesupport/test/core_ext/string_ext_test.rb +180 -0
  1564. data/vendor/rails/activesupport/test/core_ext/symbol_test.rb +9 -0
  1565. data/vendor/rails/activesupport/test/core_ext/time_ext_test.rb +420 -0
  1566. data/vendor/rails/activesupport/test/dependencies/check_warnings.rb +2 -0
  1567. data/vendor/rails/activesupport/test/dependencies/conflict.rb +1 -0
  1568. data/vendor/rails/activesupport/test/dependencies/cross_site_depender.rb +3 -0
  1569. data/vendor/rails/activesupport/test/dependencies/mutual_one.rb +4 -0
  1570. data/vendor/rails/activesupport/test/dependencies/mutual_two.rb +4 -0
  1571. data/vendor/rails/activesupport/test/dependencies/raises_exception.rb +3 -0
  1572. data/vendor/rails/activesupport/test/dependencies/requires_nonexistent0.rb +1 -0
  1573. data/vendor/rails/activesupport/test/dependencies/requires_nonexistent1.rb +1 -0
  1574. data/vendor/rails/activesupport/test/dependencies/service_one.rb +5 -0
  1575. data/vendor/rails/activesupport/test/dependencies/service_two.rb +2 -0
  1576. data/vendor/rails/activesupport/test/dependencies_test.rb +751 -0
  1577. data/vendor/rails/activesupport/test/deprecation_test.rb +151 -0
  1578. data/vendor/rails/activesupport/test/inflector_test.rb +248 -0
  1579. data/vendor/rails/activesupport/test/inflector_test_cases.rb +208 -0
  1580. data/vendor/rails/activesupport/test/json/decoding_test.rb +41 -0
  1581. data/vendor/rails/activesupport/test/json/encoding_test.rb +111 -0
  1582. data/vendor/rails/activesupport/test/multibyte_chars_test.rb +173 -0
  1583. data/vendor/rails/activesupport/test/multibyte_conformance.rb +141 -0
  1584. data/vendor/rails/activesupport/test/multibyte_handler_test.rb +367 -0
  1585. data/vendor/rails/activesupport/test/option_merger_test.rb +50 -0
  1586. data/vendor/rails/activesupport/test/ordered_options_test.rb +84 -0
  1587. data/vendor/rails/activesupport/test/test_test.rb +73 -0
  1588. data/vendor/rails/activesupport/test/time_zone_test.rb +98 -0
  1589. data/vendor/rails/activesupport/test/whiny_nil_test.rb +38 -0
  1590. data/vendor/rails/railties/CHANGELOG +1899 -0
  1591. data/vendor/rails/railties/MIT-LICENSE +20 -0
  1592. data/vendor/rails/railties/README +203 -0
  1593. data/vendor/rails/railties/Rakefile +358 -0
  1594. data/vendor/rails/railties/bin/about +3 -0
  1595. data/vendor/rails/railties/bin/console +3 -0
  1596. data/vendor/rails/railties/bin/destroy +3 -0
  1597. data/vendor/rails/railties/bin/generate +3 -0
  1598. data/{starter-app/vendor/plugins/spree/script → vendor/rails/railties/bin}/performance/benchmarker +0 -0
  1599. data/{starter-app/vendor/plugins/spree/script → vendor/rails/railties/bin}/performance/profiler +0 -0
  1600. data/vendor/rails/railties/bin/performance/request +3 -0
  1601. data/vendor/rails/railties/bin/plugin +3 -0
  1602. data/{starter-app/vendor/plugins/spree/script → vendor/rails/railties/bin}/process/inspector +0 -0
  1603. data/{starter-app/vendor/plugins/spree/script → vendor/rails/railties/bin}/process/reaper +0 -0
  1604. data/{starter-app/vendor/plugins/spree/script → vendor/rails/railties/bin}/process/spawner +0 -0
  1605. data/vendor/rails/railties/bin/rails +19 -0
  1606. data/vendor/rails/railties/bin/runner +3 -0
  1607. data/vendor/rails/railties/bin/server +3 -0
  1608. data/vendor/rails/railties/builtin/rails_info/rails/info.rb +123 -0
  1609. data/vendor/rails/railties/builtin/rails_info/rails/info_controller.rb +9 -0
  1610. data/vendor/rails/railties/builtin/rails_info/rails/info_helper.rb +2 -0
  1611. data/vendor/rails/railties/builtin/rails_info/rails_info_controller.rb +2 -0
  1612. data/vendor/rails/railties/configs/apache.conf +40 -0
  1613. data/vendor/rails/railties/configs/databases/frontbase.yml +28 -0
  1614. data/vendor/rails/railties/configs/databases/mysql.yml +54 -0
  1615. data/vendor/rails/railties/configs/databases/oracle.yml +39 -0
  1616. data/vendor/rails/railties/configs/databases/postgresql.yml +48 -0
  1617. data/vendor/rails/railties/configs/databases/sqlite2.yml +16 -0
  1618. data/vendor/rails/railties/configs/databases/sqlite3.yml +19 -0
  1619. data/vendor/rails/railties/configs/empty.log +0 -0
  1620. data/vendor/rails/railties/configs/initializers/inflections.rb +10 -0
  1621. data/vendor/rails/railties/configs/initializers/mime_types.rb +5 -0
  1622. data/vendor/rails/railties/configs/lighttpd.conf +54 -0
  1623. data/vendor/rails/railties/configs/routes.rb +35 -0
  1624. data/vendor/rails/railties/dispatches/dispatch.fcgi +24 -0
  1625. data/vendor/rails/railties/dispatches/dispatch.rb +10 -0
  1626. data/vendor/rails/railties/dispatches/gateway.cgi +97 -0
  1627. data/vendor/rails/railties/doc/README_FOR_APP +2 -0
  1628. data/vendor/rails/railties/environments/boot.rb +109 -0
  1629. data/vendor/rails/railties/environments/development.rb +18 -0
  1630. data/vendor/rails/railties/environments/environment.rb +59 -0
  1631. data/vendor/rails/railties/environments/production.rb +19 -0
  1632. data/vendor/rails/railties/environments/test.rb +22 -0
  1633. data/{starter-app/vendor/plugins/paginating_find/test_app/Rakefile → vendor/rails/railties/fresh_rakefile} +0 -0
  1634. data/vendor/rails/railties/helpers/application.rb +10 -0
  1635. data/{starter-app/app → vendor/rails/railties}/helpers/application_helper.rb +0 -0
  1636. data/vendor/rails/railties/helpers/test_helper.rb +38 -0
  1637. data/vendor/rails/railties/html/404.html +30 -0
  1638. data/vendor/rails/railties/html/422.html +30 -0
  1639. data/vendor/rails/railties/html/500.html +30 -0
  1640. data/vendor/rails/railties/html/favicon.ico +0 -0
  1641. data/vendor/rails/railties/html/images/rails.png +0 -0
  1642. data/vendor/rails/railties/html/index.html +277 -0
  1643. data/vendor/rails/railties/html/javascripts/application.js +2 -0
  1644. data/vendor/rails/railties/html/javascripts/controls.js +963 -0
  1645. data/vendor/rails/railties/html/javascripts/dragdrop.js +972 -0
  1646. data/vendor/rails/railties/html/javascripts/effects.js +1120 -0
  1647. data/vendor/rails/railties/html/javascripts/prototype.js +4225 -0
  1648. data/vendor/rails/railties/html/robots.txt +5 -0
  1649. data/vendor/rails/railties/lib/code_statistics.rb +107 -0
  1650. data/vendor/rails/railties/lib/commands.rb +17 -0
  1651. data/vendor/rails/railties/lib/commands/about.rb +2 -0
  1652. data/vendor/rails/railties/lib/commands/console.rb +32 -0
  1653. data/vendor/rails/railties/lib/commands/destroy.rb +6 -0
  1654. data/vendor/rails/railties/lib/commands/generate.rb +6 -0
  1655. data/vendor/rails/railties/lib/commands/ncgi/listener +86 -0
  1656. data/vendor/rails/railties/lib/commands/ncgi/tracker +69 -0
  1657. data/vendor/rails/railties/lib/commands/performance/benchmarker.rb +24 -0
  1658. data/vendor/rails/railties/lib/commands/performance/profiler.rb +50 -0
  1659. data/vendor/rails/railties/lib/commands/performance/request.rb +6 -0
  1660. data/vendor/rails/railties/lib/commands/plugin.rb +923 -0
  1661. data/vendor/rails/railties/lib/commands/process/inspector.rb +68 -0
  1662. data/vendor/rails/railties/lib/commands/process/reaper.rb +149 -0
  1663. data/vendor/rails/railties/lib/commands/process/spawner.rb +219 -0
  1664. data/vendor/rails/railties/lib/commands/process/spinner.rb +57 -0
  1665. data/vendor/rails/railties/lib/commands/runner.rb +48 -0
  1666. data/vendor/rails/railties/lib/commands/server.rb +39 -0
  1667. data/vendor/rails/railties/lib/commands/servers/base.rb +31 -0
  1668. data/vendor/rails/railties/lib/commands/servers/lighttpd.rb +94 -0
  1669. data/vendor/rails/railties/lib/commands/servers/mongrel.rb +69 -0
  1670. data/vendor/rails/railties/lib/commands/servers/webrick.rb +66 -0
  1671. data/vendor/rails/railties/lib/commands/update.rb +4 -0
  1672. data/vendor/rails/railties/lib/console_app.rb +30 -0
  1673. data/vendor/rails/railties/lib/console_sandbox.rb +6 -0
  1674. data/vendor/rails/railties/lib/console_with_helpers.rb +26 -0
  1675. data/vendor/rails/railties/lib/dispatcher.rb +24 -0
  1676. data/vendor/rails/railties/lib/fcgi_handler.rb +223 -0
  1677. data/vendor/rails/railties/lib/initializer.rb +682 -0
  1678. data/vendor/rails/railties/lib/rails/plugin.rb +84 -0
  1679. data/vendor/rails/railties/lib/rails/plugin/loader.rb +150 -0
  1680. data/vendor/rails/railties/lib/rails/plugin/locator.rb +78 -0
  1681. data/vendor/rails/railties/lib/rails/version.rb +9 -0
  1682. data/vendor/rails/railties/lib/rails_generator.rb +43 -0
  1683. data/vendor/rails/railties/lib/rails_generator/base.rb +263 -0
  1684. data/vendor/rails/railties/lib/rails_generator/commands.rb +591 -0
  1685. data/vendor/rails/railties/lib/rails_generator/generated_attribute.rb +42 -0
  1686. data/vendor/rails/railties/lib/rails_generator/generators/applications/app/USAGE +9 -0
  1687. data/vendor/rails/railties/lib/rails_generator/generators/applications/app/app_generator.rb +179 -0
  1688. data/vendor/rails/railties/lib/rails_generator/generators/components/controller/USAGE +29 -0
  1689. data/vendor/rails/railties/lib/rails_generator/generators/components/controller/controller_generator.rb +37 -0
  1690. data/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/controller.rb +10 -0
  1691. data/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/functional_test.rb +8 -0
  1692. data/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/helper.rb +2 -0
  1693. data/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/view.html.erb +2 -0
  1694. data/vendor/rails/railties/lib/rails_generator/generators/components/integration_test/USAGE +8 -0
  1695. data/vendor/rails/railties/lib/rails_generator/generators/components/integration_test/integration_test_generator.rb +16 -0
  1696. data/vendor/rails/railties/lib/rails_generator/generators/components/integration_test/templates/integration_test.rb +10 -0
  1697. data/vendor/rails/railties/lib/rails_generator/generators/components/mailer/USAGE +16 -0
  1698. data/vendor/rails/railties/lib/rails_generator/generators/components/mailer/mailer_generator.rb +34 -0
  1699. data/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/fixture.erb +3 -0
  1700. data/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/fixture.rhtml +0 -0
  1701. data/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/mailer.rb +13 -0
  1702. data/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/unit_test.rb +21 -0
  1703. data/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/view.erb +3 -0
  1704. data/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/view.rhtml +0 -0
  1705. data/vendor/rails/railties/lib/rails_generator/generators/components/migration/USAGE +29 -0
  1706. data/vendor/rails/railties/lib/rails_generator/generators/components/migration/migration_generator.rb +20 -0
  1707. data/vendor/rails/railties/lib/rails_generator/generators/components/migration/templates/migration.rb +11 -0
  1708. data/vendor/rails/railties/lib/rails_generator/generators/components/model/USAGE +27 -0
  1709. data/vendor/rails/railties/lib/rails_generator/generators/components/model/model_generator.rb +45 -0
  1710. data/vendor/rails/railties/lib/rails_generator/generators/components/model/templates/fixtures.yml +19 -0
  1711. data/vendor/rails/railties/lib/rails_generator/generators/components/model/templates/migration.rb +16 -0
  1712. data/vendor/rails/railties/lib/rails_generator/generators/components/model/templates/model.rb +2 -0
  1713. data/vendor/rails/railties/lib/rails_generator/generators/components/model/templates/unit_test.rb +8 -0
  1714. data/vendor/rails/railties/lib/rails_generator/generators/components/observer/USAGE +13 -0
  1715. data/vendor/rails/railties/lib/rails_generator/generators/components/observer/observer_generator.rb +16 -0
  1716. data/vendor/rails/railties/lib/rails_generator/generators/components/observer/templates/observer.rb +2 -0
  1717. data/vendor/rails/railties/lib/rails_generator/generators/components/observer/templates/unit_test.rb +8 -0
  1718. data/vendor/rails/railties/lib/rails_generator/generators/components/plugin/USAGE +25 -0
  1719. data/vendor/rails/railties/lib/rails_generator/generators/components/plugin/plugin_generator.rb +39 -0
  1720. data/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/MIT-LICENSE +20 -0
  1721. data/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/README +13 -0
  1722. data/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/Rakefile +22 -0
  1723. data/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/USAGE +8 -0
  1724. data/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/generator.rb +8 -0
  1725. data/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/init.rb +1 -0
  1726. data/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/install.rb +1 -0
  1727. data/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/plugin.rb +1 -0
  1728. data/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/tasks.rake +4 -0
  1729. data/{starter-app/vendor/plugins/spree → vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates}/uninstall.rb +0 -0
  1730. data/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/unit_test.rb +8 -0
  1731. data/vendor/rails/railties/lib/rails_generator/generators/components/resource/USAGE +23 -0
  1732. data/vendor/rails/railties/lib/rails_generator/generators/components/resource/resource_generator.rb +74 -0
  1733. data/vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/controller.rb +2 -0
  1734. data/vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/functional_test.rb +8 -0
  1735. data/vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/helper.rb +2 -0
  1736. data/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/USAGE +25 -0
  1737. data/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/scaffold_generator.rb +92 -0
  1738. data/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/controller.rb +85 -0
  1739. data/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/functional_test.rb +45 -0
  1740. data/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/helper.rb +2 -0
  1741. data/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/layout.html.erb +17 -0
  1742. data/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/style.css +74 -0
  1743. data/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_edit.html.erb +19 -0
  1744. data/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_index.html.erb +24 -0
  1745. data/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_new.html.erb +18 -0
  1746. data/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_show.html.erb +10 -0
  1747. data/vendor/rails/railties/lib/rails_generator/generators/components/session_migration/USAGE +10 -0
  1748. data/vendor/rails/railties/lib/rails_generator/generators/components/session_migration/session_migration_generator.rb +18 -0
  1749. data/vendor/rails/railties/lib/rails_generator/generators/components/session_migration/templates/migration.rb +16 -0
  1750. data/vendor/rails/railties/lib/rails_generator/lookup.rb +244 -0
  1751. data/vendor/rails/railties/lib/rails_generator/manifest.rb +53 -0
  1752. data/vendor/rails/railties/lib/rails_generator/options.rb +143 -0
  1753. data/vendor/rails/railties/lib/rails_generator/scripts.rb +86 -0
  1754. data/vendor/rails/railties/lib/rails_generator/scripts/destroy.rb +30 -0
  1755. data/vendor/rails/railties/lib/rails_generator/scripts/generate.rb +7 -0
  1756. data/vendor/rails/railties/lib/rails_generator/scripts/update.rb +12 -0
  1757. data/vendor/rails/railties/lib/rails_generator/secret_key_generator.rb +160 -0
  1758. data/vendor/rails/railties/lib/rails_generator/simple_logger.rb +46 -0
  1759. data/vendor/rails/railties/lib/rails_generator/spec.rb +44 -0
  1760. data/vendor/rails/railties/lib/railties_path.rb +1 -0
  1761. data/vendor/rails/railties/lib/ruby_version_check.rb +17 -0
  1762. data/vendor/rails/railties/lib/rubyprof_ext.rb +35 -0
  1763. data/vendor/rails/railties/lib/source_annotation_extractor.rb +62 -0
  1764. data/vendor/rails/railties/lib/tasks/annotations.rake +23 -0
  1765. data/vendor/rails/railties/lib/tasks/databases.rake +363 -0
  1766. data/vendor/rails/railties/lib/tasks/documentation.rake +80 -0
  1767. data/vendor/rails/railties/lib/tasks/framework.rake +118 -0
  1768. data/vendor/rails/railties/lib/tasks/log.rake +9 -0
  1769. data/vendor/rails/railties/lib/tasks/misc.rake +10 -0
  1770. data/vendor/rails/railties/lib/tasks/rails.rb +8 -0
  1771. data/vendor/rails/railties/lib/tasks/routes.rake +17 -0
  1772. data/vendor/rails/railties/lib/tasks/statistics.rake +18 -0
  1773. data/vendor/rails/railties/lib/tasks/testing.rake +118 -0
  1774. data/vendor/rails/railties/lib/tasks/tmp.rake +37 -0
  1775. data/vendor/rails/railties/lib/test_help.rb +20 -0
  1776. data/vendor/rails/railties/lib/webrick_server.rb +165 -0
  1777. data/vendor/rails/railties/test/abstract_unit.rb +24 -0
  1778. data/vendor/rails/railties/test/boot_test.rb +179 -0
  1779. data/vendor/rails/railties/test/console_app_test.rb +29 -0
  1780. data/vendor/rails/railties/test/fcgi_dispatcher_test.rb +265 -0
  1781. data/vendor/rails/railties/test/fixtures/environment_with_constant.rb +1 -0
  1782. data/vendor/rails/railties/test/fixtures/lib/generators/missing_class/missing_class_generator.rb +0 -0
  1783. data/vendor/rails/railties/test/fixtures/lib/generators/working/working_generator.rb +2 -0
  1784. data/vendor/rails/railties/test/fixtures/plugins/default/plugin_with_no_lib_dir/init.rb +0 -0
  1785. data/vendor/rails/railties/test/fixtures/plugins/default/stubby/init.rb +7 -0
  1786. data/vendor/rails/railties/test/fixtures/plugins/default/stubby/lib/stubby_mixin.rb +2 -0
  1787. data/vendor/rails/railties/test/generators/generator_test_helper.rb +195 -0
  1788. data/vendor/rails/railties/test/generators/rails_model_generator_test.rb +109 -0
  1789. data/vendor/rails/railties/test/generators/rails_resource_generator_test.rb +106 -0
  1790. data/vendor/rails/railties/test/generators/rails_scaffold_generator_test.rb +185 -0
  1791. data/vendor/rails/railties/test/initializer_test.rb +218 -0
  1792. data/vendor/rails/railties/test/mocks/routes.rb +6 -0
  1793. data/vendor/rails/railties/test/plugin_loader_test.rb +140 -0
  1794. data/vendor/rails/railties/test/plugin_locator_test.rb +69 -0
  1795. data/vendor/rails/railties/test/plugin_test.rb +141 -0
  1796. data/vendor/rails/railties/test/plugin_test_helper.rb +29 -0
  1797. data/vendor/rails/railties/test/rails_generator_test.rb +137 -0
  1798. data/vendor/rails/railties/test/rails_info_controller_test.rb +48 -0
  1799. data/vendor/rails/railties/test/rails_info_test.rb +105 -0
  1800. data/vendor/rails/railties/test/secret_key_generation_test.rb +35 -0
  1801. metadata +2304 -693
  1802. data/History.txt +0 -40
  1803. data/License.txt +0 -26
  1804. data/Manifest.txt +0 -671
  1805. data/config/hoe.rb +0 -80
  1806. data/config/requirements.rb +0 -15
  1807. data/lib/spree/version.rb +0 -9
  1808. data/script/txt2html +0 -74
  1809. data/setup.rb +0 -1585
  1810. data/starter-app/README +0 -182
  1811. data/starter-app/app/controllers/application.rb +0 -14
  1812. data/starter-app/app/models/tag.rb +0 -37
  1813. data/starter-app/app/models/tagging.rb +0 -16
  1814. data/starter-app/app/views/layouts/application.rhtml +0 -48
  1815. data/starter-app/config/boot.rb +0 -45
  1816. data/starter-app/config/environment.rb +0 -140
  1817. data/starter-app/config/environments/development.rb +0 -21
  1818. data/starter-app/config/routes.rb +0 -28
  1819. data/starter-app/db/migrate/003_create_tags_and_taggings.rb +0 -28
  1820. data/starter-app/db/migrate/004_spree_to_version_21.rb +0 -9
  1821. data/starter-app/db/sample/credit_cards.yml +0 -12
  1822. data/starter-app/db/sample/images.yml +0 -252
  1823. data/starter-app/db/sample/line_items.yml +0 -25
  1824. data/starter-app/db/sample/orders.yml +0 -15
  1825. data/starter-app/db/sample/skus.yml +0 -28
  1826. data/starter-app/db/sample/taggings.yml +0 -16
  1827. data/starter-app/db/sample/tags.yml +0 -6
  1828. data/starter-app/db/sample/variants.yml +0 -47
  1829. data/starter-app/doc/README_FOR_APP +0 -2
  1830. data/starter-app/lib/tagging_extensions.rb +0 -104
  1831. data/starter-app/public/index.html +0 -277
  1832. data/starter-app/public/stylesheets/cart/_controller.css +0 -4
  1833. data/starter-app/script/destroy +0 -3
  1834. data/starter-app/script/generate +0 -3
  1835. data/starter-app/spec/models/product_spec.rb +0 -29
  1836. data/starter-app/test/fixtures/users.yml +0 -7
  1837. data/starter-app/test/test_helper.rb +0 -28
  1838. data/starter-app/test/unit/user_test.rb +0 -8
  1839. data/starter-app/vendor/plugins/engines/CHANGELOG +0 -258
  1840. data/starter-app/vendor/plugins/engines/MIT-LICENSE +0 -21
  1841. data/starter-app/vendor/plugins/engines/README +0 -63
  1842. data/starter-app/vendor/plugins/engines/Rakefile +0 -32
  1843. data/starter-app/vendor/plugins/engines/about.yml +0 -7
  1844. data/starter-app/vendor/plugins/engines/boot.rb +0 -18
  1845. data/starter-app/vendor/plugins/engines/generators/plugin_migration/USAGE +0 -45
  1846. data/starter-app/vendor/plugins/engines/generators/plugin_migration/plugin_migration_generator.rb +0 -79
  1847. data/starter-app/vendor/plugins/engines/generators/plugin_migration/templates/plugin_migration.erb +0 -13
  1848. data/starter-app/vendor/plugins/engines/init.rb +0 -2
  1849. data/starter-app/vendor/plugins/engines/lib/engines.rb +0 -169
  1850. data/starter-app/vendor/plugins/engines/lib/engines/assets.rb +0 -38
  1851. data/starter-app/vendor/plugins/engines/lib/engines/plugin.rb +0 -125
  1852. data/starter-app/vendor/plugins/engines/lib/engines/plugin/list.rb +0 -30
  1853. data/starter-app/vendor/plugins/engines/lib/engines/plugin/loader.rb +0 -18
  1854. data/starter-app/vendor/plugins/engines/lib/engines/plugin/locator.rb +0 -11
  1855. data/starter-app/vendor/plugins/engines/lib/engines/plugin/migrator.rb +0 -60
  1856. data/starter-app/vendor/plugins/engines/lib/engines/rails_extensions/action_mailer.rb +0 -85
  1857. data/starter-app/vendor/plugins/engines/lib/engines/rails_extensions/active_record.rb +0 -24
  1858. data/starter-app/vendor/plugins/engines/lib/engines/rails_extensions/asset_helpers.rb +0 -119
  1859. data/starter-app/vendor/plugins/engines/lib/engines/rails_extensions/dependencies.rb +0 -145
  1860. data/starter-app/vendor/plugins/engines/lib/engines/rails_extensions/migrations.rb +0 -161
  1861. data/starter-app/vendor/plugins/engines/lib/engines/rails_extensions/rails.rb +0 -11
  1862. data/starter-app/vendor/plugins/engines/lib/engines/rails_extensions/routing.rb +0 -84
  1863. data/starter-app/vendor/plugins/engines/lib/engines/testing.rb +0 -87
  1864. data/starter-app/vendor/plugins/engines/tasks/engines.rake +0 -176
  1865. data/starter-app/vendor/plugins/paginating_find/test_app/db/schema.rb +0 -16
  1866. data/starter-app/vendor/plugins/spree/.rakeTasks +0 -7
  1867. data/starter-app/vendor/plugins/spree/CHANGELOG +0 -1
  1868. data/starter-app/vendor/plugins/spree/README +0 -1
  1869. data/starter-app/vendor/plugins/spree/Rakefile +0 -10
  1870. data/starter-app/vendor/plugins/spree/VERSION +0 -1
  1871. data/starter-app/vendor/plugins/spree/app/controllers/admin/orders_controller.rb +0 -247
  1872. data/starter-app/vendor/plugins/spree/app/controllers/admin/products_controller.rb +0 -207
  1873. data/starter-app/vendor/plugins/spree/app/controllers/cart_controller.rb +0 -39
  1874. data/starter-app/vendor/plugins/spree/app/controllers/checkout_controller.rb +0 -184
  1875. data/starter-app/vendor/plugins/spree/app/controllers/spree/base_controller.rb +0 -47
  1876. data/starter-app/vendor/plugins/spree/app/helpers/checkout_helper.rb +0 -17
  1877. data/starter-app/vendor/plugins/spree/app/helpers/spree/base_helper.rb +0 -101
  1878. data/starter-app/vendor/plugins/spree/app/models/cart_item.rb +0 -26
  1879. data/starter-app/vendor/plugins/spree/app/models/image.rb +0 -12
  1880. data/starter-app/vendor/plugins/spree/app/models/order.rb +0 -87
  1881. data/starter-app/vendor/plugins/spree/app/models/product.rb +0 -58
  1882. data/starter-app/vendor/plugins/spree/app/models/sku.rb +0 -7
  1883. data/starter-app/vendor/plugins/spree/app/models/variant.rb +0 -5
  1884. data/starter-app/vendor/plugins/spree/app/views/admin/products/_form.rhtml +0 -65
  1885. data/starter-app/vendor/plugins/spree/app/views/admin/products/_option_types.rhtml +0 -42
  1886. data/starter-app/vendor/plugins/spree/app/views/admin/products/_variants.rhtml +0 -43
  1887. data/starter-app/vendor/plugins/spree/app/views/admin/products/index.rhtml +0 -65
  1888. data/starter-app/vendor/plugins/spree/app/views/cart/index.rhtml +0 -49
  1889. data/starter-app/vendor/plugins/spree/app/views/layouts/admin.rhtml +0 -69
  1890. data/starter-app/vendor/plugins/spree/app/views/layouts/products.rhtml +0 -20
  1891. data/starter-app/vendor/plugins/spree/app/views/order_mailer/cancel.rhtml +0 -15
  1892. data/starter-app/vendor/plugins/spree/app/views/order_mailer/confirm.rhtml +0 -18
  1893. data/starter-app/vendor/plugins/spree/app/views/store/list.rhtml +0 -15
  1894. data/starter-app/vendor/plugins/spree/app/views/store/show.rhtml +0 -70
  1895. data/starter-app/vendor/plugins/spree/assets/.htaccess +0 -40
  1896. data/starter-app/vendor/plugins/spree/assets/stylesheets/spree-admin.css +0 -348
  1897. data/starter-app/vendor/plugins/spree/db/migrate/008_create_orders.rb +0 -24
  1898. data/starter-app/vendor/plugins/spree/db/migrate/009_create_products.rb +0 -20
  1899. data/starter-app/vendor/plugins/spree/db/migrate/011_create_variants.rb +0 -11
  1900. data/starter-app/vendor/plugins/spree/db/migrate/013_create_skus.rb +0 -13
  1901. data/starter-app/vendor/plugins/spree/db/migrate/019_create_images.rb +0 -19
  1902. data/starter-app/vendor/plugins/spree/init.rb +0 -11
  1903. data/starter-app/vendor/plugins/spree/install.rb +0 -3
  1904. data/starter-app/vendor/plugins/spree/lib/constants/enumerable_constants.rb +0 -207
  1905. data/starter-app/vendor/plugins/spree/lib/tasks/spree_bootstrap.rake +0 -24
  1906. data/starter-app/vendor/plugins/spree/lib/tax/sales_tax.rb +0 -26
  1907. data/starter-app/vendor/plugins/spree/routes.rb +0 -3
  1908. data/starter-app/vendor/plugins/spree/script/about +0 -3
  1909. data/starter-app/vendor/plugins/spree/script/breakpointer +0 -3
  1910. data/starter-app/vendor/plugins/spree/script/console +0 -3
  1911. data/starter-app/vendor/plugins/spree/script/destroy +0 -3
  1912. data/starter-app/vendor/plugins/spree/script/generate +0 -3
  1913. data/starter-app/vendor/plugins/spree/script/plugin +0 -3
  1914. data/starter-app/vendor/plugins/spree/script/runner +0 -3
  1915. data/starter-app/vendor/plugins/spree/script/server +0 -3
  1916. data/starter-app/vendor/plugins/spree/test/fixtures/addresses.yml +0 -29
  1917. data/starter-app/vendor/plugins/spree/test/fixtures/categories.yml +0 -40
  1918. data/starter-app/vendor/plugins/spree/test/fixtures/line_items.yml +0 -32
  1919. data/starter-app/vendor/plugins/spree/test/fixtures/orders.yml +0 -17
  1920. data/starter-app/vendor/plugins/spree/test/fixtures/products.yml +0 -63
  1921. data/starter-app/vendor/plugins/spree/test/fixtures/products_tags.yml +0 -10
  1922. data/starter-app/vendor/plugins/spree/test/fixtures/roles.yml +0 -6
  1923. data/starter-app/vendor/plugins/spree/test/fixtures/roles_users.yml +0 -3
  1924. data/starter-app/vendor/plugins/spree/test/fixtures/skus.yml +0 -5
  1925. data/starter-app/vendor/plugins/spree/test/fixtures/tags.yml +0 -7
  1926. data/starter-app/vendor/plugins/spree/test/fixtures/tax_treatments.yml +0 -7
  1927. data/starter-app/vendor/plugins/spree/test/fixtures/txns.yml +0 -13
  1928. data/starter-app/vendor/plugins/spree/test/fixtures/users.yml +0 -40
  1929. data/starter-app/vendor/plugins/spree/test/fixtures/variations.yml +0 -16
  1930. data/starter-app/vendor/plugins/spree/test/functional/account_controller_test.rb +0 -129
  1931. data/starter-app/vendor/plugins/spree/test/functional/admin/base_controller_test.rb +0 -18
  1932. data/starter-app/vendor/plugins/spree/test/functional/admin/option_groups_controller_test.rb +0 -18
  1933. data/starter-app/vendor/plugins/spree/test/functional/admin/option_values_controller_test.rb +0 -18
  1934. data/starter-app/vendor/plugins/spree/test/functional/admin/orders_controller_test.rb +0 -18
  1935. data/starter-app/vendor/plugins/spree/test/functional/admin/overview_controller_test.rb +0 -18
  1936. data/starter-app/vendor/plugins/spree/test/functional/admin/products_controller_test.rb +0 -125
  1937. data/starter-app/vendor/plugins/spree/test/functional/admin/users_controller_test.rb +0 -58
  1938. data/starter-app/vendor/plugins/spree/test/functional/application_controller_test.rb +0 -30
  1939. data/starter-app/vendor/plugins/spree/test/functional/cart_controller_test.rb +0 -76
  1940. data/starter-app/vendor/plugins/spree/test/functional/checkout_controller_test.rb +0 -20
  1941. data/starter-app/vendor/plugins/spree/test/integration/authentication_test.rb +0 -53
  1942. data/starter-app/vendor/plugins/spree/test/integration/product_admin_test.rb +0 -135
  1943. data/starter-app/vendor/plugins/spree/test/integration/user_stories_test.rb +0 -59
  1944. data/starter-app/vendor/plugins/spree/test/test_helper.rb +0 -45
  1945. data/starter-app/vendor/plugins/spree/test/unit/address_test.rb +0 -10
  1946. data/starter-app/vendor/plugins/spree/test/unit/category_test.rb +0 -52
  1947. data/starter-app/vendor/plugins/spree/test/unit/option_group_test.rb +0 -12
  1948. data/starter-app/vendor/plugins/spree/test/unit/order_test.rb +0 -49
  1949. data/starter-app/vendor/plugins/spree/test/unit/product_test.rb +0 -74
  1950. data/starter-app/vendor/plugins/spree/test/unit/role_test.rb +0 -10
  1951. data/starter-app/vendor/plugins/spree/test/unit/sales_tax_test.rb +0 -46
  1952. data/starter-app/vendor/plugins/spree/test/unit/sku_test.rb +0 -10
  1953. data/starter-app/vendor/plugins/spree/test/unit/tag_test.rb +0 -9
  1954. data/starter-app/vendor/plugins/spree/test/unit/tax_treatment_test.rb +0 -10
  1955. data/starter-app/vendor/plugins/spree/test/unit/txn_test.rb +0 -10
  1956. data/tasks/deployment.rake +0 -34
  1957. data/tasks/environment.rake +0 -7
  1958. data/tasks/website.rake +0 -17
  1959. data/test/test_helper.rb +0 -2
  1960. data/test/test_railscart.rb +0 -11
@@ -0,0 +1,41 @@
1
+ module ActiveRecord
2
+ # Active Record automatically timestamps create and update operations if the table has fields
3
+ # named created_at/created_on or updated_at/updated_on.
4
+ #
5
+ # Timestamping can be turned off by setting
6
+ # <tt>ActiveRecord::Base.record_timestamps = false</tt>
7
+ #
8
+ # Timestamps are in the local timezone by default but can use UTC by setting
9
+ # <tt>ActiveRecord::Base.default_timezone = :utc</tt>
10
+ module Timestamp
11
+ def self.included(base) #:nodoc:
12
+ base.alias_method_chain :create, :timestamps
13
+ base.alias_method_chain :update, :timestamps
14
+
15
+ base.class_inheritable_accessor :record_timestamps, :instance_writer => false
16
+ base.record_timestamps = true
17
+ end
18
+
19
+ private
20
+ def create_with_timestamps #:nodoc:
21
+ if record_timestamps
22
+ t = self.class.default_timezone == :utc ? Time.now.utc : Time.now
23
+ write_attribute('created_at', t) if respond_to?(:created_at) && created_at.nil?
24
+ write_attribute('created_on', t) if respond_to?(:created_on) && created_on.nil?
25
+
26
+ write_attribute('updated_at', t) if respond_to?(:updated_at)
27
+ write_attribute('updated_on', t) if respond_to?(:updated_on)
28
+ end
29
+ create_without_timestamps
30
+ end
31
+
32
+ def update_with_timestamps #:nodoc:
33
+ if record_timestamps
34
+ t = self.class.default_timezone == :utc ? Time.now.utc : Time.now
35
+ write_attribute('updated_at', t) if respond_to?(:updated_at)
36
+ write_attribute('updated_on', t) if respond_to?(:updated_on)
37
+ end
38
+ update_without_timestamps
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,132 @@
1
+ require 'thread'
2
+
3
+ module ActiveRecord
4
+ module Transactions # :nodoc:
5
+ class TransactionError < ActiveRecordError # :nodoc:
6
+ end
7
+
8
+ def self.included(base)
9
+ base.extend(ClassMethods)
10
+
11
+ base.class_eval do
12
+ [:destroy, :save, :save!].each do |method|
13
+ alias_method_chain method, :transactions
14
+ end
15
+ end
16
+ end
17
+
18
+ # Transactions are protective blocks where SQL statements are only permanent if they can all succeed as one atomic action.
19
+ # The classic example is a transfer between two accounts where you can only have a deposit if the withdrawal succeeded and
20
+ # vice versa. Transactions enforce the integrity of the database and guard the data against program errors or database break-downs.
21
+ # So basically you should use transaction blocks whenever you have a number of statements that must be executed together or
22
+ # not at all. Example:
23
+ #
24
+ # transaction do
25
+ # david.withdrawal(100)
26
+ # mary.deposit(100)
27
+ # end
28
+ #
29
+ # This example will only take money from David and give to Mary if neither +withdrawal+ nor +deposit+ raises an exception.
30
+ # Exceptions will force a ROLLBACK that returns the database to the state before the transaction was begun. Be aware, though,
31
+ # that the objects by default will _not_ have their instance data returned to their pre-transactional state.
32
+ #
33
+ # == Different ActiveRecord classes in a single transaction
34
+ #
35
+ # Though the transaction class method is called on some ActiveRecord class,
36
+ # the objects within the transaction block need not all be instances of
37
+ # that class.
38
+ # In this example a <tt>Balance</tt> record is transactionally saved even
39
+ # though <tt>transaction</tt> is called on the <tt>Account</tt> class:
40
+ #
41
+ # Account.transaction do
42
+ # balance.save!
43
+ # account.save!
44
+ # end
45
+ #
46
+ # == Transactions are not distributed across database connections
47
+ #
48
+ # A transaction acts on a single database connection. If you have
49
+ # multiple class-specific databases, the transaction will not protect
50
+ # interaction among them. One workaround is to begin a transaction
51
+ # on each class whose models you alter:
52
+ #
53
+ # Student.transaction do
54
+ # Course.transaction do
55
+ # course.enroll(student)
56
+ # student.units += course.units
57
+ # end
58
+ # end
59
+ #
60
+ # This is a poor solution, but full distributed transactions are beyond
61
+ # the scope of Active Record.
62
+ #
63
+ # == Save and destroy are automatically wrapped in a transaction
64
+ #
65
+ # Both Base#save and Base#destroy come wrapped in a transaction that ensures that whatever you do in validations or callbacks
66
+ # will happen under the protected cover of a transaction. So you can use validations to check for values that the transaction
67
+ # depends on or you can raise exceptions in the callbacks to rollback.
68
+ #
69
+ # == Exception handling
70
+ #
71
+ # Also have in mind that exceptions thrown within a transaction block will be propagated (after triggering the ROLLBACK), so you
72
+ # should be ready to catch those in your application code. One exception is the ActiveRecord::Rollback exception, which will
73
+ # trigger a ROLLBACK when raised, but not be re-raised by the transaction block.
74
+ module ClassMethods
75
+ def transaction(&block)
76
+ previous_handler = trap('TERM') { raise TransactionError, "Transaction aborted" }
77
+ increment_open_transactions
78
+
79
+ begin
80
+ connection.transaction(Thread.current['start_db_transaction'], &block)
81
+ ensure
82
+ decrement_open_transactions
83
+ trap('TERM', previous_handler)
84
+ end
85
+ end
86
+
87
+ private
88
+ def increment_open_transactions #:nodoc:
89
+ open = Thread.current['open_transactions'] ||= 0
90
+ Thread.current['start_db_transaction'] = open.zero?
91
+ Thread.current['open_transactions'] = open + 1
92
+ end
93
+
94
+ def decrement_open_transactions #:nodoc:
95
+ Thread.current['open_transactions'] -= 1
96
+ end
97
+ end
98
+
99
+ def transaction(&block)
100
+ self.class.transaction(&block)
101
+ end
102
+
103
+ def destroy_with_transactions #:nodoc:
104
+ transaction { destroy_without_transactions }
105
+ end
106
+
107
+ def save_with_transactions(perform_validation = true) #:nodoc:
108
+ rollback_active_record_state! { transaction { save_without_transactions(perform_validation) } }
109
+ end
110
+
111
+ def save_with_transactions! #:nodoc:
112
+ rollback_active_record_state! { transaction { save_without_transactions! } }
113
+ end
114
+
115
+ # Reset id and @new_record if the transaction rolls back.
116
+ def rollback_active_record_state!
117
+ id_present = has_attribute?(self.class.primary_key)
118
+ previous_id = id
119
+ previous_new_record = @new_record
120
+ yield
121
+ rescue Exception
122
+ @new_record = previous_new_record
123
+ if id_present
124
+ self.id = previous_id
125
+ else
126
+ @attributes.delete(self.class.primary_key)
127
+ @attributes_cache.delete(self.class.primary_key)
128
+ end
129
+ raise
130
+ end
131
+ end
132
+ end
@@ -0,0 +1,1025 @@
1
+ module ActiveRecord
2
+ # Raised by save! and create! when the record is invalid. Use the
3
+ # record method to retrieve the record which did not validate.
4
+ # begin
5
+ # complex_operation_that_calls_save!_internally
6
+ # rescue ActiveRecord::RecordInvalid => invalid
7
+ # puts invalid.record.errors
8
+ # end
9
+ class RecordInvalid < ActiveRecordError #:nodoc:
10
+ attr_reader :record
11
+ def initialize(record)
12
+ @record = record
13
+ super("Validation failed: #{@record.errors.full_messages.join(", ")}")
14
+ end
15
+ end
16
+
17
+ # Active Record validation is reported to and from this object, which is used by Base#save to
18
+ # determine whether the object is in a valid state to be saved. See usage example in Validations.
19
+ class Errors
20
+ include Enumerable
21
+
22
+ def initialize(base) # :nodoc:
23
+ @base, @errors = base, {}
24
+ end
25
+
26
+ @@default_error_messages = {
27
+ :inclusion => "is not included in the list",
28
+ :exclusion => "is reserved",
29
+ :invalid => "is invalid",
30
+ :confirmation => "doesn't match confirmation",
31
+ :accepted => "must be accepted",
32
+ :empty => "can't be empty",
33
+ :blank => "can't be blank",
34
+ :too_long => "is too long (maximum is %d characters)",
35
+ :too_short => "is too short (minimum is %d characters)",
36
+ :wrong_length => "is the wrong length (should be %d characters)",
37
+ :taken => "has already been taken",
38
+ :not_a_number => "is not a number",
39
+ :greater_than => "must be greater than %d",
40
+ :greater_than_or_equal_to => "must be greater than or equal to %d",
41
+ :equal_to => "must be equal to %d",
42
+ :less_than => "must be less than %d",
43
+ :less_than_or_equal_to => "must be less than or equal to %d",
44
+ :odd => "must be odd",
45
+ :even => "must be even"
46
+ }
47
+
48
+ # Holds a hash with all the default error messages that can be replaced by your own copy or localizations.
49
+ cattr_accessor :default_error_messages
50
+
51
+
52
+ # Adds an error to the base object instead of any particular attribute. This is used
53
+ # to report errors that don't tie to any specific attribute, but rather to the object
54
+ # as a whole. These error messages don't get prepended with any field name when iterating
55
+ # with each_full, so they should be complete sentences.
56
+ def add_to_base(msg)
57
+ add(:base, msg)
58
+ end
59
+
60
+ # Adds an error message (+msg+) to the +attribute+, which will be returned on a call to <tt>on(attribute)</tt>
61
+ # for the same attribute and ensure that this error object returns false when asked if <tt>empty?</tt>. More than one
62
+ # error can be added to the same +attribute+ in which case an array will be returned on a call to <tt>on(attribute)</tt>.
63
+ # If no +msg+ is supplied, "invalid" is assumed.
64
+ def add(attribute, msg = @@default_error_messages[:invalid])
65
+ @errors[attribute.to_s] = [] if @errors[attribute.to_s].nil?
66
+ @errors[attribute.to_s] << msg
67
+ end
68
+
69
+ # Will add an error message to each of the attributes in +attributes+ that is empty.
70
+ def add_on_empty(attributes, msg = @@default_error_messages[:empty])
71
+ for attr in [attributes].flatten
72
+ value = @base.respond_to?(attr.to_s) ? @base.send(attr.to_s) : @base[attr.to_s]
73
+ is_empty = value.respond_to?("empty?") ? value.empty? : false
74
+ add(attr, msg) unless !value.nil? && !is_empty
75
+ end
76
+ end
77
+
78
+ # Will add an error message to each of the attributes in +attributes+ that is blank (using Object#blank?).
79
+ def add_on_blank(attributes, msg = @@default_error_messages[:blank])
80
+ for attr in [attributes].flatten
81
+ value = @base.respond_to?(attr.to_s) ? @base.send(attr.to_s) : @base[attr.to_s]
82
+ add(attr, msg) if value.blank?
83
+ end
84
+ end
85
+
86
+ # Returns true if the specified +attribute+ has errors associated with it.
87
+ #
88
+ # class Company < ActiveRecord::Base
89
+ # validates_presence_of :name, :address, :email
90
+ # validates_length_of :name, :in => 5..30
91
+ # end
92
+ #
93
+ # company = Company.create(:address => '123 First St.')
94
+ # company.errors.invalid?(:name) # => true
95
+ # company.errors.invalid?(:address) # => false
96
+ def invalid?(attribute)
97
+ !@errors[attribute.to_s].nil?
98
+ end
99
+
100
+ # Returns nil, if no errors are associated with the specified +attribute+.
101
+ # Returns the error message, if one error is associated with the specified +attribute+.
102
+ # Returns an array of error messages, if more than one error is associated with the specified +attribute+.
103
+ #
104
+ # class Company < ActiveRecord::Base
105
+ # validates_presence_of :name, :address, :email
106
+ # validates_length_of :name, :in => 5..30
107
+ # end
108
+ #
109
+ # company = Company.create(:address => '123 First St.')
110
+ # company.errors.on(:name) # => ["is too short (minimum is 5 characters)", "can't be blank"]
111
+ # company.errors.on(:email) # => "can't be blank"
112
+ # company.errors.on(:address) # => nil
113
+ def on(attribute)
114
+ errors = @errors[attribute.to_s]
115
+ return nil if errors.nil?
116
+ errors.size == 1 ? errors.first : errors
117
+ end
118
+
119
+ alias :[] :on
120
+
121
+ # Returns errors assigned to the base object through add_to_base according to the normal rules of on(attribute).
122
+ def on_base
123
+ on(:base)
124
+ end
125
+
126
+ # Yields each attribute and associated message per error added.
127
+ #
128
+ # class Company < ActiveRecord::Base
129
+ # validates_presence_of :name, :address, :email
130
+ # validates_length_of :name, :in => 5..30
131
+ # end
132
+ #
133
+ # company = Company.create(:address => '123 First St.')
134
+ # company.errors.each{|attr,msg| puts "#{attr} - #{msg}" } # =>
135
+ # name - is too short (minimum is 5 characters)
136
+ # name - can't be blank
137
+ # address - can't be blank
138
+ def each
139
+ @errors.each_key { |attr| @errors[attr].each { |msg| yield attr, msg } }
140
+ end
141
+
142
+ # Yields each full error message added. So Person.errors.add("first_name", "can't be empty") will be returned
143
+ # through iteration as "First name can't be empty".
144
+ #
145
+ # class Company < ActiveRecord::Base
146
+ # validates_presence_of :name, :address, :email
147
+ # validates_length_of :name, :in => 5..30
148
+ # end
149
+ #
150
+ # company = Company.create(:address => '123 First St.')
151
+ # company.errors.each_full{|msg| puts msg } # =>
152
+ # Name is too short (minimum is 5 characters)
153
+ # Name can't be blank
154
+ # Address can't be blank
155
+ def each_full
156
+ full_messages.each { |msg| yield msg }
157
+ end
158
+
159
+ # Returns all the full error messages in an array.
160
+ #
161
+ # class Company < ActiveRecord::Base
162
+ # validates_presence_of :name, :address, :email
163
+ # validates_length_of :name, :in => 5..30
164
+ # end
165
+ #
166
+ # company = Company.create(:address => '123 First St.')
167
+ # company.errors.full_messages # =>
168
+ # ["Name is too short (minimum is 5 characters)", "Name can't be blank", "Address can't be blank"]
169
+ def full_messages
170
+ full_messages = []
171
+
172
+ @errors.each_key do |attr|
173
+ @errors[attr].each do |msg|
174
+ next if msg.nil?
175
+
176
+ if attr == "base"
177
+ full_messages << msg
178
+ else
179
+ full_messages << @base.class.human_attribute_name(attr) + " " + msg
180
+ end
181
+ end
182
+ end
183
+ full_messages
184
+ end
185
+
186
+ # Returns true if no errors have been added.
187
+ def empty?
188
+ @errors.empty?
189
+ end
190
+
191
+ # Removes all errors that have been added.
192
+ def clear
193
+ @errors = {}
194
+ end
195
+
196
+ # Returns the total number of errors added. Two errors added to the same attribute will be counted as such.
197
+ def size
198
+ @errors.values.inject(0) { |error_count, attribute| error_count + attribute.size }
199
+ end
200
+
201
+ alias_method :count, :size
202
+ alias_method :length, :size
203
+
204
+ # Return an XML representation of this error object.
205
+ #
206
+ # class Company < ActiveRecord::Base
207
+ # validates_presence_of :name, :address, :email
208
+ # validates_length_of :name, :in => 5..30
209
+ # end
210
+ #
211
+ # company = Company.create(:address => '123 First St.')
212
+ # company.errors.to_xml # =>
213
+ # <?xml version="1.0" encoding="UTF-8"?>
214
+ # <errors>
215
+ # <error>Name is too short (minimum is 5 characters)</error>
216
+ # <error>Name can't be blank</error>
217
+ # <error>Address can't be blank</error>
218
+ # </errors>
219
+ def to_xml(options={})
220
+ options[:root] ||= "errors"
221
+ options[:indent] ||= 2
222
+ options[:builder] ||= Builder::XmlMarkup.new(:indent => options[:indent])
223
+
224
+ options[:builder].instruct! unless options.delete(:skip_instruct)
225
+ options[:builder].errors do |e|
226
+ full_messages.each { |msg| e.error(msg) }
227
+ end
228
+ end
229
+ end
230
+
231
+
232
+ # Active Records implement validation by overwriting Base#validate (or the variations, +validate_on_create+ and
233
+ # +validate_on_update+). Each of these methods can inspect the state of the object, which usually means ensuring
234
+ # that a number of attributes have a certain value (such as not empty, within a given range, matching a certain regular expression).
235
+ #
236
+ # Example:
237
+ #
238
+ # class Person < ActiveRecord::Base
239
+ # protected
240
+ # def validate
241
+ # errors.add_on_empty %w( first_name last_name )
242
+ # errors.add("phone_number", "has invalid format") unless phone_number =~ /[0-9]*/
243
+ # end
244
+ #
245
+ # def validate_on_create # is only run the first time a new object is saved
246
+ # unless valid_discount?(membership_discount)
247
+ # errors.add("membership_discount", "has expired")
248
+ # end
249
+ # end
250
+ #
251
+ # def validate_on_update
252
+ # errors.add_to_base("No changes have occurred") if unchanged_attributes?
253
+ # end
254
+ # end
255
+ #
256
+ # person = Person.new("first_name" => "David", "phone_number" => "what?")
257
+ # person.save # => false (and doesn't do the save)
258
+ # person.errors.empty? # => false
259
+ # person.errors.count # => 2
260
+ # person.errors.on "last_name" # => "can't be empty"
261
+ # person.errors.on "phone_number" # => "has invalid format"
262
+ # person.errors.each_full { |msg| puts msg }
263
+ # # => "Last name can't be empty\n" +
264
+ # "Phone number has invalid format"
265
+ #
266
+ # person.attributes = { "last_name" => "Heinemeier", "phone_number" => "555-555" }
267
+ # person.save # => true (and person is now saved in the database)
268
+ #
269
+ # An +Errors+ object is automatically created for every Active Record.
270
+ #
271
+ # Please do have a look at ActiveRecord::Validations::ClassMethods for a higher level of validations.
272
+ module Validations
273
+ VALIDATIONS = %w( validate validate_on_create validate_on_update )
274
+
275
+ def self.included(base) # :nodoc:
276
+ base.extend ClassMethods
277
+ base.class_eval do
278
+ alias_method_chain :save, :validation
279
+ alias_method_chain :save!, :validation
280
+ alias_method_chain :update_attribute, :validation_skipping
281
+ end
282
+ end
283
+
284
+ # All of the following validations are defined in the class scope of the model that you're interested in validating.
285
+ # They offer a more declarative way of specifying when the model is valid and when it is not. It is recommended to use
286
+ # these over the low-level calls to validate and validate_on_create when possible.
287
+ module ClassMethods
288
+ DEFAULT_VALIDATION_OPTIONS = {
289
+ :on => :save,
290
+ :allow_nil => false,
291
+ :allow_blank => false,
292
+ :message => nil
293
+ }.freeze
294
+
295
+ ALL_RANGE_OPTIONS = [ :is, :within, :in, :minimum, :maximum ].freeze
296
+ ALL_NUMERICALITY_CHECKS = { :greater_than => '>', :greater_than_or_equal_to => '>=',
297
+ :equal_to => '==', :less_than => '<', :less_than_or_equal_to => '<=',
298
+ :odd => 'odd?', :even => 'even?' }.freeze
299
+
300
+ # Adds a validation method or block to the class. This is useful when
301
+ # overriding the #validate instance method becomes too unwieldly and
302
+ # you're looking for more descriptive declaration of your validations.
303
+ #
304
+ # This can be done with a symbol pointing to a method:
305
+ #
306
+ # class Comment < ActiveRecord::Base
307
+ # validate :must_be_friends
308
+ #
309
+ # def must_be_friends
310
+ # errors.add_to_base("Must be friends to leave a comment") unless commenter.friend_of?(commentee)
311
+ # end
312
+ # end
313
+ #
314
+ # Or with a block which is passed the current record to be validated:
315
+ #
316
+ # class Comment < ActiveRecord::Base
317
+ # validate do |comment|
318
+ # comment.must_be_friends
319
+ # end
320
+ #
321
+ # def must_be_friends
322
+ # errors.add_to_base("Must be friends to leave a comment") unless commenter.friend_of?(commentee)
323
+ # end
324
+ # end
325
+ #
326
+ # This usage applies to #validate_on_create and #validate_on_update as well.
327
+ def validate(*methods, &block)
328
+ methods << block if block_given?
329
+ write_inheritable_set(:validate, methods)
330
+ end
331
+
332
+ def validate_on_create(*methods, &block)
333
+ methods << block if block_given?
334
+ write_inheritable_set(:validate_on_create, methods)
335
+ end
336
+
337
+ def validate_on_update(*methods, &block)
338
+ methods << block if block_given?
339
+ write_inheritable_set(:validate_on_update, methods)
340
+ end
341
+
342
+ def condition_block?(condition)
343
+ condition.respond_to?("call") && (condition.arity == 1 || condition.arity == -1)
344
+ end
345
+
346
+ # Determine from the given condition (whether a block, procedure, method or string)
347
+ # whether or not to validate the record. See #validates_each.
348
+ def evaluate_condition(condition, record)
349
+ case condition
350
+ when Symbol; record.send(condition)
351
+ when String; eval(condition, record.send(:binding))
352
+ else
353
+ if condition_block?(condition)
354
+ condition.call(record)
355
+ else
356
+ raise(
357
+ ActiveRecordError,
358
+ "Validations need to be either a symbol, string (to be eval'ed), proc/method, or " +
359
+ "class implementing a static validation method"
360
+ )
361
+ end
362
+ end
363
+ end
364
+
365
+ # Validates each attribute against a block.
366
+ #
367
+ # class Person < ActiveRecord::Base
368
+ # validates_each :first_name, :last_name do |record, attr, value|
369
+ # record.errors.add attr, 'starts with z.' if value[0] == ?z
370
+ # end
371
+ # end
372
+ #
373
+ # Options:
374
+ # * <tt>on</tt> - Specifies when this validation is active (default is :save, other options :create, :update)
375
+ # * <tt>allow_nil</tt> - Skip validation if attribute is nil.
376
+ # * <tt>allow_blank</tt> - Skip validation if attribute is blank.
377
+ # * <tt>if</tt> - Specifies a method, proc or string to call to determine if the validation should
378
+ # occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }). The
379
+ # method, proc or string should return or evaluate to a true or false value.
380
+ # * <tt>unless</tt> - Specifies a method, proc or string to call to determine if the validation should
381
+ # not occur (e.g. :unless => :skip_validation, or :unless => Proc.new { |user| user.signup_step <= 2 }). The
382
+ # method, proc or string should return or evaluate to a true or false value.
383
+ def validates_each(*attrs)
384
+ options = attrs.extract_options!.symbolize_keys
385
+ attrs = attrs.flatten
386
+
387
+ # Declare the validation.
388
+ send(validation_method(options[:on] || :save)) do |record|
389
+ # Don't validate when there is an :if condition and that condition is false or there is an :unless condition and that condition is true
390
+ unless (options[:if] && !evaluate_condition(options[:if], record)) || (options[:unless] && evaluate_condition(options[:unless], record))
391
+ attrs.each do |attr|
392
+ value = record.send(attr)
393
+ next if (value.nil? && options[:allow_nil]) || (value.blank? && options[:allow_blank])
394
+ yield record, attr, value
395
+ end
396
+ end
397
+ end
398
+ end
399
+
400
+ # Encapsulates the pattern of wanting to validate a password or email address field with a confirmation. Example:
401
+ #
402
+ # Model:
403
+ # class Person < ActiveRecord::Base
404
+ # validates_confirmation_of :user_name, :password
405
+ # validates_confirmation_of :email_address, :message => "should match confirmation"
406
+ # end
407
+ #
408
+ # View:
409
+ # <%= password_field "person", "password" %>
410
+ # <%= password_field "person", "password_confirmation" %>
411
+ #
412
+ # The added +password_confirmation+ attribute is virtual; it exists only as an in-memory attribute for validating the password.
413
+ # To achieve this, the validation adds acccessors to the model for the confirmation attribute. NOTE: This check is performed
414
+ # only if +password_confirmation+ is not nil, and by default only on save. To require confirmation, make sure to add a presence
415
+ # check for the confirmation attribute:
416
+ #
417
+ # validates_presence_of :password_confirmation, :if => :password_changed?
418
+ #
419
+ # Configuration options:
420
+ # * <tt>message</tt> - A custom error message (default is: "doesn't match confirmation")
421
+ # * <tt>on</tt> - Specifies when this validation is active (default is :save, other options :create, :update)
422
+ # * <tt>if</tt> - Specifies a method, proc or string to call to determine if the validation should
423
+ # occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }). The
424
+ # method, proc or string should return or evaluate to a true or false value.
425
+ # * <tt>unless</tt> - Specifies a method, proc or string to call to determine if the validation should
426
+ # not occur (e.g. :unless => :skip_validation, or :unless => Proc.new { |user| user.signup_step <= 2 }). The
427
+ # method, proc or string should return or evaluate to a true or false value.
428
+ def validates_confirmation_of(*attr_names)
429
+ configuration = { :message => ActiveRecord::Errors.default_error_messages[:confirmation], :on => :save }
430
+ configuration.update(attr_names.extract_options!)
431
+
432
+ attr_accessor(*(attr_names.map { |n| "#{n}_confirmation" }))
433
+
434
+ validates_each(attr_names, configuration) do |record, attr_name, value|
435
+ record.errors.add(attr_name, configuration[:message]) unless record.send("#{attr_name}_confirmation").nil? or value == record.send("#{attr_name}_confirmation")
436
+ end
437
+ end
438
+
439
+ # Encapsulates the pattern of wanting to validate the acceptance of a terms of service check box (or similar agreement). Example:
440
+ #
441
+ # class Person < ActiveRecord::Base
442
+ # validates_acceptance_of :terms_of_service
443
+ # validates_acceptance_of :eula, :message => "must be abided"
444
+ # end
445
+ #
446
+ # If the database column does not exist, the terms_of_service attribute is entirely virtual. This check is
447
+ # performed only if terms_of_service is not nil and by default on save.
448
+ #
449
+ # Configuration options:
450
+ # * <tt>message</tt> - A custom error message (default is: "must be accepted")
451
+ # * <tt>on</tt> - Specifies when this validation is active (default is :save, other options :create, :update)
452
+ # * <tt>allow_nil</tt> - Skip validation if attribute is nil. (default is true)
453
+ # * <tt>accept</tt> - Specifies value that is considered accepted. The default value is a string "1", which
454
+ # makes it easy to relate to an HTML checkbox. This should be set to 'true' if you are validating a database
455
+ # column, since the attribute is typecast from "1" to <tt>true</tt> before validation.
456
+ # * <tt>if</tt> - Specifies a method, proc or string to call to determine if the validation should
457
+ # occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }). The
458
+ # method, proc or string should return or evaluate to a true or false value.
459
+ # * <tt>unless</tt> - Specifies a method, proc or string to call to determine if the validation should
460
+ # not occur (e.g. :unless => :skip_validation, or :unless => Proc.new { |user| user.signup_step <= 2 }). The
461
+ # method, proc or string should return or evaluate to a true or false value.
462
+ def validates_acceptance_of(*attr_names)
463
+ configuration = { :message => ActiveRecord::Errors.default_error_messages[:accepted], :on => :save, :allow_nil => true, :accept => "1" }
464
+ configuration.update(attr_names.extract_options!)
465
+
466
+ db_cols = begin
467
+ column_names
468
+ rescue ActiveRecord::StatementInvalid
469
+ []
470
+ end
471
+ names = attr_names.reject { |name| db_cols.include?(name.to_s) }
472
+ attr_accessor(*names)
473
+
474
+ validates_each(attr_names,configuration) do |record, attr_name, value|
475
+ record.errors.add(attr_name, configuration[:message]) unless value == configuration[:accept]
476
+ end
477
+ end
478
+
479
+ # Validates that the specified attributes are not blank (as defined by Object#blank?). Happens by default on save. Example:
480
+ #
481
+ # class Person < ActiveRecord::Base
482
+ # validates_presence_of :first_name
483
+ # end
484
+ #
485
+ # The first_name attribute must be in the object and it cannot be blank.
486
+ #
487
+ # If you want to validate the presence of a boolean field (where the real values are true and false),
488
+ # you will want to use validates_inclusion_of :field_name, :in => [true, false]
489
+ # This is due to the way Object#blank? handles boolean values. false.blank? # => true
490
+ #
491
+ # Configuration options:
492
+ # * <tt>message</tt> - A custom error message (default is: "can't be blank")
493
+ # * <tt>on</tt> - Specifies when this validation is active (default is :save, other options :create, :update)
494
+ # * <tt>if</tt> - Specifies a method, proc or string to call to determine if the validation should
495
+ # occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }). The
496
+ # method, proc or string should return or evaluate to a true or false value.
497
+ # * <tt>unless</tt> - Specifies a method, proc or string to call to determine if the validation should
498
+ # not occur (e.g. :unless => :skip_validation, or :unless => Proc.new { |user| user.signup_step <= 2 }). The
499
+ # method, proc or string should return or evaluate to a true or false value.
500
+ #
501
+ # === Warning
502
+ # Validate the presence of the foreign key, not the instance variable itself.
503
+ # Do this:
504
+ # validates_presence_of :invoice_id
505
+ #
506
+ # Not this:
507
+ # validates_presence_of :invoice
508
+ #
509
+ # If you validate the presence of the associated object, you will get
510
+ # failures on saves when both the parent object and the child object are
511
+ # new.
512
+ def validates_presence_of(*attr_names)
513
+ configuration = { :message => ActiveRecord::Errors.default_error_messages[:blank], :on => :save }
514
+ configuration.update(attr_names.extract_options!)
515
+
516
+ # can't use validates_each here, because it cannot cope with nonexistent attributes,
517
+ # while errors.add_on_empty can
518
+ send(validation_method(configuration[:on])) do |record|
519
+ unless (configuration[:if] && !evaluate_condition(configuration[:if], record)) || (configuration[:unless] && evaluate_condition(configuration[:unless], record))
520
+ record.errors.add_on_blank(attr_names, configuration[:message])
521
+ end
522
+ end
523
+ end
524
+
525
+ # Validates that the specified attribute matches the length restrictions supplied. Only one option can be used at a time:
526
+ #
527
+ # class Person < ActiveRecord::Base
528
+ # validates_length_of :first_name, :maximum=>30
529
+ # validates_length_of :last_name, :maximum=>30, :message=>"less than %d if you don't mind"
530
+ # validates_length_of :fax, :in => 7..32, :allow_nil => true
531
+ # validates_length_of :phone, :in => 7..32, :allow_blank => true
532
+ # validates_length_of :user_name, :within => 6..20, :too_long => "pick a shorter name", :too_short => "pick a longer name"
533
+ # validates_length_of :fav_bra_size, :minimum=>1, :too_short=>"please enter at least %d character"
534
+ # validates_length_of :smurf_leader, :is=>4, :message=>"papa is spelled with %d characters... don't play me."
535
+ # end
536
+ #
537
+ # Configuration options:
538
+ # * <tt>minimum</tt> - The minimum size of the attribute
539
+ # * <tt>maximum</tt> - The maximum size of the attribute
540
+ # * <tt>is</tt> - The exact size of the attribute
541
+ # * <tt>within</tt> - A range specifying the minimum and maximum size of the attribute
542
+ # * <tt>in</tt> - A synonym(or alias) for :within
543
+ # * <tt>allow_nil</tt> - Attribute may be nil; skip validation.
544
+ # * <tt>allow_blank</tt> - Attribute may be blank; skip validation.
545
+ #
546
+ # * <tt>too_long</tt> - The error message if the attribute goes over the maximum (default is: "is too long (maximum is %d characters)")
547
+ # * <tt>too_short</tt> - The error message if the attribute goes under the minimum (default is: "is too short (min is %d characters)")
548
+ # * <tt>wrong_length</tt> - The error message if using the :is method and the attribute is the wrong size (default is: "is the wrong length (should be %d characters)")
549
+ # * <tt>message</tt> - The error message to use for a :minimum, :maximum, or :is violation. An alias of the appropriate too_long/too_short/wrong_length message
550
+ # * <tt>on</tt> - Specifies when this validation is active (default is :save, other options :create, :update)
551
+ # * <tt>if</tt> - Specifies a method, proc or string to call to determine if the validation should
552
+ # occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }). The
553
+ # method, proc or string should return or evaluate to a true or false value.
554
+ # * <tt>unless</tt> - Specifies a method, proc or string to call to determine if the validation should
555
+ # not occur (e.g. :unless => :skip_validation, or :unless => Proc.new { |user| user.signup_step <= 2 }). The
556
+ # method, proc or string should return or evaluate to a true or false value.
557
+ def validates_length_of(*attrs)
558
+ # Merge given options with defaults.
559
+ options = {
560
+ :too_long => ActiveRecord::Errors.default_error_messages[:too_long],
561
+ :too_short => ActiveRecord::Errors.default_error_messages[:too_short],
562
+ :wrong_length => ActiveRecord::Errors.default_error_messages[:wrong_length]
563
+ }.merge(DEFAULT_VALIDATION_OPTIONS)
564
+ options.update(attrs.extract_options!.symbolize_keys)
565
+
566
+ # Ensure that one and only one range option is specified.
567
+ range_options = ALL_RANGE_OPTIONS & options.keys
568
+ case range_options.size
569
+ when 0
570
+ raise ArgumentError, 'Range unspecified. Specify the :within, :maximum, :minimum, or :is option.'
571
+ when 1
572
+ # Valid number of options; do nothing.
573
+ else
574
+ raise ArgumentError, 'Too many range options specified. Choose only one.'
575
+ end
576
+
577
+ # Get range option and value.
578
+ option = range_options.first
579
+ option_value = options[range_options.first]
580
+
581
+ case option
582
+ when :within, :in
583
+ raise ArgumentError, ":#{option} must be a Range" unless option_value.is_a?(Range)
584
+
585
+ too_short = options[:too_short] % option_value.begin
586
+ too_long = options[:too_long] % option_value.end
587
+
588
+ validates_each(attrs, options) do |record, attr, value|
589
+ if value.nil? or value.split(//).size < option_value.begin
590
+ record.errors.add(attr, too_short)
591
+ elsif value.split(//).size > option_value.end
592
+ record.errors.add(attr, too_long)
593
+ end
594
+ end
595
+ when :is, :minimum, :maximum
596
+ raise ArgumentError, ":#{option} must be a nonnegative Integer" unless option_value.is_a?(Integer) and option_value >= 0
597
+
598
+ # Declare different validations per option.
599
+ validity_checks = { :is => "==", :minimum => ">=", :maximum => "<=" }
600
+ message_options = { :is => :wrong_length, :minimum => :too_short, :maximum => :too_long }
601
+
602
+ message = (options[:message] || options[message_options[option]]) % option_value
603
+
604
+ validates_each(attrs, options) do |record, attr, value|
605
+ if value.kind_of?(String)
606
+ record.errors.add(attr, message) unless !value.nil? and value.split(//).size.method(validity_checks[option])[option_value]
607
+ else
608
+ record.errors.add(attr, message) unless !value.nil? and value.size.method(validity_checks[option])[option_value]
609
+ end
610
+ end
611
+ end
612
+ end
613
+
614
+ alias_method :validates_size_of, :validates_length_of
615
+
616
+
617
+ # Validates whether the value of the specified attributes are unique across the system. Useful for making sure that only one user
618
+ # can be named "davidhh".
619
+ #
620
+ # class Person < ActiveRecord::Base
621
+ # validates_uniqueness_of :user_name, :scope => :account_id
622
+ # end
623
+ #
624
+ # It can also validate whether the value of the specified attributes are unique based on multiple scope parameters. For example,
625
+ # making sure that a teacher can only be on the schedule once per semester for a particular class.
626
+ #
627
+ # class TeacherSchedule < ActiveRecord::Base
628
+ # validates_uniqueness_of :teacher_id, :scope => [:semester_id, :class_id]
629
+ # end
630
+ #
631
+ # When the record is created, a check is performed to make sure that no record exists in the database with the given value for the specified
632
+ # attribute (that maps to a column). When the record is updated, the same check is made but disregarding the record itself.
633
+ #
634
+ # Because this check is performed outside the database there is still a chance that duplicate values
635
+ # will be inserted in two parallel transactions. To guarantee against this you should create a
636
+ # unique index on the field. See +create_index+ for more information.
637
+ #
638
+ # Configuration options:
639
+ # * <tt>message</tt> - Specifies a custom error message (default is: "has already been taken")
640
+ # * <tt>scope</tt> - One or more columns by which to limit the scope of the uniquness constraint.
641
+ # * <tt>case_sensitive</tt> - Looks for an exact match. Ignored by non-text columns (true by default).
642
+ # * <tt>allow_nil</tt> - If set to true, skips this validation if the attribute is null (default is: false)
643
+ # * <tt>allow_blank</tt> - If set to true, skips this validation if the attribute is blank (default is: false)
644
+ # * <tt>if</tt> - Specifies a method, proc or string to call to determine if the validation should
645
+ # occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }). The
646
+ # method, proc or string should return or evaluate to a true or false value.
647
+ # * <tt>unless</tt> - Specifies a method, proc or string to call to determine if the validation should
648
+ # not occur (e.g. :unless => :skip_validation, or :unless => Proc.new { |user| user.signup_step <= 2 }). The
649
+ # method, proc or string should return or evaluate to a true or false value.
650
+ def validates_uniqueness_of(*attr_names)
651
+ configuration = { :message => ActiveRecord::Errors.default_error_messages[:taken], :case_sensitive => true }
652
+ configuration.update(attr_names.extract_options!)
653
+
654
+ validates_each(attr_names,configuration) do |record, attr_name, value|
655
+ if value.nil? || (configuration[:case_sensitive] || !columns_hash[attr_name.to_s].text?)
656
+ condition_sql = "#{record.class.table_name}.#{attr_name} #{attribute_condition(value)}"
657
+ condition_params = [value]
658
+ else
659
+ condition_sql = "LOWER(#{record.class.table_name}.#{attr_name}) #{attribute_condition(value)}"
660
+ condition_params = [value.downcase]
661
+ end
662
+
663
+ if scope = configuration[:scope]
664
+ Array(scope).map do |scope_item|
665
+ scope_value = record.send(scope_item)
666
+ condition_sql << " AND #{record.class.table_name}.#{scope_item} #{attribute_condition(scope_value)}"
667
+ condition_params << scope_value
668
+ end
669
+ end
670
+
671
+ unless record.new_record?
672
+ condition_sql << " AND #{record.class.table_name}.#{record.class.primary_key} <> ?"
673
+ condition_params << record.send(:id)
674
+ end
675
+
676
+ # The check for an existing value should be run from a class that
677
+ # isn't abstract. This means working down from the current class
678
+ # (self), to the first non-abstract class. Since classes don't know
679
+ # their subclasses, we have to build the hierarchy between self and
680
+ # the record's class.
681
+ class_hierarchy = [record.class]
682
+ while class_hierarchy.first != self
683
+ class_hierarchy.insert(0, class_hierarchy.first.superclass)
684
+ end
685
+
686
+ # Now we can work our way down the tree to the first non-abstract
687
+ # class (which has a database table to query from).
688
+ finder_class = class_hierarchy.detect { |klass| !klass.abstract_class? }
689
+
690
+ if finder_class.find(:first, :conditions => [condition_sql, *condition_params])
691
+ record.errors.add(attr_name, configuration[:message])
692
+ end
693
+ end
694
+ end
695
+
696
+
697
+ # Validates whether the value of the specified attribute is of the correct form by matching it against the regular expression
698
+ # provided.
699
+ #
700
+ # class Person < ActiveRecord::Base
701
+ # validates_format_of :email, :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i, :on => :create
702
+ # end
703
+ #
704
+ # Note: use \A and \Z to match the start and end of the string, ^ and $ match the start/end of a line.
705
+ #
706
+ # A regular expression must be provided or else an exception will be raised.
707
+ #
708
+ # Configuration options:
709
+ # * <tt>message</tt> - A custom error message (default is: "is invalid")
710
+ # * <tt>with</tt> - The regular expression used to validate the format with (note: must be supplied!)
711
+ # * <tt>on</tt> Specifies when this validation is active (default is :save, other options :create, :update)
712
+ # * <tt>if</tt> - Specifies a method, proc or string to call to determine if the validation should
713
+ # occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }). The
714
+ # method, proc or string should return or evaluate to a true or false value.
715
+ # * <tt>unless</tt> - Specifies a method, proc or string to call to determine if the validation should
716
+ # not occur (e.g. :unless => :skip_validation, or :unless => Proc.new { |user| user.signup_step <= 2 }). The
717
+ # method, proc or string should return or evaluate to a true or false value.
718
+ def validates_format_of(*attr_names)
719
+ configuration = { :message => ActiveRecord::Errors.default_error_messages[:invalid], :on => :save, :with => nil }
720
+ configuration.update(attr_names.extract_options!)
721
+
722
+ raise(ArgumentError, "A regular expression must be supplied as the :with option of the configuration hash") unless configuration[:with].is_a?(Regexp)
723
+
724
+ validates_each(attr_names, configuration) do |record, attr_name, value|
725
+ record.errors.add(attr_name, configuration[:message]) unless value.to_s =~ configuration[:with]
726
+ end
727
+ end
728
+
729
+ # Validates whether the value of the specified attribute is available in a particular enumerable object.
730
+ #
731
+ # class Person < ActiveRecord::Base
732
+ # validates_inclusion_of :gender, :in => %w( m f ), :message => "woah! what are you then!??!!"
733
+ # validates_inclusion_of :age, :in => 0..99
734
+ # validates_inclusion_of :format, :in => %w( jpg gif png ), :message => "extension %s is not included in the list"
735
+ # end
736
+ #
737
+ # Configuration options:
738
+ # * <tt>in</tt> - An enumerable object of available items
739
+ # * <tt>message</tt> - Specifies a customer error message (default is: "is not included in the list")
740
+ # * <tt>allow_nil</tt> - If set to true, skips this validation if the attribute is null (default is: false)
741
+ # * <tt>allow_blank</tt> - If set to true, skips this validation if the attribute is blank (default is: false)
742
+ # * <tt>if</tt> - Specifies a method, proc or string to call to determine if the validation should
743
+ # occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }). The
744
+ # method, proc or string should return or evaluate to a true or false value.
745
+ # * <tt>unless</tt> - Specifies a method, proc or string to call to determine if the validation should
746
+ # not occur (e.g. :unless => :skip_validation, or :unless => Proc.new { |user| user.signup_step <= 2 }). The
747
+ # method, proc or string should return or evaluate to a true or false value.
748
+ def validates_inclusion_of(*attr_names)
749
+ configuration = { :message => ActiveRecord::Errors.default_error_messages[:inclusion], :on => :save }
750
+ configuration.update(attr_names.extract_options!)
751
+
752
+ enum = configuration[:in] || configuration[:within]
753
+
754
+ raise(ArgumentError, "An object with the method include? is required must be supplied as the :in option of the configuration hash") unless enum.respond_to?("include?")
755
+
756
+ validates_each(attr_names, configuration) do |record, attr_name, value|
757
+ record.errors.add(attr_name, configuration[:message] % value) unless enum.include?(value)
758
+ end
759
+ end
760
+
761
+ # Validates that the value of the specified attribute is not in a particular enumerable object.
762
+ #
763
+ # class Person < ActiveRecord::Base
764
+ # validates_exclusion_of :username, :in => %w( admin superuser ), :message => "You don't belong here"
765
+ # validates_exclusion_of :age, :in => 30..60, :message => "This site is only for under 30 and over 60"
766
+ # validates_exclusion_of :format, :in => %w( mov avi ), :message => "extension %s is not allowed"
767
+ # end
768
+ #
769
+ # Configuration options:
770
+ # * <tt>in</tt> - An enumerable object of items that the value shouldn't be part of
771
+ # * <tt>message</tt> - Specifies a customer error message (default is: "is reserved")
772
+ # * <tt>allow_nil</tt> - If set to true, skips this validation if the attribute is null (default is: false)
773
+ # * <tt>allow_blank</tt> - If set to true, skips this validation if the attribute is blank (default is: false)
774
+ # * <tt>if</tt> - Specifies a method, proc or string to call to determine if the validation should
775
+ # occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }). The
776
+ # method, proc or string should return or evaluate to a true or false value.
777
+ # * <tt>unless</tt> - Specifies a method, proc or string to call to determine if the validation should
778
+ # not occur (e.g. :unless => :skip_validation, or :unless => Proc.new { |user| user.signup_step <= 2 }). The
779
+ # method, proc or string should return or evaluate to a true or false value.
780
+ def validates_exclusion_of(*attr_names)
781
+ configuration = { :message => ActiveRecord::Errors.default_error_messages[:exclusion], :on => :save }
782
+ configuration.update(attr_names.extract_options!)
783
+
784
+ enum = configuration[:in] || configuration[:within]
785
+
786
+ raise(ArgumentError, "An object with the method include? is required must be supplied as the :in option of the configuration hash") unless enum.respond_to?("include?")
787
+
788
+ validates_each(attr_names, configuration) do |record, attr_name, value|
789
+ record.errors.add(attr_name, configuration[:message] % value) if enum.include?(value)
790
+ end
791
+ end
792
+
793
+ # Validates whether the associated object or objects are all valid themselves. Works with any kind of association.
794
+ #
795
+ # class Book < ActiveRecord::Base
796
+ # has_many :pages
797
+ # belongs_to :library
798
+ #
799
+ # validates_associated :pages, :library
800
+ # end
801
+ #
802
+ # Warning: If, after the above definition, you then wrote:
803
+ #
804
+ # class Page < ActiveRecord::Base
805
+ # belongs_to :book
806
+ #
807
+ # validates_associated :book
808
+ # end
809
+ #
810
+ # ...this would specify a circular dependency and cause infinite recursion.
811
+ #
812
+ # NOTE: This validation will not fail if the association hasn't been assigned. If you want to ensure that the association
813
+ # is both present and guaranteed to be valid, you also need to use validates_presence_of.
814
+ #
815
+ # Configuration options:
816
+ # * <tt>message</tt> - A custom error message (default is: "is invalid")
817
+ # * <tt>on</tt> Specifies when this validation is active (default is :save, other options :create, :update)
818
+ # * <tt>if</tt> - Specifies a method, proc or string to call to determine if the validation should
819
+ # occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }). The
820
+ # method, proc or string should return or evaluate to a true or false value.
821
+ # * <tt>unless</tt> - Specifies a method, proc or string to call to determine if the validation should
822
+ # not occur (e.g. :unless => :skip_validation, or :unless => Proc.new { |user| user.signup_step <= 2 }). The
823
+ # method, proc or string should return or evaluate to a true or false value.
824
+ def validates_associated(*attr_names)
825
+ configuration = { :message => ActiveRecord::Errors.default_error_messages[:invalid], :on => :save }
826
+ configuration.update(attr_names.extract_options!)
827
+
828
+ validates_each(attr_names, configuration) do |record, attr_name, value|
829
+ record.errors.add(attr_name, configuration[:message]) unless
830
+ (value.is_a?(Array) ? value : [value]).inject(true) { |v, r| (r.nil? || r.valid?) && v }
831
+ end
832
+ end
833
+
834
+ # Validates whether the value of the specified attribute is numeric by trying to convert it to
835
+ # a float with Kernel.Float (if <tt>integer</tt> is false) or applying it to the regular expression
836
+ # <tt>/\A[\+\-]?\d+\Z/</tt> (if <tt>integer</tt> is set to true).
837
+ #
838
+ # class Person < ActiveRecord::Base
839
+ # validates_numericality_of :value, :on => :create
840
+ # end
841
+ #
842
+ # Configuration options:
843
+ # * <tt>message</tt> - A custom error message (default is: "is not a number")
844
+ # * <tt>on</tt> Specifies when this validation is active (default is :save, other options :create, :update)
845
+ # * <tt>only_integer</tt> Specifies whether the value has to be an integer, e.g. an integral value (default is false)
846
+ # * <tt>allow_nil</tt> Skip validation if attribute is nil (default is false). Notice that for fixnum and float columns empty strings are converted to nil
847
+ # * <tt>greater_than</tt> Specifies the value must be greater than the supplied value
848
+ # * <tt>greater_than_or_equal_to</tt> Specifies the value must be greater than or equal the supplied value
849
+ # * <tt>equal_to</tt> Specifies the value must be equal to the supplied value
850
+ # * <tt>less_than</tt> Specifies the value must be less than the supplied value
851
+ # * <tt>less_than_or_equal_to</tt> Specifies the value must be less than or equal the supplied value
852
+ # * <tt>odd</tt> Specifies the value must be an odd number
853
+ # * <tt>even</tt> Specifies the value must be an even number
854
+ # * <tt>if</tt> - Specifies a method, proc or string to call to determine if the validation should
855
+ # occur (e.g. :if => :allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }). The
856
+ # method, proc or string should return or evaluate to a true or false value.
857
+ # * <tt>unless</tt> - Specifies a method, proc or string to call to determine if the validation should
858
+ # not occur (e.g. :unless => :skip_validation, or :unless => Proc.new { |user| user.signup_step <= 2 }). The
859
+ # method, proc or string should return or evaluate to a true or false value.
860
+ def validates_numericality_of(*attr_names)
861
+ configuration = { :on => :save, :only_integer => false, :allow_nil => false }
862
+ configuration.update(attr_names.extract_options!)
863
+
864
+
865
+ numericality_options = ALL_NUMERICALITY_CHECKS.keys & configuration.keys
866
+
867
+ (numericality_options - [ :odd, :even ]).each do |option|
868
+ raise ArgumentError, ":#{option} must be a number" unless configuration[option].is_a?(Numeric)
869
+ end
870
+
871
+ validates_each(attr_names,configuration) do |record, attr_name, value|
872
+ raw_value = record.send("#{attr_name}_before_type_cast") || value
873
+
874
+ next if configuration[:allow_nil] and raw_value.nil?
875
+
876
+ if configuration[:only_integer]
877
+ unless raw_value.to_s =~ /\A[+-]?\d+\Z/
878
+ record.errors.add(attr_name, configuration[:message] || ActiveRecord::Errors.default_error_messages[:not_a_number])
879
+ next
880
+ end
881
+ raw_value = raw_value.to_i
882
+ else
883
+ begin
884
+ raw_value = Kernel.Float(raw_value.to_s)
885
+ rescue ArgumentError, TypeError
886
+ record.errors.add(attr_name, configuration[:message] || ActiveRecord::Errors.default_error_messages[:not_a_number])
887
+ next
888
+ end
889
+ end
890
+
891
+ numericality_options.each do |option|
892
+ case option
893
+ when :odd, :even
894
+ record.errors.add(attr_name, configuration[:message] || ActiveRecord::Errors.default_error_messages[option]) unless raw_value.to_i.method(ALL_NUMERICALITY_CHECKS[option])[]
895
+ else
896
+ record.errors.add(attr_name, configuration[:message] || (ActiveRecord::Errors.default_error_messages[option] % configuration[option])) unless raw_value.method(ALL_NUMERICALITY_CHECKS[option])[configuration[option]]
897
+ end
898
+ end
899
+ end
900
+ end
901
+
902
+ # Creates an object just like Base.create but calls save! instead of save
903
+ # so an exception is raised if the record is invalid.
904
+ def create!(attributes = nil)
905
+ if attributes.is_a?(Array)
906
+ attributes.collect { |attr| create!(attr) }
907
+ else
908
+ object = new(attributes)
909
+ object.save!
910
+ object
911
+ end
912
+ end
913
+
914
+
915
+ private
916
+ def write_inheritable_set(key, methods)
917
+ existing_methods = read_inheritable_attribute(key) || []
918
+ write_inheritable_attribute(key, existing_methods | methods)
919
+ end
920
+
921
+ def validation_method(on)
922
+ case on
923
+ when :save then :validate
924
+ when :create then :validate_on_create
925
+ when :update then :validate_on_update
926
+ end
927
+ end
928
+ end
929
+
930
+ # The validation process on save can be skipped by passing false. The regular Base#save method is
931
+ # replaced with this when the validations module is mixed in, which it is by default.
932
+ def save_with_validation(perform_validation = true)
933
+ if perform_validation && valid? || !perform_validation
934
+ save_without_validation
935
+ else
936
+ false
937
+ end
938
+ end
939
+
940
+ # Attempts to save the record just like Base#save but will raise a RecordInvalid exception instead of returning false
941
+ # if the record is not valid.
942
+ def save_with_validation!
943
+ if valid?
944
+ save_without_validation!
945
+ else
946
+ raise RecordInvalid.new(self)
947
+ end
948
+ end
949
+
950
+ # Updates a single attribute and saves the record without going through the normal validation procedure.
951
+ # This is especially useful for boolean flags on existing records. The regular +update_attribute+ method
952
+ # in Base is replaced with this when the validations module is mixed in, which it is by default.
953
+ def update_attribute_with_validation_skipping(name, value)
954
+ send(name.to_s + '=', value)
955
+ save(false)
956
+ end
957
+
958
+ # Runs validate and validate_on_create or validate_on_update and returns true if no errors were added otherwise false.
959
+ def valid?
960
+ errors.clear
961
+
962
+ run_validations(:validate)
963
+ validate
964
+
965
+ if new_record?
966
+ run_validations(:validate_on_create)
967
+ validate_on_create
968
+ else
969
+ run_validations(:validate_on_update)
970
+ validate_on_update
971
+ end
972
+
973
+ errors.empty?
974
+ end
975
+
976
+ # Returns the Errors object that holds all information about attribute error messages.
977
+ def errors
978
+ @errors ||= Errors.new(self)
979
+ end
980
+
981
+ protected
982
+ # Overwrite this method for validation checks on all saves and use Errors.add(field, msg) for invalid attributes.
983
+ def validate #:doc:
984
+ end
985
+
986
+ # Overwrite this method for validation checks used only on creation.
987
+ def validate_on_create #:doc:
988
+ end
989
+
990
+ # Overwrite this method for validation checks used only on updates.
991
+ def validate_on_update # :doc:
992
+ end
993
+
994
+ private
995
+ def run_validations(validation_method)
996
+ validations = self.class.read_inheritable_attribute(validation_method.to_sym)
997
+ if validations.nil? then return end
998
+ validations.each do |validation|
999
+ if validation.is_a?(Symbol)
1000
+ self.send(validation)
1001
+ elsif validation.is_a?(String)
1002
+ eval(validation, binding)
1003
+ elsif validation_block?(validation)
1004
+ validation.call(self)
1005
+ elsif validation_class?(validation, validation_method)
1006
+ validation.send(validation_method, self)
1007
+ else
1008
+ raise(
1009
+ ActiveRecordError,
1010
+ "Validations need to be either a symbol, string (to be eval'ed), proc/method, or " +
1011
+ "class implementing a static validation method"
1012
+ )
1013
+ end
1014
+ end
1015
+ end
1016
+
1017
+ def validation_block?(validation)
1018
+ validation.respond_to?("call") && (validation.arity == 1 || validation.arity == -1)
1019
+ end
1020
+
1021
+ def validation_class?(validation, validation_method)
1022
+ validation.respond_to?(validation_method)
1023
+ end
1024
+ end
1025
+ end