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,207 @@
1
+ module Paperclip
2
+ module Storage
3
+
4
+ # The default place to store attachments is in the filesystem. Files on the local
5
+ # filesystem can be very easily served by Apache without requiring a hit to your app.
6
+ # They also can be processed more easily after they've been saved, as they're just
7
+ # normal files. There is one Filesystem-specific option for has_attached_file.
8
+ # * +path+: The location of the repository of attachments on disk. This can (and, in
9
+ # almost all cases, should) be coordinated with the value of the +url+ option to
10
+ # allow files to be saved into a place where Apache can serve them without
11
+ # hitting your app. Defaults to
12
+ # ":rails_root/public/:attachment/:id/:style/:basename.:extension"
13
+ # By default this places the files in the app's public directory which can be served
14
+ # directly. If you are using capistrano for deployment, a good idea would be to
15
+ # make a symlink to the capistrano-created system directory from inside your app's
16
+ # public directory.
17
+ # See Paperclip::Attachment#interpolate for more information on variable interpolaton.
18
+ # :path => "/var/app/attachments/:class/:id/:style/:filename"
19
+ module Filesystem
20
+ def self.extended base
21
+ end
22
+
23
+ def exists?(style = default_style)
24
+ if original_filename
25
+ File.exist?(path(style))
26
+ else
27
+ false
28
+ end
29
+ end
30
+
31
+ # Returns representation of the data of the file assigned to the given
32
+ # style, in the format most representative of the current storage.
33
+ def to_file style = default_style
34
+ @queued_for_write[style] || (File.new(path(style)) if exists?(style))
35
+ end
36
+ alias_method :to_io, :to_file
37
+
38
+ def flush_writes #:nodoc:
39
+ logger.info("[paperclip] Writing files for #{name}")
40
+ @queued_for_write.each do |style, file|
41
+ FileUtils.mkdir_p(File.dirname(path(style)))
42
+ logger.info("[paperclip] -> #{path(style)}")
43
+ result = file.stream_to(path(style))
44
+ file.close
45
+ result.close
46
+ end
47
+ @queued_for_write = {}
48
+ end
49
+
50
+ def flush_deletes #:nodoc:
51
+ logger.info("[paperclip] Deleting files for #{name}")
52
+ @queued_for_delete.each do |path|
53
+ begin
54
+ logger.info("[paperclip] -> #{path}")
55
+ FileUtils.rm(path) if File.exist?(path)
56
+ rescue Errno::ENOENT => e
57
+ # ignore file-not-found, let everything else pass
58
+ end
59
+ end
60
+ @queued_for_delete = []
61
+ end
62
+ end
63
+
64
+ # Amazon's S3 file hosting service is a scalable, easy place to store files for
65
+ # distribution. You can find out more about it at http://aws.amazon.com/s3
66
+ # There are a few S3-specific options for has_attached_file:
67
+ # * +s3_credentials+: Takes a path, a File, or a Hash. The path (or File) must point
68
+ # to a YAML file containing the +access_key_id+ and +secret_access_key+ that Amazon
69
+ # gives you. You can 'environment-space' this just like you do to your
70
+ # database.yml file, so different environments can use different accounts:
71
+ # development:
72
+ # access_key_id: 123...
73
+ # secret_access_key: 123...
74
+ # test:
75
+ # access_key_id: abc...
76
+ # secret_access_key: abc...
77
+ # production:
78
+ # access_key_id: 456...
79
+ # secret_access_key: 456...
80
+ # This is not required, however, and the file may simply look like this:
81
+ # access_key_id: 456...
82
+ # secret_access_key: 456...
83
+ # In which case, those access keys will be used in all environments. You can also
84
+ # put your bucket name in this file, instead of adding it to the code directly.
85
+ # This is useful when you want the same account but a different bucket for
86
+ # development versus production.
87
+ # * +s3_permissions+: This is a String that should be one of the "canned" access
88
+ # policies that S3 provides (more information can be found here:
89
+ # http://docs.amazonwebservices.com/AmazonS3/2006-03-01/RESTAccessPolicy.html#RESTCannedAccessPolicies)
90
+ # The default for Paperclip is "public-read".
91
+ # * +s3_protocol+: The protocol for the URLs generated to your S3 assets. Can be either
92
+ # 'http' or 'https'. Defaults to 'http' when your :s3_permissions are 'public-read' (the
93
+ # default), and 'https' when your :s3_permissions are anything else.
94
+ # * +bucket+: This is the name of the S3 bucket that will store your files. Remember
95
+ # that the bucket must be unique across all of Amazon S3. If the bucket does not exist
96
+ # Paperclip will attempt to create it. The bucket name will not be interpolated.
97
+ # * +url+: There are two options for the S3 url. You can choose to have the bucket's name
98
+ # placed domain-style (bucket.s3.amazonaws.com) or path-style (s3.amazonaws.com/bucket).
99
+ # Normally, this won't matter in the slightest and you can leave the default (which is
100
+ # path-style, or :s3_path_url). But in some cases paths don't work and you need to use
101
+ # the domain-style (:s3_domain_url). Anything else here will be treated like path-style.
102
+ # * +path+: This is the key under the bucket in which the file will be stored. The
103
+ # URL will be constructed from the bucket and the path. This is what you will want
104
+ # to interpolate. Keys should be unique, like filenames, and despite the fact that
105
+ # S3 (strictly speaking) does not support directories, you can still use a / to
106
+ # separate parts of your file name.
107
+ module S3
108
+ def self.extended base
109
+ require 'right_aws'
110
+ base.instance_eval do
111
+ @s3_credentials = parse_credentials(@options[:s3_credentials])
112
+ @bucket = @options[:bucket] || @s3_credentials[:bucket]
113
+ @s3_options = @options[:s3_options] || {}
114
+ @s3_permissions = @options[:s3_permissions] || 'public-read'
115
+ @s3_protocol = @options[:s3_protocol] || (@s3_permissions == 'public-read' ? 'http' : 'https')
116
+ @url = ":s3_path_url" unless @url.to_s.match(/^:s3.*url$/)
117
+ end
118
+ base.class.interpolations[:s3_path_url] = lambda do |attachment, style|
119
+ "#{attachment.s3_protocol}://s3.amazonaws.com/#{attachment.bucket_name}/#{attachment.path(style).gsub(%r{^/}, "")}"
120
+ end
121
+ base.class.interpolations[:s3_domain_url] = lambda do |attachment, style|
122
+ "#{attachment.s3_protocol}://#{attachment.bucket_name}.s3.amazonaws.com/#{attachment.path(style).gsub(%r{^/}, "")}"
123
+ end
124
+ ActiveRecord::Base.logger.info("[paperclip] S3 Storage Initalized.")
125
+ end
126
+
127
+ def s3
128
+ @s3 ||= RightAws::S3.new(@s3_credentials[:access_key_id],
129
+ @s3_credentials[:secret_access_key],
130
+ @s3_options)
131
+ end
132
+
133
+ def s3_bucket
134
+ @s3_bucket ||= s3.bucket(@bucket, true, @s3_permissions)
135
+ end
136
+
137
+ def bucket_name
138
+ @bucket
139
+ end
140
+
141
+ def parse_credentials creds
142
+ creds = find_credentials(creds).stringify_keys
143
+ (creds[ENV['RAILS_ENV']] || creds).symbolize_keys
144
+ end
145
+
146
+ def exists?(style = default_style)
147
+ s3_bucket.key(path(style)) ? true : false
148
+ end
149
+
150
+ def s3_protocol
151
+ @s3_protocol
152
+ end
153
+
154
+ # Returns representation of the data of the file assigned to the given
155
+ # style, in the format most representative of the current storage.
156
+ def to_file style = default_style
157
+ @queued_for_write[style] || s3_bucket.key(path(style))
158
+ end
159
+ alias_method :to_io, :to_file
160
+
161
+ def flush_writes #:nodoc:
162
+ logger.info("[paperclip] Writing files for #{name}")
163
+ @queued_for_write.each do |style, file|
164
+ begin
165
+ logger.info("[paperclip] -> #{path(style)}")
166
+ key = s3_bucket.key(path(style))
167
+ key.data = file
168
+ key.put(nil, @s3_permissions)
169
+ rescue RightAws::AwsError => e
170
+ raise
171
+ end
172
+ end
173
+ @queued_for_write = {}
174
+ end
175
+
176
+ def flush_deletes #:nodoc:
177
+ logger.info("[paperclip] Writing files for #{name}")
178
+ @queued_for_delete.each do |path|
179
+ begin
180
+ logger.info("[paperclip] -> #{path}")
181
+ if file = s3_bucket.key(path)
182
+ file.delete
183
+ end
184
+ rescue RightAws::AwsError
185
+ # Ignore this.
186
+ end
187
+ end
188
+ @queued_for_delete = []
189
+ end
190
+
191
+ def find_credentials creds
192
+ case creds
193
+ when File:
194
+ YAML.load_file(creds.path)
195
+ when String:
196
+ YAML.load_file(creds)
197
+ when Hash:
198
+ creds
199
+ else
200
+ raise ArgumentError, "Credentials are not a path, file, or hash."
201
+ end
202
+ end
203
+ private :find_credentials
204
+
205
+ end
206
+ end
207
+ end
@@ -0,0 +1,88 @@
1
+ module Paperclip
2
+ # Handles thumbnailing images that are uploaded.
3
+ class Thumbnail
4
+
5
+ attr_accessor :file, :current_geometry, :target_geometry, :format, :whiny_thumbnails, :convert_options
6
+
7
+ # Creates a Thumbnail object set to work on the +file+ given. It
8
+ # will attempt to transform the image into one defined by +target_geometry+
9
+ # which is a "WxH"-style string. +format+ will be inferred from the +file+
10
+ # unless specified. Thumbnail creation will raise no errors unless
11
+ # +whiny_thumbnails+ is true (which it is, by default. If +convert_options+ is
12
+ # set, the options will be appended to the convert command upon image conversion
13
+ def initialize file, target_geometry, format = nil, convert_options = nil, whiny_thumbnails = true
14
+ @file = file
15
+ @crop = target_geometry[-1,1] == '#'
16
+ @target_geometry = Geometry.parse target_geometry
17
+ @current_geometry = Geometry.from_file file
18
+ @convert_options = convert_options
19
+ @whiny_thumbnails = whiny_thumbnails
20
+
21
+ @current_format = File.extname(@file.path)
22
+ @basename = File.basename(@file.path, @current_format)
23
+
24
+ @format = format
25
+ end
26
+
27
+ # Creates a thumbnail, as specified in +initialize+, +make+s it, and returns the
28
+ # resulting Tempfile.
29
+ def self.make file, dimensions, format = nil, convert_options = nil, whiny_thumbnails = true
30
+ new(file, dimensions, format, convert_options, whiny_thumbnails).make
31
+ end
32
+
33
+ # Returns true if the +target_geometry+ is meant to crop.
34
+ def crop?
35
+ @crop
36
+ end
37
+
38
+ # Returns true if the image is meant to make use of additional convert options.
39
+ def convert_options?
40
+ not @convert_options.blank?
41
+ end
42
+
43
+ # Performs the conversion of the +file+ into a thumbnail. Returns the Tempfile
44
+ # that contains the new image.
45
+ def make
46
+ src = @file
47
+ dst = Tempfile.new([@basename, @format].compact.join("."))
48
+ dst.binmode
49
+
50
+ command = <<-end_command
51
+ "#{ File.expand_path(src.path) }[0]"
52
+ #{ transformation_command }
53
+ "#{ File.expand_path(dst.path) }"
54
+ end_command
55
+
56
+ begin
57
+ success = Paperclip.run("convert", command.gsub(/\s+/, " "))
58
+ rescue PaperclipCommandLineError
59
+ raise PaperclipError, "There was an error processing the thumbnail for #{@basename}" if @whiny_thumbnails
60
+ end
61
+
62
+ dst
63
+ end
64
+
65
+ # Returns the command ImageMagick's +convert+ needs to transform the image
66
+ # into the thumbnail.
67
+ def transformation_command
68
+ scale, crop = @current_geometry.transformation_to(@target_geometry, crop?)
69
+ trans = "-resize \"#{scale}\""
70
+ trans << " -crop \"#{crop}\" +repage" if crop
71
+ trans << " #{convert_options}" if convert_options?
72
+ trans
73
+ end
74
+ end
75
+
76
+ # Due to how ImageMagick handles its image format conversion and how Tempfile
77
+ # handles its naming scheme, it is necessary to override how Tempfile makes
78
+ # its names so as to allow for file extensions. Idea taken from the comments
79
+ # on this blog post:
80
+ # http://marsorange.com/archives/of-mogrify-ruby-tempfile-dynamic-class-definitions
81
+ class Tempfile < ::Tempfile
82
+ # Replaces Tempfile's +make_tmpname+ with one that honors file extensions.
83
+ def make_tmpname(basename, n)
84
+ extension = File.extname(basename)
85
+ sprintf("%s,%d,%d%s", File.basename(basename, extension), $$, n, extension)
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,37 @@
1
+ module Paperclip
2
+ # The Upfile module is a convenience module for adding uploaded-file-type methods
3
+ # to the +File+ class. Useful for testing.
4
+ # user.avatar = File.new("test/test_avatar.jpg")
5
+ module Upfile
6
+
7
+ # Infer the MIME-type of the file from the extension.
8
+ def content_type
9
+ type = (self.path.match(/\.(\w+)$/)[1] rescue "octet-stream").downcase
10
+ case type
11
+ when %r"jpe?g" then "image/jpeg"
12
+ when %r"tiff?" then "image/tiff"
13
+ when %r"png", "gif", "bmp" then "image/#{type}"
14
+ when "txt" then "text/plain"
15
+ when %r"html?" then "text/html"
16
+ when "csv", "xml", "css", "js" then "text/#{type}"
17
+ else "application/x-#{type}"
18
+ end
19
+ end
20
+
21
+ # Returns the file's normal name.
22
+ def original_filename
23
+ File.basename(self.path)
24
+ end
25
+
26
+ # Returns the size of the file.
27
+ def size
28
+ File.size(self)
29
+ end
30
+ end
31
+
32
+ end
33
+
34
+ class File #:nodoc:
35
+ include Paperclip::Upfile
36
+ end
37
+
@@ -0,0 +1,32 @@
1
+ module Paperclip
2
+ module Shoulda
3
+ def should_have_attached_file name, options = {}
4
+ klass = self.name.gsub(/Test$/, '').constantize
5
+ context "Class #{klass.name} with attachment #{name}" do
6
+ should "respond to all the right methods" do
7
+ ["#{name}", "#{name}=", "#{name}?"].each do |meth|
8
+ assert klass.instance_methods.include?(meth), "#{klass.name} does not respond to #{name}."
9
+ end
10
+ end
11
+
12
+ should "have the correct definition" do
13
+ expected = options
14
+ actual = klass.attachment_definitions[name]
15
+ expected.delete(:validations) if not options.key?(:validations)
16
+ expected.delete(:whiny_thumbnails) if not options.key?(:whiny_thumbnails)
17
+
18
+ assert_equal expected, actual
19
+ end
20
+
21
+ should "ensure that ImageMagick is available" do
22
+ %w( convert identify ).each do |command|
23
+ `#{Paperclip.path_for_command(command)}`
24
+ assert_equal 0, $?, "ImageMagick's #{command} returned with an error. Make sure that #{command} is available at #{Paperclip.path_for_command(command)}"
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+
32
+ Test::Unit::TestCase.extend(Paperclip::Shoulda)
@@ -0,0 +1,79 @@
1
+ def obtain_class
2
+ class_name = ENV['CLASS'] || ENV['class']
3
+ raise "Must specify CLASS" unless class_name
4
+ @klass = Object.const_get(class_name)
5
+ end
6
+
7
+ def obtain_attachments
8
+ name = ENV['ATTACHMENT'] || ENV['attachment']
9
+ raise "Class #{@klass.name} has no attachments specified" unless @klass.respond_to?(:attachment_definitions)
10
+ if !name.blank? && @klass.attachment_definitions.keys.include?(name)
11
+ [ name ]
12
+ else
13
+ @klass.attachment_definitions.keys
14
+ end
15
+ end
16
+
17
+ def for_all_attachments
18
+ klass = obtain_class
19
+ names = obtain_attachments
20
+ ids = klass.connection.select_values("SELECT id FROM #{klass.table_name}")
21
+
22
+ ids.each do |id|
23
+ instance = klass.find(id)
24
+ names.each do |name|
25
+ result = if instance.send("#{ name }?")
26
+ yield(instance, name)
27
+ else
28
+ true
29
+ end
30
+ print result ? "." : "x"; $stdout.flush
31
+ end
32
+ end
33
+ puts " Done."
34
+ end
35
+
36
+ namespace :paperclip do
37
+ desc "Refreshes both metadata and thumbnails."
38
+ task :refresh => ["paperclip:refresh:metadata", "paperclip:refresh:thumbnails"]
39
+
40
+ namespace :refresh do
41
+ desc "Regenerates thumbnails for a given CLASS (and optional ATTACHMENT)."
42
+ task :thumbnails => :environment do
43
+ errors = []
44
+ for_all_attachments do |instance, name|
45
+ result = instance.send(name).reprocess!
46
+ errors << [instance.id, instance.errors] unless instance.errors.blank?
47
+ result
48
+ end
49
+ errors.each{|e| puts "#{e.first}: #{e.last.full_messages.inspect}" }
50
+ end
51
+
52
+ desc "Regenerates content_type/size metadata for a given CLASS (and optional ATTACHMENT)."
53
+ task :metadata => :environment do
54
+ for_all_attachments do |instance, name|
55
+ if file = instance.send(name).to_file
56
+ instance.send("#{name}_file_name=", instance.send("#{name}_file_name").strip)
57
+ instance.send("#{name}_content_type=", file.content_type.strip)
58
+ instance.send("#{name}_file_size=", file.size) if instance.respond_to?("#{name}_file_size")
59
+ instance.save(false)
60
+ else
61
+ true
62
+ end
63
+ end
64
+ end
65
+ end
66
+
67
+ desc "Cleans out invalid attachments. Useful after you've added new validations."
68
+ task :clean => :environment do
69
+ for_all_attachments do |instance, name|
70
+ instance.send(name).send(:validate)
71
+ if instance.send(name).valid?
72
+ true
73
+ else
74
+ instance.send("#{name}=", nil)
75
+ instance.save
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,362 @@
1
+ require 'test/helper'
2
+
3
+ class Dummy
4
+ # This is a dummy class
5
+ end
6
+
7
+ class AttachmentTest < Test::Unit::TestCase
8
+ context "Attachment default_options" do
9
+ setup do
10
+ rebuild_model
11
+ @old_default_options = Paperclip::Attachment.default_options.dup
12
+ @new_default_options = @old_default_options.merge({
13
+ :path => "argle/bargle",
14
+ :url => "fooferon",
15
+ :default_url => "not here.png"
16
+ })
17
+ end
18
+
19
+ teardown do
20
+ Paperclip::Attachment.default_options.merge! @old_default_options
21
+ end
22
+
23
+ should "be overrideable" do
24
+ Paperclip::Attachment.default_options.merge!(@new_default_options)
25
+ @new_default_options.keys.each do |key|
26
+ assert_equal @new_default_options[key],
27
+ Paperclip::Attachment.default_options[key]
28
+ end
29
+ end
30
+
31
+ context "without an Attachment" do
32
+ setup do
33
+ @dummy = Dummy.new
34
+ end
35
+
36
+ should "return false when asked exists?" do
37
+ assert !@dummy.avatar.exists?
38
+ end
39
+ end
40
+
41
+ context "on an Attachment" do
42
+ setup do
43
+ @dummy = Dummy.new
44
+ @attachment = @dummy.avatar
45
+ end
46
+
47
+ Paperclip::Attachment.default_options.keys.each do |key|
48
+ should "be the default_options for #{key}" do
49
+ assert_equal @old_default_options[key],
50
+ @attachment.instance_variable_get("@#{key}"),
51
+ key
52
+ end
53
+ end
54
+
55
+ context "when redefined" do
56
+ setup do
57
+ Paperclip::Attachment.default_options.merge!(@new_default_options)
58
+ @dummy = Dummy.new
59
+ @attachment = @dummy.avatar
60
+ end
61
+
62
+ Paperclip::Attachment.default_options.keys.each do |key|
63
+ should "be the new default_options for #{key}" do
64
+ assert_equal @new_default_options[key],
65
+ @attachment.instance_variable_get("@#{key}"),
66
+ key
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
72
+
73
+ context "An attachment with similarly named interpolations" do
74
+ setup do
75
+ rebuild_model :path => ":id.omg/:id-bbq/:idwhat/:id_partition.wtf"
76
+ @dummy = Dummy.new
77
+ @dummy.stubs(:id).returns(1024)
78
+ @file = File.new(File.join(File.dirname(__FILE__),
79
+ "fixtures",
80
+ "5k.png"))
81
+ @dummy.avatar = @file
82
+ end
83
+
84
+ should "make sure that they are interpolated correctly" do
85
+ assert_equal "1024.omg/1024-bbq/1024what/000/001/024.wtf", @dummy.avatar.path
86
+ end
87
+ end
88
+
89
+ context "An attachment with a :rails_env interpolation" do
90
+ setup do
91
+ @rails_env = "blah"
92
+ @id = 1024
93
+ rebuild_model :path => ":rails_env/:id.png"
94
+ @dummy = Dummy.new
95
+ @dummy.stubs(:id).returns(@id)
96
+ @file = File.new(File.join(File.dirname(__FILE__),
97
+ "fixtures",
98
+ "5k.png"))
99
+ @dummy.avatar = @file
100
+ end
101
+
102
+ should "return the proper path" do
103
+ temporary_rails_env(@rails_env) {
104
+ assert_equal "#{@rails_env}/#{@id}.png", @dummy.avatar.path
105
+ }
106
+ end
107
+ end
108
+
109
+ context "An attachment with :convert_options" do
110
+ setup do
111
+ rebuild_model :styles => {
112
+ :thumb => "100x100",
113
+ :large => "400x400"
114
+ },
115
+ :convert_options => {
116
+ :all => "-do_stuff",
117
+ :thumb => "-thumbnailize"
118
+ }
119
+ @dummy = Dummy.new
120
+ end
121
+
122
+ should "report the correct options when sent #extra_options_for(:thumb)" do
123
+ assert_equal "-thumbnailize -do_stuff", @dummy.avatar.send(:extra_options_for, :thumb), @dummy.avatar.convert_options.inspect
124
+ end
125
+
126
+ should "report the correct options when sent #extra_options_for(:large)" do
127
+ assert_equal "-do_stuff", @dummy.avatar.send(:extra_options_for, :large)
128
+ end
129
+
130
+ context "when given a file" do
131
+ setup do
132
+ @file = File.new(File.join(File.dirname(__FILE__),
133
+ "fixtures",
134
+ "5k.png"))
135
+ Paperclip::Thumbnail.stubs(:make)
136
+ [:thumb, :large].each do |style|
137
+ @dummy.avatar.stubs(:extra_options_for).with(style)
138
+ end
139
+ end
140
+
141
+ [:thumb, :large].each do |style|
142
+ should "call extra_options_for(#{style})" do
143
+ @dummy.avatar.expects(:extra_options_for).with(style)
144
+ @dummy.avatar = @file
145
+ end
146
+ end
147
+ end
148
+ end
149
+
150
+ context "Assigning an attachment" do
151
+ setup do
152
+ rebuild_model
153
+
154
+ @not_file = mock
155
+ @not_file.stubs(:nil?).returns(false)
156
+ @not_file.expects(:to_tempfile).returns(self)
157
+ @not_file.expects(:original_filename).returns("filename.png\r\n")
158
+ @not_file.expects(:content_type).returns("image/png\r\n")
159
+ @not_file.expects(:size).returns(10).times(2)
160
+
161
+ @dummy = Dummy.new
162
+ @attachment = @dummy.avatar
163
+ @attachment.expects(:valid_assignment?).with(@not_file).returns(true)
164
+ @attachment.expects(:queue_existing_for_delete)
165
+ @attachment.expects(:post_process)
166
+ @attachment.expects(:validate)
167
+ @dummy.avatar = @not_file
168
+ end
169
+
170
+ should "strip whitespace from original_filename field" do
171
+ assert_equal "filename.png", @dummy.avatar.original_filename
172
+ end
173
+
174
+ should "strip whitespace from content_type field" do
175
+ assert_equal "image/png", @dummy.avatar.instance.avatar_content_type
176
+ end
177
+
178
+ end
179
+
180
+ context "Attachment with strange letters" do
181
+ setup do
182
+ rebuild_model
183
+
184
+ @not_file = mock
185
+ @not_file.stubs(:nil?).returns(false)
186
+ @not_file.expects(:to_tempfile).returns(self)
187
+ @not_file.expects(:original_filename).returns("sheep_say_bæ.png\r\n")
188
+ @not_file.expects(:content_type).returns("image/png\r\n")
189
+ @not_file.expects(:size).returns(10).times(2)
190
+
191
+ @dummy = Dummy.new
192
+ @attachment = @dummy.avatar
193
+ @attachment.expects(:valid_assignment?).with(@not_file).returns(true)
194
+ @attachment.expects(:queue_existing_for_delete)
195
+ @attachment.expects(:post_process)
196
+ @attachment.expects(:validate)
197
+ @dummy.avatar = @not_file
198
+ end
199
+
200
+ should "remove strange letters and replace with underscore (_)" do
201
+ assert_equal "sheep_say_b_.png", @dummy.avatar.original_filename
202
+ end
203
+
204
+ end
205
+
206
+ context "An attachment" do
207
+ setup do
208
+ Paperclip::Attachment.default_options.merge!({
209
+ :path => ":rails_root/tmp/:attachment/:class/:style/:id/:basename.:extension"
210
+ })
211
+ FileUtils.rm_rf("tmp")
212
+ rebuild_model
213
+ @instance = Dummy.new
214
+ @attachment = Paperclip::Attachment.new(:avatar, @instance)
215
+ @file = File.new(File.join(File.dirname(__FILE__),
216
+ "fixtures",
217
+ "5k.png"))
218
+ end
219
+
220
+ should "raise if there are not the correct columns when you try to assign" do
221
+ @other_attachment = Paperclip::Attachment.new(:not_here, @instance)
222
+ assert_raises(Paperclip::PaperclipError) do
223
+ @other_attachment.assign(@file)
224
+ end
225
+ end
226
+
227
+ should "return its default_url when no file assigned" do
228
+ assert @attachment.to_file.nil?
229
+ assert_equal "/avatars/original/missing.png", @attachment.url
230
+ assert_equal "/avatars/blah/missing.png", @attachment.url(:blah)
231
+ end
232
+
233
+ context "with a file assigned in the database" do
234
+ setup do
235
+ @instance.stubs(:[]).with(:avatar_file_name).returns("5k.png")
236
+ @instance.stubs(:[]).with(:avatar_content_type).returns("image/png")
237
+ @instance.stubs(:[]).with(:avatar_file_size).returns(12345)
238
+ now = Time.now
239
+ Time.stubs(:now).returns(now)
240
+ @instance.stubs(:[]).with(:avatar_updated_at).returns(Time.now)
241
+ end
242
+
243
+ should "return a correct url even if the file does not exist" do
244
+ assert_nil @attachment.to_file
245
+ assert_match %r{^/avatars/#{@instance.id}/blah/5k\.png}, @attachment.url(:blah)
246
+ end
247
+
248
+ should "make sure the updated_at mtime is in the url if it is defined" do
249
+ assert_match %r{#{Time.now.to_i}$}, @attachment.url(:blah)
250
+ end
251
+
252
+ context "with the updated_at field removed" do
253
+ setup do
254
+ @instance.stubs(:[]).with(:avatar_updated_at).returns(nil)
255
+ end
256
+
257
+ should "only return the url without the updated_at when sent #url" do
258
+ assert_match "/avatars/#{@instance.id}/blah/5k.png", @attachment.url(:blah)
259
+ end
260
+ end
261
+
262
+ should "return the proper path when filename has a single .'s" do
263
+ assert_equal "./test/../tmp/avatars/dummies/original/#{@instance.id}/5k.png", @attachment.path
264
+ end
265
+
266
+ should "return the proper path when filename has multiple .'s" do
267
+ @instance.stubs(:[]).with(:avatar_file_name).returns("5k.old.png")
268
+ assert_equal "./test/../tmp/avatars/dummies/original/#{@instance.id}/5k.old.png", @attachment.path
269
+ end
270
+
271
+ context "when expecting three styles" do
272
+ setup do
273
+ styles = {:styles => { :large => ["400x400", :png],
274
+ :medium => ["100x100", :gif],
275
+ :small => ["32x32#", :jpg]}}
276
+ @attachment = Paperclip::Attachment.new(:avatar,
277
+ @instance,
278
+ styles)
279
+ end
280
+
281
+ context "and assigned a file" do
282
+ setup do
283
+ now = Time.now
284
+ Time.stubs(:now).returns(now)
285
+ @attachment.assign(@file)
286
+ end
287
+
288
+ should "be dirty" do
289
+ assert @attachment.dirty?
290
+ end
291
+
292
+ context "and saved" do
293
+ setup do
294
+ @attachment.save
295
+ end
296
+
297
+ should "return the real url" do
298
+ assert @attachment.to_file
299
+ assert_match %r{^/avatars/#{@instance.id}/original/5k\.png}, @attachment.url
300
+ assert_match %r{^/avatars/#{@instance.id}/small/5k\.jpg}, @attachment.url(:small)
301
+ end
302
+
303
+ should "commit the files to disk" do
304
+ [:large, :medium, :small].each do |style|
305
+ io = @attachment.to_io(style)
306
+ assert File.exists?(io)
307
+ assert ! io.is_a?(::Tempfile)
308
+ end
309
+ end
310
+
311
+ should "save the files as the right formats and sizes" do
312
+ [[:large, 400, 61, "PNG"],
313
+ [:medium, 100, 15, "GIF"],
314
+ [:small, 32, 32, "JPEG"]].each do |style|
315
+ cmd = "identify -format '%w %h %b %m' " +
316
+ "#{@attachment.to_io(style.first).path}"
317
+ out = `#{cmd}`
318
+ width, height, size, format = out.split(" ")
319
+ assert_equal style[1].to_s, width.to_s
320
+ assert_equal style[2].to_s, height.to_s
321
+ assert_equal style[3].to_s, format.to_s
322
+ end
323
+ end
324
+
325
+ should "still have its #file attribute not be nil" do
326
+ assert ! @attachment.to_file.nil?
327
+ end
328
+
329
+ context "and deleted" do
330
+ setup do
331
+ @existing_names = @attachment.styles.keys.collect do |style|
332
+ @attachment.path(style)
333
+ end
334
+ @instance.expects(:[]=).with(:avatar_file_name, nil)
335
+ @instance.expects(:[]=).with(:avatar_content_type, nil)
336
+ @instance.expects(:[]=).with(:avatar_file_size, nil)
337
+ @instance.expects(:[]=).with(:avatar_updated_at, nil)
338
+ @attachment.assign nil
339
+ @attachment.save
340
+ end
341
+
342
+ should "delete the files" do
343
+ @existing_names.each{|f| assert ! File.exists?(f) }
344
+ end
345
+ end
346
+ end
347
+ end
348
+ end
349
+
350
+ end
351
+
352
+ context "when trying a nonexistant storage type" do
353
+ setup do
354
+ rebuild_model :storage => :not_here
355
+ end
356
+
357
+ should "not be able to find the module" do
358
+ assert_raise(NameError){ Dummy.new.avatar }
359
+ end
360
+ end
361
+ end
362
+ end