spree 0.5.1 → 0.6.0

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 (1387) hide show
  1. data/CHANGELOG +57 -6
  2. data/app/controllers/admin/base_controller.rb +13 -0
  3. data/app/controllers/admin/creditcard_payments_controller.rb +96 -0
  4. data/app/controllers/admin/general_settings_controller.rb +13 -0
  5. data/app/controllers/admin/orders_controller.rb +22 -28
  6. data/app/controllers/admin/payments_controller.rb +5 -0
  7. data/app/controllers/admin/products_controller.rb +43 -5
  8. data/app/controllers/admin/reports_controller.rb +19 -37
  9. data/app/controllers/admin/taxons_controller.rb +13 -9
  10. data/app/controllers/admin/users_controller.rb +33 -2
  11. data/app/controllers/admin/variants_controller.rb +24 -6
  12. data/app/controllers/application.rb +2 -1
  13. data/app/controllers/creditcards_controller.rb +73 -0
  14. data/app/controllers/orders_controller.rb +22 -23
  15. data/app/controllers/products_controller.rb +19 -13
  16. data/app/controllers/taxons_controller.rb +5 -1
  17. data/app/controllers/users_controller.rb +6 -8
  18. data/app/helpers/admin/base_helper.rb +18 -2
  19. data/app/helpers/admin/orders_helper.rb +10 -13
  20. data/app/helpers/admin/users_helper.rb +4 -1
  21. data/app/helpers/application_helper.rb +12 -1
  22. data/app/helpers/products_helper.rb +9 -2
  23. data/app/helpers/spree/base_helper.rb +6 -6
  24. data/app/helpers/taxons_helper.rb +4 -4
  25. data/app/models/app_configuration.rb +10 -1
  26. data/app/models/asset.rb +4 -0
  27. data/app/models/creditcard.rb +136 -5
  28. data/app/models/creditcard_payment.rb +9 -24
  29. data/app/models/image.rb +6 -11
  30. data/app/models/inventory_unit.rb +6 -1
  31. data/app/models/order.rb +64 -31
  32. data/app/models/order_filter.rb +2 -0
  33. data/app/models/order_mailer.rb +1 -1
  34. data/app/models/payment.rb +11 -0
  35. data/app/models/product.rb +103 -98
  36. data/app/models/taxon.rb +23 -0
  37. data/app/models/user_filter.rb +6 -0
  38. data/app/models/variant.rb +26 -1
  39. data/app/presenters/payment_presenter.rb +0 -1
  40. data/app/views/account/authorization_failure.html.erb +4 -0
  41. data/app/views/account/login.html.erb +1 -1
  42. data/app/views/admin/configurations/index.html.erb +21 -17
  43. data/app/views/admin/configurations/new.html.erb +3 -3
  44. data/app/views/admin/creditcard_payments/edit.html.erb +36 -0
  45. data/app/views/admin/creditcard_payments/new.html.erb +28 -0
  46. data/app/views/admin/extensions/index.html.erb +5 -5
  47. data/app/views/admin/general_settings/edit.html.erb +18 -0
  48. data/app/views/admin/general_settings/show.html.erb +17 -0
  49. data/app/views/admin/images/new.html.erb +2 -2
  50. data/app/views/admin/inventory_settings/edit.html.erb +4 -4
  51. data/app/views/admin/inventory_settings/show.html.erb +2 -2
  52. data/app/views/admin/inventory_units/adjust.html.erb +8 -8
  53. data/app/views/admin/mail_settings/edit.html.erb +14 -14
  54. data/app/views/admin/mail_settings/show.html.erb +13 -13
  55. data/app/views/admin/option_types/_form.html.erb +8 -8
  56. data/app/views/admin/option_types/_option_value.html.erb +1 -1
  57. data/app/views/admin/option_types/available.html.erb +4 -4
  58. data/app/views/admin/option_types/edit.html.erb +1 -1
  59. data/app/views/admin/option_types/index.html.erb +5 -5
  60. data/app/views/admin/option_types/new.html.erb +1 -1
  61. data/app/views/admin/option_types/selected.html.erb +6 -6
  62. data/app/views/admin/orders/index.html.erb +29 -19
  63. data/app/views/admin/orders/show.html.erb +73 -76
  64. data/app/views/admin/overview/index.html.erb +1 -1
  65. data/app/views/admin/payments/index.html.erb +22 -0
  66. data/app/views/admin/product_properties/_product_property.html.erb +1 -1
  67. data/app/views/admin/product_properties/index.html.erb +8 -8
  68. data/app/views/admin/products/_form.html.erb +14 -9
  69. data/app/views/admin/products/_images.html.erb +9 -9
  70. data/app/views/admin/products/_option_types.html.erb +6 -6
  71. data/app/views/admin/products/edit.html.erb +1 -1
  72. data/app/views/admin/products/index.html.erb +16 -12
  73. data/app/views/admin/products/new.html.erb +2 -2
  74. data/app/views/admin/properties/_form.html.erb +2 -2
  75. data/app/views/admin/properties/edit.html.erb +1 -1
  76. data/app/views/admin/properties/index.html.erb +5 -5
  77. data/app/views/admin/properties/new.html.erb +1 -1
  78. data/app/views/admin/prototypes/_form.html.erb +2 -2
  79. data/app/views/admin/prototypes/available.html.erb +4 -4
  80. data/app/views/admin/prototypes/edit.html.erb +1 -1
  81. data/app/views/admin/prototypes/index.html.erb +4 -4
  82. data/app/views/admin/prototypes/new.html.erb +1 -1
  83. data/app/views/admin/reports/index.html.erb +5 -5
  84. data/app/views/admin/reports/sales_total.html.erb +5 -5
  85. data/app/views/admin/states/_form.html.erb +2 -2
  86. data/app/views/admin/states/_state_list.html.erb +6 -6
  87. data/app/views/admin/states/edit.html.erb +2 -2
  88. data/app/views/admin/states/index.html.erb +1 -1
  89. data/app/views/admin/states/new.html.erb +2 -2
  90. data/app/views/admin/tax_categories/_form.html.erb +2 -2
  91. data/app/views/admin/tax_categories/edit.html.erb +2 -2
  92. data/app/views/admin/tax_categories/index.html.erb +8 -8
  93. data/app/views/admin/tax_categories/new.html.erb +2 -2
  94. data/app/views/admin/taxonomies/_form.html.erb +1 -1
  95. data/app/views/admin/taxonomies/_list.html.erb +2 -3
  96. data/app/views/admin/taxonomies/edit.html.erb +7 -4
  97. data/app/views/admin/taxonomies/index.html.erb +2 -2
  98. data/app/views/admin/taxonomies/new.html.erb +3 -3
  99. data/app/views/admin/taxons/_taxon_table.html.erb +5 -5
  100. data/app/views/admin/taxons/available.js.erb +6 -6
  101. data/app/views/admin/taxons/selected.html.erb +2 -2
  102. data/app/views/admin/users/_form.html.erb +36 -22
  103. data/app/views/admin/users/edit.html.erb +2 -2
  104. data/app/views/admin/users/index.html.erb +49 -18
  105. data/app/views/admin/users/new.html.erb +3 -3
  106. data/app/views/admin/users/show.html.erb +10 -3
  107. data/app/views/admin/variants/_form.html.erb +6 -9
  108. data/app/views/admin/variants/edit.html.erb +2 -2
  109. data/app/views/admin/variants/index.html.erb +17 -17
  110. data/app/views/admin/variants/new.html.erb +1 -1
  111. data/app/views/admin/zones/_country.html.erb +1 -1
  112. data/app/views/admin/zones/_form.html.erb +12 -12
  113. data/app/views/admin/zones/_state.html.erb +1 -1
  114. data/app/views/admin/zones/_zone.html.erb +1 -1
  115. data/app/views/admin/zones/edit.html.erb +2 -2
  116. data/app/views/admin/zones/index.html.erb +7 -7
  117. data/app/views/admin/zones/new.html.erb +2 -2
  118. data/app/views/admin/zones/show.html.erb +2 -2
  119. data/app/views/creditcards/_form_credit_card.html.erb +30 -0
  120. data/app/views/creditcards/cvv.html.erb +15 -0
  121. data/app/views/creditcards/new.html.erb +25 -0
  122. data/app/views/layouts/admin.html.erb +12 -12
  123. data/app/views/layouts/application.html.erb +4 -4
  124. data/app/views/orders/_form.html.erb +5 -5
  125. data/app/views/orders/_line_item.html.erb +2 -2
  126. data/app/views/orders/edit.html.erb +19 -17
  127. data/app/views/orders/new.html.erb +8 -6
  128. data/app/views/orders/show.html.erb +16 -9
  129. data/app/views/products/_image.html.erb +1 -1
  130. data/app/views/products/_products.html.erb +6 -2
  131. data/app/views/products/_thumbnails.html.erb +1 -1
  132. data/app/views/products/index.html.erb +1 -1
  133. data/app/views/products/show.html.erb +9 -6
  134. data/app/views/shared/_additional_field.html.erb +7 -0
  135. data/app/views/shared/_address.html.erb +35 -0
  136. data/app/views/shared/_edit_resource_links.html.erb +1 -1
  137. data/app/views/shared/_form_address.html.erb +46 -0
  138. data/app/views/shared/_login.html.erb +3 -3
  139. data/app/views/shared/_new_resource_links.html.erb +1 -1
  140. data/app/views/shared/_order_details.html.erb +37 -35
  141. data/app/views/shared/_order_tabs.html.erb +32 -0
  142. data/app/views/shared/_product_sub_menu.html.erb +4 -4
  143. data/app/views/shared/_product_tabs.html.erb +15 -5
  144. data/app/views/shared/_products.html.erb +7 -2
  145. data/app/views/shared/_report_criteria.html.erb +15 -15
  146. data/app/views/shared/_show_resource_links.html.erb +3 -3
  147. data/app/views/shared/_states.html.erb +14 -0
  148. data/app/views/shared/_store_menu.html.erb +1 -1
  149. data/app/views/shared/_taxonomies.html.erb +1 -1
  150. data/app/views/taxons/_taxon.html.erb +2 -2
  151. data/app/views/users/_form.html.erb +6 -7
  152. data/app/views/users/edit.html.erb +2 -2
  153. data/app/views/users/index.html.erb +6 -6
  154. data/app/views/users/new.html.erb +3 -3
  155. data/app/views/users/show.html.erb +32 -4
  156. data/config/boot.rb +1 -1
  157. data/config/database.yml +5 -0
  158. data/config/database.yml.example +5 -0
  159. data/config/environment.rb +9 -19
  160. data/config/environments/demo.rb +22 -0
  161. data/config/initializers/locales.rb +8 -0
  162. data/config/initializers/spree.rb +6 -3
  163. data/config/locales/de.yml +451 -0
  164. data/config/locales/de_rails.yml +120 -0
  165. data/config/locales/en-GB.yml +451 -0
  166. data/config/locales/en-GB_rails.yml +154 -0
  167. data/config/locales/en-US.yml +451 -0
  168. data/config/locales/en-US_rails.yml +154 -0
  169. data/config/locales/es.yml +451 -0
  170. data/config/locales/es_rails.yml +155 -0
  171. data/config/locales/it.yml +451 -0
  172. data/config/locales/it_rails.yml +104 -0
  173. data/config/locales/pl.yml +451 -0
  174. data/config/locales/pl_rails.yml +118 -0
  175. data/config/locales/pt-BR.yml +451 -0
  176. data/config/locales/pt-BR_rails.yml +104 -0
  177. data/config/locales/pt-PT.yml +451 -0
  178. data/config/locales/pt-PT_rails.yml +112 -0
  179. data/config/routes.rb +24 -10
  180. data/config/spree_permissions.yml +64 -0
  181. data/db/migrate/20081018125019_refactor_images_for_paperclip.rb +40 -0
  182. data/db/migrate/20081120184215_add_permalink_to_taxons.rb +24 -0
  183. data/db/migrate/20081121192045_additional_paperclip_refactor.rb +37 -0
  184. data/db/migrate/20081208143817_create_creditcards.rb +20 -0
  185. data/db/migrate/20081208150007_create_payments_table.rb +42 -0
  186. data/db/migrate/20081209103127_add_deleted_at_to_products.rb +11 -0
  187. data/db/migrate/20081212015915_convert_credticard_number_to_text.rb +11 -0
  188. data/db/migrate/20081219091142_create_indexes.rb +23 -0
  189. data/db/migrate/20090105152846_add_previous_state_to_events.rb +13 -0
  190. data/db/sample/addresses.yml +4 -30
  191. data/db/sample/assets.yml +112 -0
  192. data/db/sample/creditcards.yml +10 -0
  193. data/db/sample/orders.yml +11 -11
  194. data/db/sample/payments.yml +7 -0
  195. data/db/sample/taxons.yml +11 -1
  196. data/lib/authenticated_system.rb +12 -4
  197. data/lib/easy_role_requirement_system.rb +1 -1
  198. data/lib/generators/extension/extension_generator.rb +2 -0
  199. data/lib/generators/extension/templates/RSpecRakefile +1 -1
  200. data/lib/generators/extension/templates/extension.rb +1 -5
  201. data/lib/generators/extension/templates/routes.rb +5 -0
  202. data/lib/generators/extension/templates/tasks.rake +2 -3
  203. data/lib/generators/extension_migration/extension_migration_generator.rb +2 -2
  204. data/lib/generators/instance/instance_generator.rb +8 -4
  205. data/lib/plugins/extension_patches/lib/asset_copy.rb +13 -11
  206. data/lib/plugins/extension_patches/lib/routing_extension.rb +26 -3
  207. data/lib/spree.rb +2 -2
  208. data/lib/spree/extension_loader.rb +17 -9
  209. data/lib/spree/initializer.rb +17 -3
  210. data/lib/spree/setup.rb +8 -4
  211. data/lib/tasks/database.rake +9 -4
  212. data/lib/tasks/extensions.rake +0 -47
  213. data/lib/tasks/release.rake +1 -0
  214. data/lib/tasks/rspec.rake +158 -0
  215. data/lib/tasks/sample/products/{0000/0001/ror_tote_mini.jpeg → 1/mini/ror_tote.jpeg} +0 -0
  216. data/lib/tasks/sample/products/{0000/0001 → 1/original}/ror_tote.jpeg +0 -0
  217. data/lib/tasks/sample/products/{0000/0001/ror_tote_product.jpeg → 1/product/ror_tote.jpeg} +0 -0
  218. data/lib/tasks/sample/products/{0000/0001/ror_tote_small.jpeg → 1/small/ror_tote.jpeg} +0 -0
  219. data/lib/tasks/sample/products/{0000/0010/ror_ringer_back_mini.jpeg → 10/mini/ror_ringer_back.jpeg} +0 -0
  220. data/lib/tasks/sample/products/{0000/0010 → 10/original}/ror_ringer_back.jpeg +0 -0
  221. data/lib/tasks/sample/products/{0000/0010/ror_ringer_back_product.jpeg → 10/product/ror_ringer_back.jpeg} +0 -0
  222. data/lib/tasks/sample/products/{0000/0010/ror_ringer_back_small.jpeg → 10/small/ror_ringer_back.jpeg} +0 -0
  223. data/lib/tasks/sample/products/{0000/1004/apache_baseball_mini.png → 1004/mini/apache_baseball.png} +0 -0
  224. data/lib/tasks/sample/products/{0000/1004 → 1004/original}/apache_baseball.png +0 -0
  225. data/lib/tasks/sample/products/{0000/1004/apache_baseball_product.png → 1004/product/apache_baseball.png} +0 -0
  226. data/lib/tasks/sample/products/{0000/1004/apache_baseball_small.png → 1004/small/apache_baseball.png} +0 -0
  227. data/lib/tasks/sample/products/{0000/1008/ruby_baseball_mini.png → 1008/mini/ruby_baseball.png} +0 -0
  228. data/lib/tasks/sample/products/{0000/1008 → 1008/original}/ruby_baseball.png +0 -0
  229. data/lib/tasks/sample/products/{0000/1008/ruby_baseball_product.png → 1008/product/ruby_baseball.png} +0 -0
  230. data/lib/tasks/sample/products/{0000/1008/ruby_baseball_small.png → 1008/small/ruby_baseball.png} +0 -0
  231. data/lib/tasks/sample/products/{0000/0011/ror_stein_mini.jpeg → 11/mini/ror_stein.jpeg} +0 -0
  232. data/lib/tasks/sample/products/{0000/0011 → 11/original}/ror_stein.jpeg +0 -0
  233. data/lib/tasks/sample/products/{0000/0011/ror_stein_product.jpeg → 11/product/ror_stein.jpeg} +0 -0
  234. data/lib/tasks/sample/products/{0000/0011/ror_stein_small.jpeg → 11/small/ror_stein.jpeg} +0 -0
  235. data/lib/tasks/sample/products/{0000/0012/ror_stein_back_mini.jpeg → 12/mini/ror_stein_back.jpeg} +0 -0
  236. data/lib/tasks/sample/products/{0000/0012 → 12/original}/ror_stein_back.jpeg +0 -0
  237. data/lib/tasks/sample/products/{0000/0012/ror_stein_back_product.jpeg → 12/product/ror_stein_back.jpeg} +0 -0
  238. data/lib/tasks/sample/products/{0000/0012/ror_stein_back_small.jpeg → 12/small/ror_stein_back.jpeg} +0 -0
  239. data/lib/tasks/sample/products/{0000/0002/ror_tote_back_mini.jpeg → 2/mini/ror_tote_back.jpeg} +0 -0
  240. data/lib/tasks/sample/products/{0000/0002 → 2/original}/ror_tote_back.jpeg +0 -0
  241. data/lib/tasks/sample/products/{0000/0002/ror_tote_back_product.jpeg → 2/product/ror_tote_back.jpeg} +0 -0
  242. data/lib/tasks/sample/products/{0000/0002/ror_tote_back_small.jpeg → 2/small/ror_tote_back.jpeg} +0 -0
  243. data/lib/tasks/sample/products/{0000/0003/ror_bag_mini.jpeg → 3/mini/ror_bag.jpeg} +0 -0
  244. data/lib/tasks/sample/products/{0000/0003 → 3/original}/ror_bag.jpeg +0 -0
  245. data/lib/tasks/sample/products/{0000/0003/ror_bag_product.jpeg → 3/product/ror_bag.jpeg} +0 -0
  246. data/lib/tasks/sample/products/{0000/0003/ror_bag_small.jpeg → 3/small/ror_bag.jpeg} +0 -0
  247. data/lib/tasks/sample/products/{0000/0004/ror_baseball_mini.jpeg → 4/mini/ror_baseball.jpeg} +0 -0
  248. data/lib/tasks/sample/products/{0000/0004 → 4/original}/ror_baseball.jpeg +0 -0
  249. data/lib/tasks/sample/products/{0000/0004/ror_baseball_product.jpeg → 4/product/ror_baseball.jpeg} +0 -0
  250. data/lib/tasks/sample/products/{0000/0004/ror_baseball_small.jpeg → 4/small/ror_baseball.jpeg} +0 -0
  251. data/lib/tasks/sample/products/{0000/0005/ror_baseball_back_mini.jpeg → 5/mini/ror_baseball_back.jpeg} +0 -0
  252. data/lib/tasks/sample/products/{0000/0005 → 5/original}/ror_baseball_back.jpeg +0 -0
  253. data/lib/tasks/sample/products/{0000/0005/ror_baseball_back_product.jpeg → 5/product/ror_baseball_back.jpeg} +0 -0
  254. data/lib/tasks/sample/products/{0000/0005/ror_baseball_back_small.jpeg → 5/small/ror_baseball_back.jpeg} +0 -0
  255. data/lib/tasks/sample/products/{0000/0006/ror_jr_spaghetti_mini.jpeg → 6/mini/ror_jr_spaghetti.jpeg} +0 -0
  256. data/lib/tasks/sample/products/{0000/0006 → 6/original}/ror_jr_spaghetti.jpeg +0 -0
  257. data/lib/tasks/sample/products/{0000/0006/ror_jr_spaghetti_product.jpeg → 6/product/ror_jr_spaghetti.jpeg} +0 -0
  258. data/lib/tasks/sample/products/{0000/0006/ror_jr_spaghetti_small.jpeg → 6/small/ror_jr_spaghetti.jpeg} +0 -0
  259. data/lib/tasks/sample/products/{0000/0007/ror_mug_mini.jpeg → 7/mini/ror_mug.jpeg} +0 -0
  260. data/lib/tasks/sample/products/{0000/0007 → 7/original}/ror_mug.jpeg +0 -0
  261. data/lib/tasks/sample/products/{0000/0007/ror_mug_product.jpeg → 7/product/ror_mug.jpeg} +0 -0
  262. data/lib/tasks/sample/products/{0000/0007/ror_mug_small.jpeg → 7/small/ror_mug.jpeg} +0 -0
  263. data/lib/tasks/sample/products/{0000/0008/ror_mug_back_mini.jpeg → 8/mini/ror_mug_back.jpeg} +0 -0
  264. data/lib/tasks/sample/products/{0000/0008 → 8/original}/ror_mug_back.jpeg +0 -0
  265. data/lib/tasks/sample/products/{0000/0008/ror_mug_back_product.jpeg → 8/product/ror_mug_back.jpeg} +0 -0
  266. data/lib/tasks/sample/products/{0000/0008/ror_mug_back_small.jpeg → 8/small/ror_mug_back.jpeg} +0 -0
  267. data/lib/tasks/sample/products/{0000/0009/ror_ringer_mini.jpeg → 9/mini/ror_ringer.jpeg} +0 -0
  268. data/lib/tasks/sample/products/{0000/0009 → 9/original}/ror_ringer.jpeg +0 -0
  269. data/lib/tasks/sample/products/{0000/0009/ror_ringer_product.jpeg → 9/product/ror_ringer.jpeg} +0 -0
  270. data/lib/tasks/sample/products/{0000/0009/ror_ringer_small.jpeg → 9/small/ror_ringer.jpeg} +0 -0
  271. data/lib/tasks/translation.rake +70 -0
  272. data/public/assets/products/1/mini/ror_tote.jpeg +0 -0
  273. data/public/assets/products/1/original/ror_tote.jpeg +0 -0
  274. data/public/assets/products/1/product/ror_tote.jpeg +0 -0
  275. data/public/assets/products/1/small/ror_tote.jpeg +0 -0
  276. data/public/assets/products/10/mini/ror_ringer_back.jpeg +0 -0
  277. data/public/assets/products/10/original/ror_ringer_back.jpeg +0 -0
  278. data/public/assets/products/10/product/ror_ringer_back.jpeg +0 -0
  279. data/public/assets/products/10/small/ror_ringer_back.jpeg +0 -0
  280. data/public/assets/products/1004/mini/apache_baseball.png +0 -0
  281. data/public/assets/products/1004/original/apache_baseball.png +0 -0
  282. data/public/assets/products/1004/product/apache_baseball.png +0 -0
  283. data/public/assets/products/1004/small/apache_baseball.png +0 -0
  284. data/public/assets/products/1008/mini/ruby_baseball.png +0 -0
  285. data/public/assets/products/1008/original/ruby_baseball.png +0 -0
  286. data/public/assets/products/1008/product/ruby_baseball.png +0 -0
  287. data/public/assets/products/1008/small/ruby_baseball.png +0 -0
  288. data/public/assets/products/1012/mini/bt.jpg +0 -0
  289. data/public/assets/products/1012/original/bt.jpg +0 -0
  290. data/public/assets/products/1012/product/bt.jpg +0 -0
  291. data/public/assets/products/1012/small/bt.jpg +0 -0
  292. data/public/assets/products/11/mini/ror_stein.jpeg +0 -0
  293. data/public/assets/products/11/original/ror_stein.jpeg +0 -0
  294. data/public/assets/products/11/product/ror_stein.jpeg +0 -0
  295. data/public/assets/products/11/small/ror_stein.jpeg +0 -0
  296. data/public/assets/products/12/mini/ror_stein_back.jpeg +0 -0
  297. data/public/assets/products/12/original/ror_stein_back.jpeg +0 -0
  298. data/public/assets/products/12/product/ror_stein_back.jpeg +0 -0
  299. data/public/assets/products/12/small/ror_stein_back.jpeg +0 -0
  300. data/public/assets/products/2/mini/ror_tote_back.jpeg +0 -0
  301. data/public/assets/products/2/original/ror_tote_back.jpeg +0 -0
  302. data/public/assets/products/2/product/ror_tote_back.jpeg +0 -0
  303. data/public/assets/products/2/small/ror_tote_back.jpeg +0 -0
  304. data/public/assets/products/3/mini/ror_bag.jpeg +0 -0
  305. data/public/assets/products/3/original/ror_bag.jpeg +0 -0
  306. data/public/assets/products/3/product/ror_bag.jpeg +0 -0
  307. data/public/assets/products/3/small/ror_bag.jpeg +0 -0
  308. data/public/assets/products/4/mini/ror_baseball.jpeg +0 -0
  309. data/public/assets/products/4/original/ror_baseball.jpeg +0 -0
  310. data/public/assets/products/4/product/ror_baseball.jpeg +0 -0
  311. data/public/assets/products/4/small/ror_baseball.jpeg +0 -0
  312. data/public/assets/products/5/mini/ror_baseball_back.jpeg +0 -0
  313. data/public/assets/products/5/original/ror_baseball_back.jpeg +0 -0
  314. data/public/assets/products/5/product/ror_baseball_back.jpeg +0 -0
  315. data/public/assets/products/5/small/ror_baseball_back.jpeg +0 -0
  316. data/public/assets/products/6/mini/ror_jr_spaghetti.jpeg +0 -0
  317. data/public/assets/products/6/original/ror_jr_spaghetti.jpeg +0 -0
  318. data/public/assets/products/6/product/ror_jr_spaghetti.jpeg +0 -0
  319. data/public/assets/products/6/small/ror_jr_spaghetti.jpeg +0 -0
  320. data/public/assets/products/7/mini/ror_mug.jpeg +0 -0
  321. data/public/assets/products/7/original/ror_mug.jpeg +0 -0
  322. data/public/assets/products/7/product/ror_mug.jpeg +0 -0
  323. data/public/assets/products/7/small/ror_mug.jpeg +0 -0
  324. data/public/assets/products/8/mini/ror_mug_back.jpeg +0 -0
  325. data/public/assets/products/8/original/ror_mug_back.jpeg +0 -0
  326. data/public/assets/products/8/product/ror_mug_back.jpeg +0 -0
  327. data/public/assets/products/8/small/ror_mug_back.jpeg +0 -0
  328. data/public/assets/products/9/mini/ror_ringer.jpeg +0 -0
  329. data/public/assets/products/9/original/ror_ringer.jpeg +0 -0
  330. data/public/assets/products/9/product/ror_ringer.jpeg +0 -0
  331. data/public/assets/products/9/small/ror_ringer.jpeg +0 -0
  332. data/public/images/noimage/mini.jpg +0 -0
  333. data/public/images/noimage/product.jpg +0 -0
  334. data/public/images/noimage/small.jpg +0 -0
  335. data/public/stylesheets/orders/_controller.css +0 -25
  336. data/public/stylesheets/spree-admin.css +35 -1
  337. data/public/stylesheets/spree.css +29 -2
  338. data/script/autospec +5 -0
  339. data/script/spec +1 -0
  340. data/script/spec_server +35 -12
  341. data/spec/controllers/countries_controller_spec.rb +23 -0
  342. data/spec/controllers/orders_controller_spec.rb +2 -2
  343. data/spec/controllers/products_controller_spec.rb +26 -0
  344. data/spec/controllers/states_controller_spec.rb +16 -0
  345. data/spec/controllers/taxons_controller_spec.rb +18 -0
  346. data/spec/fixtures/countries.yml +3 -0
  347. data/spec/fixtures/states.yml +2 -0
  348. data/spec/models/address_spec.rb +4 -4
  349. data/spec/models/creditcard_payment_spec.rb +9 -8
  350. data/spec/models/creditcard_spec.rb +43 -0
  351. data/spec/models/option_type_spec.rb +1 -1
  352. data/spec/models/order_spec.rb +97 -28
  353. data/spec/models/payment_sepc.rb +29 -0
  354. data/spec/models/preference_definition_spec.rb +0 -1
  355. data/spec/models/product_property_spec.rb +1 -1
  356. data/spec/models/product_spec.rb +2 -2
  357. data/spec/models/property_spec.rb +1 -1
  358. data/spec/models/prototype_spec.rb +1 -1
  359. data/spec/models/state_spec.rb +1 -1
  360. data/spec/models/taxon_spec.rb +12 -0
  361. data/spec/models/variant_spec.rb +1 -1
  362. data/spec/spec.opts +2 -4
  363. data/spec/views/admin/products/edit.html.erb_spec.rb +88 -0
  364. data/spec/views/admin/variants/eidt.html.erb_spec.rb +90 -0
  365. data/vendor/extensions/flat_rate_shipping/flat_rate_shipping_extension.rb +0 -6
  366. data/vendor/extensions/flat_rate_shipping/lib/spree/flat_rate_shipping/calculator.rb +1 -1
  367. data/vendor/extensions/localization/app/controllers/admin/localization_controller.rb +0 -4
  368. data/vendor/extensions/localization/app/controllers/locale_controller.rb +2 -2
  369. data/vendor/extensions/localization/app/views/shared/_language_bar.html.erb +3 -3
  370. data/vendor/extensions/localization/config/routes.rb +4 -0
  371. data/vendor/extensions/localization/localization_extension.rb +8 -19
  372. data/vendor/extensions/localization/spec/controllers/locale_controller_spec.rb +3 -3
  373. data/vendor/extensions/payment_gateway/app/models/gateway_option.rb +1 -0
  374. data/vendor/extensions/payment_gateway/app/views/admin/gateway_configurations/_form.html.erb +2 -2
  375. data/vendor/extensions/payment_gateway/app/views/admin/gateway_configurations/edit.html.erb +1 -1
  376. data/vendor/extensions/payment_gateway/app/views/admin/gateway_option_values/_options.html.erb +4 -4
  377. data/vendor/extensions/payment_gateway/config/routes.rb +4 -0
  378. data/vendor/extensions/payment_gateway/db/migrate/20081119210419_create_authorizenet_gateway.rb +18 -0
  379. data/vendor/extensions/payment_gateway/db/migrate/20081120144549_remove_authorizenet_test.rb +10 -0
  380. data/vendor/extensions/payment_gateway/lib/spree/bogus_gateway.rb +3 -3
  381. data/vendor/extensions/payment_gateway/lib/spree/payment_gateway.rb +30 -29
  382. data/vendor/extensions/payment_gateway/payment_gateway_extension.rb +3 -16
  383. data/vendor/extensions/payment_gateway/spec/models/creditcard_spec.rb +24 -0
  384. data/vendor/extensions/payment_gateway/spec/models/order_spec.rb +5 -2
  385. data/vendor/extensions/shipping/app/controllers/admin/shipments_controller.rb +67 -0
  386. data/vendor/extensions/shipping/app/controllers/admin/shipping_categories_controller.rb +0 -2
  387. data/vendor/extensions/shipping/app/controllers/admin/shipping_methods_controller.rb +0 -2
  388. data/vendor/extensions/shipping/app/controllers/shipments_controller.rb +67 -55
  389. data/vendor/extensions/shipping/app/helpers/shipments_helper.rb +2 -2
  390. data/vendor/extensions/shipping/app/models/shipment.rb +30 -6
  391. data/vendor/extensions/shipping/app/models/shipment_presenter.rb +3 -0
  392. data/vendor/extensions/shipping/app/models/shipping_method.rb +5 -5
  393. data/vendor/extensions/shipping/app/views/admin/shipments/_form.html.erb +35 -0
  394. data/vendor/extensions/shipping/app/views/admin/shipments/edit.html.erb +11 -0
  395. data/vendor/extensions/shipping/app/views/admin/shipments/index.html.erb +22 -0
  396. data/vendor/extensions/shipping/app/views/admin/shipments/new.html.erb +12 -0
  397. data/vendor/extensions/shipping/app/views/admin/shipping_categories/_form.html.erb +1 -1
  398. data/vendor/extensions/shipping/app/views/admin/shipping_categories/edit.html.erb +2 -2
  399. data/vendor/extensions/shipping/app/views/admin/shipping_categories/index.html.erb +6 -6
  400. data/vendor/extensions/shipping/app/views/admin/shipping_categories/new.html.erb +2 -2
  401. data/vendor/extensions/shipping/app/views/admin/shipping_methods/_form.html.erb +3 -3
  402. data/vendor/extensions/shipping/app/views/admin/shipping_methods/edit.html.erb +2 -2
  403. data/vendor/extensions/shipping/app/views/admin/shipping_methods/index.html.erb +8 -8
  404. data/vendor/extensions/shipping/app/views/admin/shipping_methods/new.html.erb +2 -2
  405. data/vendor/extensions/shipping/app/views/shipments/_form.html.erb +8 -8
  406. data/vendor/extensions/shipping/app/views/shipments/edit.html.erb +57 -8
  407. data/vendor/extensions/shipping/app/views/shipments/new.html.erb +10 -8
  408. data/vendor/extensions/shipping/config/locales/de.yml +25 -0
  409. data/vendor/extensions/shipping/config/locales/en-GB.yml +25 -0
  410. data/vendor/extensions/shipping/config/locales/en-US.yml +25 -0
  411. data/vendor/extensions/shipping/config/locales/es.yml +25 -0
  412. data/vendor/extensions/shipping/config/locales/it.yml +25 -0
  413. data/vendor/extensions/shipping/config/locales/pl.yml +25 -0
  414. data/vendor/extensions/shipping/config/locales/pt-BR.yml +25 -0
  415. data/vendor/extensions/shipping/config/routes.rb +10 -0
  416. data/vendor/extensions/shipping/db/migrate/20081205155619_add_shipped_at_property.rb +17 -0
  417. data/vendor/extensions/shipping/db/migrate/20081221201510_create_shipping_addresses.rb +16 -0
  418. data/vendor/extensions/shipping/db/sample/addresses.yml +14 -0
  419. data/vendor/extensions/shipping/db/sample/shipments.yml +6 -0
  420. data/vendor/extensions/shipping/lib/spree/shipping_calculator.rb +23 -16
  421. data/vendor/extensions/shipping/shipping_extension.rb +34 -18
  422. data/vendor/extensions/shipping/spec/controllers/shipments_controller_spec.rb +30 -0
  423. data/vendor/extensions/shipping/spec/models/shipment_spec.rb +1 -19
  424. data/vendor/extensions/shipping/spec/models/shipping_order_spec.rb +118 -0
  425. data/vendor/extensions/tax_calculator/app/controllers/admin/tax_rates_controller.rb +0 -2
  426. data/vendor/extensions/tax_calculator/app/views/admin/tax_rates/_form.html.erb +4 -4
  427. data/vendor/extensions/tax_calculator/app/views/admin/tax_rates/edit.html.erb +2 -2
  428. data/vendor/extensions/tax_calculator/app/views/admin/tax_rates/index.html.erb +9 -9
  429. data/vendor/extensions/tax_calculator/app/views/admin/tax_rates/new.html.erb +2 -2
  430. data/vendor/extensions/tax_calculator/config/locales/de.yml +30 -0
  431. data/vendor/extensions/tax_calculator/config/locales/en-GB.yml +30 -0
  432. data/vendor/extensions/tax_calculator/config/locales/en-US.yml +30 -0
  433. data/vendor/extensions/tax_calculator/config/locales/es.yml +30 -0
  434. data/vendor/extensions/tax_calculator/config/locales/it.yml +30 -0
  435. data/vendor/extensions/tax_calculator/config/locales/pl.yml +30 -0
  436. data/vendor/extensions/tax_calculator/config/locales/pt-BR.yml +30 -0
  437. data/vendor/extensions/tax_calculator/config/routes.rb +3 -0
  438. data/vendor/extensions/tax_calculator/lib/spree/tax_calculator.rb +6 -7
  439. data/vendor/extensions/tax_calculator/spec/helpers/products_helper_spec.rb +3 -3
  440. data/vendor/extensions/tax_calculator/spec/models/tax_calculator_spec.rb +6 -2
  441. data/vendor/extensions/tax_calculator/tax_calculator_extension.rb +1 -7
  442. data/vendor/gems/active_presenter-0.0.4/.specification +66 -0
  443. data/vendor/plugins/attribute_fu/README.rdoc +121 -0
  444. data/vendor/plugins/attribute_fu/Rakefile +1 -0
  445. data/vendor/plugins/attribute_fu/attribute_fu.gemspec +13 -0
  446. data/vendor/plugins/attribute_fu/lib/attribute_fu/associated_form_helper.rb +1 -1
  447. data/vendor/plugins/attribute_fu/lib/attribute_fu/associations.rb +17 -5
  448. data/vendor/plugins/attribute_fu/test/associated_form_helper_test.rb +376 -0
  449. data/vendor/plugins/attribute_fu/test/comment_test.rb +6 -0
  450. data/vendor/plugins/attribute_fu/test/db/database.yml +18 -0
  451. data/vendor/plugins/attribute_fu/test/{app/models → models}/comment.rb +0 -0
  452. data/vendor/plugins/attribute_fu/test/{app/models → models}/photo.rb +0 -0
  453. data/vendor/plugins/attribute_fu/test/photo_test.rb +160 -0
  454. data/vendor/plugins/attribute_fu/test/test_helper.rb +24 -0
  455. data/vendor/plugins/calendar_date_select/History.txt +231 -0
  456. data/vendor/plugins/calendar_date_select/Manifest.txt +42 -0
  457. data/vendor/plugins/calendar_date_select/Rakefile +31 -0
  458. data/vendor/plugins/calendar_date_select/Readme.txt +16 -0
  459. data/vendor/plugins/calendar_date_select/calendar_date_select.gemspec +33 -0
  460. data/vendor/plugins/calendar_date_select/init.rb +1 -15
  461. data/vendor/plugins/calendar_date_select/js_test/functional/cds_test.html +13 -3
  462. data/vendor/plugins/calendar_date_select/lib/calendar_date_select.rb +33 -192
  463. data/vendor/plugins/calendar_date_select/lib/calendar_date_select/calendar_date_select.rb +116 -0
  464. data/vendor/plugins/calendar_date_select/lib/calendar_date_select/form_helpers.rb +223 -0
  465. data/vendor/plugins/calendar_date_select/lib/calendar_date_select/includes_helper.rb +29 -0
  466. data/vendor/plugins/calendar_date_select/public/blank_iframe.html +2 -0
  467. data/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/calendar_date_select.js +56 -52
  468. data/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_db.js +27 -0
  469. data/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_euro_24hr_ymd.js +7 -0
  470. data/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_finnish.js +9 -1
  471. data/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_hyphen_ampm.js +35 -35
  472. data/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_iso_date.js +46 -0
  473. data/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_italian.js +1 -1
  474. data/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/de.js +11 -0
  475. data/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/fr.js +10 -0
  476. data/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/pl.js +10 -0
  477. data/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/pt.js +11 -0
  478. data/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/ru.js +10 -0
  479. data/vendor/plugins/calendar_date_select/spec/calendar_date_select/calendar_date_select_spec.rb +14 -0
  480. data/vendor/plugins/calendar_date_select/spec/calendar_date_select/form_helpers_spec.rb +161 -0
  481. data/vendor/plugins/calendar_date_select/spec/spec_helper.rb +26 -0
  482. data/vendor/plugins/enumerable_constants/lib/enumerable_constants.rb +1 -1
  483. data/vendor/plugins/has_many_polymorphs/CHANGELOG +83 -0
  484. data/vendor/plugins/has_many_polymorphs/LICENSE +184 -0
  485. data/vendor/plugins/has_many_polymorphs/Manifest +174 -0
  486. data/vendor/plugins/has_many_polymorphs/README +205 -0
  487. data/vendor/plugins/has_many_polymorphs/Rakefile +28 -0
  488. data/vendor/plugins/has_many_polymorphs/TODO +2 -0
  489. data/vendor/plugins/has_many_polymorphs/examples/hmph.rb +69 -0
  490. data/vendor/plugins/has_many_polymorphs/generators/tagging/tagging_generator.rb +97 -0
  491. data/vendor/plugins/has_many_polymorphs/generators/tagging/templates/migration.rb +28 -0
  492. data/vendor/plugins/has_many_polymorphs/generators/tagging/templates/tag.rb +39 -0
  493. data/vendor/plugins/has_many_polymorphs/generators/tagging/templates/tag_test.rb +15 -0
  494. data/vendor/plugins/has_many_polymorphs/generators/tagging/templates/tagging.rb +16 -0
  495. data/vendor/plugins/has_many_polymorphs/generators/tagging/templates/tagging_extensions.rb +159 -0
  496. data/vendor/plugins/has_many_polymorphs/generators/tagging/templates/tagging_test.rb +85 -0
  497. data/vendor/plugins/has_many_polymorphs/generators/tagging/templates/taggings.yml +23 -0
  498. data/vendor/plugins/has_many_polymorphs/generators/tagging/templates/tags.yml +7 -0
  499. data/vendor/plugins/has_many_polymorphs/init.rb +2 -0
  500. data/vendor/plugins/has_many_polymorphs/lib/has_many_polymorphs.rb +27 -0
  501. data/vendor/plugins/has_many_polymorphs/lib/has_many_polymorphs/association.rb +159 -0
  502. data/vendor/plugins/has_many_polymorphs/lib/has_many_polymorphs/autoload.rb +70 -0
  503. data/vendor/plugins/has_many_polymorphs/lib/has_many_polymorphs/base.rb +60 -0
  504. data/vendor/plugins/has_many_polymorphs/lib/has_many_polymorphs/class_methods.rb +600 -0
  505. data/vendor/plugins/has_many_polymorphs/lib/has_many_polymorphs/configuration.rb +19 -0
  506. data/vendor/plugins/has_many_polymorphs/lib/has_many_polymorphs/debugging_tools.rb +103 -0
  507. data/vendor/plugins/has_many_polymorphs/lib/has_many_polymorphs/rake_task_redefine_task.rb +35 -0
  508. data/vendor/plugins/has_many_polymorphs/lib/has_many_polymorphs/reflection.rb +58 -0
  509. data/vendor/plugins/has_many_polymorphs/lib/has_many_polymorphs/support_methods.rb +84 -0
  510. data/vendor/plugins/has_many_polymorphs/test/fixtures/bow_wows.yml +10 -0
  511. data/vendor/plugins/has_many_polymorphs/test/fixtures/cats.yml +18 -0
  512. data/vendor/plugins/{rspec-rails/spec_resources/views/controller_spec/_partial.rhtml → has_many_polymorphs/test/fixtures/eaters_foodstuffs.yml} +0 -0
  513. data/vendor/plugins/has_many_polymorphs/test/fixtures/fish.yml +12 -0
  514. data/vendor/plugins/has_many_polymorphs/test/fixtures/frogs.yml +5 -0
  515. data/vendor/plugins/{rspec-rails/spec_resources/views/controller_spec/action_setting_the_assigns_hash.rhtml → has_many_polymorphs/test/fixtures/keep_your_enemies_close.yml} +0 -0
  516. data/vendor/plugins/{rspec-rails/spec_resources/views/render_spec/_a_partial.rhtml → has_many_polymorphs/test/fixtures/little_whale_pupils.yml} +0 -0
  517. data/vendor/plugins/has_many_polymorphs/test/fixtures/people.yml +7 -0
  518. data/vendor/plugins/has_many_polymorphs/test/fixtures/petfoods.yml +11 -0
  519. data/vendor/plugins/has_many_polymorphs/test/fixtures/whales.yml +5 -0
  520. data/vendor/plugins/has_many_polymorphs/test/fixtures/wild_boars.yml +10 -0
  521. data/vendor/plugins/has_many_polymorphs/test/generator/tagging_generator_test.rb +42 -0
  522. data/vendor/plugins/has_many_polymorphs/test/integration/app/README +182 -0
  523. data/vendor/plugins/has_many_polymorphs/test/integration/app/Rakefile +19 -0
  524. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/controllers/application.rb +7 -0
  525. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/controllers/bones_controller.rb +5 -0
  526. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/helpers/addresses_helper.rb +2 -0
  527. data/vendor/plugins/{attribute_fu/test → has_many_polymorphs/test/integration/app}/app/helpers/application_helper.rb +0 -0
  528. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/helpers/bones_helper.rb +2 -0
  529. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/helpers/sellers_helper.rb +28 -0
  530. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/helpers/states_helper.rb +2 -0
  531. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/helpers/users_helper.rb +2 -0
  532. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/models/bone.rb +2 -0
  533. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/models/double_sti_parent.rb +2 -0
  534. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/models/double_sti_parent_relationship.rb +2 -0
  535. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/models/organic_substance.rb +2 -0
  536. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/models/single_sti_parent.rb +4 -0
  537. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/models/single_sti_parent_relationship.rb +4 -0
  538. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/models/stick.rb +2 -0
  539. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/models/stone.rb +2 -0
  540. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/views/addresses/edit.html.erb +12 -0
  541. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/views/addresses/index.html.erb +18 -0
  542. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/views/addresses/new.html.erb +11 -0
  543. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/views/addresses/show.html.erb +3 -0
  544. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/views/bones/index.rhtml +5 -0
  545. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/views/layouts/addresses.html.erb +17 -0
  546. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/views/layouts/sellers.html.erb +17 -0
  547. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/views/layouts/states.html.erb +17 -0
  548. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/views/layouts/users.html.erb +17 -0
  549. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/views/sellers/edit.html.erb +12 -0
  550. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/views/sellers/index.html.erb +20 -0
  551. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/views/sellers/new.html.erb +11 -0
  552. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/views/sellers/show.html.erb +3 -0
  553. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/views/states/edit.html.erb +12 -0
  554. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/views/states/index.html.erb +19 -0
  555. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/views/states/new.html.erb +11 -0
  556. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/views/states/show.html.erb +3 -0
  557. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/views/users/edit.html.erb +12 -0
  558. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/views/users/index.html.erb +22 -0
  559. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/views/users/new.html.erb +11 -0
  560. data/vendor/plugins/has_many_polymorphs/test/integration/app/app/views/users/show.html.erb +3 -0
  561. data/vendor/plugins/has_many_polymorphs/test/integration/app/config/boot.rb +110 -0
  562. data/vendor/plugins/has_many_polymorphs/test/integration/app/config/database.yml +17 -0
  563. data/vendor/plugins/has_many_polymorphs/test/integration/app/config/environment.rb +19 -0
  564. data/vendor/plugins/has_many_polymorphs/test/integration/app/config/environment.rb.canonical +19 -0
  565. data/vendor/plugins/has_many_polymorphs/test/integration/app/config/environments/development.rb +8 -0
  566. data/vendor/plugins/has_many_polymorphs/test/integration/app/config/environments/production.rb +18 -0
  567. data/vendor/plugins/has_many_polymorphs/test/integration/app/config/environments/test.rb +19 -0
  568. data/vendor/plugins/has_many_polymorphs/test/integration/app/config/routes.rb +33 -0
  569. data/vendor/plugins/has_many_polymorphs/test/integration/app/config/ultrasphinx/default.base +56 -0
  570. data/vendor/plugins/has_many_polymorphs/test/integration/app/config/ultrasphinx/development.conf.canonical +155 -0
  571. data/vendor/plugins/has_many_polymorphs/test/integration/app/db/migrate/001_create_sticks.rb +11 -0
  572. data/vendor/plugins/has_many_polymorphs/test/integration/app/db/migrate/002_create_stones.rb +11 -0
  573. data/vendor/plugins/has_many_polymorphs/test/integration/app/db/migrate/003_create_organic_substances.rb +11 -0
  574. data/vendor/plugins/has_many_polymorphs/test/integration/app/db/migrate/004_create_bones.rb +8 -0
  575. data/vendor/plugins/has_many_polymorphs/test/integration/app/db/migrate/005_create_single_sti_parents.rb +11 -0
  576. data/vendor/plugins/has_many_polymorphs/test/integration/app/db/migrate/006_create_double_sti_parents.rb +11 -0
  577. data/vendor/plugins/has_many_polymorphs/test/integration/app/db/migrate/007_create_single_sti_parent_relationships.rb +13 -0
  578. data/vendor/plugins/has_many_polymorphs/test/integration/app/db/migrate/008_create_double_sti_parent_relationships.rb +14 -0
  579. data/vendor/plugins/has_many_polymorphs/test/integration/app/db/migrate/009_create_library_model.rb +11 -0
  580. data/vendor/plugins/has_many_polymorphs/test/integration/app/doc/README_FOR_APP +2 -0
  581. data/vendor/plugins/has_many_polymorphs/test/integration/app/generators/commenting_generator_test.rb +83 -0
  582. data/vendor/plugins/has_many_polymorphs/test/integration/app/lib/library_model.rb +2 -0
  583. data/vendor/plugins/has_many_polymorphs/test/integration/app/public/404.html +30 -0
  584. data/vendor/plugins/has_many_polymorphs/test/integration/app/public/500.html +30 -0
  585. data/vendor/plugins/has_many_polymorphs/test/integration/app/public/dispatch.cgi +10 -0
  586. data/vendor/plugins/has_many_polymorphs/test/integration/app/public/dispatch.fcgi +24 -0
  587. data/vendor/plugins/has_many_polymorphs/test/integration/app/public/dispatch.rb +10 -0
  588. data/vendor/plugins/{rspec-rails/spec_resources/views/render_spec/some_action.rhtml → has_many_polymorphs/test/integration/app/public/favicon.ico} +0 -0
  589. data/vendor/plugins/{attachment_fu/test/fixtures/files → has_many_polymorphs/test/integration/app/public/images}/rails.png +0 -0
  590. data/vendor/plugins/has_many_polymorphs/test/integration/app/public/index.html +277 -0
  591. data/vendor/plugins/has_many_polymorphs/test/integration/app/public/javascripts/application.js +2 -0
  592. data/vendor/plugins/has_many_polymorphs/test/integration/app/public/javascripts/controls.js +833 -0
  593. data/vendor/plugins/has_many_polymorphs/test/integration/app/public/javascripts/dragdrop.js +942 -0
  594. data/vendor/plugins/has_many_polymorphs/test/integration/app/public/javascripts/effects.js +1088 -0
  595. data/vendor/plugins/has_many_polymorphs/test/integration/app/public/javascripts/prototype.js +2515 -0
  596. data/vendor/plugins/has_many_polymorphs/test/integration/app/public/robots.txt +1 -0
  597. data/vendor/plugins/has_many_polymorphs/test/integration/app/public/stylesheets/scaffold.css +74 -0
  598. data/vendor/plugins/has_many_polymorphs/test/integration/app/script/about +3 -0
  599. data/vendor/plugins/has_many_polymorphs/test/integration/app/script/breakpointer +3 -0
  600. data/vendor/plugins/has_many_polymorphs/test/integration/app/script/console +3 -0
  601. data/vendor/plugins/has_many_polymorphs/test/integration/app/script/destroy +3 -0
  602. data/vendor/plugins/has_many_polymorphs/test/integration/app/script/generate +3 -0
  603. data/vendor/plugins/has_many_polymorphs/test/integration/app/script/performance/benchmarker +3 -0
  604. data/vendor/plugins/has_many_polymorphs/test/integration/app/script/performance/profiler +3 -0
  605. data/vendor/plugins/has_many_polymorphs/test/integration/app/script/plugin +3 -0
  606. data/vendor/plugins/has_many_polymorphs/test/integration/app/script/process/inspector +3 -0
  607. data/vendor/plugins/has_many_polymorphs/test/integration/app/script/process/reaper +3 -0
  608. data/vendor/plugins/has_many_polymorphs/test/integration/app/script/process/spawner +3 -0
  609. data/vendor/plugins/has_many_polymorphs/test/integration/app/script/runner +3 -0
  610. data/vendor/plugins/has_many_polymorphs/test/integration/app/script/server +3 -0
  611. data/vendor/plugins/has_many_polymorphs/test/integration/app/test/fixtures/double_sti_parent_relationships.yml +7 -0
  612. data/vendor/plugins/has_many_polymorphs/test/integration/app/test/fixtures/double_sti_parents.yml +7 -0
  613. data/vendor/plugins/has_many_polymorphs/test/integration/app/test/fixtures/organic_substances.yml +5 -0
  614. data/vendor/plugins/has_many_polymorphs/test/integration/app/test/fixtures/single_sti_parent_relationships.yml +7 -0
  615. data/vendor/plugins/has_many_polymorphs/test/integration/app/test/fixtures/single_sti_parents.yml +7 -0
  616. data/vendor/plugins/has_many_polymorphs/test/integration/app/test/fixtures/sticks.yml +7 -0
  617. data/vendor/plugins/has_many_polymorphs/test/integration/app/test/fixtures/stones.yml +7 -0
  618. data/vendor/plugins/has_many_polymorphs/test/integration/app/test/functional/addresses_controller_test.rb +57 -0
  619. data/vendor/plugins/has_many_polymorphs/test/integration/app/test/functional/bones_controller_test.rb +8 -0
  620. data/vendor/plugins/has_many_polymorphs/test/integration/app/test/functional/sellers_controller_test.rb +57 -0
  621. data/vendor/plugins/has_many_polymorphs/test/integration/app/test/functional/states_controller_test.rb +57 -0
  622. data/vendor/plugins/has_many_polymorphs/test/integration/app/test/functional/users_controller_test.rb +57 -0
  623. data/vendor/plugins/has_many_polymorphs/test/integration/app/test/test_helper.rb +8 -0
  624. data/vendor/plugins/has_many_polymorphs/test/integration/app/test/unit/bone_test.rb +8 -0
  625. data/vendor/plugins/has_many_polymorphs/test/integration/app/test/unit/double_sti_parent_relationship_test.rb +8 -0
  626. data/vendor/plugins/has_many_polymorphs/test/integration/app/test/unit/double_sti_parent_test.rb +8 -0
  627. data/vendor/plugins/has_many_polymorphs/test/integration/app/test/unit/organic_substance_test.rb +8 -0
  628. data/vendor/plugins/has_many_polymorphs/test/integration/app/test/unit/single_sti_parent_relationship_test.rb +8 -0
  629. data/vendor/plugins/has_many_polymorphs/test/integration/app/test/unit/single_sti_parent_test.rb +8 -0
  630. data/vendor/plugins/has_many_polymorphs/test/integration/app/test/unit/stick_test.rb +8 -0
  631. data/vendor/plugins/has_many_polymorphs/test/integration/app/test/unit/stone_test.rb +8 -0
  632. data/vendor/plugins/has_many_polymorphs/test/integration/server_test.rb +43 -0
  633. data/vendor/plugins/has_many_polymorphs/test/models/aquatic/fish.rb +5 -0
  634. data/vendor/plugins/has_many_polymorphs/test/models/aquatic/pupils_whale.rb +7 -0
  635. data/vendor/plugins/has_many_polymorphs/test/models/aquatic/whale.rb +15 -0
  636. data/vendor/plugins/has_many_polymorphs/test/models/beautiful_fight_relationship.rb +26 -0
  637. data/vendor/plugins/has_many_polymorphs/test/models/canine.rb +9 -0
  638. data/vendor/plugins/has_many_polymorphs/test/models/cat.rb +5 -0
  639. data/vendor/plugins/has_many_polymorphs/test/models/dog.rb +18 -0
  640. data/vendor/plugins/has_many_polymorphs/test/models/eaters_foodstuff.rb +10 -0
  641. data/vendor/plugins/has_many_polymorphs/test/models/frog.rb +4 -0
  642. data/vendor/plugins/has_many_polymorphs/test/models/kitten.rb +3 -0
  643. data/vendor/plugins/has_many_polymorphs/test/models/parentship.rb +4 -0
  644. data/vendor/plugins/has_many_polymorphs/test/models/person.rb +9 -0
  645. data/vendor/plugins/has_many_polymorphs/test/models/petfood.rb +39 -0
  646. data/vendor/plugins/has_many_polymorphs/test/models/tabby.rb +2 -0
  647. data/vendor/plugins/has_many_polymorphs/test/models/wild_boar.rb +3 -0
  648. data/vendor/plugins/has_many_polymorphs/test/modules/extension_module.rb +9 -0
  649. data/vendor/plugins/has_many_polymorphs/test/modules/other_extension_module.rb +9 -0
  650. data/vendor/plugins/has_many_polymorphs/test/patches/symlinked_plugins_1.2.6.diff +46 -0
  651. data/vendor/plugins/has_many_polymorphs/test/schema.rb +87 -0
  652. data/vendor/plugins/has_many_polymorphs/test/setup.rb +14 -0
  653. data/vendor/plugins/has_many_polymorphs/test/test_helper.rb +51 -0
  654. data/vendor/plugins/has_many_polymorphs/test/unit/has_many_polymorphs_test.rb +714 -0
  655. data/vendor/plugins/paperclip/LICENSE +26 -0
  656. data/vendor/plugins/paperclip/README.rdoc +59 -0
  657. data/vendor/plugins/paperclip/Rakefile +88 -0
  658. data/vendor/plugins/paperclip/generators/paperclip/USAGE +5 -0
  659. data/vendor/plugins/paperclip/generators/paperclip/paperclip_generator.rb +27 -0
  660. data/vendor/plugins/paperclip/generators/paperclip/templates/paperclip_migration.rb.erb +19 -0
  661. data/vendor/plugins/paperclip/init.rb +1 -0
  662. data/vendor/plugins/paperclip/lib/paperclip.rb +276 -0
  663. data/vendor/plugins/paperclip/lib/paperclip/attachment.rb +297 -0
  664. data/vendor/plugins/paperclip/lib/paperclip/geometry.rb +114 -0
  665. data/vendor/plugins/paperclip/lib/paperclip/iostream.rb +43 -0
  666. data/vendor/plugins/paperclip/lib/paperclip/storage.rb +207 -0
  667. data/vendor/plugins/paperclip/lib/paperclip/thumbnail.rb +88 -0
  668. data/vendor/plugins/paperclip/lib/paperclip/upfile.rb +37 -0
  669. data/vendor/plugins/paperclip/shoulda_macros/paperclip.rb +32 -0
  670. data/vendor/plugins/paperclip/tasks/paperclip_tasks.rake +79 -0
  671. data/vendor/plugins/paperclip/test/attachment_test.rb +362 -0
  672. data/vendor/plugins/paperclip/test/database.yml +5 -0
  673. data/vendor/plugins/paperclip/test/fixtures/12k.png +0 -0
  674. data/vendor/plugins/paperclip/test/fixtures/50x50.png +0 -0
  675. data/vendor/plugins/paperclip/test/fixtures/5k.png +0 -0
  676. data/vendor/plugins/paperclip/test/fixtures/bad.png +1 -0
  677. data/vendor/plugins/{rspec-rails/spec_resources/views/view_spec/_partial_used_twice.rhtml → paperclip/test/fixtures/text.txt} +0 -0
  678. data/vendor/plugins/paperclip/test/geometry_test.rb +168 -0
  679. data/vendor/plugins/paperclip/test/helper.rb +57 -0
  680. data/vendor/plugins/paperclip/test/integration_test.rb +393 -0
  681. data/vendor/plugins/paperclip/test/iostream_test.rb +60 -0
  682. data/vendor/plugins/paperclip/test/paperclip_test.rb +179 -0
  683. data/vendor/plugins/paperclip/test/storage_test.rb +172 -0
  684. data/vendor/plugins/paperclip/test/thumbnail_test.rb +145 -0
  685. data/vendor/plugins/resource_controller/lib/resource_controller/actions.rb +1 -1
  686. data/vendor/plugins/resource_controller/lib/resource_controller/helpers/urls.rb +3 -2
  687. data/vendor/plugins/resource_controller/lib/urligence.rb +9 -3
  688. data/vendor/plugins/rspec-rails/History.txt +132 -0
  689. data/vendor/plugins/rspec-rails/License.txt +33 -0
  690. data/vendor/plugins/rspec-rails/Manifest.txt +161 -0
  691. data/vendor/plugins/rspec-rails/README.txt +44 -0
  692. data/vendor/plugins/rspec-rails/Rakefile +39 -52
  693. data/vendor/plugins/rspec-rails/TODO.txt +0 -0
  694. data/vendor/plugins/rspec-rails/features/step_definitions/people.rb +6 -0
  695. data/vendor/plugins/rspec-rails/features/support/env.rb +13 -0
  696. data/vendor/plugins/rspec-rails/features/transactions/transactions_should_rollback.feature +16 -0
  697. data/vendor/plugins/rspec-rails/generators/rspec/rspec_generator.rb +9 -8
  698. data/vendor/plugins/rspec-rails/generators/rspec/templates/rspec.rake +158 -0
  699. data/vendor/plugins/rspec-rails/generators/rspec/templates/script/autospec +5 -0
  700. data/vendor/plugins/rspec-rails/generators/rspec/templates/script/spec +1 -0
  701. data/vendor/plugins/rspec-rails/generators/rspec/templates/script/spec_server +17 -8
  702. data/vendor/plugins/rspec-rails/generators/rspec/templates/spec_helper.rb +1 -1
  703. data/vendor/plugins/rspec-rails/generators/rspec_controller/rspec_controller_generator.rb +1 -5
  704. data/vendor/plugins/rspec-rails/generators/rspec_default_values.rb +19 -0
  705. data/vendor/plugins/rspec-rails/generators/rspec_model/rspec_model_generator.rb +7 -2
  706. data/vendor/plugins/rspec-rails/generators/rspec_scaffold/rspec_scaffold_generator.rb +4 -21
  707. data/vendor/plugins/rspec-rails/generators/rspec_scaffold/templates/controller_spec.rb +94 -248
  708. data/vendor/plugins/rspec-rails/generators/rspec_scaffold/templates/edit_erb_spec.rb +7 -6
  709. data/vendor/plugins/rspec-rails/generators/rspec_scaffold/templates/index_erb_spec.rb +9 -8
  710. data/vendor/plugins/rspec-rails/generators/rspec_scaffold/templates/new_erb_spec.rb +7 -6
  711. data/vendor/plugins/rspec-rails/generators/rspec_scaffold/templates/routing_spec.rb +13 -15
  712. data/vendor/plugins/rspec-rails/generators/rspec_scaffold/templates/show_erb_spec.rb +9 -9
  713. data/vendor/plugins/rspec-rails/lib/autotest/rails_rspec.rb +0 -5
  714. data/vendor/plugins/rspec-rails/lib/spec/rails.rb +15 -38
  715. data/vendor/plugins/rspec-rails/lib/spec/rails/example.rb +1 -0
  716. data/vendor/plugins/rspec-rails/lib/spec/rails/example/assigns_hash_proxy.rb +13 -16
  717. data/vendor/plugins/rspec-rails/lib/spec/rails/example/controller_example_group.rb +54 -68
  718. data/vendor/plugins/rspec-rails/lib/spec/rails/example/cookies_proxy.rb +29 -0
  719. data/vendor/plugins/rspec-rails/lib/spec/rails/example/functional_example_group.rb +35 -4
  720. data/vendor/plugins/rspec-rails/lib/spec/rails/example/helper_example_group.rb +13 -6
  721. data/vendor/plugins/rspec-rails/lib/spec/rails/example/rails_example_group.rb +9 -10
  722. data/vendor/plugins/rspec-rails/lib/spec/rails/example/render_observer.rb +49 -46
  723. data/vendor/plugins/rspec-rails/lib/spec/rails/example/view_example_group.rb +14 -10
  724. data/vendor/plugins/rspec-rails/lib/spec/rails/extensions.rb +1 -3
  725. data/vendor/plugins/rspec-rails/lib/spec/rails/extensions/action_controller/base.rb +1 -1
  726. data/vendor/plugins/rspec-rails/lib/spec/rails/extensions/action_controller/rescue.rb +9 -5
  727. data/vendor/plugins/rspec-rails/lib/spec/rails/extensions/action_controller/test_response.rb +11 -2
  728. data/vendor/plugins/rspec-rails/lib/spec/rails/extensions/action_view/base.rb +10 -4
  729. data/vendor/plugins/rspec-rails/lib/spec/rails/extensions/active_record/base.rb +1 -2
  730. data/vendor/plugins/rspec-rails/lib/spec/rails/extensions/spec/matchers/have.rb +2 -2
  731. data/vendor/plugins/rspec-rails/lib/spec/rails/extensions/spec/runner/configuration.rb +76 -0
  732. data/vendor/plugins/rspec-rails/lib/spec/rails/interop/testcase.rb +14 -0
  733. data/vendor/plugins/rspec-rails/lib/spec/rails/matchers.rb +2 -0
  734. data/vendor/plugins/rspec-rails/lib/spec/rails/matchers/ar_be_valid.rb +41 -0
  735. data/vendor/plugins/rspec-rails/lib/spec/rails/matchers/assert_select.rb +1 -0
  736. data/vendor/plugins/rspec-rails/lib/spec/rails/matchers/change.rb +11 -0
  737. data/vendor/plugins/rspec-rails/lib/spec/rails/matchers/redirect_to.rb +26 -5
  738. data/vendor/plugins/rspec-rails/lib/spec/rails/matchers/render_template.rb +55 -15
  739. data/vendor/plugins/rspec-rails/lib/spec/rails/mocks.rb +21 -12
  740. data/vendor/plugins/rspec-rails/lib/spec/rails/story_adapter.rb +11 -3
  741. data/vendor/plugins/rspec-rails/lib/spec/rails/version.rb +16 -39
  742. data/vendor/plugins/rspec-rails/rspec-rails.gemspec +36 -0
  743. data/vendor/plugins/rspec-rails/spec/autotest/mappings_spec.rb +36 -0
  744. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/controllers/action_view_base_spec_controller.rb +0 -0
  745. data/vendor/plugins/rspec-rails/spec/resources/controllers/application.rb +9 -0
  746. data/vendor/plugins/rspec-rails/spec/resources/controllers/controller_spec_controller.rb +110 -0
  747. data/vendor/plugins/rspec-rails/spec/resources/controllers/redirect_spec_controller.rb +70 -0
  748. data/vendor/plugins/rspec-rails/spec/resources/controllers/render_spec_controller.rb +30 -0
  749. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/controllers/rjs_spec_controller.rb +0 -0
  750. data/vendor/plugins/rspec-rails/spec/resources/helpers/addition_helper.rb +5 -0
  751. data/vendor/plugins/rspec-rails/spec/resources/helpers/explicit_helper.rb +46 -0
  752. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/helpers/more_explicit_helper.rb +0 -0
  753. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/helpers/plugin_application_helper.rb +0 -0
  754. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/helpers/view_spec_helper.rb +0 -0
  755. data/vendor/plugins/rspec-rails/spec/resources/models/animal.rb +4 -0
  756. data/vendor/plugins/rspec-rails/spec/resources/models/person.rb +18 -0
  757. data/vendor/plugins/rspec-rails/spec/resources/models/thing.rb +3 -0
  758. data/vendor/plugins/rspec-rails/spec/resources/views/controller_spec/_partial.rhtml +0 -0
  759. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/views/controller_spec/action_setting_flash_after_session_reset.rhtml +0 -0
  760. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/views/controller_spec/action_setting_flash_before_session_reset.rhtml +0 -0
  761. data/vendor/plugins/rspec-rails/spec/resources/views/controller_spec/action_setting_the_assigns_hash.rhtml +0 -0
  762. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/views/controller_spec/action_with_errors_in_template.rhtml +0 -0
  763. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/views/controller_spec/action_with_template.rhtml +0 -0
  764. data/vendor/plugins/rspec-rails/spec/resources/views/layouts/application.rhtml +0 -0
  765. data/vendor/plugins/rspec-rails/spec/resources/views/layouts/simple.rhtml +0 -0
  766. data/vendor/plugins/rspec-rails/spec/resources/views/objects/_object.html.erb +1 -0
  767. data/vendor/plugins/rspec-rails/spec/resources/views/render_spec/_a_partial.rhtml +0 -0
  768. data/vendor/plugins/rspec-rails/spec/resources/views/render_spec/action_with_alternate_layout.rhtml +0 -0
  769. data/vendor/plugins/rspec-rails/spec/resources/views/render_spec/some_action.html.erb +0 -0
  770. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/views/render_spec/some_action.js.rjs +0 -0
  771. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/views/render_spec/some_action.rjs +0 -0
  772. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/views/rjs_spec/_replacement_partial.rhtml +0 -0
  773. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/views/rjs_spec/hide_div.rjs +0 -0
  774. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/views/rjs_spec/hide_page_element.rjs +0 -0
  775. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/views/rjs_spec/insert_html.rjs +0 -0
  776. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/views/rjs_spec/replace.rjs +0 -0
  777. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/views/rjs_spec/replace_html.rjs +0 -0
  778. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/views/rjs_spec/replace_html_with_partial.rjs +0 -0
  779. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/views/rjs_spec/visual_effect.rjs +0 -0
  780. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/views/rjs_spec/visual_toggle_effect.rjs +0 -0
  781. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/views/tag_spec/no_tags.rhtml +0 -0
  782. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/views/tag_spec/single_div_with_no_attributes.rhtml +0 -0
  783. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/views/tag_spec/single_div_with_one_attribute.rhtml +0 -0
  784. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/views/view_spec/_partial.rhtml +0 -0
  785. data/vendor/plugins/rspec-rails/spec/resources/views/view_spec/_partial_used_twice.rhtml +0 -0
  786. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/views/view_spec/_partial_with_local_variable.rhtml +0 -0
  787. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/views/view_spec/_partial_with_sub_partial.rhtml +0 -0
  788. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/views/view_spec/_spacer.rhtml +0 -0
  789. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/views/view_spec/accessor.rhtml +0 -0
  790. data/vendor/plugins/rspec-rails/spec/resources/views/view_spec/block_helper.rhtml +3 -0
  791. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/views/view_spec/entry_form.rhtml +0 -0
  792. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/views/view_spec/explicit_helper.rhtml +0 -0
  793. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/views/view_spec/foo/show.rhtml +0 -0
  794. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/views/view_spec/implicit_helper.rhtml +0 -0
  795. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/views/view_spec/multiple_helpers.rhtml +0 -0
  796. data/vendor/plugins/rspec-rails/spec/resources/views/view_spec/path_params.html.erb +1 -0
  797. data/vendor/plugins/rspec-rails/spec/resources/views/view_spec/should_not_receive.rhtml +3 -0
  798. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/views/view_spec/template_with_partial.rhtml +0 -0
  799. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/views/view_spec/template_with_partial_using_collection.rhtml +0 -0
  800. data/vendor/plugins/rspec-rails/{spec_resources → spec/resources}/views/view_spec/template_with_partial_with_array.rhtml +0 -0
  801. data/vendor/plugins/rspec-rails/spec/spec/rails/example/assigns_hash_proxy_spec.rb +96 -0
  802. data/vendor/plugins/rspec-rails/spec/spec/rails/example/configuration_spec.rb +79 -0
  803. data/vendor/plugins/rspec-rails/spec/spec/rails/example/controller_isolation_spec.rb +56 -0
  804. data/vendor/plugins/rspec-rails/spec/spec/rails/example/controller_spec_spec.rb +346 -0
  805. data/vendor/plugins/rspec-rails/spec/spec/rails/example/cookies_proxy_spec.rb +87 -0
  806. data/vendor/plugins/rspec-rails/spec/spec/rails/example/example_group_factory_spec.rb +112 -0
  807. data/vendor/plugins/rspec-rails/spec/spec/rails/example/helper_spec_spec.rb +204 -0
  808. data/vendor/plugins/rspec-rails/spec/spec/rails/example/model_spec_spec.rb +18 -0
  809. data/vendor/plugins/rspec-rails/spec/spec/rails/example/shared_behaviour_spec.rb +16 -0
  810. data/vendor/plugins/rspec-rails/spec/spec/rails/example/test_unit_assertion_accessibility_spec.rb +33 -0
  811. data/vendor/plugins/rspec-rails/spec/spec/rails/example/view_spec_spec.rb +312 -0
  812. data/vendor/plugins/rspec-rails/spec/spec/rails/extensions/action_controller_rescue_action_spec.rb +57 -0
  813. data/vendor/plugins/rspec-rails/spec/spec/rails/extensions/action_view_base_spec.rb +48 -0
  814. data/vendor/plugins/rspec-rails/spec/spec/rails/extensions/active_record_spec.rb +14 -0
  815. data/vendor/plugins/rspec-rails/spec/spec/rails/interop/testcase_spec.rb +70 -0
  816. data/vendor/plugins/rspec-rails/spec/spec/rails/matchers/ar_be_valid_spec.rb +35 -0
  817. data/vendor/plugins/rspec-rails/spec/spec/rails/matchers/assert_select_spec.rb +810 -0
  818. data/vendor/plugins/rspec-rails/spec/spec/rails/matchers/errors_on_spec.rb +25 -0
  819. data/vendor/plugins/rspec-rails/spec/spec/rails/matchers/have_text_spec.rb +62 -0
  820. data/vendor/plugins/rspec-rails/spec/spec/rails/matchers/include_text_spec.rb +64 -0
  821. data/vendor/plugins/rspec-rails/spec/spec/rails/matchers/redirect_to_spec.rb +242 -0
  822. data/vendor/plugins/rspec-rails/spec/spec/rails/matchers/render_template_spec.rb +176 -0
  823. data/vendor/plugins/rspec-rails/spec/spec/rails/matchers/should_change_spec.rb +15 -0
  824. data/vendor/plugins/rspec-rails/spec/{rails → spec/rails}/mocks/ar_classes.rb +0 -0
  825. data/vendor/plugins/rspec-rails/spec/spec/rails/mocks/mock_model_spec.rb +106 -0
  826. data/vendor/plugins/rspec-rails/spec/spec/rails/mocks/stub_model_spec.rb +80 -0
  827. data/vendor/plugins/rspec-rails/spec/spec/rails/sample_modified_fixture.rb +8 -0
  828. data/vendor/plugins/rspec-rails/spec/spec/rails/sample_spec.rb +8 -0
  829. data/vendor/plugins/rspec-rails/spec/spec/rails/spec_server_spec.rb +107 -0
  830. data/vendor/plugins/rspec-rails/spec/spec/rails/spec_spec.rb +11 -0
  831. data/vendor/plugins/rspec-rails/spec/spec_helper.rb +33 -13
  832. data/vendor/plugins/rspec/History.txt +1235 -0
  833. data/vendor/plugins/rspec/License.txt +22 -0
  834. data/vendor/plugins/rspec/Manifest.txt +377 -0
  835. data/vendor/plugins/rspec/README.txt +57 -0
  836. data/vendor/plugins/rspec/Rakefile +41 -214
  837. data/vendor/plugins/rspec/TODO.txt +18 -0
  838. data/vendor/plugins/rspec/bin/autospec +3 -2
  839. data/vendor/plugins/rspec/bin/spec +1 -1
  840. data/vendor/plugins/rspec/{failing_examples → examples/failing}/README.txt +0 -0
  841. data/vendor/plugins/rspec/{failing_examples → examples/failing}/diffing_spec.rb +0 -0
  842. data/vendor/plugins/rspec/{failing_examples → examples/failing}/failing_autogenerated_docstrings_example.rb +0 -0
  843. data/vendor/plugins/rspec/examples/failing/failure_in_after.rb +10 -0
  844. data/vendor/plugins/rspec/examples/failing/failure_in_before.rb +10 -0
  845. data/vendor/plugins/rspec/{failing_examples → examples/failing}/mocking_example.rb +0 -0
  846. data/vendor/plugins/rspec/{failing_examples → examples/failing}/mocking_with_flexmock.rb +0 -0
  847. data/vendor/plugins/rspec/{failing_examples → examples/failing}/mocking_with_mocha.rb +0 -0
  848. data/vendor/plugins/rspec/{failing_examples → examples/failing}/mocking_with_rr.rb +0 -0
  849. data/vendor/plugins/rspec/{failing_examples → examples/failing}/partial_mock_example.rb +0 -0
  850. data/vendor/plugins/rspec/examples/failing/predicate_example.rb +34 -0
  851. data/vendor/plugins/rspec/{failing_examples → examples/failing}/raising_example.rb +0 -0
  852. data/vendor/plugins/rspec/examples/failing/spec_helper.rb +3 -0
  853. data/vendor/plugins/rspec/{failing_examples → examples/failing}/syntax_error_example.rb +0 -0
  854. data/vendor/plugins/rspec/{failing_examples → examples/failing}/team_spec.rb +0 -0
  855. data/vendor/plugins/rspec/{failing_examples → examples/failing}/timeout_behaviour.rb +0 -0
  856. data/vendor/plugins/rspec/examples/passing/autogenerated_docstrings_example.rb +25 -0
  857. data/vendor/plugins/rspec/examples/{pure → passing}/before_and_after_example.rb +0 -0
  858. data/vendor/plugins/rspec/examples/{pure → passing}/behave_as_example.rb +0 -0
  859. data/vendor/plugins/rspec/examples/{pure → passing}/custom_expectation_matchers.rb +0 -0
  860. data/vendor/plugins/rspec/examples/passing/custom_formatter.rb +12 -0
  861. data/vendor/plugins/rspec/examples/passing/dynamic_spec.rb +9 -0
  862. data/vendor/plugins/rspec/examples/{pure → passing}/file_accessor.rb +0 -0
  863. data/vendor/plugins/rspec/examples/{pure → passing}/file_accessor_spec.rb +0 -0
  864. data/vendor/plugins/rspec/examples/{pure → passing}/greeter_spec.rb +0 -0
  865. data/vendor/plugins/rspec/examples/{pure → passing}/helper_method_example.rb +0 -0
  866. data/vendor/plugins/rspec/examples/{pure → passing}/io_processor.rb +0 -0
  867. data/vendor/plugins/rspec/examples/{pure → passing}/io_processor_spec.rb +0 -0
  868. data/vendor/plugins/rspec/examples/{pure → passing}/legacy_spec.rb +0 -0
  869. data/vendor/plugins/rspec/examples/{pure → passing}/mocking_example.rb +0 -0
  870. data/vendor/plugins/rspec/examples/{pure → passing}/multi_threaded_behaviour_runner.rb +0 -0
  871. data/vendor/plugins/rspec/examples/{pure → passing}/nested_classes_example.rb +0 -0
  872. data/vendor/plugins/rspec/examples/{pure → passing}/partial_mock_example.rb +0 -0
  873. data/vendor/plugins/rspec/examples/{pure → passing}/pending_example.rb +0 -0
  874. data/vendor/plugins/rspec/examples/{pure → passing}/predicate_example.rb +0 -0
  875. data/vendor/plugins/rspec/examples/{pure → passing}/priority.txt +0 -0
  876. data/vendor/plugins/rspec/examples/passing/shared_example_group_example.rb +81 -0
  877. data/vendor/plugins/rspec/examples/passing/shared_stack_examples.rb +36 -0
  878. data/vendor/plugins/rspec/examples/passing/simple_matcher_example.rb +31 -0
  879. data/vendor/plugins/rspec/examples/{pure → passing}/spec_helper.rb +0 -0
  880. data/vendor/plugins/rspec/examples/{pure → passing}/stack.rb +0 -0
  881. data/vendor/plugins/rspec/examples/passing/stack_spec.rb +64 -0
  882. data/vendor/plugins/rspec/examples/{pure → passing}/stack_spec_with_nested_example_groups.rb +0 -0
  883. data/vendor/plugins/rspec/examples/{pure → passing}/stubbing_example.rb +0 -0
  884. data/vendor/plugins/rspec/examples/passing/yielding_example.rb +33 -0
  885. data/vendor/plugins/rspec/features/before_and_after_blocks/before_and_after_blocks.feature +168 -0
  886. data/vendor/plugins/rspec/features/example_groups/autogenerated_docstrings.feature +45 -0
  887. data/vendor/plugins/rspec/features/example_groups/example_group_with_should_methods.feature +17 -0
  888. data/vendor/plugins/rspec/features/example_groups/nested_groups.feature +17 -0
  889. data/vendor/plugins/rspec/features/example_groups/output.feature +20 -0
  890. data/vendor/plugins/rspec/features/interop/examples_and_tests_together.feature +31 -0
  891. data/vendor/plugins/rspec/features/interop/test_but_not_test_unit.feature +14 -0
  892. data/vendor/plugins/rspec/features/interop/test_case_with_should_methods.feature +17 -0
  893. data/vendor/plugins/rspec/features/mock_framework_integration/use_flexmock.feature +9 -0
  894. data/vendor/plugins/rspec/features/step_definitions/running_rspec.rb +54 -0
  895. data/vendor/plugins/rspec/features/support/env.rb +26 -0
  896. data/vendor/plugins/rspec/{stories/resources → features/support}/helpers/cmdline.rb +0 -0
  897. data/vendor/plugins/rspec/features/support/helpers/story_helper.rb +16 -0
  898. data/vendor/plugins/rspec/{stories/resources → features/support}/matchers/smart_match.rb +0 -0
  899. data/vendor/plugins/rspec/lib/adapters/mock_frameworks/flexmock.rb +23 -0
  900. data/vendor/plugins/rspec/lib/adapters/mock_frameworks/mocha.rb +19 -0
  901. data/vendor/plugins/rspec/lib/adapters/mock_frameworks/rr.rb +21 -0
  902. data/vendor/plugins/rspec/lib/adapters/mock_frameworks/rspec.rb +20 -0
  903. data/vendor/plugins/rspec/lib/autotest/discover.rb +1 -1
  904. data/vendor/plugins/rspec/lib/autotest/rspec.rb +6 -31
  905. data/vendor/plugins/rspec/lib/spec.rb +3 -27
  906. data/vendor/plugins/rspec/lib/spec/dsl.rb +1 -0
  907. data/vendor/plugins/rspec/lib/spec/dsl/main.rb +87 -0
  908. data/vendor/plugins/rspec/lib/spec/example.rb +176 -2
  909. data/vendor/plugins/rspec/lib/spec/example/before_and_after_hooks.rb +99 -0
  910. data/vendor/plugins/rspec/lib/spec/example/errors.rb +23 -2
  911. data/vendor/plugins/rspec/lib/spec/example/example_group.rb +11 -2
  912. data/vendor/plugins/rspec/lib/spec/example/example_group_factory.rb +40 -4
  913. data/vendor/plugins/rspec/lib/spec/example/example_group_methods.rb +172 -216
  914. data/vendor/plugins/rspec/lib/spec/example/example_methods.rb +94 -38
  915. data/vendor/plugins/rspec/lib/spec/example/shared_example_group.rb +34 -29
  916. data/vendor/plugins/rspec/lib/spec/expectations.rb +22 -18
  917. data/vendor/plugins/rspec/lib/spec/expectations/extensions/object.rb +2 -2
  918. data/vendor/plugins/rspec/lib/spec/expectations/handler.rb +23 -38
  919. data/vendor/plugins/rspec/lib/spec/interop/test/unit/testcase.rb +32 -20
  920. data/vendor/plugins/rspec/lib/spec/interop/test/unit/testresult.rb +1 -1
  921. data/vendor/plugins/rspec/lib/spec/interop/test/unit/testsuite_adapter.rb +1 -1
  922. data/vendor/plugins/rspec/lib/spec/matchers.rb +7 -22
  923. data/vendor/plugins/rspec/lib/spec/matchers/be.rb +94 -115
  924. data/vendor/plugins/rspec/lib/spec/matchers/be_close.rb +5 -21
  925. data/vendor/plugins/rspec/lib/spec/matchers/change.rb +31 -31
  926. data/vendor/plugins/rspec/lib/spec/matchers/eql.rb +6 -24
  927. data/vendor/plugins/rspec/lib/spec/matchers/equal.rb +6 -24
  928. data/vendor/plugins/rspec/lib/spec/matchers/errors.rb +5 -0
  929. data/vendor/plugins/rspec/lib/spec/matchers/exist.rb +10 -11
  930. data/vendor/plugins/rspec/lib/spec/matchers/generated_descriptions.rb +48 -0
  931. data/vendor/plugins/rspec/lib/spec/matchers/has.rb +12 -28
  932. data/vendor/plugins/rspec/lib/spec/matchers/have.rb +25 -24
  933. data/vendor/plugins/rspec/lib/spec/matchers/include.rb +11 -1
  934. data/vendor/plugins/rspec/lib/spec/matchers/match.rb +7 -26
  935. data/vendor/plugins/rspec/lib/spec/matchers/match_array.rb +75 -0
  936. data/vendor/plugins/rspec/lib/spec/matchers/method_missing.rb +9 -0
  937. data/vendor/plugins/rspec/lib/spec/matchers/operator_matcher.rb +44 -41
  938. data/vendor/plugins/rspec/lib/spec/matchers/raise_error.rb +17 -21
  939. data/vendor/plugins/rspec/lib/spec/matchers/respond_to.rb +33 -7
  940. data/vendor/plugins/rspec/lib/spec/matchers/satisfy.rb +5 -5
  941. data/vendor/plugins/rspec/lib/spec/matchers/simple_matcher.rb +8 -8
  942. data/vendor/plugins/rspec/lib/spec/matchers/throw_symbol.rb +50 -18
  943. data/vendor/plugins/rspec/lib/spec/matchers/wrap_expectation.rb +55 -0
  944. data/vendor/plugins/rspec/lib/spec/mocks.rb +0 -11
  945. data/vendor/plugins/rspec/lib/spec/mocks/argument_constraints.rb +203 -0
  946. data/vendor/plugins/rspec/lib/spec/mocks/argument_expectation.rb +21 -188
  947. data/vendor/plugins/rspec/lib/spec/mocks/error_generator.rb +1 -1
  948. data/vendor/plugins/rspec/lib/spec/mocks/framework.rb +1 -1
  949. data/vendor/plugins/rspec/lib/spec/mocks/message_expectation.rb +47 -6
  950. data/vendor/plugins/rspec/lib/spec/mocks/methods.rb +15 -3
  951. data/vendor/plugins/rspec/lib/spec/mocks/proxy.rb +59 -17
  952. data/vendor/plugins/rspec/lib/spec/mocks/spec_methods.rb +9 -1
  953. data/vendor/plugins/rspec/lib/spec/rake/spectask.rb +5 -7
  954. data/vendor/plugins/rspec/lib/spec/rake/verify_rcov.rb +3 -3
  955. data/vendor/plugins/rspec/lib/spec/ruby.rb +9 -0
  956. data/vendor/plugins/rspec/lib/spec/runner.rb +51 -164
  957. data/vendor/plugins/rspec/lib/spec/runner/backtrace_tweaker.rb +10 -9
  958. data/vendor/plugins/rspec/lib/spec/runner/class_and_arguments_parser.rb +7 -9
  959. data/vendor/plugins/rspec/lib/spec/runner/command_line.rb +6 -19
  960. data/vendor/plugins/rspec/lib/spec/runner/configuration.rb +166 -0
  961. data/vendor/plugins/rspec/lib/spec/runner/example_group_runner.rb +2 -2
  962. data/vendor/plugins/rspec/lib/spec/runner/formatter/base_formatter.rb +3 -1
  963. data/vendor/plugins/rspec/lib/spec/runner/formatter/base_text_formatter.rb +7 -10
  964. data/vendor/plugins/rspec/lib/spec/runner/formatter/html_formatter.rb +15 -12
  965. data/vendor/plugins/rspec/lib/spec/runner/formatter/nested_text_formatter.rb +5 -5
  966. data/vendor/plugins/rspec/lib/spec/runner/formatter/progress_bar_formatter.rb +2 -2
  967. data/vendor/plugins/rspec/lib/spec/runner/formatter/specdoc_formatter.rb +1 -1
  968. data/vendor/plugins/rspec/lib/spec/runner/formatter/story/html_formatter.rb +14 -1
  969. data/vendor/plugins/rspec/lib/spec/runner/formatter/story/plain_text_formatter.rb +12 -6
  970. data/vendor/plugins/rspec/lib/spec/runner/formatter/story/progress_bar_formatter.rb +42 -0
  971. data/vendor/plugins/rspec/lib/spec/runner/heckle_runner.rb +58 -56
  972. data/vendor/plugins/rspec/lib/spec/runner/option_parser.rb +40 -34
  973. data/vendor/plugins/rspec/lib/spec/runner/options.rb +49 -23
  974. data/vendor/plugins/rspec/lib/spec/runner/reporter.rb +25 -5
  975. data/vendor/plugins/rspec/lib/spec/runner/spec_parser.rb +11 -9
  976. data/vendor/plugins/rspec/lib/spec/story/runner.rb +40 -43
  977. data/vendor/plugins/rspec/lib/spec/story/runner/story_runner.rb +10 -6
  978. data/vendor/plugins/rspec/lib/spec/story/step.rb +3 -3
  979. data/vendor/plugins/rspec/lib/spec/story/step_mother.rb +2 -1
  980. data/vendor/plugins/rspec/lib/spec/story/world.rb +66 -70
  981. data/vendor/plugins/rspec/lib/spec/version.rb +15 -22
  982. data/vendor/plugins/rspec/{rake_tasks → resources/rake}/examples.rake +0 -0
  983. data/vendor/plugins/rspec/{rake_tasks → resources/rake}/examples_with_rcov.rake +0 -0
  984. data/vendor/plugins/rspec/resources/rake/failing_examples_with_html.rake +9 -0
  985. data/vendor/plugins/rspec/resources/rake/verify_rcov.rake +7 -0
  986. data/vendor/plugins/rspec/resources/spec/example_group_with_should_methods.rb +12 -0
  987. data/vendor/plugins/rspec/resources/spec/simple_spec.rb +8 -0
  988. data/vendor/plugins/rspec/resources/spec/spec_with_flexmock.rb +19 -0
  989. data/vendor/plugins/rspec/resources/test/spec_and_test_together.rb +57 -0
  990. data/vendor/plugins/rspec/resources/test/spec_including_test_but_not_unit.rb +11 -0
  991. data/vendor/plugins/rspec/resources/test/test_case_with_should_methods.rb +30 -0
  992. data/vendor/plugins/rspec/rspec.gemspec +32 -0
  993. data/vendor/plugins/rspec/spec/autotest/autotest_helper.rb +6 -0
  994. data/vendor/plugins/rspec/spec/{autotest_matchers.rb → autotest/autotest_matchers.rb} +0 -0
  995. data/vendor/plugins/rspec/spec/autotest/discover_spec.rb +5 -16
  996. data/vendor/plugins/rspec/spec/autotest/failed_results_re_spec.rb +24 -0
  997. data/vendor/plugins/rspec/spec/autotest/rspec_spec.rb +13 -105
  998. data/vendor/plugins/rspec/spec/rspec_suite.rb +0 -1
  999. data/vendor/plugins/rspec/spec/spec/dsl/main_spec.rb +88 -0
  1000. data/vendor/plugins/rspec/spec/spec/example/example_group_class_definition_spec.rb +15 -11
  1001. data/vendor/plugins/rspec/spec/spec/example/example_group_factory_spec.rb +93 -32
  1002. data/vendor/plugins/rspec/spec/spec/example/example_group_methods_spec.rb +485 -423
  1003. data/vendor/plugins/rspec/spec/spec/example/example_group_spec.rb +463 -511
  1004. data/vendor/plugins/rspec/spec/spec/example/example_matcher_spec.rb +6 -23
  1005. data/vendor/plugins/rspec/spec/spec/example/example_methods_spec.rb +235 -70
  1006. data/vendor/plugins/rspec/spec/spec/example/helper_method_spec.rb +24 -0
  1007. data/vendor/plugins/rspec/spec/spec/example/pending_module_spec.rb +101 -4
  1008. data/vendor/plugins/rspec/spec/spec/example/shared_example_group_spec.rb +202 -210
  1009. data/vendor/plugins/rspec/spec/spec/expectations/extensions/object_spec.rb +0 -12
  1010. data/vendor/plugins/rspec/spec/spec/expectations/wrap_expectation_spec.rb +30 -0
  1011. data/vendor/plugins/rspec/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +13 -0
  1012. data/vendor/plugins/rspec/spec/spec/interop/test/unit/spec_spec.rb +14 -11
  1013. data/vendor/plugins/rspec/spec/spec/interop/test/unit/test_unit_spec_helper.rb +4 -0
  1014. data/vendor/plugins/rspec/spec/spec/interop/test/unit/testcase_spec.rb +4 -0
  1015. data/vendor/plugins/rspec/spec/spec/matchers/be_close_spec.rb +12 -10
  1016. data/vendor/plugins/rspec/spec/spec/matchers/be_spec.rb +40 -7
  1017. data/vendor/plugins/rspec/spec/spec/matchers/change_spec.rb +12 -0
  1018. data/vendor/plugins/rspec/spec/spec/matchers/description_generation_spec.rb +19 -0
  1019. data/vendor/plugins/rspec/spec/spec/matchers/eql_spec.rb +7 -6
  1020. data/vendor/plugins/rspec/spec/spec/matchers/equal_spec.rb +7 -6
  1021. data/vendor/plugins/rspec/spec/spec/matchers/handler_spec.rb +7 -7
  1022. data/vendor/plugins/rspec/spec/spec/matchers/has_spec.rb +10 -0
  1023. data/vendor/plugins/rspec/spec/spec/matchers/have_spec.rb +114 -8
  1024. data/vendor/plugins/rspec/spec/spec/matchers/include_spec.rb +43 -0
  1025. data/vendor/plugins/rspec/spec/spec/matchers/match_array_spec.rb +83 -0
  1026. data/vendor/plugins/rspec/spec/spec/matchers/matcher_methods_spec.rb +1 -13
  1027. data/vendor/plugins/rspec/spec/spec/matchers/operator_matcher_spec.rb +24 -1
  1028. data/vendor/plugins/rspec/spec/spec/matchers/raise_error_spec.rb +18 -0
  1029. data/vendor/plugins/rspec/spec/spec/matchers/respond_to_spec.rb +76 -14
  1030. data/vendor/plugins/rspec/spec/spec/matchers/throw_symbol_spec.rb +85 -43
  1031. data/vendor/plugins/rspec/spec/spec/mocks/any_number_of_times_spec.rb +7 -0
  1032. data/vendor/plugins/rspec/spec/spec/mocks/bug_report_11545_spec.rb +4 -5
  1033. data/vendor/plugins/rspec/spec/spec/mocks/bug_report_496.rb +19 -0
  1034. data/vendor/plugins/rspec/spec/spec/mocks/bug_report_600_spec.rb +22 -0
  1035. data/vendor/plugins/rspec/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +0 -35
  1036. data/vendor/plugins/rspec/spec/spec/mocks/hash_including_matcher_spec.rb +82 -24
  1037. data/vendor/plugins/rspec/spec/spec/mocks/hash_not_including_matcher_spec.rb +67 -0
  1038. data/vendor/plugins/rspec/spec/spec/mocks/mock_spec.rb +68 -8
  1039. data/vendor/plugins/rspec/spec/spec/mocks/nil_expectation_warning_spec.rb +53 -0
  1040. data/vendor/plugins/rspec/spec/spec/mocks/null_object_mock_spec.rb +14 -0
  1041. data/vendor/plugins/rspec/spec/spec/mocks/options_hash_spec.rb +18 -28
  1042. data/vendor/plugins/rspec/spec/spec/mocks/partial_mock_spec.rb +12 -5
  1043. data/vendor/plugins/rspec/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +5 -50
  1044. data/vendor/plugins/rspec/spec/spec/mocks/stub_spec.rb +7 -0
  1045. data/vendor/plugins/rspec/spec/spec/mocks/stubbed_message_expectations_spec.rb +14 -0
  1046. data/vendor/plugins/rspec/spec/spec/package/bin_spec_spec.rb +8 -0
  1047. data/vendor/plugins/rspec/spec/spec/runner/command_line_spec.rb +102 -108
  1048. data/vendor/plugins/rspec/spec/spec/runner/configuration_spec.rb +301 -0
  1049. data/vendor/plugins/rspec/spec/spec/runner/drb_command_line_spec.rb +14 -9
  1050. data/vendor/plugins/rspec/spec/spec/runner/formatter/base_formatter_spec.rb +23 -0
  1051. data/vendor/plugins/rspec/spec/spec/runner/formatter/base_text_formatter_spec.rb +23 -0
  1052. data/vendor/plugins/rspec/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +5 -5
  1053. data/vendor/plugins/rspec/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +3 -3
  1054. data/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.4.html +6 -6
  1055. data/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.5-jruby.html +9 -9
  1056. data/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.5.html +6 -6
  1057. data/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +10 -10
  1058. data/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.6.html +39 -30
  1059. data/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.7.html +379 -0
  1060. data/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.9.1.html +379 -0
  1061. data/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatter_spec.rb +14 -15
  1062. data/vendor/plugins/rspec/spec/spec/runner/formatter/nested_text_formatter_spec.rb +230 -245
  1063. data/vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +17 -9
  1064. data/vendor/plugins/rspec/spec/spec/runner/formatter/spec_mate_formatter_spec.rb +20 -19
  1065. data/vendor/plugins/rspec/spec/spec/runner/formatter/specdoc_formatter_spec.rb +110 -109
  1066. data/vendor/plugins/rspec/spec/spec/runner/formatter/story/html_formatter_spec.rb +48 -0
  1067. data/vendor/plugins/rspec/spec/spec/runner/formatter/story/plain_text_formatter_spec.rb +52 -0
  1068. data/vendor/plugins/rspec/spec/spec/runner/formatter/story/progress_bar_formatter_spec.rb +82 -0
  1069. data/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatted-1.8.4.html +6 -6
  1070. data/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +33 -30
  1071. data/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +373 -0
  1072. data/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +373 -0
  1073. data/vendor/plugins/rspec/spec/spec/runner/heckle_runner_spec.rb +8 -8
  1074. data/vendor/plugins/rspec/spec/spec/runner/heckler_spec.rb +16 -9
  1075. data/vendor/plugins/rspec/spec/spec/runner/option_parser_spec.rb +25 -13
  1076. data/vendor/plugins/rspec/spec/spec/runner/options_spec.rb +27 -8
  1077. data/vendor/plugins/rspec/spec/spec/runner/output_one_time_fixture_runner.rb +1 -1
  1078. data/vendor/plugins/rspec/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +6 -0
  1079. data/vendor/plugins/rspec/spec/spec/runner/reporter_spec.rb +55 -9
  1080. data/vendor/plugins/rspec/spec/spec/runner/resources/custom_example_group_runner.rb +14 -0
  1081. data/vendor/plugins/rspec/spec/spec/runner/spec_parser_spec.rb +85 -79
  1082. data/vendor/plugins/rspec/spec/spec/spec_spec.rb +21 -0
  1083. data/vendor/plugins/rspec/spec/spec/story/runner/plain_text_story_runner_spec.rb +2 -5
  1084. data/vendor/plugins/rspec/spec/spec/story/runner/story_runner_spec.rb +3 -3
  1085. data/vendor/plugins/rspec/spec/spec/story/scenario_spec.rb +1 -3
  1086. data/vendor/plugins/rspec/spec/spec/story/step_mother_spec.rb +12 -0
  1087. data/vendor/plugins/rspec/spec/spec/story/step_spec.rb +24 -2
  1088. data/vendor/plugins/rspec/spec/spec/story/story_spec.rb +1 -3
  1089. data/vendor/plugins/rspec/spec/spec/story/world_spec.rb +7 -7
  1090. data/vendor/plugins/rspec/spec/spec_helper.rb +46 -64
  1091. data/vendor/plugins/rspec/story_server/prototype/javascripts/prototype.js +1 -1
  1092. data/vendor/plugins/ssl_requirement/README +43 -0
  1093. data/vendor/plugins/ssl_requirement/lib/ssl_requirement.rb +76 -0
  1094. data/vendor/plugins/ssl_requirement/test/ssl_requirement_test.rb +132 -0
  1095. metadata +961 -477
  1096. data/app/controllers/addresses_controller.rb +0 -57
  1097. data/app/controllers/creditcard_payments_controller.rb +0 -63
  1098. data/app/models/cart.rb +0 -24
  1099. data/app/views/addresses/_form.html.erb +0 -48
  1100. data/app/views/addresses/_states.html.erb +0 -8
  1101. data/app/views/addresses/edit.html.erb +0 -8
  1102. data/app/views/addresses/new.html.erb +0 -8
  1103. data/app/views/admin/orders/_address.html.erb +0 -37
  1104. data/app/views/creditcard_payments/_form_billing.html.erb +0 -49
  1105. data/app/views/creditcard_payments/_form_credit_card.html.erb +0 -30
  1106. data/app/views/creditcard_payments/_states.html.erb +0 -8
  1107. data/app/views/creditcard_payments/cvv.html.erb +0 -15
  1108. data/app/views/creditcard_payments/new.html.erb +0 -22
  1109. data/config/easy_role_permissions.yml +0 -75
  1110. data/db/sample/creditcard_payments.yml +0 -10
  1111. data/db/sample/images.yml +0 -350
  1112. data/lang/ui/de-DE.yml +0 -208
  1113. data/lang/ui/en-US.yml +0 -250
  1114. data/lang/ui/es-ES.yml +0 -203
  1115. data/lang/ui/it-IT.yml +0 -195
  1116. data/lang/ui/pl-PL.yml +0 -214
  1117. data/lang/ui/pt-BR.yml +0 -222
  1118. data/stories/all.rb +0 -4
  1119. data/stories/helper.rb +0 -3
  1120. data/test/test_helper.rb +0 -38
  1121. data/vendor/extensions/localization/lang/ui/de-DE.yml +0 -2
  1122. data/vendor/extensions/localization/lang/ui/en-US.yml +0 -2
  1123. data/vendor/extensions/localization/lang/ui/es-ES.yml +0 -2
  1124. data/vendor/extensions/localization/lang/ui/it-IT.yml +0 -2
  1125. data/vendor/extensions/localization/lib/localization.rb +0 -93
  1126. data/vendor/extensions/payment_gateway/spec/models/creditcard_payment_spec.rb +0 -24
  1127. data/vendor/extensions/shipping/lang/en-US.yml +0 -9
  1128. data/vendor/extensions/shipping/spec/models/order_spec.rb +0 -98
  1129. data/vendor/extensions/tax_calculator/lang/en-US.yml +0 -11
  1130. data/vendor/extensions/tax_calculator/lang/pt-BR.yml +0 -11
  1131. data/vendor/plugins/attachment_fu/CHANGELOG +0 -35
  1132. data/vendor/plugins/attachment_fu/README +0 -186
  1133. data/vendor/plugins/attachment_fu/Rakefile +0 -22
  1134. data/vendor/plugins/attachment_fu/amazon_s3.yml.tpl +0 -14
  1135. data/vendor/plugins/attachment_fu/init.rb +0 -16
  1136. data/vendor/plugins/attachment_fu/install.rb +0 -5
  1137. data/vendor/plugins/attachment_fu/lib/geometry.rb +0 -93
  1138. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu.rb +0 -473
  1139. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/db_file_backend.rb +0 -39
  1140. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/file_system_backend.rb +0 -101
  1141. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/s3_backend.rb +0 -303
  1142. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/core_image_processor.rb +0 -59
  1143. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/gd2_processor.rb +0 -54
  1144. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/image_science_processor.rb +0 -61
  1145. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/mini_magick_processor.rb +0 -59
  1146. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/rmagick_processor.rb +0 -54
  1147. data/vendor/plugins/attachment_fu/test/backends/db_file_test.rb +0 -16
  1148. data/vendor/plugins/attachment_fu/test/backends/file_system_test.rb +0 -80
  1149. data/vendor/plugins/attachment_fu/test/backends/remote/s3_test.rb +0 -119
  1150. data/vendor/plugins/attachment_fu/test/base_attachment_tests.rb +0 -77
  1151. data/vendor/plugins/attachment_fu/test/basic_test.rb +0 -70
  1152. data/vendor/plugins/attachment_fu/test/database.yml +0 -18
  1153. data/vendor/plugins/attachment_fu/test/extra_attachment_test.rb +0 -67
  1154. data/vendor/plugins/attachment_fu/test/fixtures/attachment.rb +0 -148
  1155. data/vendor/plugins/attachment_fu/test/fixtures/files/fake/rails.png +0 -0
  1156. data/vendor/plugins/attachment_fu/test/fixtures/files/foo.txt +0 -1
  1157. data/vendor/plugins/attachment_fu/test/geometry_test.rb +0 -101
  1158. data/vendor/plugins/attachment_fu/test/processors/core_image_test.rb +0 -37
  1159. data/vendor/plugins/attachment_fu/test/processors/gd2_test.rb +0 -31
  1160. data/vendor/plugins/attachment_fu/test/processors/image_science_test.rb +0 -31
  1161. data/vendor/plugins/attachment_fu/test/processors/mini_magick_test.rb +0 -31
  1162. data/vendor/plugins/attachment_fu/test/processors/rmagick_test.rb +0 -255
  1163. data/vendor/plugins/attachment_fu/test/schema.rb +0 -108
  1164. data/vendor/plugins/attachment_fu/test/test_helper.rb +0 -150
  1165. data/vendor/plugins/attachment_fu/test/validation_test.rb +0 -55
  1166. data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/color.rb +0 -27
  1167. data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/effects.rb +0 -31
  1168. data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/perspective.rb +0 -25
  1169. data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/quality.rb +0 -25
  1170. data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/scale.rb +0 -47
  1171. data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/watermark.rb +0 -32
  1172. data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/processor.rb +0 -123
  1173. data/vendor/plugins/attribute_fu/README +0 -115
  1174. data/vendor/plugins/attribute_fu/test/Rakefile +0 -10
  1175. data/vendor/plugins/attribute_fu/test/app/controllers/application.rb +0 -10
  1176. data/vendor/plugins/attribute_fu/test/config/boot.rb +0 -97
  1177. data/vendor/plugins/attribute_fu/test/config/database.yml +0 -15
  1178. data/vendor/plugins/attribute_fu/test/config/environment.rb +0 -15
  1179. data/vendor/plugins/attribute_fu/test/config/environments/development.rb +0 -18
  1180. data/vendor/plugins/attribute_fu/test/config/environments/test.rb +0 -22
  1181. data/vendor/plugins/attribute_fu/test/config/routes.rb +0 -35
  1182. data/vendor/plugins/attribute_fu/test/db/migrate/001_create_photos.rb +0 -14
  1183. data/vendor/plugins/attribute_fu/test/db/migrate/002_create_comments.rb +0 -15
  1184. data/vendor/plugins/attribute_fu/test/script/console +0 -3
  1185. data/vendor/plugins/attribute_fu/test/script/destroy +0 -3
  1186. data/vendor/plugins/attribute_fu/test/script/generate +0 -3
  1187. data/vendor/plugins/attribute_fu/test/script/server +0 -3
  1188. data/vendor/plugins/attribute_fu/test/test/test_helper.rb +0 -6
  1189. data/vendor/plugins/attribute_fu/test/test/unit/associated_form_helper_test.rb +0 -376
  1190. data/vendor/plugins/attribute_fu/test/test/unit/comment_test.rb +0 -6
  1191. data/vendor/plugins/attribute_fu/test/test/unit/photo_test.rb +0 -149
  1192. data/vendor/plugins/attribute_fu/test/vendor/plugins/shoulda/init.rb +0 -3
  1193. data/vendor/plugins/attribute_fu/test/vendor/plugins/shoulda/lib/shoulda.rb +0 -20
  1194. data/vendor/plugins/attribute_fu/test/vendor/plugins/shoulda/lib/shoulda/active_record_helpers.rb +0 -338
  1195. data/vendor/plugins/attribute_fu/test/vendor/plugins/shoulda/lib/shoulda/context.rb +0 -143
  1196. data/vendor/plugins/attribute_fu/test/vendor/plugins/shoulda/lib/shoulda/general.rb +0 -119
  1197. data/vendor/plugins/attribute_fu/test/vendor/plugins/shoulda/lib/shoulda/private_helpers.rb +0 -17
  1198. data/vendor/plugins/calendar_date_select/CHANGELOG +0 -170
  1199. data/vendor/plugins/calendar_date_select/README +0 -10
  1200. data/vendor/plugins/calendar_date_select/lib/includes_helper.rb +0 -22
  1201. data/vendor/plugins/calendar_date_select/test/functional/calendar_date_select_test.rb +0 -95
  1202. data/vendor/plugins/calendar_date_select/test/functional/helper_methods_test.rb +0 -15
  1203. data/vendor/plugins/calendar_date_select/test/test_helper.rb +0 -26
  1204. data/vendor/plugins/globalite/CHANGELOG +0 -22
  1205. data/vendor/plugins/globalite/README +0 -199
  1206. data/vendor/plugins/globalite/README.rdoc +0 -199
  1207. data/vendor/plugins/globalite/Rakefile +0 -32
  1208. data/vendor/plugins/globalite/globalite.gemspec +0 -14
  1209. data/vendor/plugins/globalite/init.rb +0 -1
  1210. data/vendor/plugins/globalite/install.rb +0 -1
  1211. data/vendor/plugins/globalite/lang/rails/de-DE.yml +0 -357
  1212. data/vendor/plugins/globalite/lang/rails/en-UK.yml +0 -357
  1213. data/vendor/plugins/globalite/lang/rails/en-US.yml +0 -357
  1214. data/vendor/plugins/globalite/lang/rails/es-AR.yml +0 -357
  1215. data/vendor/plugins/globalite/lang/rails/es-ES.yml +0 -359
  1216. data/vendor/plugins/globalite/lang/rails/fi-FI.yml +0 -357
  1217. data/vendor/plugins/globalite/lang/rails/fr-FR.yml +0 -359
  1218. data/vendor/plugins/globalite/lang/rails/hu-HU.yml +0 -357
  1219. data/vendor/plugins/globalite/lang/rails/it.yml +0 -358
  1220. data/vendor/plugins/globalite/lang/rails/nl-NL.yml +0 -347
  1221. data/vendor/plugins/globalite/lang/rails/pl-PL.yml +0 -358
  1222. data/vendor/plugins/globalite/lang/rails/pt-BR.yml +0 -324
  1223. data/vendor/plugins/globalite/lang/rails/pt-PT.yml +0 -324
  1224. data/vendor/plugins/globalite/lang/rails/ru-RU.yml +0 -357
  1225. data/vendor/plugins/globalite/lang/rails/sr-CP.yml +0 -357
  1226. data/vendor/plugins/globalite/lang/rails/sr-SR.yml +0 -357
  1227. data/vendor/plugins/globalite/lang/rails/tr.yml +0 -186
  1228. data/vendor/plugins/globalite/lang/rails/zh-CN.yml +0 -357
  1229. data/vendor/plugins/globalite/lang/rails/zh-HK.yml +0 -357
  1230. data/vendor/plugins/globalite/lang/rails/zh-TW.yml +0 -357
  1231. data/vendor/plugins/globalite/lib/globalite.rb +0 -28
  1232. data/vendor/plugins/globalite/lib/globalite/l10n.rb +0 -302
  1233. data/vendor/plugins/globalite/lib/globalite/locale.rb +0 -56
  1234. data/vendor/plugins/globalite/lib/rails/core_ext.rb +0 -19
  1235. data/vendor/plugins/globalite/lib/rails/localization.rb +0 -58
  1236. data/vendor/plugins/globalite/lib/rails/localized_action_view.rb +0 -211
  1237. data/vendor/plugins/globalite/lib/rails/localized_active_record.rb +0 -80
  1238. data/vendor/plugins/globalite/spec/core_localization_spec.rb +0 -116
  1239. data/vendor/plugins/globalite/spec/helpers/spec_helper.rb +0 -16
  1240. data/vendor/plugins/globalite/spec/l10n_spec.rb +0 -251
  1241. data/vendor/plugins/globalite/spec/lang/rails/zz.yml +0 -13
  1242. data/vendor/plugins/globalite/spec/lang/ui/en-UK.yml +0 -3
  1243. data/vendor/plugins/globalite/spec/lang/ui/en-US.yml +0 -3
  1244. data/vendor/plugins/globalite/spec/lang/ui/es.yml +0 -3
  1245. data/vendor/plugins/globalite/spec/lang/ui/fr-FR.yml +0 -8
  1246. data/vendor/plugins/globalite/tasks/cruise.rake +0 -4
  1247. data/vendor/plugins/globalite/tasks/globalite_tasks.rake +0 -47
  1248. data/vendor/plugins/globalite/uninstall.rb +0 -1
  1249. data/vendor/plugins/rspec-rails/CHANGES +0 -26
  1250. data/vendor/plugins/rspec-rails/MIT-LICENSE +0 -31
  1251. data/vendor/plugins/rspec-rails/README +0 -3
  1252. data/vendor/plugins/rspec-rails/UPGRADE +0 -7
  1253. data/vendor/plugins/rspec-rails/generators/rspec/templates/all_stories.rb +0 -4
  1254. data/vendor/plugins/rspec-rails/generators/rspec/templates/stories_helper.rb +0 -3
  1255. data/vendor/plugins/rspec-rails/lib/spec/rails/extensions/object.rb +0 -5
  1256. data/vendor/plugins/rspec-rails/lib/spec/rails/extensions/spec/example/configuration.rb +0 -71
  1257. data/vendor/plugins/rspec-rails/spec/rails/autotest/mappings_spec.rb +0 -36
  1258. data/vendor/plugins/rspec-rails/spec/rails/autotest/rails_rspec_spec.rb +0 -8
  1259. data/vendor/plugins/rspec-rails/spec/rails/example/assigns_hash_proxy_spec.rb +0 -60
  1260. data/vendor/plugins/rspec-rails/spec/rails/example/configuration_spec.rb +0 -83
  1261. data/vendor/plugins/rspec-rails/spec/rails/example/controller_isolation_spec.rb +0 -62
  1262. data/vendor/plugins/rspec-rails/spec/rails/example/controller_spec_spec.rb +0 -206
  1263. data/vendor/plugins/rspec-rails/spec/rails/example/example_group_factory_spec.rb +0 -112
  1264. data/vendor/plugins/rspec-rails/spec/rails/example/helper_spec_spec.rb +0 -161
  1265. data/vendor/plugins/rspec-rails/spec/rails/example/model_spec_spec.rb +0 -18
  1266. data/vendor/plugins/rspec-rails/spec/rails/example/shared_behaviour_spec.rb +0 -16
  1267. data/vendor/plugins/rspec-rails/spec/rails/example/test_unit_assertion_accessibility_spec.rb +0 -33
  1268. data/vendor/plugins/rspec-rails/spec/rails/example/view_spec_spec.rb +0 -272
  1269. data/vendor/plugins/rspec-rails/spec/rails/extensions/action_controller_rescue_action_spec.rb +0 -54
  1270. data/vendor/plugins/rspec-rails/spec/rails/extensions/action_view_base_spec.rb +0 -48
  1271. data/vendor/plugins/rspec-rails/spec/rails/extensions/active_record_spec.rb +0 -14
  1272. data/vendor/plugins/rspec-rails/spec/rails/matchers/assert_select_spec.rb +0 -806
  1273. data/vendor/plugins/rspec-rails/spec/rails/matchers/description_generation_spec.rb +0 -37
  1274. data/vendor/plugins/rspec-rails/spec/rails/matchers/errors_on_spec.rb +0 -13
  1275. data/vendor/plugins/rspec-rails/spec/rails/matchers/have_text_spec.rb +0 -62
  1276. data/vendor/plugins/rspec-rails/spec/rails/matchers/include_text_spec.rb +0 -70
  1277. data/vendor/plugins/rspec-rails/spec/rails/matchers/redirect_to_spec.rb +0 -209
  1278. data/vendor/plugins/rspec-rails/spec/rails/matchers/render_spec.rb +0 -169
  1279. data/vendor/plugins/rspec-rails/spec/rails/mocks/mock_model_spec.rb +0 -64
  1280. data/vendor/plugins/rspec-rails/spec/rails/mocks/stub_model_spec.rb +0 -79
  1281. data/vendor/plugins/rspec-rails/spec/rails/sample_modified_fixture.rb +0 -8
  1282. data/vendor/plugins/rspec-rails/spec/rails/sample_spec.rb +0 -8
  1283. data/vendor/plugins/rspec-rails/spec/rails/spec_server_spec.rb +0 -96
  1284. data/vendor/plugins/rspec-rails/spec/rails/spec_spec.rb +0 -11
  1285. data/vendor/plugins/rspec-rails/spec_resources/controllers/controller_spec_controller.rb +0 -68
  1286. data/vendor/plugins/rspec-rails/spec_resources/controllers/redirect_spec_controller.rb +0 -59
  1287. data/vendor/plugins/rspec-rails/spec_resources/controllers/render_spec_controller.rb +0 -26
  1288. data/vendor/plugins/rspec-rails/spec_resources/helpers/explicit_helper.rb +0 -34
  1289. data/vendor/plugins/rspec-rails/stories/all.rb +0 -10
  1290. data/vendor/plugins/rspec-rails/stories/helper.rb +0 -5
  1291. data/vendor/plugins/rspec-rails/stories/steps/people.rb +0 -8
  1292. data/vendor/plugins/rspec-rails/stories/transactions_should_rollback +0 -15
  1293. data/vendor/plugins/rspec-rails/stories/transactions_should_rollback.rb +0 -25
  1294. data/vendor/plugins/rspec-rails/tasks/rspec.rake +0 -137
  1295. data/vendor/plugins/rspec/CHANGES +0 -1104
  1296. data/vendor/plugins/rspec/MIT-LICENSE +0 -20
  1297. data/vendor/plugins/rspec/README +0 -36
  1298. data/vendor/plugins/rspec/TODO +0 -1
  1299. data/vendor/plugins/rspec/bin/spec_translator +0 -8
  1300. data/vendor/plugins/rspec/examples/pure/autogenerated_docstrings_example.rb +0 -19
  1301. data/vendor/plugins/rspec/examples/pure/custom_formatter.rb +0 -12
  1302. data/vendor/plugins/rspec/examples/pure/dynamic_spec.rb +0 -9
  1303. data/vendor/plugins/rspec/examples/pure/shared_example_group_example.rb +0 -81
  1304. data/vendor/plugins/rspec/examples/pure/shared_stack_examples.rb +0 -38
  1305. data/vendor/plugins/rspec/examples/pure/stack_spec.rb +0 -63
  1306. data/vendor/plugins/rspec/examples/stories/adder.rb +0 -13
  1307. data/vendor/plugins/rspec/examples/stories/addition +0 -34
  1308. data/vendor/plugins/rspec/examples/stories/addition.rb +0 -9
  1309. data/vendor/plugins/rspec/examples/stories/calculator.rb +0 -65
  1310. data/vendor/plugins/rspec/examples/stories/game-of-life/README.txt +0 -21
  1311. data/vendor/plugins/rspec/examples/stories/game-of-life/behaviour/everything.rb +0 -6
  1312. data/vendor/plugins/rspec/examples/stories/game-of-life/behaviour/examples/examples.rb +0 -3
  1313. data/vendor/plugins/rspec/examples/stories/game-of-life/behaviour/examples/game_behaviour.rb +0 -35
  1314. data/vendor/plugins/rspec/examples/stories/game-of-life/behaviour/examples/grid_behaviour.rb +0 -66
  1315. data/vendor/plugins/rspec/examples/stories/game-of-life/behaviour/stories/CellsWithLessThanTwoNeighboursDie.story +0 -21
  1316. data/vendor/plugins/rspec/examples/stories/game-of-life/behaviour/stories/CellsWithMoreThanThreeNeighboursDie.story +0 -21
  1317. data/vendor/plugins/rspec/examples/stories/game-of-life/behaviour/stories/EmptySpacesWithThreeNeighboursCreateACell.story +0 -42
  1318. data/vendor/plugins/rspec/examples/stories/game-of-life/behaviour/stories/ICanCreateACell.story +0 -42
  1319. data/vendor/plugins/rspec/examples/stories/game-of-life/behaviour/stories/ICanKillACell.story +0 -17
  1320. data/vendor/plugins/rspec/examples/stories/game-of-life/behaviour/stories/TheGridWraps.story +0 -53
  1321. data/vendor/plugins/rspec/examples/stories/game-of-life/behaviour/stories/create_a_cell.rb +0 -52
  1322. data/vendor/plugins/rspec/examples/stories/game-of-life/behaviour/stories/helper.rb +0 -6
  1323. data/vendor/plugins/rspec/examples/stories/game-of-life/behaviour/stories/kill_a_cell.rb +0 -26
  1324. data/vendor/plugins/rspec/examples/stories/game-of-life/behaviour/stories/steps.rb +0 -5
  1325. data/vendor/plugins/rspec/examples/stories/game-of-life/behaviour/stories/stories.rb +0 -3
  1326. data/vendor/plugins/rspec/examples/stories/game-of-life/behaviour/stories/stories.txt +0 -22
  1327. data/vendor/plugins/rspec/examples/stories/game-of-life/life.rb +0 -3
  1328. data/vendor/plugins/rspec/examples/stories/game-of-life/life/game.rb +0 -23
  1329. data/vendor/plugins/rspec/examples/stories/game-of-life/life/grid.rb +0 -43
  1330. data/vendor/plugins/rspec/examples/stories/helper.rb +0 -9
  1331. data/vendor/plugins/rspec/examples/stories/steps/addition_steps.rb +0 -18
  1332. data/vendor/plugins/rspec/failing_examples/failure_in_setup.rb +0 -10
  1333. data/vendor/plugins/rspec/failing_examples/failure_in_teardown.rb +0 -10
  1334. data/vendor/plugins/rspec/failing_examples/predicate_example.rb +0 -29
  1335. data/vendor/plugins/rspec/failing_examples/spec_helper.rb +0 -3
  1336. data/vendor/plugins/rspec/lib/spec/adapters.rb +0 -1
  1337. data/vendor/plugins/rspec/lib/spec/adapters/ruby_engine.rb +0 -26
  1338. data/vendor/plugins/rspec/lib/spec/adapters/ruby_engine/mri.rb +0 -8
  1339. data/vendor/plugins/rspec/lib/spec/adapters/ruby_engine/rubinius.rb +0 -8
  1340. data/vendor/plugins/rspec/lib/spec/example/configuration.rb +0 -158
  1341. data/vendor/plugins/rspec/lib/spec/example/module_inclusion_warnings.rb +0 -37
  1342. data/vendor/plugins/rspec/lib/spec/extensions.rb +0 -4
  1343. data/vendor/plugins/rspec/lib/spec/extensions/class.rb +0 -24
  1344. data/vendor/plugins/rspec/lib/spec/extensions/main.rb +0 -102
  1345. data/vendor/plugins/rspec/lib/spec/extensions/metaclass.rb +0 -7
  1346. data/vendor/plugins/rspec/lib/spec/extensions/object.rb +0 -6
  1347. data/vendor/plugins/rspec/lib/spec/mocks/argument_constraint_matchers.rb +0 -31
  1348. data/vendor/plugins/rspec/lib/spec/translator.rb +0 -114
  1349. data/vendor/plugins/rspec/plugins/mock_frameworks/flexmock.rb +0 -23
  1350. data/vendor/plugins/rspec/plugins/mock_frameworks/mocha.rb +0 -19
  1351. data/vendor/plugins/rspec/plugins/mock_frameworks/rr.rb +0 -21
  1352. data/vendor/plugins/rspec/plugins/mock_frameworks/rspec.rb +0 -20
  1353. data/vendor/plugins/rspec/rake_tasks/failing_examples_with_html.rake +0 -9
  1354. data/vendor/plugins/rspec/rake_tasks/verify_rcov.rake +0 -7
  1355. data/vendor/plugins/rspec/spec/autotest_helper.rb +0 -6
  1356. data/vendor/plugins/rspec/spec/spec/adapters/ruby_engine_spec.rb +0 -16
  1357. data/vendor/plugins/rspec/spec/spec/example/configuration_spec.rb +0 -282
  1358. data/vendor/plugins/rspec/spec/spec/example/example_group/described_module_spec.rb +0 -20
  1359. data/vendor/plugins/rspec/spec/spec/example/example_group/warning_messages_spec.rb +0 -76
  1360. data/vendor/plugins/rspec/spec/spec/example/example_spec.rb +0 -53
  1361. data/vendor/plugins/rspec/spec/spec/extensions/main_spec.rb +0 -76
  1362. data/vendor/plugins/rspec/spec/spec/runner/execution_context_spec.rb +0 -37
  1363. data/vendor/plugins/rspec/spec/spec/translator_spec.rb +0 -265
  1364. data/vendor/plugins/rspec/stories/all.rb +0 -5
  1365. data/vendor/plugins/rspec/stories/example_groups/autogenerated_docstrings +0 -45
  1366. data/vendor/plugins/rspec/stories/example_groups/example_group_with_should_methods +0 -17
  1367. data/vendor/plugins/rspec/stories/example_groups/nested_groups +0 -17
  1368. data/vendor/plugins/rspec/stories/example_groups/output +0 -25
  1369. data/vendor/plugins/rspec/stories/example_groups/stories.rb +0 -7
  1370. data/vendor/plugins/rspec/stories/helper.rb +0 -6
  1371. data/vendor/plugins/rspec/stories/interop/examples_and_tests_together +0 -30
  1372. data/vendor/plugins/rspec/stories/interop/stories.rb +0 -7
  1373. data/vendor/plugins/rspec/stories/interop/test_case_with_should_methods +0 -17
  1374. data/vendor/plugins/rspec/stories/mock_framework_integration/stories.rb +0 -7
  1375. data/vendor/plugins/rspec/stories/mock_framework_integration/use_flexmock.story +0 -9
  1376. data/vendor/plugins/rspec/stories/pending_stories/README +0 -3
  1377. data/vendor/plugins/rspec/stories/resources/helpers/story_helper.rb +0 -16
  1378. data/vendor/plugins/rspec/stories/resources/spec/example_group_with_should_methods.rb +0 -12
  1379. data/vendor/plugins/rspec/stories/resources/spec/simple_spec.rb +0 -8
  1380. data/vendor/plugins/rspec/stories/resources/spec/spec_with_flexmock.rb +0 -18
  1381. data/vendor/plugins/rspec/stories/resources/steps/running_rspec.rb +0 -50
  1382. data/vendor/plugins/rspec/stories/resources/stories/failing_story.rb +0 -15
  1383. data/vendor/plugins/rspec/stories/resources/test/spec_and_test_together.rb +0 -57
  1384. data/vendor/plugins/rspec/stories/resources/test/test_case_with_should_methods.rb +0 -30
  1385. data/vendor/plugins/rspec/stories/stories/multiline_steps.story +0 -23
  1386. data/vendor/plugins/rspec/stories/stories/steps/multiline_steps.rb +0 -13
  1387. data/vendor/plugins/rspec/stories/stories/stories.rb +0 -6
@@ -0,0 +1,70 @@
1
+
2
+ require 'initializer' unless defined? ::Rails::Initializer
3
+ require 'dispatcher' unless defined? ::ActionController::Dispatcher
4
+
5
+ module HasManyPolymorphs
6
+
7
+ =begin rdoc
8
+ Searches for models that use <tt>has_many_polymorphs</tt> or <tt>acts_as_double_polymorphic_join</tt> and makes sure that they get loaded during app initialization. This ensures that helper methods are injected into the target classes.
9
+
10
+ Note that you can override DEFAULT_OPTIONS via Rails::Configuration#has_many_polymorphs_options. For example, if you need an application extension to be required before has_many_polymorphs loads your models, add an <tt>after_initialize</tt> block in <tt>config/environment.rb</tt> that appends to the <tt>'requirements'</tt> key:
11
+ Rails::Initializer.run do |config|
12
+ # your other configuration here
13
+
14
+ config.after_initialize do
15
+ config.has_many_polymorphs_options['requirements'] << 'lib/my_extension'
16
+ end
17
+ end
18
+
19
+ =end
20
+
21
+ DEFAULT_OPTIONS = {
22
+ :file_pattern => "#{RAILS_ROOT}/app/models/**/*.rb",
23
+ :file_exclusions => ['svn', 'CVS', 'bzr'],
24
+ :methods => ['has_many_polymorphs', 'acts_as_double_polymorphic_join'],
25
+ :requirements => []}
26
+
27
+ mattr_accessor :options
28
+ @@options = HashWithIndifferentAccess.new(DEFAULT_OPTIONS)
29
+
30
+ # Dispatcher callback to load polymorphic relationships from the top down.
31
+ def self.autoload
32
+
33
+ _logger_debug "autoload hook invoked"
34
+
35
+ options[:requirements].each do |requirement|
36
+ _logger_warn "forcing requirement load of #{requirement}"
37
+ require requirement
38
+ end
39
+
40
+ Dir[options[:file_pattern]].each do |filename|
41
+ next if filename =~ /#{options[:file_exclusions].join("|")}/
42
+ open filename do |file|
43
+ if file.grep(/#{options[:methods].join("|")}/).any?
44
+ begin
45
+ model = File.basename(filename)[0..-4].camelize
46
+ _logger_warn "preloading parent model #{model}"
47
+ model.constantize
48
+ rescue Object => e
49
+ _logger_warn "#{model} could not be preloaded: #{e.inspect}"
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+
56
+ end
57
+
58
+ class Rails::Initializer #:nodoc:
59
+ # Make sure it gets loaded in the console, tests, and migrations
60
+ def after_initialize_with_autoload
61
+ after_initialize_without_autoload
62
+ HasManyPolymorphs.autoload
63
+ end
64
+ alias_method_chain :after_initialize, :autoload
65
+ end
66
+
67
+ Dispatcher.to_prepare(:has_many_polymorphs_autoload) do
68
+ # Make sure it gets loaded in the app
69
+ HasManyPolymorphs.autoload
70
+ end
@@ -0,0 +1,60 @@
1
+
2
+ module ActiveRecord
3
+ class Base
4
+
5
+ class << self
6
+
7
+ # Interprets a polymorphic row from a unified SELECT, returning the appropriate ActiveRecord instance. Overrides ActiveRecord::Base.instantiate_without_callbacks.
8
+ def instantiate_with_polymorphic_checks(record)
9
+ if record['polymorphic_parent_class']
10
+ reflection = record['polymorphic_parent_class'].constantize.reflect_on_association(record['polymorphic_association_id'].to_sym)
11
+ # _logger_debug "Instantiating a polymorphic row for #{record['polymorphic_parent_class']}.reflect_on_association(:#{record['polymorphic_association_id']})"
12
+
13
+ # rewrite the record with the right column names
14
+ table_aliases = reflection.options[:table_aliases].dup
15
+ record = Hash[*table_aliases.keys.map {|key| [key, record[table_aliases[key]]] }.flatten]
16
+
17
+ # find the real child class
18
+ klass = record["#{self.table_name}.#{reflection.options[:polymorphic_type_key]}"].constantize
19
+ if sti_klass = record["#{klass.table_name}.#{klass.inheritance_column}"]
20
+ klass = klass.class_eval do compute_type(sti_klass) end # in case of namespaced STI models
21
+ end
22
+
23
+ # check that the join actually joined to something
24
+ unless (child_id = record["#{self.table_name}.#{reflection.options[:polymorphic_key]}"]) == record["#{klass.table_name}.#{klass.primary_key}"]
25
+ raise ActiveRecord::Associations::PolymorphicError,
26
+ "Referential integrity violation; child <#{klass.name}:#{child_id}> was not found for #{reflection.name.inspect}"
27
+ end
28
+
29
+ # eject the join keys
30
+ # XXX not very readable
31
+ record = Hash[*record._select do |column, value|
32
+ column[/^#{klass.table_name}/]
33
+ end.map do |column, value|
34
+ [column[/\.(.*)/, 1], value]
35
+ end.flatten]
36
+
37
+ # allocate and assign values
38
+ returning(klass.allocate) do |obj|
39
+ obj.instance_variable_set("@attributes", record)
40
+ obj.instance_variable_set("@attributes_cache", Hash.new)
41
+
42
+ if obj.respond_to_without_attributes?(:after_find)
43
+ obj.send(:callback, :after_find)
44
+ end
45
+
46
+ if obj.respond_to_without_attributes?(:after_initialize)
47
+ obj.send(:callback, :after_initialize)
48
+ end
49
+
50
+ end
51
+ else
52
+ instantiate_without_polymorphic_checks(record)
53
+ end
54
+ end
55
+
56
+ alias_method_chain :instantiate, :polymorphic_checks
57
+ end
58
+
59
+ end
60
+ end
@@ -0,0 +1,600 @@
1
+
2
+ module ActiveRecord #:nodoc:
3
+ module Associations #:nodoc:
4
+
5
+ =begin rdoc
6
+
7
+ Class methods added to ActiveRecord::Base for setting up polymorphic associations.
8
+
9
+ == Notes
10
+
11
+ STI association targets must enumerated and named. For example, if Dog and Cat both inherit from Animal, you still need to say <tt>[:dogs, :cats]</tt>, and not <tt>[:animals]</tt>.
12
+
13
+ Namespaced models follow the Rails <tt>underscore</tt> convention. ZooAnimal::Lion becomes <tt>:'zoo_animal/lion'</tt>.
14
+
15
+ You do not need to set up any other associations other than for either the regular method or the double. The join associations and all individual and reverse associations are generated for you. However, a join model and table are required.
16
+
17
+ There is a tentative report that you can make the parent model be its own join model, but this is untested.
18
+
19
+ =end
20
+
21
+ module PolymorphicClassMethods
22
+
23
+ RESERVED_DOUBLES_KEYS = [:conditions, :order, :limit, :offset, :extend, :skip_duplicates,
24
+ :join_extend, :dependent, :rename_individual_collections,
25
+ :namespace] #:nodoc:
26
+
27
+ =begin rdoc
28
+
29
+ This method creates a doubled-sided polymorphic relationship. It must be called on the join model:
30
+
31
+ class Devouring < ActiveRecord::Base
32
+ belongs_to :eater, :polymorphic => true
33
+ belongs_to :eaten, :polymorphic => true
34
+
35
+ acts_as_double_polymorphic_join(
36
+ :eaters => [:dogs, :cats],
37
+ :eatens => [:cats, :birds]
38
+ )
39
+ end
40
+
41
+ The method works by defining one or more special <tt>has_many_polymorphs</tt> association on every model in the target lists, depending on which side of the association it is on. Double self-references will work.
42
+
43
+ The two association names and their value arrays are the only required parameters.
44
+
45
+ == Available options
46
+
47
+ These options are passed through to targets on both sides of the association. If you want to affect only one side, prepend the key with the name of that side. For example, <tt>:eaters_extend</tt>.
48
+
49
+ <tt>:dependent</tt>:: Accepts <tt>:destroy</tt>, <tt>:nullify</tt>, or <tt>:delete_all</tt>. Controls how the join record gets treated on any association delete (whether from the polymorph or from an individual collection); defaults to <tt>:destroy</tt>.
50
+ <tt>:skip_duplicates</tt>:: If <tt>true</tt>, will check to avoid pushing already associated records (but also triggering a database load). Defaults to <tt>true</tt>.
51
+ <tt>:rename_individual_collections</tt>:: If <tt>true</tt>, all individual collections are prepended with the polymorph name, and the children's parent collection is appended with <tt>"\_of_#{association_name}"</tt>.
52
+ <tt>:extend</tt>:: One or an array of mixed modules and procs, which are applied to the polymorphic association (usually to define custom methods).
53
+ <tt>:join_extend</tt>:: One or an array of mixed modules and procs, which are applied to the join association.
54
+ <tt>:conditions</tt>:: An array or string of conditions for the SQL <tt>WHERE</tt> clause.
55
+ <tt>:order</tt>:: A string for the SQL <tt>ORDER BY</tt> clause.
56
+ <tt>:limit</tt>:: An integer. Affects the polymorphic and individual associations.
57
+ <tt>:offset</tt>:: An integer. Only affects the polymorphic association.
58
+ <tt>:namespace</tt>:: A symbol. Prepended to all the models in the <tt>:from</tt> and <tt>:through</tt> keys. This is especially useful for Camping, which namespaces models by default.
59
+
60
+ =end
61
+
62
+ def acts_as_double_polymorphic_join options={}, &extension
63
+
64
+ collections, options = extract_double_collections(options)
65
+
66
+ # handle the block
67
+ options[:extend] = (if options[:extend]
68
+ Array(options[:extend]) + [extension]
69
+ else
70
+ extension
71
+ end) if extension
72
+
73
+ collection_option_keys = make_general_option_keys_specific!(options, collections)
74
+
75
+ join_name = self.name.tableize.to_sym
76
+ collections.each do |association_id, children|
77
+ parent_hash_key = (collections.keys - [association_id]).first # parents are the entries in the _other_ children array
78
+
79
+ begin
80
+ parent_foreign_key = self.reflect_on_association(parent_hash_key._singularize).primary_key_name
81
+ rescue NoMethodError
82
+ raise PolymorphicError, "Couldn't find 'belongs_to' association for :#{parent_hash_key._singularize} in #{self.name}." unless parent_foreign_key
83
+ end
84
+
85
+ parents = collections[parent_hash_key]
86
+ conflicts = (children & parents) # set intersection
87
+ parents.each do |plural_parent_name|
88
+
89
+ parent_class = plural_parent_name._as_class
90
+ singular_reverse_association_id = parent_hash_key._singularize
91
+
92
+ internal_options = {
93
+ :is_double => true,
94
+ :from => children,
95
+ :as => singular_reverse_association_id,
96
+ :through => join_name.to_sym,
97
+ :foreign_key => parent_foreign_key,
98
+ :foreign_type_key => parent_foreign_key.to_s.sub(/_id$/, '_type'),
99
+ :singular_reverse_association_id => singular_reverse_association_id,
100
+ :conflicts => conflicts
101
+ }
102
+
103
+ general_options = Hash[*options._select do |key, value|
104
+ collection_option_keys[association_id].include? key and !value.nil?
105
+ end.map do |key, value|
106
+ [key.to_s[association_id.to_s.length+1..-1].to_sym, value]
107
+ end._flatten_once] # rename side-specific options to general names
108
+
109
+ general_options.each do |key, value|
110
+ # avoid clobbering keys that appear in both option sets
111
+ if internal_options[key]
112
+ general_options[key] = Array(value) + Array(internal_options[key])
113
+ end
114
+ end
115
+
116
+ parent_class.send(:has_many_polymorphs, association_id, internal_options.merge(general_options))
117
+
118
+ if conflicts.include? plural_parent_name
119
+ # unify the alternate sides of the conflicting children
120
+ (conflicts).each do |method_name|
121
+ unless parent_class.instance_methods.include?(method_name)
122
+ parent_class.send(:define_method, method_name) do
123
+ (self.send("#{singular_reverse_association_id}_#{method_name}") +
124
+ self.send("#{association_id._singularize}_#{method_name}")).freeze
125
+ end
126
+ end
127
+ end
128
+
129
+ # unify the join model... join model is always renamed for doubles, unlike child associations
130
+ unless parent_class.instance_methods.include?(join_name)
131
+ parent_class.send(:define_method, join_name) do
132
+ (self.send("#{join_name}_as_#{singular_reverse_association_id}") +
133
+ self.send("#{join_name}_as_#{association_id._singularize}")).freeze
134
+ end
135
+ end
136
+ else
137
+ unless parent_class.instance_methods.include?(join_name)
138
+ parent_class.send(:alias_method, join_name, "#{join_name}_as_#{singular_reverse_association_id}")
139
+ end
140
+ end
141
+
142
+ end
143
+ end
144
+ end
145
+
146
+ private
147
+
148
+ def extract_double_collections(options)
149
+ collections = options._select do |key, value|
150
+ value.is_a? Array and key.to_s !~ /(#{RESERVED_DOUBLES_KEYS.map(&:to_s).join('|')})$/
151
+ end
152
+
153
+ raise PolymorphicError, "Couldn't understand options in acts_as_double_polymorphic_join. Valid parameters are your two class collections, and then #{RESERVED_DOUBLES_KEYS.inspect[1..-2]}, with optionally your collection names prepended and joined with an underscore." unless collections.size == 2
154
+
155
+ options = options._select do |key, value|
156
+ !collections[key]
157
+ end
158
+
159
+ [collections, options]
160
+ end
161
+
162
+ def make_general_option_keys_specific!(options, collections)
163
+ collection_option_keys = Hash[*collections.keys.map do |key|
164
+ [key, RESERVED_DOUBLES_KEYS.map{|option| "#{key}_#{option}".to_sym}]
165
+ end._flatten_once]
166
+
167
+ collections.keys.each do |collection|
168
+ options.each do |key, value|
169
+ next if collection_option_keys.values.flatten.include? key
170
+ # shift the general options to the individual sides
171
+ collection_key = "#{collection}_#{key}".to_sym
172
+ collection_value = options[collection_key]
173
+ case key
174
+ when :conditions
175
+ collection_value, value = sanitize_sql(collection_value), sanitize_sql(value)
176
+ options[collection_key] = (collection_value ? "(#{collection_value}) AND (#{value})" : value)
177
+ when :order
178
+ options[collection_key] = (collection_value ? "#{collection_value}, #{value}" : value)
179
+ when :extend, :join_extend
180
+ options[collection_key] = Array(collection_value) + Array(value)
181
+ else
182
+ options[collection_key] ||= value
183
+ end
184
+ end
185
+ end
186
+
187
+ collection_option_keys
188
+ end
189
+
190
+
191
+
192
+ public
193
+
194
+ =begin rdoc
195
+
196
+ This method createds a single-sided polymorphic relationship.
197
+
198
+ class Petfood < ActiveRecord::Base
199
+ has_many_polymorphs :eaters, :from => [:dogs, :cats, :birds]
200
+ end
201
+
202
+ The only required parameter, aside from the association name, is <tt>:from</tt>.
203
+
204
+ The method generates a number of associations aside from the polymorphic one. In this example Petfood also gets <tt>dogs</tt>, <tt>cats</tt>, and <tt>birds</tt>, and Dog, Cat, and Bird get <tt>petfoods</tt>. (The reverse association to the parents is always plural.)
205
+
206
+ == Available options
207
+
208
+ <tt>:from</tt>:: An array of symbols representing the target models. Required.
209
+ <tt>:as</tt>:: A symbol for the parent's interface in the join--what the parent 'acts as'.
210
+ <tt>:through</tt>:: A symbol representing the class of the join model. Follows Rails defaults if not supplied (the parent and the association names, alphabetized, concatenated with an underscore, and singularized).
211
+ <tt>:dependent</tt>:: Accepts <tt>:destroy</tt>, <tt>:nullify</tt>, <tt>:delete_all</tt>. Controls how the join record gets treated on any associate delete (whether from the polymorph or from an individual collection); defaults to <tt>:destroy</tt>.
212
+ <tt>:skip_duplicates</tt>:: If <tt>true</tt>, will check to avoid pushing already associated records (but also triggering a database load). Defaults to <tt>true</tt>.
213
+ <tt>:rename_individual_collections</tt>:: If <tt>true</tt>, all individual collections are prepended with the polymorph name, and the children's parent collection is appended with "_of_#{association_name}"</tt>. For example, <tt>zoos</tt> becomes <tt>zoos_of_animals</tt>. This is to help avoid method name collisions in crowded classes.
214
+ <tt>:extend</tt>:: One or an array of mixed modules and procs, which are applied to the polymorphic association (usually to define custom methods).
215
+ <tt>:join_extend</tt>:: One or an array of mixed modules and procs, which are applied to the join association.
216
+ <tt>:parent_extend</tt>:: One or an array of mixed modules and procs, which are applied to the target models' association to the parents.
217
+ <tt>:conditions</tt>:: An array or string of conditions for the SQL <tt>WHERE</tt> clause.
218
+ <tt>:parent_conditions</tt>:: An array or string of conditions which are applied to the target models' association to the parents.
219
+ <tt>:order</tt>:: A string for the SQL <tt>ORDER BY</tt> clause.
220
+ <tt>:parent_order</tt>:: A string for the SQL <tt>ORDER BY</tt> which is applied to the target models' association to the parents.
221
+ <tt>:group</tt>:: An array or string of conditions for the SQL <tt>GROUP BY</tt> clause. Affects the polymorphic and individual associations.
222
+ <tt>:limit</tt>:: An integer. Affects the polymorphic and individual associations.
223
+ <tt>:offset</tt>:: An integer. Only affects the polymorphic association.
224
+ <tt>:namespace</tt>:: A symbol. Prepended to all the models in the <tt>:from</tt> and <tt>:through</tt> keys. This is especially useful for Camping, which namespaces models by default.
225
+ <tt>:uniq</tt>:: If <tt>true</tt>, the records returned are passed through a pure-Ruby <tt>uniq</tt> before they are returned. Rarely needed.
226
+ <tt>:foreign_key</tt>:: The column name for the parent's id in the join.
227
+ <tt>:foreign_type_key</tt>:: The column name for the parent's class name in the join, if the parent itself is polymorphic. Rarely needed--if you're thinking about using this, you almost certainly want to use <tt>acts_as_double_polymorphic_join()</tt> instead.
228
+ <tt>:polymorphic_key</tt>:: The column name for the child's id in the join.
229
+ <tt>:polymorphic_type_key</tt>:: The column name for the child's class name in the join.
230
+
231
+ If you pass a block, it gets converted to a Proc and added to <tt>:extend</tt>.
232
+
233
+ == On condition nullification
234
+
235
+ When you request an individual association, non-applicable but fully-qualified fields in the polymorphic association's <tt>:conditions</tt>, <tt>:order</tt>, and <tt>:group</tt> options get changed to <tt>NULL</tt>. For example, if you set <tt>:conditions => "dogs.name != 'Spot'"</tt>, when you request <tt>.cats</tt>, the conditions string is changed to <tt>NULL != 'Spot'</tt>.
236
+
237
+ Be aware, however, that <tt>NULL != 'Spot'</tt> returns <tt>false</tt> due to SQL's 3-value logic. Instead, you need to use the <tt>:conditions</tt> string <tt>"dogs.name IS NULL OR dogs.name != 'Spot'"</tt> to get the behavior you probably expect for negative matches.
238
+
239
+ =end
240
+
241
+ def has_many_polymorphs (association_id, options = {}, &extension)
242
+ _logger_debug "associating #{self}.#{association_id}"
243
+ reflection = create_has_many_polymorphs_reflection(association_id, options, &extension)
244
+ # puts "Created reflection #{reflection.inspect}"
245
+ # configure_dependency_for_has_many(reflection)
246
+ collection_reader_method(reflection, PolymorphicAssociation)
247
+ end
248
+
249
+ # Composed method that assigns option defaults, builds the reflection object, and sets up all the related associations on the parent, join, and targets.
250
+ def create_has_many_polymorphs_reflection(association_id, options, &extension) #:nodoc:
251
+ options.assert_valid_keys(
252
+ :from,
253
+ :as,
254
+ :through,
255
+ :foreign_key,
256
+ :foreign_type_key,
257
+ :polymorphic_key, # same as :association_foreign_key
258
+ :polymorphic_type_key,
259
+ :dependent, # default :destroy, only affects the join table
260
+ :skip_duplicates, # default true, only affects the polymorphic collection
261
+ :ignore_duplicates, # deprecated
262
+ :is_double,
263
+ :rename_individual_collections,
264
+ :reverse_association_id, # not used
265
+ :singular_reverse_association_id,
266
+ :conflicts,
267
+ :extend,
268
+ :join_class_name,
269
+ :join_extend,
270
+ :parent_extend,
271
+ :table_aliases,
272
+ :select, # applies to the polymorphic relationship
273
+ :conditions, # applies to the polymorphic relationship, the children, and the join
274
+ # :include,
275
+ :parent_conditions,
276
+ :parent_order,
277
+ :order, # applies to the polymorphic relationship, the children, and the join
278
+ :group, # only applies to the polymorphic relationship and the children
279
+ :limit, # only applies to the polymorphic relationship and the children
280
+ :offset, # only applies to the polymorphic relationship
281
+ :parent_order,
282
+ :parent_group,
283
+ :parent_limit,
284
+ :parent_offset,
285
+ # :source,
286
+ :namespace,
287
+ :uniq, # XXX untested, only applies to the polymorphic relationship
288
+ # :finder_sql,
289
+ # :counter_sql,
290
+ # :before_add,
291
+ # :after_add,
292
+ # :before_remove,
293
+ # :after_remove
294
+ :dummy)
295
+
296
+ # validate against the most frequent configuration mistakes
297
+ verify_pluralization_of(association_id)
298
+ raise PolymorphicError, ":from option must be an array" unless options[:from].is_a? Array
299
+ options[:from].each{|plural| verify_pluralization_of(plural)}
300
+
301
+ options[:as] ||= self.name.demodulize.underscore.to_sym
302
+ options[:conflicts] = Array(options[:conflicts])
303
+ options[:foreign_key] ||= "#{options[:as]}_id"
304
+
305
+ options[:association_foreign_key] =
306
+ options[:polymorphic_key] ||= "#{association_id._singularize}_id"
307
+ options[:polymorphic_type_key] ||= "#{association_id._singularize}_type"
308
+
309
+ if options.has_key? :ignore_duplicates
310
+ _logger_warn "DEPRECATION WARNING: please use :skip_duplicates instead of :ignore_duplicates"
311
+ options[:skip_duplicates] = options[:ignore_duplicates]
312
+ end
313
+ options[:skip_duplicates] = true unless options.has_key? :skip_duplicates
314
+ options[:dependent] = :destroy unless options.has_key? :dependent
315
+ options[:conditions] = sanitize_sql(options[:conditions])
316
+
317
+ # options[:finder_sql] ||= "(options[:polymorphic_key]
318
+
319
+ options[:through] ||= build_join_table_symbol(association_id, (options[:as]._pluralize or self.table_name))
320
+
321
+ # set up namespaces if we have a namespace key
322
+ # XXX needs test coverage
323
+ if options[:namespace]
324
+ namespace = options[:namespace].to_s.chomp("/") + "/"
325
+ options[:from].map! do |child|
326
+ "#{namespace}#{child}".to_sym
327
+ end
328
+ options[:through] = "#{namespace}#{options[:through]}".to_sym
329
+ end
330
+
331
+ options[:join_class_name] ||= options[:through]._classify
332
+ options[:table_aliases] ||= build_table_aliases([options[:through]] + options[:from])
333
+ options[:select] ||= build_select(association_id, options[:table_aliases])
334
+
335
+ options[:through] = "#{options[:through]}_as_#{options[:singular_reverse_association_id]}" if options[:singular_reverse_association_id]
336
+ options[:through] = demodulate(options[:through]).to_sym
337
+
338
+ options[:extend] = spiked_create_extension_module(association_id, Array(options[:extend]) + Array(extension))
339
+ options[:join_extend] = spiked_create_extension_module(association_id, Array(options[:join_extend]), "Join")
340
+ options[:parent_extend] = spiked_create_extension_module(association_id, Array(options[:parent_extend]), "Parent")
341
+
342
+ # create the reflection object
343
+ returning(create_reflection(:has_many_polymorphs, association_id, options, self)) do |reflection|
344
+ # set up the other related associations
345
+ create_join_association(association_id, reflection)
346
+ create_has_many_through_associations_for_parent_to_children(association_id, reflection)
347
+ create_has_many_through_associations_for_children_to_parent(association_id, reflection)
348
+ end
349
+ end
350
+
351
+ private
352
+
353
+
354
+ # table mapping for use at the instantiation point
355
+
356
+ def build_table_aliases(from)
357
+ # for the targets
358
+ returning({}) do |aliases|
359
+ from.map(&:to_s).sort.map(&:to_sym).each_with_index do |plural, t_index|
360
+ begin
361
+ table = plural._as_class.table_name
362
+ rescue NameError => e
363
+ raise PolymorphicError, "Could not find a valid class for #{plural.inspect} (tried #{plural.to_s._classify}). If it's namespaced, be sure to specify it as :\"module/#{plural}\" instead."
364
+ end
365
+ begin
366
+ plural._as_class.columns.map(&:name).each_with_index do |field, f_index|
367
+ aliases["#{table}.#{field}"] = "t#{t_index}_r#{f_index}"
368
+ end
369
+ rescue ActiveRecord::StatementInvalid => e
370
+ _logger_warn "Looks like your table doesn't exist for #{plural.to_s._classify}.\nError #{e}\nSkipping..."
371
+ end
372
+ end
373
+ end
374
+ end
375
+
376
+ def build_select(association_id, aliases)
377
+ # <tt>instantiate</tt> has to know which reflection the results are coming from
378
+ (["\'#{self.name}\' AS polymorphic_parent_class",
379
+ "\'#{association_id}\' AS polymorphic_association_id"] +
380
+ aliases.map do |table, _alias|
381
+ "#{table} AS #{_alias}"
382
+ end.sort).join(", ")
383
+ end
384
+
385
+ # method sub-builders
386
+
387
+ def create_join_association(association_id, reflection)
388
+
389
+ options = {
390
+ :foreign_key => reflection.options[:foreign_key],
391
+ :dependent => reflection.options[:dependent],
392
+ :class_name => reflection.klass.name,
393
+ :extend => reflection.options[:join_extend]
394
+ # :limit => reflection.options[:limit],
395
+ # :offset => reflection.options[:offset],
396
+ # :order => devolve(association_id, reflection, reflection.options[:order], reflection.klass, true),
397
+ # :conditions => devolve(association_id, reflection, reflection.options[:conditions], reflection.klass, true)
398
+ }
399
+
400
+ if reflection.options[:foreign_type_key]
401
+ type_check = "#{reflection.options[:foreign_type_key]} = #{quote_value(self.base_class.name)}"
402
+ conjunction = options[:conditions] ? " AND " : nil
403
+ options[:conditions] = "#{options[:conditions]}#{conjunction}#{type_check}"
404
+ options[:as] = reflection.options[:as]
405
+ end
406
+
407
+ has_many(reflection.options[:through], options)
408
+
409
+ inject_before_save_into_join_table(association_id, reflection)
410
+ end
411
+
412
+ def inject_before_save_into_join_table(association_id, reflection)
413
+ sti_hook = "sti_class_rewrite"
414
+ rewrite_procedure = %[self.send(:#{reflection.options[:polymorphic_type_key]}=, self.#{reflection.options[:polymorphic_type_key]}.constantize.base_class.name)]
415
+
416
+ # XXX should be abstracted?
417
+ reflection.klass.class_eval %[
418
+ unless instance_methods.include? "before_save_with_#{sti_hook}"
419
+ if instance_methods.include? "before_save"
420
+ alias_method :before_save_without_#{sti_hook}, :before_save
421
+ def before_save_with_#{sti_hook}
422
+ before_save_without_#{sti_hook}
423
+ #{rewrite_procedure}
424
+ end
425
+ else
426
+ def before_save_with_#{sti_hook}
427
+ #{rewrite_procedure}
428
+ end
429
+ end
430
+ alias_method :before_save, :before_save_with_#{sti_hook}
431
+ end
432
+ ]
433
+ end
434
+
435
+ def create_has_many_through_associations_for_children_to_parent(association_id, reflection)
436
+
437
+ child_pluralization_map(association_id, reflection).each do |plural, singular|
438
+ if singular == reflection.options[:as]
439
+ raise PolymorphicError, if reflection.options[:is_double]
440
+ "You can't give either of the sides in a double-polymorphic join the same name as any of the individual target classes."
441
+ else
442
+ "You can't have a self-referential polymorphic has_many :through without renaming the non-polymorphic foreign key in the join model."
443
+ end
444
+ end
445
+
446
+ parent = self
447
+ plural._as_class.instance_eval do
448
+ # this shouldn't be called at all during doubles; there is no way to traverse to a double polymorphic parent (XXX is that right?)
449
+ unless reflection.options[:is_double] or reflection.options[:conflicts].include? self.name.tableize.to_sym
450
+
451
+ # the join table
452
+ through = "#{reflection.options[:through]}#{'_as_child' if parent == self}".to_sym
453
+ has_many(through,
454
+ :as => association_id._singularize,
455
+ # :source => association_id._singularize,
456
+ # :source_type => reflection.options[:polymorphic_type_key],
457
+ :class_name => reflection.klass.name,
458
+ :dependent => reflection.options[:dependent],
459
+ :extend => reflection.options[:join_extend],
460
+ # :limit => reflection.options[:limit],
461
+ # :offset => reflection.options[:offset],
462
+ :order => devolve(association_id, reflection, reflection.options[:parent_order], reflection.klass),
463
+ :conditions => devolve(association_id, reflection, reflection.options[:parent_conditions], reflection.klass)
464
+ )
465
+
466
+ # the association to the target's parents
467
+ association = "#{reflection.options[:as]._pluralize}#{"_of_#{association_id}" if reflection.options[:rename_individual_collections]}".to_sym
468
+ has_many(association,
469
+ :through => through,
470
+ :class_name => parent.name,
471
+ :source => reflection.options[:as],
472
+ :foreign_key => reflection.options[:foreign_key],
473
+ :extend => reflection.options[:parent_extend],
474
+ :conditions => reflection.options[:parent_conditions],
475
+ :order => reflection.options[:parent_order],
476
+ :offset => reflection.options[:parent_offset],
477
+ :limit => reflection.options[:parent_limit],
478
+ :group => reflection.options[:parent_group])
479
+
480
+ # debugger if association == :parents
481
+ #
482
+ # nil
483
+
484
+ end
485
+ end
486
+ end
487
+ end
488
+
489
+ def create_has_many_through_associations_for_parent_to_children(association_id, reflection)
490
+ child_pluralization_map(association_id, reflection).each do |plural, singular|
491
+ #puts ":source => #{child}"
492
+ current_association = demodulate(child_association_map(association_id, reflection)[plural])
493
+ source = demodulate(singular)
494
+
495
+ if reflection.options[:conflicts].include? plural
496
+ # XXX check this
497
+ current_association = "#{association_id._singularize}_#{current_association}" if reflection.options[:conflicts].include? self.name.tableize.to_sym
498
+ source = "#{source}_as_#{association_id._singularize}".to_sym
499
+ end
500
+
501
+ # make push/delete accessible from the individual collections but still operate via the general collection
502
+ extension_module = self.class_eval %[
503
+ module #{self.name + current_association._classify + "PolymorphicChildAssociationExtension"}
504
+ def push *args; proxy_owner.send(:#{association_id}).send(:push, *args); self; end
505
+ alias :<< :push
506
+ def delete *args; proxy_owner.send(:#{association_id}).send(:delete, *args); end
507
+ def clear; proxy_owner.send(:#{association_id}).send(:clear, #{singular._classify}); end
508
+ self
509
+ end]
510
+
511
+ has_many(current_association.to_sym,
512
+ :through => reflection.options[:through],
513
+ :source => association_id._singularize,
514
+ :source_type => plural._as_class.base_class.name,
515
+ :class_name => plural._as_class.name, # make STI not conflate subtypes
516
+ :extend => (Array(extension_module) + reflection.options[:extend]),
517
+ :limit => reflection.options[:limit],
518
+ # :offset => reflection.options[:offset],
519
+ :order => devolve(association_id, reflection, reflection.options[:order], plural._as_class),
520
+ :conditions => devolve(association_id, reflection, reflection.options[:conditions], plural._as_class),
521
+ :group => devolve(association_id, reflection, reflection.options[:group], plural._as_class)
522
+ )
523
+
524
+ end
525
+ end
526
+
527
+ # some support methods
528
+
529
+ def child_pluralization_map(association_id, reflection)
530
+ Hash[*reflection.options[:from].map do |plural|
531
+ [plural, plural._singularize]
532
+ end.flatten]
533
+ end
534
+
535
+ def child_association_map(association_id, reflection)
536
+ Hash[*reflection.options[:from].map do |plural|
537
+ [plural, "#{association_id._singularize.to_s + "_" if reflection.options[:rename_individual_collections]}#{plural}".to_sym]
538
+ end.flatten]
539
+ end
540
+
541
+ def demodulate(s)
542
+ s.to_s.gsub('/', '_').to_sym
543
+ end
544
+
545
+ def build_join_table_symbol(association_id, name)
546
+ [name.to_s, association_id.to_s].sort.join("_").to_sym
547
+ end
548
+
549
+ def all_classes_for(association_id, reflection)
550
+ klasses = [self, reflection.klass, *child_pluralization_map(association_id, reflection).keys.map(&:_as_class)]
551
+ klasses += klasses.map(&:base_class)
552
+ klasses.uniq
553
+ end
554
+
555
+ def devolve(association_id, reflection, string, klass, remove_inappropriate_clauses = false)
556
+ # XXX remove_inappropriate_clauses is not implemented; we'll wait until someone actually needs it
557
+ return unless string
558
+ string = string.dup
559
+ # _logger_debug "devolving #{string} for #{klass}"
560
+ inappropriate_classes = (all_classes_for(association_id, reflection) - # the join class must always be preserved
561
+ [klass, klass.base_class, reflection.klass, reflection.klass.base_class])
562
+ inappropriate_classes.map do |klass|
563
+ klass.columns.map do |column|
564
+ [klass.table_name, column.name]
565
+ end.map do |table, column|
566
+ ["#{table}.#{column}", "`#{table}`.#{column}", "#{table}.`#{column}`", "`#{table}`.`#{column}`"]
567
+ end
568
+ end.flatten.sort_by(&:size).reverse.each do |quoted_reference|
569
+ # _logger_debug "devolved #{quoted_reference} to NULL"
570
+ # XXX clause removal would go here
571
+ string.gsub!(quoted_reference, "NULL")
572
+ end
573
+ # _logger_debug "altered to #{string}"
574
+ string
575
+ end
576
+
577
+ def verify_pluralization_of(sym)
578
+ sym = sym.to_s
579
+ singular = sym.singularize
580
+ plural = singular.pluralize
581
+ raise PolymorphicError, "Pluralization rules not set up correctly. You passed :#{sym}, which singularizes to :#{singular}, but that pluralizes to :#{plural}, which is different. Maybe you meant :#{plural} to begin with?" unless sym == plural
582
+ end
583
+
584
+ def spiked_create_extension_module(association_id, extensions, identifier = nil)
585
+ module_extensions = extensions.select{|e| e.is_a? Module}
586
+ proc_extensions = extensions.select{|e| e.is_a? Proc }
587
+
588
+ # support namespaced anonymous blocks as well as multiple procs
589
+ proc_extensions.each_with_index do |proc_extension, index|
590
+ module_name = "#{self.to_s}#{association_id._classify}Polymorphic#{identifier}AssociationExtension#{index}"
591
+ the_module = self.class_eval "module #{module_name}; self; end" # XXX hrm
592
+ the_module.class_eval &proc_extension
593
+ module_extensions << the_module
594
+ end
595
+ module_extensions
596
+ end
597
+
598
+ end
599
+ end
600
+ end