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,76 @@
1
+ require 'digest/md5'
2
+
3
+ module ActionController
4
+ class AbstractResponse #:nodoc:
5
+ DEFAULT_HEADERS = { "Cache-Control" => "no-cache" }
6
+ attr_accessor :request
7
+ attr_accessor :body, :headers, :session, :cookies, :assigns, :template, :redirected_to, :redirected_to_method_params, :layout
8
+
9
+ def initialize
10
+ @body, @headers, @session, @assigns = "", DEFAULT_HEADERS.merge("cookie" => []), [], []
11
+ end
12
+
13
+ def content_type=(mime_type)
14
+ self.headers["Content-Type"] = charset ? "#{mime_type}; charset=#{charset}" : mime_type
15
+ end
16
+
17
+ def content_type
18
+ content_type = String(headers["Content-Type"] || headers["type"]).split(";")[0]
19
+ content_type.blank? ? nil : content_type
20
+ end
21
+
22
+ def charset=(encoding)
23
+ self.headers["Content-Type"] = "#{content_type || Mime::HTML}; charset=#{encoding}"
24
+ end
25
+
26
+ def charset
27
+ charset = String(headers["Content-Type"] || headers["type"]).split(";")[1]
28
+ charset.blank? ? nil : charset.strip.split("=")[1]
29
+ end
30
+
31
+ def redirect(to_url, response_status)
32
+ self.headers["Status"] = response_status
33
+ self.headers["Location"] = to_url
34
+
35
+ self.body = "<html><body>You are being <a href=\"#{to_url}\">redirected</a>.</body></html>"
36
+ end
37
+
38
+ def prepare!
39
+ handle_conditional_get!
40
+ convert_content_type!
41
+ set_content_length!
42
+ end
43
+
44
+
45
+ private
46
+ def handle_conditional_get!
47
+ if body.is_a?(String) && (headers['Status'] ? headers['Status'][0..2] == '200' : true) && !body.empty?
48
+ self.headers['ETag'] ||= %("#{Digest::MD5.hexdigest(body)}")
49
+ self.headers['Cache-Control'] = 'private, max-age=0, must-revalidate' if headers['Cache-Control'] == DEFAULT_HEADERS['Cache-Control']
50
+
51
+ if request.headers['HTTP_IF_NONE_MATCH'] == headers['ETag']
52
+ self.headers['Status'] = '304 Not Modified'
53
+ self.body = ''
54
+ end
55
+ end
56
+ end
57
+
58
+ def convert_content_type!
59
+ if content_type = headers.delete("Content-Type")
60
+ self.headers["type"] = content_type
61
+ end
62
+ if content_type = headers.delete("Content-type")
63
+ self.headers["type"] = content_type
64
+ end
65
+ if content_type = headers.delete("content-type")
66
+ self.headers["type"] = content_type
67
+ end
68
+ end
69
+
70
+ # Don't set the Content-Length for block-based bodies as that would mean reading it all into memory. Not nice
71
+ # for, say, a 2GB streaming file.
72
+ def set_content_length!
73
+ self.headers["Content-Length"] = body.size unless body.respond_to?(:call)
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,1499 @@
1
+ require 'cgi'
2
+ require 'uri'
3
+ require 'action_controller/polymorphic_routes'
4
+ require 'action_controller/routing_optimisation'
5
+
6
+ class Object
7
+ def to_param
8
+ to_s
9
+ end
10
+ end
11
+
12
+ class TrueClass
13
+ def to_param
14
+ self
15
+ end
16
+ end
17
+
18
+ class FalseClass
19
+ def to_param
20
+ self
21
+ end
22
+ end
23
+
24
+ class NilClass
25
+ def to_param
26
+ self
27
+ end
28
+ end
29
+
30
+ class Regexp #:nodoc:
31
+ def number_of_captures
32
+ Regexp.new("|#{source}").match('').captures.length
33
+ end
34
+
35
+ class << self
36
+ def optionalize(pattern)
37
+ case unoptionalize(pattern)
38
+ when /\A(.|\(.*\))\Z/ then "#{pattern}?"
39
+ else "(?:#{pattern})?"
40
+ end
41
+ end
42
+
43
+ def unoptionalize(pattern)
44
+ [/\A\(\?:(.*)\)\?\Z/, /\A(.|\(.*\))\?\Z/].each do |regexp|
45
+ return $1 if regexp =~ pattern
46
+ end
47
+ return pattern
48
+ end
49
+ end
50
+ end
51
+
52
+ module ActionController
53
+ # == Routing
54
+ #
55
+ # The routing module provides URL rewriting in native Ruby. It's a way to
56
+ # redirect incoming requests to controllers and actions. This replaces
57
+ # mod_rewrite rules. Best of all, Rails' Routing works with any web server.
58
+ # Routes are defined in routes.rb in your RAILS_ROOT/config directory.
59
+ #
60
+ # Consider the following route, installed by Rails when you generate your
61
+ # application:
62
+ #
63
+ # map.connect ':controller/:action/:id'
64
+ #
65
+ # This route states that it expects requests to consist of a
66
+ # :controller followed by an :action that in turn is fed some :id.
67
+ #
68
+ # Suppose you get an incoming request for <tt>/blog/edit/22</tt>, you'll end up
69
+ # with:
70
+ #
71
+ # params = { :controller => 'blog',
72
+ # :action => 'edit',
73
+ # :id => '22'
74
+ # }
75
+ #
76
+ # Think of creating routes as drawing a map for your requests. The map tells
77
+ # them where to go based on some predefined pattern:
78
+ #
79
+ # ActionController::Routing::Routes.draw do |map|
80
+ # Pattern 1 tells some request to go to one place
81
+ # Pattern 2 tell them to go to another
82
+ # ...
83
+ # end
84
+ #
85
+ # The following symbols are special:
86
+ #
87
+ # :controller maps to your controller name
88
+ # :action maps to an action with your controllers
89
+ #
90
+ # Other names simply map to a parameter as in the case of +:id+.
91
+ #
92
+ # == Route priority
93
+ #
94
+ # Not all routes are created equally. Routes have priority defined by the
95
+ # order of appearance of the routes in the routes.rb file. The priority goes
96
+ # from top to bottom. The last route in that file is at the lowest priority
97
+ # and will be applied last. If no route matches, 404 is returned.
98
+ #
99
+ # Within blocks, the empty pattern is at the highest priority.
100
+ # In practice this works out nicely:
101
+ #
102
+ # ActionController::Routing::Routes.draw do |map|
103
+ # map.with_options :controller => 'blog' do |blog|
104
+ # blog.show '', :action => 'list'
105
+ # end
106
+ # map.connect ':controller/:action/:view'
107
+ # end
108
+ #
109
+ # In this case, invoking blog controller (with an URL like '/blog/')
110
+ # without parameters will activate the 'list' action by default.
111
+ #
112
+ # == Defaults routes and default parameters
113
+ #
114
+ # Setting a default route is straightforward in Rails - you simply append a
115
+ # Hash at the end of your mapping to set any default parameters.
116
+ #
117
+ # Example:
118
+ # ActionController::Routing:Routes.draw do |map|
119
+ # map.connect ':controller/:action/:id', :controller => 'blog'
120
+ # end
121
+ #
122
+ # This sets up +blog+ as the default controller if no other is specified.
123
+ # This means visiting '/' would invoke the blog controller.
124
+ #
125
+ # More formally, you can define defaults in a route with the +:defaults+ key.
126
+ #
127
+ # map.connect ':controller/:action/:id', :action => 'show', :defaults => { :page => 'Dashboard' }
128
+ #
129
+ # == Named routes
130
+ #
131
+ # Routes can be named with the syntax <tt>map.name_of_route options</tt>,
132
+ # allowing for easy reference within your source as +name_of_route_url+
133
+ # for the full URL and +name_of_route_path+ for the URI path.
134
+ #
135
+ # Example:
136
+ # # In routes.rb
137
+ # map.login 'login', :controller => 'accounts', :action => 'login'
138
+ #
139
+ # # With render, redirect_to, tests, etc.
140
+ # redirect_to login_url
141
+ #
142
+ # Arguments can be passed as well.
143
+ #
144
+ # redirect_to show_item_path(:id => 25)
145
+ #
146
+ # Use <tt>map.root</tt> as a shorthand to name a route for the root path "".
147
+ #
148
+ # # In routes.rb
149
+ # map.root :controller => 'blogs'
150
+ #
151
+ # # would recognize http://www.example.com/ as
152
+ # params = { :controller => 'blogs', :action => 'index' }
153
+ #
154
+ # # and provide these named routes
155
+ # root_url # => 'http://www.example.com/'
156
+ # root_path # => ''
157
+ #
158
+ # Note: when using +with_options+, the route is simply named after the
159
+ # method you call on the block parameter rather than map.
160
+ #
161
+ # # In routes.rb
162
+ # map.with_options :controller => 'blog' do |blog|
163
+ # blog.show '', :action => 'list'
164
+ # blog.delete 'delete/:id', :action => 'delete',
165
+ # blog.edit 'edit/:id', :action => 'edit'
166
+ # end
167
+ #
168
+ # # provides named routes for show, delete, and edit
169
+ # link_to @article.title, show_path(:id => @article.id)
170
+ #
171
+ # == Pretty URLs
172
+ #
173
+ # Routes can generate pretty URLs. For example:
174
+ #
175
+ # map.connect 'articles/:year/:month/:day',
176
+ # :controller => 'articles',
177
+ # :action => 'find_by_date',
178
+ # :year => /\d{4}/,
179
+ # :month => /\d{1,2}/,
180
+ # :day => /\d{1,2}/
181
+ #
182
+ # # Using the route above, the url below maps to:
183
+ # # params = {:year => '2005', :month => '11', :day => '06'}
184
+ # # http://localhost:3000/articles/2005/11/06
185
+ #
186
+ # == Regular Expressions and parameters
187
+ # You can specify a regular expression to define a format for a parameter.
188
+ #
189
+ # map.geocode 'geocode/:postalcode', :controller => 'geocode',
190
+ # :action => 'show', :postalcode => /\d{5}(-\d{4})?/
191
+ #
192
+ # or, more formally:
193
+ #
194
+ # map.geocode 'geocode/:postalcode', :controller => 'geocode',
195
+ # :action => 'show', :requirements => { :postalcode => /\d{5}(-\d{4})?/ }
196
+ #
197
+ # == Route globbing
198
+ #
199
+ # Specifying <tt>*[string]</tt> as part of a rule like:
200
+ #
201
+ # map.connect '*path' , :controller => 'blog' , :action => 'unrecognized?'
202
+ #
203
+ # will glob all remaining parts of the route that were not recognized earlier. This idiom
204
+ # must appear at the end of the path. The globbed values are in <tt>params[:path]</tt> in
205
+ # this case.
206
+ #
207
+ # == Route conditions
208
+ #
209
+ # With conditions you can define restrictions on routes. Currently the only valid condition is <tt>:method</tt>.
210
+ #
211
+ # * <tt>:method</tt> - Allows you to specify which method can access the route. Possible values are <tt>:post</tt>,
212
+ # <tt>:get</tt>, <tt>:put</tt>, <tt>:delete</tt> and <tt>:any</tt>. The default value is <tt>:any</tt>,
213
+ # <tt>:any</tt> means that any method can access the route.
214
+ #
215
+ # Example:
216
+ #
217
+ # map.connect 'post/:id', :controller => 'posts', :action => 'show',
218
+ # :conditions => { :method => :get }
219
+ # map.connect 'post/:id', :controller => 'posts', :action => 'create_comment',
220
+ # :conditions => { :method => :post }
221
+ #
222
+ # Now, if you POST to <tt>/posts/:id</tt>, it will route to the <tt>create_comment</tt> action. A GET on the same
223
+ # URL will route to the <tt>show</tt> action.
224
+ #
225
+ # == Reloading routes
226
+ #
227
+ # You can reload routes if you feel you must:
228
+ #
229
+ # ActionController::Routing::Routes.reload
230
+ #
231
+ # This will clear all named routes and reload routes.rb if the file has been modified from
232
+ # last load. To absolutely force reloading, use +reload!+.
233
+ #
234
+ # == Testing Routes
235
+ #
236
+ # The two main methods for testing your routes:
237
+ #
238
+ # === +assert_routing+
239
+ #
240
+ # def test_movie_route_properly_splits
241
+ # opts = {:controller => "plugin", :action => "checkout", :id => "2"}
242
+ # assert_routing "plugin/checkout/2", opts
243
+ # end
244
+ #
245
+ # +assert_routing+ lets you test whether or not the route properly resolves into options.
246
+ #
247
+ # === +assert_recognizes+
248
+ #
249
+ # def test_route_has_options
250
+ # opts = {:controller => "plugin", :action => "show", :id => "12"}
251
+ # assert_recognizes opts, "/plugins/show/12"
252
+ # end
253
+ #
254
+ # Note the subtle difference between the two: +assert_routing+ tests that
255
+ # a URL fits options while +assert_recognizes+ tests that a URL
256
+ # breaks into parameters properly.
257
+ #
258
+ # In tests you can simply pass the URL or named route to +get+ or +post+.
259
+ #
260
+ # def send_to_jail
261
+ # get '/jail'
262
+ # assert_response :success
263
+ # assert_template "jail/front"
264
+ # end
265
+ #
266
+ # def goes_to_login
267
+ # get login_url
268
+ # #...
269
+ # end
270
+ #
271
+ # == View a list of all your routes
272
+ #
273
+ # Run <tt>rake routes</tt>.
274
+ #
275
+ module Routing
276
+ SEPARATORS = %w( / . ? )
277
+
278
+ HTTP_METHODS = [:get, :head, :post, :put, :delete]
279
+
280
+ ALLOWED_REQUIREMENTS_FOR_OPTIMISATION = [:controller, :action].to_set
281
+
282
+ # The root paths which may contain controller files
283
+ mattr_accessor :controller_paths
284
+ self.controller_paths = []
285
+
286
+ # A helper module to hold URL related helpers.
287
+ module Helpers
288
+ include PolymorphicRoutes
289
+ end
290
+
291
+ class << self
292
+ def with_controllers(names)
293
+ prior_controllers = @possible_controllers
294
+ use_controllers! names
295
+ yield
296
+ ensure
297
+ use_controllers! prior_controllers
298
+ end
299
+
300
+ def normalize_paths(paths)
301
+ # do the hokey-pokey of path normalization...
302
+ paths = paths.collect do |path|
303
+ path = path.
304
+ gsub("//", "/"). # replace double / chars with a single
305
+ gsub("\\\\", "\\"). # replace double \ chars with a single
306
+ gsub(%r{(.)[\\/]$}, '\1') # drop final / or \ if path ends with it
307
+
308
+ # eliminate .. paths where possible
309
+ re = %r{\w+[/\\]\.\.[/\\]}
310
+ path.gsub!(%r{\w+[/\\]\.\.[/\\]}, "") while path.match(re)
311
+ path
312
+ end
313
+
314
+ # start with longest path, first
315
+ paths = paths.uniq.sort_by { |path| - path.length }
316
+ end
317
+
318
+ def possible_controllers
319
+ unless @possible_controllers
320
+ @possible_controllers = []
321
+
322
+ paths = controller_paths.select { |path| File.directory?(path) && path != "." }
323
+
324
+ seen_paths = Hash.new {|h, k| h[k] = true; false}
325
+ normalize_paths(paths).each do |load_path|
326
+ Dir["#{load_path}/**/*_controller.rb"].collect do |path|
327
+ next if seen_paths[path.gsub(%r{^\.[/\\]}, "")]
328
+
329
+ controller_name = path[(load_path.length + 1)..-1]
330
+
331
+ controller_name.gsub!(/_controller\.rb\Z/, '')
332
+ @possible_controllers << controller_name
333
+ end
334
+ end
335
+
336
+ # remove duplicates
337
+ @possible_controllers.uniq!
338
+ end
339
+ @possible_controllers
340
+ end
341
+
342
+ def use_controllers!(controller_names)
343
+ @possible_controllers = controller_names
344
+ end
345
+
346
+ def controller_relative_to(controller, previous)
347
+ if controller.nil? then previous
348
+ elsif controller[0] == ?/ then controller[1..-1]
349
+ elsif %r{^(.*)/} =~ previous then "#{$1}/#{controller}"
350
+ else controller
351
+ end
352
+ end
353
+ end
354
+
355
+ class Route #:nodoc:
356
+ attr_accessor :segments, :requirements, :conditions, :optimise
357
+
358
+ def initialize
359
+ @segments = []
360
+ @requirements = {}
361
+ @conditions = {}
362
+ @optimise = true
363
+ end
364
+
365
+ # Indicates whether the routes should be optimised with the string interpolation
366
+ # version of the named routes methods.
367
+ def optimise?
368
+ @optimise && ActionController::Base::optimise_named_routes
369
+ end
370
+
371
+ def segment_keys
372
+ segments.collect do |segment|
373
+ segment.key if segment.respond_to? :key
374
+ end.compact
375
+ end
376
+
377
+ # Write and compile a +generate+ method for this Route.
378
+ def write_generation
379
+ # Build the main body of the generation
380
+ body = "expired = false\n#{generation_extraction}\n#{generation_structure}"
381
+
382
+ # If we have conditions that must be tested first, nest the body inside an if
383
+ body = "if #{generation_requirements}\n#{body}\nend" if generation_requirements
384
+ args = "options, hash, expire_on = {}"
385
+
386
+ # Nest the body inside of a def block, and then compile it.
387
+ raw_method = method_decl = "def generate_raw(#{args})\npath = begin\n#{body}\nend\n[path, hash]\nend"
388
+ instance_eval method_decl, "generated code (#{__FILE__}:#{__LINE__})"
389
+
390
+ # expire_on.keys == recall.keys; in other words, the keys in the expire_on hash
391
+ # are the same as the keys that were recalled from the previous request. Thus,
392
+ # we can use the expire_on.keys to determine which keys ought to be used to build
393
+ # the query string. (Never use keys from the recalled request when building the
394
+ # query string.)
395
+
396
+ method_decl = "def generate(#{args})\npath, hash = generate_raw(options, hash, expire_on)\nappend_query_string(path, hash, extra_keys(options))\nend"
397
+ instance_eval method_decl, "generated code (#{__FILE__}:#{__LINE__})"
398
+
399
+ method_decl = "def generate_extras(#{args})\npath, hash = generate_raw(options, hash, expire_on)\n[path, extra_keys(options)]\nend"
400
+ instance_eval method_decl, "generated code (#{__FILE__}:#{__LINE__})"
401
+ raw_method
402
+ end
403
+
404
+ # Build several lines of code that extract values from the options hash. If any
405
+ # of the values are missing or rejected then a return will be executed.
406
+ def generation_extraction
407
+ segments.collect do |segment|
408
+ segment.extraction_code
409
+ end.compact * "\n"
410
+ end
411
+
412
+ # Produce a condition expression that will check the requirements of this route
413
+ # upon generation.
414
+ def generation_requirements
415
+ requirement_conditions = requirements.collect do |key, req|
416
+ if req.is_a? Regexp
417
+ value_regexp = Regexp.new "\\A#{req.source}\\Z"
418
+ "hash[:#{key}] && #{value_regexp.inspect} =~ options[:#{key}]"
419
+ else
420
+ "hash[:#{key}] == #{req.inspect}"
421
+ end
422
+ end
423
+ requirement_conditions * ' && ' unless requirement_conditions.empty?
424
+ end
425
+
426
+ def generation_structure
427
+ segments.last.string_structure segments[0..-2]
428
+ end
429
+
430
+ # Write and compile a +recognize+ method for this Route.
431
+ def write_recognition
432
+ # Create an if structure to extract the params from a match if it occurs.
433
+ body = "params = parameter_shell.dup\n#{recognition_extraction * "\n"}\nparams"
434
+ body = "if #{recognition_conditions.join(" && ")}\n#{body}\nend"
435
+
436
+ # Build the method declaration and compile it
437
+ method_decl = "def recognize(path, env={})\n#{body}\nend"
438
+ instance_eval method_decl, "generated code (#{__FILE__}:#{__LINE__})"
439
+ method_decl
440
+ end
441
+
442
+ # Plugins may override this method to add other conditions, like checks on
443
+ # host, subdomain, and so forth. Note that changes here only affect route
444
+ # recognition, not generation.
445
+ def recognition_conditions
446
+ result = ["(match = #{Regexp.new(recognition_pattern).inspect}.match(path))"]
447
+ result << "conditions[:method] === env[:method]" if conditions[:method]
448
+ result
449
+ end
450
+
451
+ # Build the regular expression pattern that will match this route.
452
+ def recognition_pattern(wrap = true)
453
+ pattern = ''
454
+ segments.reverse_each do |segment|
455
+ pattern = segment.build_pattern pattern
456
+ end
457
+ wrap ? ("\\A" + pattern + "\\Z") : pattern
458
+ end
459
+
460
+ # Write the code to extract the parameters from a matched route.
461
+ def recognition_extraction
462
+ next_capture = 1
463
+ extraction = segments.collect do |segment|
464
+ x = segment.match_extraction(next_capture)
465
+ next_capture += Regexp.new(segment.regexp_chunk).number_of_captures
466
+ x
467
+ end
468
+ extraction.compact
469
+ end
470
+
471
+ # Write the real generation implementation and then resend the message.
472
+ def generate(options, hash, expire_on = {})
473
+ write_generation
474
+ generate options, hash, expire_on
475
+ end
476
+
477
+ def generate_extras(options, hash, expire_on = {})
478
+ write_generation
479
+ generate_extras options, hash, expire_on
480
+ end
481
+
482
+ # Generate the query string with any extra keys in the hash and append
483
+ # it to the given path, returning the new path.
484
+ def append_query_string(path, hash, query_keys=nil)
485
+ return nil unless path
486
+ query_keys ||= extra_keys(hash)
487
+ "#{path}#{build_query_string(hash, query_keys)}"
488
+ end
489
+
490
+ # Determine which keys in the given hash are "extra". Extra keys are
491
+ # those that were not used to generate a particular route. The extra
492
+ # keys also do not include those recalled from the prior request, nor
493
+ # do they include any keys that were implied in the route (like a
494
+ # :controller that is required, but not explicitly used in the text of
495
+ # the route.)
496
+ def extra_keys(hash, recall={})
497
+ (hash || {}).keys.map { |k| k.to_sym } - (recall || {}).keys - significant_keys
498
+ end
499
+
500
+ # Build a query string from the keys of the given hash. If +only_keys+
501
+ # is given (as an array), only the keys indicated will be used to build
502
+ # the query string. The query string will correctly build array parameter
503
+ # values.
504
+ def build_query_string(hash, only_keys = nil)
505
+ elements = []
506
+
507
+ (only_keys || hash.keys).each do |key|
508
+ if value = hash[key]
509
+ elements << value.to_query(key)
510
+ end
511
+ end
512
+
513
+ elements.empty? ? '' : "?#{elements.sort * '&'}"
514
+ end
515
+
516
+ # Write the real recognition implementation and then resend the message.
517
+ def recognize(path, environment={})
518
+ write_recognition
519
+ recognize path, environment
520
+ end
521
+
522
+ # A route's parameter shell contains parameter values that are not in the
523
+ # route's path, but should be placed in the recognized hash.
524
+ #
525
+ # For example, +{:controller => 'pages', :action => 'show'} is the shell for the route:
526
+ #
527
+ # map.connect '/page/:id', :controller => 'pages', :action => 'show', :id => /\d+/
528
+ #
529
+ def parameter_shell
530
+ @parameter_shell ||= returning({}) do |shell|
531
+ requirements.each do |key, requirement|
532
+ shell[key] = requirement unless requirement.is_a? Regexp
533
+ end
534
+ end
535
+ end
536
+
537
+ # Return an array containing all the keys that are used in this route. This
538
+ # includes keys that appear inside the path, and keys that have requirements
539
+ # placed upon them.
540
+ def significant_keys
541
+ @significant_keys ||= returning [] do |sk|
542
+ segments.each { |segment| sk << segment.key if segment.respond_to? :key }
543
+ sk.concat requirements.keys
544
+ sk.uniq!
545
+ end
546
+ end
547
+
548
+ # Return a hash of key/value pairs representing the keys in the route that
549
+ # have defaults, or which are specified by non-regexp requirements.
550
+ def defaults
551
+ @defaults ||= returning({}) do |hash|
552
+ segments.each do |segment|
553
+ next unless segment.respond_to? :default
554
+ hash[segment.key] = segment.default unless segment.default.nil?
555
+ end
556
+ requirements.each do |key,req|
557
+ next if Regexp === req || req.nil?
558
+ hash[key] = req
559
+ end
560
+ end
561
+ end
562
+
563
+ def matches_controller_and_action?(controller, action)
564
+ unless defined? @matching_prepared
565
+ @controller_requirement = requirement_for(:controller)
566
+ @action_requirement = requirement_for(:action)
567
+ @matching_prepared = true
568
+ end
569
+
570
+ (@controller_requirement.nil? || @controller_requirement === controller) &&
571
+ (@action_requirement.nil? || @action_requirement === action)
572
+ end
573
+
574
+ def to_s
575
+ @to_s ||= begin
576
+ segs = segments.inject("") { |str,s| str << s.to_s }
577
+ "%-6s %-40s %s" % [(conditions[:method] || :any).to_s.upcase, segs, requirements.inspect]
578
+ end
579
+ end
580
+
581
+ protected
582
+ def requirement_for(key)
583
+ return requirements[key] if requirements.key? key
584
+ segments.each do |segment|
585
+ return segment.regexp if segment.respond_to?(:key) && segment.key == key
586
+ end
587
+ nil
588
+ end
589
+
590
+ end
591
+
592
+ class Segment #:nodoc:
593
+ RESERVED_PCHAR = ':@&=+$,;'
594
+ UNSAFE_PCHAR = Regexp.new("[^#{URI::REGEXP::PATTERN::UNRESERVED}#{RESERVED_PCHAR}]", false, 'N').freeze
595
+
596
+ attr_accessor :is_optional
597
+ alias_method :optional?, :is_optional
598
+
599
+ def initialize
600
+ self.is_optional = false
601
+ end
602
+
603
+ def extraction_code
604
+ nil
605
+ end
606
+
607
+ # Continue generating string for the prior segments.
608
+ def continue_string_structure(prior_segments)
609
+ if prior_segments.empty?
610
+ interpolation_statement(prior_segments)
611
+ else
612
+ new_priors = prior_segments[0..-2]
613
+ prior_segments.last.string_structure(new_priors)
614
+ end
615
+ end
616
+
617
+ def interpolation_chunk
618
+ URI.escape(value, UNSAFE_PCHAR)
619
+ end
620
+
621
+ # Return a string interpolation statement for this segment and those before it.
622
+ def interpolation_statement(prior_segments)
623
+ chunks = prior_segments.collect { |s| s.interpolation_chunk }
624
+ chunks << interpolation_chunk
625
+ "\"#{chunks * ''}\"#{all_optionals_available_condition(prior_segments)}"
626
+ end
627
+
628
+ def string_structure(prior_segments)
629
+ optional? ? continue_string_structure(prior_segments) : interpolation_statement(prior_segments)
630
+ end
631
+
632
+ # Return an if condition that is true if all the prior segments can be generated.
633
+ # If there are no optional segments before this one, then nil is returned.
634
+ def all_optionals_available_condition(prior_segments)
635
+ optional_locals = prior_segments.collect { |s| s.local_name if s.optional? && s.respond_to?(:local_name) }.compact
636
+ optional_locals.empty? ? nil : " if #{optional_locals * ' && '}"
637
+ end
638
+
639
+ # Recognition
640
+
641
+ def match_extraction(next_capture)
642
+ nil
643
+ end
644
+
645
+ # Warning
646
+
647
+ # Returns true if this segment is optional? because of a default. If so, then
648
+ # no warning will be emitted regarding this segment.
649
+ def optionality_implied?
650
+ false
651
+ end
652
+ end
653
+
654
+ class StaticSegment < Segment #:nodoc:
655
+ attr_accessor :value, :raw
656
+ alias_method :raw?, :raw
657
+
658
+ def initialize(value = nil)
659
+ super()
660
+ self.value = value
661
+ end
662
+
663
+ def interpolation_chunk
664
+ raw? ? value : super
665
+ end
666
+
667
+ def regexp_chunk
668
+ chunk = Regexp.escape(value)
669
+ optional? ? Regexp.optionalize(chunk) : chunk
670
+ end
671
+
672
+ def build_pattern(pattern)
673
+ escaped = Regexp.escape(value)
674
+ if optional? && ! pattern.empty?
675
+ "(?:#{Regexp.optionalize escaped}\\Z|#{escaped}#{Regexp.unoptionalize pattern})"
676
+ elsif optional?
677
+ Regexp.optionalize escaped
678
+ else
679
+ escaped + pattern
680
+ end
681
+ end
682
+
683
+ def to_s
684
+ value
685
+ end
686
+ end
687
+
688
+ class DividerSegment < StaticSegment #:nodoc:
689
+ def initialize(value = nil)
690
+ super(value)
691
+ self.raw = true
692
+ self.is_optional = true
693
+ end
694
+
695
+ def optionality_implied?
696
+ true
697
+ end
698
+ end
699
+
700
+ class DynamicSegment < Segment #:nodoc:
701
+ attr_accessor :key, :default, :regexp
702
+
703
+ def initialize(key = nil, options = {})
704
+ super()
705
+ self.key = key
706
+ self.default = options[:default] if options.key? :default
707
+ self.is_optional = true if options[:optional] || options.key?(:default)
708
+ end
709
+
710
+ def to_s
711
+ ":#{key}"
712
+ end
713
+
714
+ # The local variable name that the value of this segment will be extracted to.
715
+ def local_name
716
+ "#{key}_value"
717
+ end
718
+
719
+ def extract_value
720
+ "#{local_name} = hash[:#{key}] && hash[:#{key}].to_param #{"|| #{default.inspect}" if default}"
721
+ end
722
+ def value_check
723
+ if default # Then we know it won't be nil
724
+ "#{value_regexp.inspect} =~ #{local_name}" if regexp
725
+ elsif optional?
726
+ # If we have a regexp check that the value is not given, or that it matches.
727
+ # If we have no regexp, return nil since we do not require a condition.
728
+ "#{local_name}.nil? || #{value_regexp.inspect} =~ #{local_name}" if regexp
729
+ else # Then it must be present, and if we have a regexp, it must match too.
730
+ "#{local_name} #{"&& #{value_regexp.inspect} =~ #{local_name}" if regexp}"
731
+ end
732
+ end
733
+ def expiry_statement
734
+ "expired, hash = true, options if !expired && expire_on[:#{key}]"
735
+ end
736
+
737
+ def extraction_code
738
+ s = extract_value
739
+ vc = value_check
740
+ s << "\nreturn [nil,nil] unless #{vc}" if vc
741
+ s << "\n#{expiry_statement}"
742
+ end
743
+
744
+ def interpolation_chunk(value_code = "#{local_name}")
745
+ "\#{URI.escape(#{value_code}.to_s, ActionController::Routing::Segment::UNSAFE_PCHAR)}"
746
+ end
747
+
748
+ def string_structure(prior_segments)
749
+ if optional? # We have a conditional to do...
750
+ # If we should not appear in the url, just write the code for the prior
751
+ # segments. This occurs if our value is the default value, or, if we are
752
+ # optional, if we have nil as our value.
753
+ "if #{local_name} == #{default.inspect}\n" +
754
+ continue_string_structure(prior_segments) +
755
+ "\nelse\n" + # Otherwise, write the code up to here
756
+ "#{interpolation_statement(prior_segments)}\nend"
757
+ else
758
+ interpolation_statement(prior_segments)
759
+ end
760
+ end
761
+
762
+ def value_regexp
763
+ Regexp.new "\\A#{regexp.source}\\Z" if regexp
764
+ end
765
+ def regexp_chunk
766
+ regexp ? "(#{regexp.source})" : "([^#{Routing::SEPARATORS.join}]+)"
767
+ end
768
+
769
+ def build_pattern(pattern)
770
+ chunk = regexp_chunk
771
+ chunk = "(#{chunk})" if Regexp.new(chunk).number_of_captures == 0
772
+ pattern = "#{chunk}#{pattern}"
773
+ optional? ? Regexp.optionalize(pattern) : pattern
774
+ end
775
+ def match_extraction(next_capture)
776
+ # All non code-related keys (such as :id, :slug) are URI-unescaped as
777
+ # path parameters.
778
+ default_value = default ? default.inspect : nil
779
+ %[
780
+ value = if (m = match[#{next_capture}])
781
+ URI.unescape(m)
782
+ else
783
+ #{default_value}
784
+ end
785
+ params[:#{key}] = value if value
786
+ ]
787
+ end
788
+
789
+ def optionality_implied?
790
+ [:action, :id].include? key
791
+ end
792
+
793
+ end
794
+
795
+ class ControllerSegment < DynamicSegment #:nodoc:
796
+ def regexp_chunk
797
+ possible_names = Routing.possible_controllers.collect { |name| Regexp.escape name }
798
+ "(?i-:(#{(regexp || Regexp.union(*possible_names)).source}))"
799
+ end
800
+
801
+ # Don't URI.escape the controller name since it may contain slashes.
802
+ def interpolation_chunk(value_code = "#{local_name}")
803
+ "\#{#{value_code}.to_s}"
804
+ end
805
+
806
+ # Make sure controller names like Admin/Content are correctly normalized to
807
+ # admin/content
808
+ def extract_value
809
+ "#{local_name} = (hash[:#{key}] #{"|| #{default.inspect}" if default}).downcase"
810
+ end
811
+
812
+ def match_extraction(next_capture)
813
+ if default
814
+ "params[:#{key}] = match[#{next_capture}] ? match[#{next_capture}].downcase : '#{default}'"
815
+ else
816
+ "params[:#{key}] = match[#{next_capture}].downcase if match[#{next_capture}]"
817
+ end
818
+ end
819
+ end
820
+
821
+ class PathSegment < DynamicSegment #:nodoc:
822
+ RESERVED_PCHAR = "#{Segment::RESERVED_PCHAR}/"
823
+ UNSAFE_PCHAR = Regexp.new("[^#{URI::REGEXP::PATTERN::UNRESERVED}#{RESERVED_PCHAR}]", false, 'N').freeze
824
+
825
+ def interpolation_chunk(value_code = "#{local_name}")
826
+ "\#{URI.escape(#{value_code}.to_s, ActionController::Routing::PathSegment::UNSAFE_PCHAR)}"
827
+ end
828
+
829
+ def default
830
+ ''
831
+ end
832
+
833
+ def default=(path)
834
+ raise RoutingError, "paths cannot have non-empty default values" unless path.blank?
835
+ end
836
+
837
+ def match_extraction(next_capture)
838
+ "params[:#{key}] = PathSegment::Result.new_escaped((match[#{next_capture}]#{" || " + default.inspect if default}).split('/'))#{" if match[" + next_capture + "]" if !default}"
839
+ end
840
+
841
+ def regexp_chunk
842
+ regexp || "(.*)"
843
+ end
844
+
845
+ def optionality_implied?
846
+ true
847
+ end
848
+
849
+ class Result < ::Array #:nodoc:
850
+ def to_s() join '/' end
851
+ def self.new_escaped(strings)
852
+ new strings.collect {|str| URI.unescape str}
853
+ end
854
+ end
855
+ end
856
+
857
+ class RouteBuilder #:nodoc:
858
+ attr_accessor :separators, :optional_separators
859
+
860
+ def initialize
861
+ self.separators = Routing::SEPARATORS
862
+ self.optional_separators = %w( / )
863
+ end
864
+
865
+ def separator_pattern(inverted = false)
866
+ "[#{'^' if inverted}#{Regexp.escape(separators.join)}]"
867
+ end
868
+
869
+ def interval_regexp
870
+ Regexp.new "(.*?)(#{separators.source}|$)"
871
+ end
872
+
873
+ # Accepts a "route path" (a string defining a route), and returns the array
874
+ # of segments that corresponds to it. Note that the segment array is only
875
+ # partially initialized--the defaults and requirements, for instance, need
876
+ # to be set separately, via the #assign_route_options method, and the
877
+ # #optional? method for each segment will not be reliable until after
878
+ # #assign_route_options is called, as well.
879
+ def segments_for_route_path(path)
880
+ rest, segments = path, []
881
+
882
+ until rest.empty?
883
+ segment, rest = segment_for rest
884
+ segments << segment
885
+ end
886
+ segments
887
+ end
888
+
889
+ # A factory method that returns a new segment instance appropriate for the
890
+ # format of the given string.
891
+ def segment_for(string)
892
+ segment = case string
893
+ when /\A:(\w+)/
894
+ key = $1.to_sym
895
+ case key
896
+ when :controller then ControllerSegment.new(key)
897
+ else DynamicSegment.new key
898
+ end
899
+ when /\A\*(\w+)/ then PathSegment.new($1.to_sym, :optional => true)
900
+ when /\A\?(.*?)\?/
901
+ returning segment = StaticSegment.new($1) do
902
+ segment.is_optional = true
903
+ end
904
+ when /\A(#{separator_pattern(:inverted)}+)/ then StaticSegment.new($1)
905
+ when Regexp.new(separator_pattern) then
906
+ returning segment = DividerSegment.new($&) do
907
+ segment.is_optional = (optional_separators.include? $&)
908
+ end
909
+ end
910
+ [segment, $~.post_match]
911
+ end
912
+
913
+ # Split the given hash of options into requirement and default hashes. The
914
+ # segments are passed alongside in order to distinguish between default values
915
+ # and requirements.
916
+ def divide_route_options(segments, options)
917
+ options = options.dup
918
+
919
+ if options[:namespace]
920
+ options[:controller] = "#{options[:path_prefix]}/#{options[:controller]}"
921
+ options.delete(:path_prefix)
922
+ options.delete(:name_prefix)
923
+ options.delete(:namespace)
924
+ end
925
+
926
+ requirements = (options.delete(:requirements) || {}).dup
927
+ defaults = (options.delete(:defaults) || {}).dup
928
+ conditions = (options.delete(:conditions) || {}).dup
929
+
930
+ path_keys = segments.collect { |segment| segment.key if segment.respond_to?(:key) }.compact
931
+ options.each do |key, value|
932
+ hash = (path_keys.include?(key) && ! value.is_a?(Regexp)) ? defaults : requirements
933
+ hash[key] = value
934
+ end
935
+
936
+ [defaults, requirements, conditions]
937
+ end
938
+
939
+ # Takes a hash of defaults and a hash of requirements, and assigns them to
940
+ # the segments. Any unused requirements (which do not correspond to a segment)
941
+ # are returned as a hash.
942
+ def assign_route_options(segments, defaults, requirements)
943
+ route_requirements = {} # Requirements that do not belong to a segment
944
+
945
+ segment_named = Proc.new do |key|
946
+ segments.detect { |segment| segment.key == key if segment.respond_to?(:key) }
947
+ end
948
+
949
+ requirements.each do |key, requirement|
950
+ segment = segment_named[key]
951
+ if segment
952
+ raise TypeError, "#{key}: requirements on a path segment must be regular expressions" unless requirement.is_a?(Regexp)
953
+ if requirement.source =~ %r{\A(\\A|\^)|(\\Z|\\z|\$)\Z}
954
+ raise ArgumentError, "Regexp anchor characters are not allowed in routing requirements: #{requirement.inspect}"
955
+ end
956
+ segment.regexp = requirement
957
+ else
958
+ route_requirements[key] = requirement
959
+ end
960
+ end
961
+
962
+ defaults.each do |key, default|
963
+ segment = segment_named[key]
964
+ raise ArgumentError, "#{key}: No matching segment exists; cannot assign default" unless segment
965
+ segment.is_optional = true
966
+ segment.default = default.to_param if default
967
+ end
968
+
969
+ assign_default_route_options(segments)
970
+ ensure_required_segments(segments)
971
+ route_requirements
972
+ end
973
+
974
+ # Assign default options, such as 'index' as a default for :action. This
975
+ # method must be run *after* user supplied requirements and defaults have
976
+ # been applied to the segments.
977
+ def assign_default_route_options(segments)
978
+ segments.each do |segment|
979
+ next unless segment.is_a? DynamicSegment
980
+ case segment.key
981
+ when :action
982
+ if segment.regexp.nil? || segment.regexp.match('index').to_s == 'index'
983
+ segment.default ||= 'index'
984
+ segment.is_optional = true
985
+ end
986
+ when :id
987
+ if segment.default.nil? && segment.regexp.nil? || segment.regexp =~ ''
988
+ segment.is_optional = true
989
+ end
990
+ end
991
+ end
992
+ end
993
+
994
+ # Makes sure that there are no optional segments that precede a required
995
+ # segment. If any are found that precede a required segment, they are
996
+ # made required.
997
+ def ensure_required_segments(segments)
998
+ allow_optional = true
999
+ segments.reverse_each do |segment|
1000
+ allow_optional &&= segment.optional?
1001
+ if !allow_optional && segment.optional?
1002
+ unless segment.optionality_implied?
1003
+ warn "Route segment \"#{segment.to_s}\" cannot be optional because it precedes a required segment. This segment will be required."
1004
+ end
1005
+ segment.is_optional = false
1006
+ elsif allow_optional && segment.respond_to?(:default) && segment.default
1007
+ # if a segment has a default, then it is optional
1008
+ segment.is_optional = true
1009
+ end
1010
+ end
1011
+ end
1012
+
1013
+ # Construct and return a route with the given path and options.
1014
+ def build(path, options)
1015
+ # Wrap the path with slashes
1016
+ path = "/#{path}" unless path[0] == ?/
1017
+ path = "#{path}/" unless path[-1] == ?/
1018
+
1019
+ path = "/#{options[:path_prefix].to_s.gsub(/^\//,'')}#{path}" if options[:path_prefix]
1020
+
1021
+ segments = segments_for_route_path(path)
1022
+ defaults, requirements, conditions = divide_route_options(segments, options)
1023
+ requirements = assign_route_options(segments, defaults, requirements)
1024
+
1025
+ route = Route.new
1026
+
1027
+ route.segments = segments
1028
+ route.requirements = requirements
1029
+ route.conditions = conditions
1030
+
1031
+ if !route.significant_keys.include?(:action) && !route.requirements[:action]
1032
+ route.requirements[:action] = "index"
1033
+ route.significant_keys << :action
1034
+ end
1035
+
1036
+ # Routes cannot use the current string interpolation method
1037
+ # if there are user-supplied :requirements as the interpolation
1038
+ # code won't raise RoutingErrors when generating
1039
+ if options.key?(:requirements) || route.requirements.keys.to_set != Routing::ALLOWED_REQUIREMENTS_FOR_OPTIMISATION
1040
+ route.optimise = false
1041
+ end
1042
+
1043
+ if !route.significant_keys.include?(:controller)
1044
+ raise ArgumentError, "Illegal route: the :controller must be specified!"
1045
+ end
1046
+
1047
+ route
1048
+ end
1049
+ end
1050
+
1051
+ class RouteSet #:nodoc:
1052
+ # Mapper instances are used to build routes. The object passed to the draw
1053
+ # block in config/routes.rb is a Mapper instance.
1054
+ #
1055
+ # Mapper instances have relatively few instance methods, in order to avoid
1056
+ # clashes with named routes.
1057
+ class Mapper #:doc:
1058
+ def initialize(set) #:nodoc:
1059
+ @set = set
1060
+ end
1061
+
1062
+ # Create an unnamed route with the provided +path+ and +options+. See
1063
+ # ActionController::Routing for an introduction to routes.
1064
+ def connect(path, options = {})
1065
+ @set.add_route(path, options)
1066
+ end
1067
+
1068
+ # Creates a named route called "root" for matching the root level request.
1069
+ def root(options = {})
1070
+ named_route("root", '', options)
1071
+ end
1072
+
1073
+ def named_route(name, path, options = {}) #:nodoc:
1074
+ @set.add_named_route(name, path, options)
1075
+ end
1076
+
1077
+ # Enables the use of resources in a module by setting the name_prefix, path_prefix, and namespace for the model.
1078
+ # Example:
1079
+ #
1080
+ # map.namespace(:admin) do |admin|
1081
+ # admin.resources :products,
1082
+ # :has_many => [ :tags, :images, :variants ]
1083
+ # end
1084
+ #
1085
+ # This will create +admin_products_url+ pointing to "admin/products", which will look for an Admin::ProductsController.
1086
+ # It'll also create +admin_product_tags_url+ pointing to "admin/products/#{product_id}/tags", which will look for
1087
+ # Admin::TagsController.
1088
+ def namespace(name, options = {}, &block)
1089
+ if options[:namespace]
1090
+ with_options({:path_prefix => "#{options.delete(:path_prefix)}/#{name}", :name_prefix => "#{options.delete(:name_prefix)}#{name}_", :namespace => "#{options.delete(:namespace)}#{name}/" }.merge(options), &block)
1091
+ else
1092
+ with_options({:path_prefix => name, :name_prefix => "#{name}_", :namespace => "#{name}/" }.merge(options), &block)
1093
+ end
1094
+ end
1095
+
1096
+ def method_missing(route_name, *args, &proc) #:nodoc:
1097
+ super unless args.length >= 1 && proc.nil?
1098
+ @set.add_named_route(route_name, *args)
1099
+ end
1100
+ end
1101
+
1102
+ # A NamedRouteCollection instance is a collection of named routes, and also
1103
+ # maintains an anonymous module that can be used to install helpers for the
1104
+ # named routes.
1105
+ class NamedRouteCollection #:nodoc:
1106
+ include Enumerable
1107
+ include ActionController::Routing::Optimisation
1108
+ attr_reader :routes, :helpers
1109
+
1110
+ def initialize
1111
+ clear!
1112
+ end
1113
+
1114
+ def clear!
1115
+ @routes = {}
1116
+ @helpers = []
1117
+
1118
+ @module ||= Module.new
1119
+ @module.instance_methods.each do |selector|
1120
+ @module.class_eval { remove_method selector }
1121
+ end
1122
+ end
1123
+
1124
+ def add(name, route)
1125
+ routes[name.to_sym] = route
1126
+ define_named_route_methods(name, route)
1127
+ end
1128
+
1129
+ def get(name)
1130
+ routes[name.to_sym]
1131
+ end
1132
+
1133
+ alias []= add
1134
+ alias [] get
1135
+ alias clear clear!
1136
+
1137
+ def each
1138
+ routes.each { |name, route| yield name, route }
1139
+ self
1140
+ end
1141
+
1142
+ def names
1143
+ routes.keys
1144
+ end
1145
+
1146
+ def length
1147
+ routes.length
1148
+ end
1149
+
1150
+ def reset!
1151
+ old_routes = routes.dup
1152
+ clear!
1153
+ old_routes.each do |name, route|
1154
+ add(name, route)
1155
+ end
1156
+ end
1157
+
1158
+ def install(destinations = [ActionController::Base, ActionView::Base], regenerate = false)
1159
+ reset! if regenerate
1160
+ Array(destinations).each do |dest|
1161
+ dest.send! :include, @module
1162
+ end
1163
+ end
1164
+
1165
+ private
1166
+ def url_helper_name(name, kind = :url)
1167
+ :"#{name}_#{kind}"
1168
+ end
1169
+
1170
+ def hash_access_name(name, kind = :url)
1171
+ :"hash_for_#{name}_#{kind}"
1172
+ end
1173
+
1174
+ def define_named_route_methods(name, route)
1175
+ {:url => {:only_path => false}, :path => {:only_path => true}}.each do |kind, opts|
1176
+ hash = route.defaults.merge(:use_route => name).merge(opts)
1177
+ define_hash_access route, name, kind, hash
1178
+ define_url_helper route, name, kind, hash
1179
+ end
1180
+ end
1181
+
1182
+ def define_hash_access(route, name, kind, options)
1183
+ selector = hash_access_name(name, kind)
1184
+ @module.module_eval <<-end_eval # We use module_eval to avoid leaks
1185
+ def #{selector}(options = nil)
1186
+ options ? #{options.inspect}.merge(options) : #{options.inspect}
1187
+ end
1188
+ protected :#{selector}
1189
+ end_eval
1190
+ helpers << selector
1191
+ end
1192
+
1193
+ def define_url_helper(route, name, kind, options)
1194
+ selector = url_helper_name(name, kind)
1195
+ # The segment keys used for positional paramters
1196
+
1197
+ hash_access_method = hash_access_name(name, kind)
1198
+
1199
+ # allow ordered parameters to be associated with corresponding
1200
+ # dynamic segments, so you can do
1201
+ #
1202
+ # foo_url(bar, baz, bang)
1203
+ #
1204
+ # instead of
1205
+ #
1206
+ # foo_url(:bar => bar, :baz => baz, :bang => bang)
1207
+ #
1208
+ # Also allow options hash, so you can do
1209
+ #
1210
+ # foo_url(bar, baz, bang, :sort_by => 'baz')
1211
+ #
1212
+ @module.module_eval <<-end_eval # We use module_eval to avoid leaks
1213
+ def #{selector}(*args)
1214
+ #{generate_optimisation_block(route, kind)}
1215
+
1216
+ opts = if args.empty? || Hash === args.first
1217
+ args.first || {}
1218
+ else
1219
+ options = args.last.is_a?(Hash) ? args.pop : {}
1220
+ args = args.zip(#{route.segment_keys.inspect}).inject({}) do |h, (v, k)|
1221
+ h[k] = v
1222
+ h
1223
+ end
1224
+ options.merge(args)
1225
+ end
1226
+
1227
+ url_for(#{hash_access_method}(opts))
1228
+ end
1229
+ protected :#{selector}
1230
+ end_eval
1231
+ helpers << selector
1232
+ end
1233
+ end
1234
+
1235
+ attr_accessor :routes, :named_routes
1236
+
1237
+ def initialize
1238
+ self.routes = []
1239
+ self.named_routes = NamedRouteCollection.new
1240
+ end
1241
+
1242
+ # Subclasses and plugins may override this method to specify a different
1243
+ # RouteBuilder instance, so that other route DSL's can be created.
1244
+ def builder
1245
+ @builder ||= RouteBuilder.new
1246
+ end
1247
+
1248
+ def draw
1249
+ clear!
1250
+ yield Mapper.new(self)
1251
+ install_helpers
1252
+ end
1253
+
1254
+ def clear!
1255
+ routes.clear
1256
+ named_routes.clear
1257
+ @combined_regexp = nil
1258
+ @routes_by_controller = nil
1259
+ end
1260
+
1261
+ def install_helpers(destinations = [ActionController::Base, ActionView::Base], regenerate_code = false)
1262
+ Array(destinations).each { |d| d.module_eval { include Helpers } }
1263
+ named_routes.install(destinations, regenerate_code)
1264
+ end
1265
+
1266
+ def empty?
1267
+ routes.empty?
1268
+ end
1269
+
1270
+ def load!
1271
+ Routing.use_controllers! nil # Clear the controller cache so we may discover new ones
1272
+ clear!
1273
+ load_routes!
1274
+ install_helpers
1275
+ end
1276
+
1277
+ # reload! will always force a reload whereas load checks the timestamp first
1278
+ alias reload! load!
1279
+
1280
+ def reload
1281
+ if @routes_last_modified && defined?(RAILS_ROOT)
1282
+ mtime = File.stat("#{RAILS_ROOT}/config/routes.rb").mtime
1283
+ # if it hasn't been changed, then just return
1284
+ return if mtime == @routes_last_modified
1285
+ # if it has changed then record the new time and fall to the load! below
1286
+ @routes_last_modified = mtime
1287
+ end
1288
+ load!
1289
+ end
1290
+
1291
+ def load_routes!
1292
+ if defined?(RAILS_ROOT) && defined?(::ActionController::Routing::Routes) && self == ::ActionController::Routing::Routes
1293
+ load File.join("#{RAILS_ROOT}/config/routes.rb")
1294
+ @routes_last_modified = File.stat("#{RAILS_ROOT}/config/routes.rb").mtime
1295
+ else
1296
+ add_route ":controller/:action/:id"
1297
+ end
1298
+ end
1299
+
1300
+ def add_route(path, options = {})
1301
+ route = builder.build(path, options)
1302
+ routes << route
1303
+ route
1304
+ end
1305
+
1306
+ def add_named_route(name, path, options = {})
1307
+ # TODO - is options EVER used?
1308
+ name = options[:name_prefix] + name.to_s if options[:name_prefix]
1309
+ named_routes[name.to_sym] = add_route(path, options)
1310
+ end
1311
+
1312
+ def options_as_params(options)
1313
+ # If an explicit :controller was given, always make :action explicit
1314
+ # too, so that action expiry works as expected for things like
1315
+ #
1316
+ # generate({:controller => 'content'}, {:controller => 'content', :action => 'show'})
1317
+ #
1318
+ # (the above is from the unit tests). In the above case, because the
1319
+ # controller was explicitly given, but no action, the action is implied to
1320
+ # be "index", not the recalled action of "show".
1321
+ #
1322
+ # great fun, eh?
1323
+
1324
+ options_as_params = options.clone
1325
+ options_as_params[:action] ||= 'index' if options[:controller]
1326
+ options_as_params[:action] = options_as_params[:action].to_s if options_as_params[:action]
1327
+ options_as_params
1328
+ end
1329
+
1330
+ def build_expiry(options, recall)
1331
+ recall.inject({}) do |expiry, (key, recalled_value)|
1332
+ expiry[key] = (options.key?(key) && options[key].to_param != recalled_value.to_param)
1333
+ expiry
1334
+ end
1335
+ end
1336
+
1337
+ # Generate the path indicated by the arguments, and return an array of
1338
+ # the keys that were not used to generate it.
1339
+ def extra_keys(options, recall={})
1340
+ generate_extras(options, recall).last
1341
+ end
1342
+
1343
+ def generate_extras(options, recall={})
1344
+ generate(options, recall, :generate_extras)
1345
+ end
1346
+
1347
+ def generate(options, recall = {}, method=:generate)
1348
+ named_route_name = options.delete(:use_route)
1349
+ generate_all = options.delete(:generate_all)
1350
+ if named_route_name
1351
+ named_route = named_routes[named_route_name]
1352
+ options = named_route.parameter_shell.merge(options)
1353
+ end
1354
+
1355
+ options = options_as_params(options)
1356
+ expire_on = build_expiry(options, recall)
1357
+
1358
+ if options[:controller]
1359
+ options[:controller] = options[:controller].to_s
1360
+ end
1361
+ # if the controller has changed, make sure it changes relative to the
1362
+ # current controller module, if any. In other words, if we're currently
1363
+ # on admin/get, and the new controller is 'set', the new controller
1364
+ # should really be admin/set.
1365
+ if !named_route && expire_on[:controller] && options[:controller] && options[:controller][0] != ?/
1366
+ old_parts = recall[:controller].split('/')
1367
+ new_parts = options[:controller].split('/')
1368
+ parts = old_parts[0..-(new_parts.length + 1)] + new_parts
1369
+ options[:controller] = parts.join('/')
1370
+ end
1371
+
1372
+ # drop the leading '/' on the controller name
1373
+ options[:controller] = options[:controller][1..-1] if options[:controller] && options[:controller][0] == ?/
1374
+ merged = recall.merge(options)
1375
+
1376
+ if named_route
1377
+ path = named_route.generate(options, merged, expire_on)
1378
+ if path.nil?
1379
+ raise_named_route_error(options, named_route, named_route_name)
1380
+ else
1381
+ return path
1382
+ end
1383
+ else
1384
+ merged[:action] ||= 'index'
1385
+ options[:action] ||= 'index'
1386
+
1387
+ controller = merged[:controller]
1388
+ action = merged[:action]
1389
+
1390
+ raise RoutingError, "Need controller and action!" unless controller && action
1391
+
1392
+ if generate_all
1393
+ # Used by caching to expire all paths for a resource
1394
+ return routes.collect do |route|
1395
+ route.send!(method, options, merged, expire_on)
1396
+ end.compact
1397
+ end
1398
+
1399
+ # don't use the recalled keys when determining which routes to check
1400
+ routes = routes_by_controller[controller][action][options.keys.sort_by { |x| x.object_id }]
1401
+
1402
+ routes.each do |route|
1403
+ results = route.send!(method, options, merged, expire_on)
1404
+ return results if results && (!results.is_a?(Array) || results.first)
1405
+ end
1406
+ end
1407
+
1408
+ raise RoutingError, "No route matches #{options.inspect}"
1409
+ end
1410
+
1411
+ # try to give a helpful error message when named route generation fails
1412
+ def raise_named_route_error(options, named_route, named_route_name)
1413
+ diff = named_route.requirements.diff(options)
1414
+ unless diff.empty?
1415
+ raise RoutingError, "#{named_route_name}_url failed to generate from #{options.inspect}, expected: #{named_route.requirements.inspect}, diff: #{named_route.requirements.diff(options).inspect}"
1416
+ else
1417
+ required_segments = named_route.segments.select {|seg| (!seg.optional?) && (!seg.is_a?(DividerSegment)) }
1418
+ required_keys_or_values = required_segments.map { |seg| seg.key rescue seg.value } # we want either the key or the value from the segment
1419
+ raise RoutingError, "#{named_route_name}_url failed to generate from #{options.inspect} - you may have ambiguous routes, or you may need to supply additional parameters for this route. content_url has the following required parameters: #{required_keys_or_values.inspect} - are they all satisfied?"
1420
+ end
1421
+ end
1422
+
1423
+ def recognize(request)
1424
+ params = recognize_path(request.path, extract_request_environment(request))
1425
+ request.path_parameters = params.with_indifferent_access
1426
+ "#{params[:controller].camelize}Controller".constantize
1427
+ end
1428
+
1429
+ def recognize_path(path, environment={})
1430
+ routes.each do |route|
1431
+ result = route.recognize(path, environment) and return result
1432
+ end
1433
+
1434
+ allows = HTTP_METHODS.select { |verb| routes.find { |r| r.recognize(path, :method => verb) } }
1435
+
1436
+ if environment[:method] && !HTTP_METHODS.include?(environment[:method])
1437
+ raise NotImplemented.new(*allows)
1438
+ elsif !allows.empty?
1439
+ raise MethodNotAllowed.new(*allows)
1440
+ else
1441
+ raise RoutingError, "No route matches #{path.inspect} with #{environment.inspect}"
1442
+ end
1443
+ end
1444
+
1445
+ def routes_by_controller
1446
+ @routes_by_controller ||= Hash.new do |controller_hash, controller|
1447
+ controller_hash[controller] = Hash.new do |action_hash, action|
1448
+ action_hash[action] = Hash.new do |key_hash, keys|
1449
+ key_hash[keys] = routes_for_controller_and_action_and_keys(controller, action, keys)
1450
+ end
1451
+ end
1452
+ end
1453
+ end
1454
+
1455
+ def routes_for(options, merged, expire_on)
1456
+ raise "Need controller and action!" unless controller && action
1457
+ controller = merged[:controller]
1458
+ merged = options if expire_on[:controller]
1459
+ action = merged[:action] || 'index'
1460
+
1461
+ routes_by_controller[controller][action][merged.keys]
1462
+ end
1463
+
1464
+ def routes_for_controller_and_action(controller, action)
1465
+ selected = routes.select do |route|
1466
+ route.matches_controller_and_action? controller, action
1467
+ end
1468
+ (selected.length == routes.length) ? routes : selected
1469
+ end
1470
+
1471
+ def routes_for_controller_and_action_and_keys(controller, action, keys)
1472
+ selected = routes.select do |route|
1473
+ route.matches_controller_and_action? controller, action
1474
+ end
1475
+ selected.sort_by do |route|
1476
+ (keys - route.significant_keys).length
1477
+ end
1478
+ end
1479
+
1480
+ # Subclasses and plugins may override this method to extract further attributes
1481
+ # from the request, for use by route conditions and such.
1482
+ def extract_request_environment(request)
1483
+ { :method => request.method }
1484
+ end
1485
+ end
1486
+
1487
+ Routes = RouteSet.new
1488
+
1489
+ ::Inflector.module_eval do
1490
+ def inflections_with_route_reloading(&block)
1491
+ returning(inflections_without_route_reloading(&block)) {
1492
+ ActionController::Routing::Routes.reload! if block_given?
1493
+ }
1494
+ end
1495
+
1496
+ alias_method_chain :inflections, :route_reloading
1497
+ end
1498
+ end
1499
+ end