spree 0.8.5 → 0.9.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 (914) hide show
  1. data/CHANGELOG +97 -4
  2. data/CONTRIBUTORS +62 -29
  3. data/LICENSE +1 -1
  4. data/README.markdown +1 -1
  5. data/app/controllers/admin/base_controller.rb +10 -1
  6. data/app/controllers/admin/configurations_controller.rb +19 -8
  7. data/app/controllers/admin/coupons_controller.rb +17 -0
  8. data/app/controllers/admin/creditcard_payments_controller.rb +4 -8
  9. data/app/controllers/admin/images_controller.rb +42 -3
  10. data/app/controllers/admin/orders_controller.rb +12 -12
  11. data/app/controllers/admin/products_controller.rb +12 -32
  12. data/app/controllers/admin/prototypes_controller.rb +3 -1
  13. data/app/controllers/admin/reports_controller.rb +6 -6
  14. data/app/controllers/admin/shipments_controller.rb +12 -1
  15. data/app/controllers/admin/shipping_methods_controller.rb +17 -17
  16. data/app/controllers/admin/shipping_rates_controller.rb +20 -0
  17. data/app/controllers/admin/tax_rates_controller.rb +28 -0
  18. data/{vendor/extensions/tax_calculator/app → app}/controllers/admin/tax_settings_controller.rb +1 -1
  19. data/app/controllers/admin/taxons_controller.rb +18 -72
  20. data/app/controllers/admin/users_controller.rb +6 -6
  21. data/app/controllers/admin/zones_controller.rb +4 -4
  22. data/app/controllers/application.rb +3 -3
  23. data/app/controllers/checkouts_controller.rb +158 -0
  24. data/app/controllers/content_controller.rb +1 -8
  25. data/app/controllers/orders_controller.rb +11 -23
  26. data/app/controllers/products_controller.rb +24 -23
  27. data/app/controllers/spree/base_controller.rb +47 -3
  28. data/app/controllers/states_controller.rb +4 -5
  29. data/app/controllers/taxons_controller.rb +13 -9
  30. data/app/controllers/user_sessions_controller.rb +3 -1
  31. data/app/controllers/users_controller.rb +3 -7
  32. data/app/helpers/admin/base_helper.rb +74 -6
  33. data/app/helpers/admin/calculators_helper.rb +2 -0
  34. data/app/helpers/admin/orders_helper.rb +1 -1
  35. data/{vendor/extensions/tax_calculator/app → app}/helpers/admin/tax_rates_helper.rb +0 -0
  36. data/app/helpers/admin/taxonomies_helper.rb +0 -59
  37. data/app/helpers/application_helper.rb +1 -2
  38. data/app/helpers/checkouts_helper.rb +7 -0
  39. data/app/helpers/products_helper.rb +15 -15
  40. data/app/helpers/spree/base_helper.rb +27 -5
  41. data/app/helpers/taxons_helper.rb +9 -9
  42. data/app/metal/create_admin_user.rb +21 -0
  43. data/app/models/address.rb +42 -2
  44. data/app/models/adjustment.rb +37 -0
  45. data/app/models/app_configuration.rb +10 -1
  46. data/app/models/calculator.rb +41 -0
  47. data/app/models/calculator/flat_percent_item_total.rb +19 -0
  48. data/app/models/calculator/flat_rate.rb +18 -0
  49. data/app/models/calculator/flexi_rate.rb +33 -0
  50. data/app/models/calculator/per_item.rb +18 -0
  51. data/app/models/calculator/price_bucket.rb +31 -0
  52. data/app/models/calculator/sales_tax.rb +48 -0
  53. data/app/models/calculator/vat.rb +63 -0
  54. data/app/models/charge.rb +37 -0
  55. data/app/models/checkout.rb +48 -0
  56. data/app/models/country.rb +11 -1
  57. data/app/models/coupon.rb +27 -0
  58. data/app/models/credit.rb +27 -0
  59. data/app/models/creditcard.rb +5 -5
  60. data/app/models/creditcard_payment.rb +13 -5
  61. data/app/models/image.rb +23 -1
  62. data/app/models/inventory_unit.rb +4 -3
  63. data/app/models/line_item.rb +10 -4
  64. data/app/models/order.rb +125 -65
  65. data/app/models/order_mailer.rb +1 -1
  66. data/app/models/order_observer.rb +15 -0
  67. data/app/models/product.rb +101 -87
  68. data/app/models/shipment.rb +20 -14
  69. data/app/models/shipping_category.rb +2 -0
  70. data/app/models/shipping_method.rb +19 -6
  71. data/app/models/shipping_rate.rb +6 -0
  72. data/app/models/state.rb +8 -2
  73. data/app/models/state_event.rb +7 -0
  74. data/app/models/tax_category.rb +2 -0
  75. data/{vendor/extensions/tax_calculator/app → app}/models/tax_rate.rb +9 -3
  76. data/app/models/taxon.rb +21 -15
  77. data/app/models/user.rb +17 -18
  78. data/app/models/user_mailer.rb +1 -1
  79. data/app/models/variant.rb +51 -60
  80. data/app/models/zone.rb +38 -23
  81. data/app/views/admin/configurations/index.html.erb +12 -0
  82. data/app/views/admin/coupons/_form.html.erb +24 -0
  83. data/app/views/admin/coupons/edit.html.erb +8 -0
  84. data/app/views/admin/coupons/index.html.erb +38 -0
  85. data/app/views/admin/coupons/new.html.erb +9 -0
  86. data/app/views/admin/creditcard_payments/new.html.erb +1 -1
  87. data/app/views/admin/general_settings/edit.html.erb +1 -1
  88. data/app/views/admin/general_settings/show.html.erb +2 -4
  89. data/app/views/admin/images/_form.html.erb +12 -0
  90. data/app/views/admin/images/edit.html.erb +19 -0
  91. data/app/views/admin/images/index.html.erb +63 -0
  92. data/app/views/admin/images/new.html.erb +20 -8
  93. data/app/views/admin/inventory_settings/show.html.erb +2 -2
  94. data/app/views/admin/mail_settings/edit.html.erb +13 -4
  95. data/app/views/admin/mail_settings/show.html.erb +7 -0
  96. data/app/views/admin/option_types/index.html.erb +1 -1
  97. data/app/views/admin/orders/index.html.erb +41 -54
  98. data/app/views/admin/orders/show.html.erb +19 -2
  99. data/app/views/admin/products/_form.html.erb +29 -16
  100. data/app/views/admin/products/index.html.erb +12 -17
  101. data/app/views/admin/products/new.html.erb +5 -5
  102. data/app/views/admin/properties/index.html.erb +1 -1
  103. data/app/views/admin/prototypes/index.html.erb +1 -1
  104. data/app/views/admin/reports/sales_total.html.erb +4 -4
  105. data/app/views/admin/shared/_address.html.erb +3 -1
  106. data/app/views/admin/shared/_calculator_fields.html.erb +15 -0
  107. data/app/views/admin/shared/_edit_resource_links.html.erb +1 -1
  108. data/app/views/admin/shared/_form_address.html.erb +8 -2
  109. data/app/views/admin/shared/_new_resource_links.html.erb +1 -1
  110. data/app/views/admin/shared/_order_details.html.erb +3 -36
  111. data/app/views/admin/shared/_order_tabs.html.erb +2 -2
  112. data/app/views/admin/shared/_product_tabs.html.erb +25 -12
  113. data/app/views/admin/shared/_report_criteria.html.erb +3 -7
  114. data/app/views/admin/shipments/_form.html.erb +11 -1
  115. data/app/views/admin/shipping_categories/index.html.erb +1 -1
  116. data/app/views/admin/shipping_methods/_form.html.erb +3 -5
  117. data/app/views/admin/shipping_methods/edit.html.erb +2 -2
  118. data/app/views/admin/shipping_methods/index.html.erb +3 -3
  119. data/app/views/admin/shipping_rates/_form.html.erb +12 -0
  120. data/app/views/admin/shipping_rates/edit.html.erb +8 -0
  121. data/app/views/admin/shipping_rates/index.html.erb +30 -0
  122. data/app/views/admin/shipping_rates/new.html.erb +10 -0
  123. data/app/views/admin/tax_categories/index.html.erb +1 -1
  124. data/app/views/admin/tax_rates/_form.html.erb +16 -0
  125. data/{vendor/extensions/tax_calculator/app → app}/views/admin/tax_rates/edit.html.erb +2 -2
  126. data/{vendor/extensions/tax_calculator/app → app}/views/admin/tax_rates/index.html.erb +4 -4
  127. data/{vendor/extensions/tax_calculator/app → app}/views/admin/tax_rates/new.html.erb +0 -0
  128. data/{vendor/extensions/tax_calculator/app → app}/views/admin/tax_settings/edit.html.erb +3 -3
  129. data/{vendor/extensions/tax_calculator/app → app}/views/admin/tax_settings/show.html.erb +1 -1
  130. data/app/views/admin/taxonomies/_js_head.html.erb +13 -0
  131. data/app/views/admin/taxonomies/_list.html.erb +3 -3
  132. data/app/views/admin/taxonomies/_taxon.html.erb +12 -0
  133. data/app/views/admin/taxonomies/edit.html.erb +17 -7
  134. data/app/views/admin/users/index.html.erb +7 -9
  135. data/app/views/admin/variants/_form.html.erb +1 -1
  136. data/app/views/admin/variants/index.html.erb +2 -2
  137. data/app/views/admin/zones/index.html.erb +4 -4
  138. data/app/views/checkouts/_billing.html.erb +66 -0
  139. data/app/views/checkouts/_confirmation.html.erb +11 -0
  140. data/app/views/checkouts/_form.html.erb +20 -0
  141. data/app/views/checkouts/_payment.html.erb +45 -0
  142. data/app/views/{orders → checkouts}/_registration.html.erb +4 -4
  143. data/app/views/checkouts/_shipping.html.erb +68 -0
  144. data/app/views/checkouts/_shipping_method.html.erb +19 -0
  145. data/app/views/checkouts/_summary.html.erb +36 -0
  146. data/app/views/checkouts/edit.html.erb +13 -0
  147. data/app/views/checkouts/new.html.erb +13 -0
  148. data/app/views/layouts/admin.html.erb +15 -5
  149. data/app/views/layouts/application.html.erb +3 -11
  150. data/{vendor/plugins/resource_controller/test/app/views/layouts/application.rhtml → app/views/layouts/checkouts.html.erb} +2 -2
  151. data/app/views/order_mailer/cancel.html.erb +4 -3
  152. data/app/views/order_mailer/confirm.html.erb +5 -4
  153. data/app/views/orders/_form.html.erb +4 -1
  154. data/app/views/orders/_google_order.html.erb +2 -2
  155. data/app/views/orders/_line_item.html.erb +6 -3
  156. data/app/views/orders/edit.html.erb +3 -3
  157. data/app/views/orders/new.html.erb +2 -2
  158. data/app/views/products/_cart_form.html.erb +45 -14
  159. data/app/views/products/_thumbnails.html.erb +34 -6
  160. data/app/views/products/index.html.erb +6 -2
  161. data/app/views/products/show.html.erb +1 -1
  162. data/app/views/shared/_edit_resource_links.html.erb +1 -1
  163. data/app/views/shared/_filters.html.erb +52 -0
  164. data/app/views/shared/_footer.html.erb +1 -1
  165. data/app/views/shared/_head.html.erb +6 -0
  166. data/app/views/shared/_login.html.erb +2 -2
  167. data/app/views/shared/_new_resource_links.html.erb +1 -1
  168. data/app/views/shared/_order_details.html.erb +46 -36
  169. data/app/views/shared/_taxonomies.html.erb +5 -6
  170. data/app/views/states/index.js.erb +1 -1
  171. data/app/views/taxons/show.html.erb +1 -1
  172. data/bin/spree +43 -2
  173. data/config/boot.rb +2 -2
  174. data/config/environment.rb +13 -5
  175. data/config/environments/test.rb +6 -2
  176. data/config/initializers/locales.rb +20 -8
  177. data/config/initializers/paperclip.rb +20 -0
  178. data/config/initializers/spree.rb +12 -2
  179. data/config/locales/da.yml +614 -0
  180. data/config/locales/da_rails.yml +197 -0
  181. data/config/locales/de-CH.yml +614 -0
  182. data/config/locales/de-CH_rails.yml +142 -0
  183. data/config/locales/de.yml +95 -4
  184. data/config/locales/en-GB.yml +112 -21
  185. data/config/locales/en-GB_rails.yml +84 -42
  186. data/config/locales/en-US.yml +103 -12
  187. data/config/locales/es.yml +95 -4
  188. data/config/locales/fi.yml +614 -0
  189. data/config/locales/fi_rails.yml +143 -0
  190. data/config/locales/fr-FR.yml +95 -4
  191. data/config/locales/fr-FR_rails.yml +1 -1
  192. data/config/locales/il.yml +614 -0
  193. data/config/locales/il_rails.yml +103 -0
  194. data/config/locales/it.yml +102 -11
  195. data/config/locales/jp.yml +614 -0
  196. data/config/locales/jp_rails.yml +135 -0
  197. data/config/locales/mx.yml +614 -0
  198. data/config/locales/mx_rails.yml +181 -0
  199. data/config/locales/nb-NO.yml +95 -4
  200. data/config/locales/nl-BE.yml +95 -4
  201. data/config/locales/nl-NL.yml +614 -0
  202. data/config/locales/nl-NL_rails.yml +172 -0
  203. data/config/locales/pl.yml +102 -11
  204. data/config/locales/pt-BR.yml +101 -10
  205. data/config/locales/pt-PT.yml +95 -4
  206. data/config/locales/ru-RU.yml +414 -323
  207. data/config/locales/ru-RU_rails.yml +1 -1
  208. data/config/locales/th.yml +614 -0
  209. data/config/locales/th_rails.yml +195 -0
  210. data/config/routes.rb +10 -6
  211. data/config/schedule.rb +27 -0
  212. data/config/spree_permissions.yml +8 -7
  213. data/db/default/zone_members.yml +2 -14
  214. data/{vendor/extensions/tax_calculator/db → db}/migrate/20080620100001_create_tax_rates.rb +0 -0
  215. data/{vendor/extensions/tax_calculator/db → db}/migrate/20080704192456_update_tax_rates_add_zones_etc.rb +0 -0
  216. data/db/migrate/20090401223217_create_eu_vat_zone_again.rb +1 -1
  217. data/db/migrate/20090404192723_add_maestro_fields.rb +12 -0
  218. data/db/migrate/20090406091357_add_alternative_phone.rb +9 -0
  219. data/db/migrate/20090525000325_remove_address_orphans.rb +15 -0
  220. data/db/migrate/20090603153927_create_checkouts.rb +71 -0
  221. data/db/migrate/20090617181106_change_txn_type_to_int.rb +18 -0
  222. data/db/migrate/20090618203233_create_charges.rb +61 -0
  223. data/db/migrate/20090626235303_create_credits.rb +22 -0
  224. data/db/migrate/20090705101511_add_image_dimensions.rb +12 -0
  225. data/db/migrate/20090708175306_create_coupons.rb +16 -0
  226. data/db/migrate/20090708175317_create_discounts.rb +14 -0
  227. data/db/migrate/20090714094201_add_default_addresses_to_user.rb +11 -0
  228. data/db/migrate/20090715172345_create_calculators.rb +22 -0
  229. data/db/migrate/20090731085008_add_charge_source_to_charge.rb +11 -0
  230. data/db/migrate/20090803072025_create_shipping_rates.rb +12 -0
  231. data/db/migrate/20090804090559_create_calculators_for_tax_rates.rb +16 -0
  232. data/db/migrate/20090805131937_drop_credits_and_discounts.rb +9 -0
  233. data/db/migrate/20090805185015_remove_tax_type.rb +13 -0
  234. data/db/migrate/20090806063212_rename_charges_to_adjustments.rb +24 -0
  235. data/db/migrate/20090806160214_rename_base_to_source.rb +11 -0
  236. data/db/migrate/20090809170304_remove_checkout_shipping_address_and_method.rb +15 -0
  237. data/db/migrate/20090809193131_add_is_master_to_variants.rb +43 -0
  238. data/db/migrate/20090809201209_drop_master_price_from_products.rb +13 -0
  239. data/db/migrate/20090809231957_update_legacy_calculators.rb +9 -0
  240. data/db/migrate/20090823005402_coupon_starts_at.rb +13 -0
  241. data/db/migrate/20090828114732_add_queued_mail.rb +12 -0
  242. data/db/migrate/20090908141056_adjust_percent_calc_settings.rb +9 -0
  243. data/db/migrate/migrate/20080620100001_create_tax_rates.rb +13 -0
  244. data/db/migrate/migrate/20080704192456_update_tax_rates_add_zones_etc.rb +17 -0
  245. data/db/sample/adjustments.yml +20 -0
  246. data/db/sample/assets.yml +219 -11
  247. data/db/sample/calculators.yml +16 -0
  248. data/db/sample/checkouts.yml +8 -0
  249. data/db/sample/coupons.yml +4 -0
  250. data/db/sample/creditcards.yml +0 -1
  251. data/db/sample/orders.yml +0 -7
  252. data/db/sample/preferences.yml +20 -0
  253. data/db/sample/products.yml +0 -9
  254. data/db/sample/shipping_methods.yml +3 -10
  255. data/db/sample/variants.yml +13 -0
  256. data/db/schema.rb +73 -23
  257. data/db/seeds.rb +8 -3
  258. data/generate +4 -0
  259. data/lib/generators/extension/extension_generator.rb +1 -1
  260. data/lib/generators/extension/templates/Rakefile +1 -1
  261. data/lib/generators/extension/templates/extension.rb +22 -2
  262. data/lib/generators/extension_migration/extension_migration_generator.rb +3 -3
  263. data/lib/generators/instance/instance_generator.rb +4 -2
  264. data/lib/plugins/extension_patches/lib/asset_copy.rb +1 -50
  265. data/lib/plugins/monkey_patches/lib/monkey_patches.rb +2 -2
  266. data/lib/product_filters.rb +174 -0
  267. data/lib/product_scopes.rb +76 -0
  268. data/lib/spree.rb +2 -2
  269. data/lib/spree/config.rb +1 -1
  270. data/lib/spree/extension_loader.rb +10 -1
  271. data/lib/spree/file_utilz.rb +71 -0
  272. data/lib/spree/initializer.rb +13 -1
  273. data/lib/spree/setup.rb +7 -1
  274. data/lib/tasks/consistency.rake +30 -0
  275. data/lib/tasks/database.rake +1 -7
  276. data/lib/tasks/extensions.rake +24 -8
  277. data/lib/tasks/framework.rake +0 -1
  278. data/lib/tasks/release.rake +22 -11
  279. data/lib/tasks/sample/products/1009/large/ror_baseball_jersey_green.png +0 -0
  280. data/lib/tasks/sample/products/1009/mini/ror_baseball_jersey_green.png +0 -0
  281. data/lib/tasks/sample/products/1009/original/ror_baseball_jersey_green.png +0 -0
  282. data/lib/tasks/sample/products/1009/product/ror_baseball_jersey_green.png +0 -0
  283. data/lib/tasks/sample/products/1009/small/ror_baseball_jersey_green.png +0 -0
  284. data/lib/tasks/sample/products/1010/large/ror_baseball_jersey_back_green.png +0 -0
  285. data/lib/tasks/sample/products/1010/mini/ror_baseball_jersey_back_green.png +0 -0
  286. data/lib/tasks/sample/products/1010/original/ror_baseball_jersey_back_green.png +0 -0
  287. data/lib/tasks/sample/products/1010/product/ror_baseball_jersey_back_green.png +0 -0
  288. data/lib/tasks/sample/products/1010/small/ror_baseball_jersey_back_green.png +0 -0
  289. data/lib/tasks/sample/products/1011/large/ror_baseball_jersey_green.png +0 -0
  290. data/lib/tasks/sample/products/1011/mini/ror_baseball_jersey_green.png +0 -0
  291. data/lib/tasks/sample/products/1011/original/ror_baseball_jersey_green.png +0 -0
  292. data/lib/tasks/sample/products/1011/product/ror_baseball_jersey_green.png +0 -0
  293. data/lib/tasks/sample/products/1011/small/ror_baseball_jersey_green.png +0 -0
  294. data/lib/tasks/sample/products/1012/large/ror_baseball_jersey_back_green.png +0 -0
  295. data/lib/tasks/sample/products/1012/mini/ror_baseball_jersey_back_green.png +0 -0
  296. data/lib/tasks/sample/products/1012/original/ror_baseball_jersey_back_green.png +0 -0
  297. data/lib/tasks/sample/products/1012/product/ror_baseball_jersey_back_green.png +0 -0
  298. data/lib/tasks/sample/products/1012/small/ror_baseball_jersey_back_green.png +0 -0
  299. data/lib/tasks/sample/products/1013/large/ror_baseball_jersey_green.png +0 -0
  300. data/lib/tasks/sample/products/1013/mini/ror_baseball_jersey_green.png +0 -0
  301. data/lib/tasks/sample/products/1013/original/ror_baseball_jersey_green.png +0 -0
  302. data/lib/tasks/sample/products/1013/product/ror_baseball_jersey_green.png +0 -0
  303. data/lib/tasks/sample/products/1013/small/ror_baseball_jersey_green.png +0 -0
  304. data/lib/tasks/sample/products/1014/large/ror_baseball_jersey_back_green.png +0 -0
  305. data/lib/tasks/sample/products/1014/mini/ror_baseball_jersey_back_green.png +0 -0
  306. data/lib/tasks/sample/products/1014/original/ror_baseball_jersey_back_green.png +0 -0
  307. data/lib/tasks/sample/products/1014/product/ror_baseball_jersey_back_green.png +0 -0
  308. data/lib/tasks/sample/products/1014/small/ror_baseball_jersey_back_green.png +0 -0
  309. data/lib/tasks/sample/products/1015/large/ror_baseball_jersey_blue.png +0 -0
  310. data/lib/tasks/sample/products/1015/mini/ror_baseball_jersey_blue.png +0 -0
  311. data/lib/tasks/sample/products/1015/original/ror_baseball_jersey_blue.png +0 -0
  312. data/lib/tasks/sample/products/1015/product/ror_baseball_jersey_blue.png +0 -0
  313. data/lib/tasks/sample/products/1015/small/ror_baseball_jersey_blue.png +0 -0
  314. data/lib/tasks/sample/products/1016/large/ror_baseball_jersey_back_blue.png +0 -0
  315. data/lib/tasks/sample/products/1016/mini/ror_baseball_jersey_back_blue.png +0 -0
  316. data/lib/tasks/sample/products/1016/original/ror_baseball_jersey_back_blue.png +0 -0
  317. data/lib/tasks/sample/products/1016/product/ror_baseball_jersey_back_blue.png +0 -0
  318. data/lib/tasks/sample/products/1016/small/ror_baseball_jersey_back_blue.png +0 -0
  319. data/lib/tasks/sample/products/1017/large/ror_baseball_jersey_blue.png +0 -0
  320. data/lib/tasks/sample/products/1017/mini/ror_baseball_jersey_blue.png +0 -0
  321. data/lib/tasks/sample/products/1017/original/ror_baseball_jersey_blue.png +0 -0
  322. data/lib/tasks/sample/products/1017/product/ror_baseball_jersey_blue.png +0 -0
  323. data/lib/tasks/sample/products/1017/small/ror_baseball_jersey_blue.png +0 -0
  324. data/lib/tasks/sample/products/1018/large/ror_baseball_jersey_back_blue.png +0 -0
  325. data/lib/tasks/sample/products/1018/mini/ror_baseball_jersey_back_blue.png +0 -0
  326. data/lib/tasks/sample/products/1018/original/ror_baseball_jersey_back_blue.png +0 -0
  327. data/lib/tasks/sample/products/1018/product/ror_baseball_jersey_back_blue.png +0 -0
  328. data/lib/tasks/sample/products/1018/small/ror_baseball_jersey_back_blue.png +0 -0
  329. data/lib/tasks/sample/products/1019/large/ror_baseball_jersey_blue.png +0 -0
  330. data/lib/tasks/sample/products/1019/mini/ror_baseball_jersey_blue.png +0 -0
  331. data/lib/tasks/sample/products/1019/original/ror_baseball_jersey_blue.png +0 -0
  332. data/lib/tasks/sample/products/1019/product/ror_baseball_jersey_blue.png +0 -0
  333. data/lib/tasks/sample/products/1019/small/ror_baseball_jersey_blue.png +0 -0
  334. data/lib/tasks/sample/products/1020/large/ror_baseball_jersey_back_blue.png +0 -0
  335. data/lib/tasks/sample/products/1020/mini/ror_baseball_jersey_back_blue.png +0 -0
  336. data/lib/tasks/sample/products/1020/original/ror_baseball_jersey_back_blue.png +0 -0
  337. data/lib/tasks/sample/products/1020/product/ror_baseball_jersey_back_blue.png +0 -0
  338. data/lib/tasks/sample/products/1020/small/ror_baseball_jersey_back_blue.png +0 -0
  339. data/lib/tasks/sample/products/1021/large/ror_baseball_jersey_red.png +0 -0
  340. data/lib/tasks/sample/products/1021/mini/ror_baseball_jersey_red.png +0 -0
  341. data/lib/tasks/sample/products/1021/original/ror_baseball_jersey_red.png +0 -0
  342. data/lib/tasks/sample/products/1021/product/ror_baseball_jersey_red.png +0 -0
  343. data/lib/tasks/sample/products/1021/small/ror_baseball_jersey_red.png +0 -0
  344. data/lib/tasks/sample/products/1022/large/ror_baseball_jersey_back_red.png +0 -0
  345. data/lib/tasks/sample/products/1022/mini/ror_baseball_jersey_back_red.png +0 -0
  346. data/lib/tasks/sample/products/1022/original/ror_baseball_jersey_back_red.png +0 -0
  347. data/lib/tasks/sample/products/1022/product/ror_baseball_jersey_back_red.png +0 -0
  348. data/lib/tasks/sample/products/1022/small/ror_baseball_jersey_back_red.png +0 -0
  349. data/lib/tasks/sample/products/1023/large/ror_baseball_jersey_red.png +0 -0
  350. data/lib/tasks/sample/products/1023/mini/ror_baseball_jersey_red.png +0 -0
  351. data/lib/tasks/sample/products/1023/original/ror_baseball_jersey_red.png +0 -0
  352. data/lib/tasks/sample/products/1023/product/ror_baseball_jersey_red.png +0 -0
  353. data/lib/tasks/sample/products/1023/small/ror_baseball_jersey_red.png +0 -0
  354. data/lib/tasks/sample/products/1024/large/ror_baseball_jersey_back_red.png +0 -0
  355. data/lib/tasks/sample/products/1024/mini/ror_baseball_jersey_back_red.png +0 -0
  356. data/lib/tasks/sample/products/1024/original/ror_baseball_jersey_back_red.png +0 -0
  357. data/lib/tasks/sample/products/1024/product/ror_baseball_jersey_back_red.png +0 -0
  358. data/lib/tasks/sample/products/1024/small/ror_baseball_jersey_back_red.png +0 -0
  359. data/lib/tasks/sample/products/1025/large/ror_baseball_jersey_red.png +0 -0
  360. data/lib/tasks/sample/products/1025/mini/ror_baseball_jersey_red.png +0 -0
  361. data/lib/tasks/sample/products/1025/original/ror_baseball_jersey_red.png +0 -0
  362. data/lib/tasks/sample/products/1025/product/ror_baseball_jersey_red.png +0 -0
  363. data/lib/tasks/sample/products/1025/small/ror_baseball_jersey_red.png +0 -0
  364. data/lib/tasks/sample/products/1026/large/ror_baseball_jersey_back_red.png +0 -0
  365. data/lib/tasks/sample/products/1026/mini/ror_baseball_jersey_back_red.png +0 -0
  366. data/lib/tasks/sample/products/1026/original/ror_baseball_jersey_back_red.png +0 -0
  367. data/lib/tasks/sample/products/1026/product/ror_baseball_jersey_back_red.png +0 -0
  368. data/lib/tasks/sample/products/1026/small/ror_baseball_jersey_back_red.png +0 -0
  369. data/lib/tasks/translation.rake +1 -1
  370. data/lib/tasks/upgrade.rake +2 -9
  371. data/public/images/menu-current.png +0 -0
  372. data/public/images/progress.gif +0 -0
  373. data/public/javascripts/calculator.js +13 -0
  374. data/public/javascripts/checkout.js +163 -34
  375. data/public/javascripts/jquery.alerts/images/help.gif +0 -0
  376. data/public/javascripts/jquery.alerts/images/important.gif +0 -0
  377. data/public/javascripts/jquery.alerts/images/info.gif +0 -0
  378. data/public/javascripts/jquery.alerts/images/title.gif +0 -0
  379. data/public/javascripts/jquery.alerts/jquery.alerts.css +57 -0
  380. data/public/javascripts/jquery.alerts/jquery.alerts.js +235 -0
  381. data/public/javascripts/jquery.alerts/jquery.alerts.spree.css +30 -0
  382. data/public/javascripts/jquery.validate.min.js +16 -0
  383. data/public/javascripts/jsTree/source/_lib.js +126 -0
  384. data/public/javascripts/jsTree/source/themes/default/context.gif +0 -0
  385. data/public/javascripts/jsTree/source/themes/default/create.png +0 -0
  386. data/public/javascripts/jsTree/source/themes/default/dot.gif +0 -0
  387. data/public/javascripts/jsTree/source/themes/default/f.png +0 -0
  388. data/public/javascripts/jsTree/source/themes/default/fminus.gif +0 -0
  389. data/public/javascripts/jsTree/source/themes/default/fminus_rtl.gif +0 -0
  390. data/public/javascripts/jsTree/source/themes/default/fplus.gif +0 -0
  391. data/public/javascripts/jsTree/source/themes/default/fplus_rtl.gif +0 -0
  392. data/public/javascripts/jsTree/source/themes/default/lastli.gif +0 -0
  393. data/public/javascripts/jsTree/source/themes/default/lastli_rtl.gif +0 -0
  394. data/public/javascripts/jsTree/source/themes/default/li.gif +0 -0
  395. data/public/javascripts/jsTree/source/themes/default/remove.png +0 -0
  396. data/public/javascripts/jsTree/source/themes/default/rename.png +0 -0
  397. data/public/javascripts/jsTree/source/themes/default/style.css +44 -0
  398. data/public/javascripts/jsTree/source/themes/default/throbber.gif +0 -0
  399. data/public/javascripts/jsTree/source/themes/marker.gif +0 -0
  400. data/public/javascripts/jsTree/source/themes/marker_rtl.gif +0 -0
  401. data/public/javascripts/jsTree/source/themes/plus.gif +0 -0
  402. data/public/javascripts/jsTree/source/themes/remove.png +0 -0
  403. data/public/javascripts/jsTree/source/themes/spree/context.gif +0 -0
  404. data/public/javascripts/jsTree/source/themes/spree/create.png +0 -0
  405. data/public/javascripts/jsTree/source/themes/spree/dot.gif +0 -0
  406. data/public/javascripts/jsTree/source/themes/spree/f.png +0 -0
  407. data/public/javascripts/jsTree/source/themes/spree/fminus.gif +0 -0
  408. data/public/javascripts/jsTree/source/themes/spree/fminus_rtl.gif +0 -0
  409. data/public/javascripts/jsTree/source/themes/spree/fplus.gif +0 -0
  410. data/public/javascripts/jsTree/source/themes/spree/fplus_rtl.gif +0 -0
  411. data/public/javascripts/jsTree/source/themes/spree/lastli.gif +0 -0
  412. data/public/javascripts/jsTree/source/themes/spree/li.gif +0 -0
  413. data/public/javascripts/jsTree/source/themes/spree/remove.png +0 -0
  414. data/public/javascripts/jsTree/source/themes/spree/rename.png +0 -0
  415. data/public/javascripts/jsTree/source/themes/spree/style.css +39 -0
  416. data/public/javascripts/jsTree/source/themes/spree/throbber.gif +0 -0
  417. data/public/javascripts/jsTree/source/tree_component.css +62 -0
  418. data/public/javascripts/jsTree/source/tree_component.js +2315 -0
  419. data/public/javascripts/jsTree/source/tree_component.min.js +14 -0
  420. data/public/javascripts/spree.js +9 -0
  421. data/public/javascripts/taxonomy.js +202 -0
  422. data/public/stylesheets/admin/admin.css +36 -3
  423. data/public/stylesheets/compiled/screen.css +393 -306
  424. data/public/stylesheets/sass/_buttons.sass +59 -0
  425. data/public/stylesheets/sass/_cart.sass +21 -0
  426. data/public/stylesheets/sass/_checkout.sass +173 -0
  427. data/public/stylesheets/sass/_colors.sass +11 -0
  428. data/public/stylesheets/sass/_layout.sass +63 -0
  429. data/public/stylesheets/sass/_messages.sass +28 -0
  430. data/public/stylesheets/sass/_mixins.sass +17 -0
  431. data/public/stylesheets/sass/_navigation.sass +97 -0
  432. data/public/stylesheets/sass/_prices.sass +13 -0
  433. data/public/stylesheets/sass/_product_detail.sass +27 -0
  434. data/public/stylesheets/sass/_product_thumbnail.sass +58 -0
  435. data/public/stylesheets/sass/_registration.sass +9 -0
  436. data/public/stylesheets/sass/screen.sass +12 -555
  437. data/public/stylesheets/scaffold.css +54 -0
  438. data/spec/controllers/orders_controller_spec.rb +3 -2
  439. data/spec/models/address_spec.rb +2 -1
  440. data/spec/models/shipping_order_spec.rb +8 -6
  441. data/spec/models/zone_spec.rb +1 -1
  442. data/spec/preference_factory.rb +1 -1
  443. data/test/factories/address_factory.rb +20 -0
  444. data/test/factories/adjustments_factory.rb +53 -0
  445. data/test/factories/checkout_factory.rb +15 -0
  446. data/test/factories/country_factory.rb +5 -0
  447. data/test/factories/coupon_factory.rb +5 -0
  448. data/test/factories/creditcard_factory.rb +12 -0
  449. data/test/factories/creditcard_payment_factory.rb +11 -0
  450. data/test/factories/inventory_unit_factory.rb +2 -0
  451. data/test/factories/line_item_factory.rb +8 -0
  452. data/test/factories/options_factory.rb +10 -0
  453. data/test/factories/order_factory.rb +6 -0
  454. data/test/factories/preference_factory.rb +5 -0
  455. data/test/factories/product_factory.rb +13 -0
  456. data/test/factories/role_factory.rb +5 -0
  457. data/test/factories/shipment_factory.rb +6 -0
  458. data/test/factories/shipping_category_factory.rb +5 -0
  459. data/test/factories/shipping_method_factory.rb +13 -0
  460. data/test/factories/tax_category_factory.rb +8 -0
  461. data/test/factories/tax_rate_factory.rb +4 -0
  462. data/test/factories/taxon_factory.rb +16 -0
  463. data/test/factories/taxonomy_factory.rb +5 -0
  464. data/test/factories/user_factory.rb +11 -0
  465. data/test/factories/variant_factory.rb +13 -0
  466. data/test/factories/zone_factory.rb +10 -0
  467. data/test/fixtures/countries.yml +4 -0
  468. data/test/fixtures/gateway_configurations.yml +2 -0
  469. data/test/fixtures/gateways.yml +4 -0
  470. data/test/fixtures/states.yml +204 -0
  471. data/test/functional/calculators_controller_test.rb +8 -0
  472. data/test/functional/checkouts_controller_test.rb +77 -0
  473. data/test/functional/products_controller_test.rb +12 -0
  474. data/test/functional/users_controller_test.rb +25 -0
  475. data/test/test_helper.rb +66 -0
  476. data/test/unit/address_test.rb +39 -0
  477. data/test/unit/charge_test.rb +90 -0
  478. data/test/unit/checkout_test.rb +10 -0
  479. data/test/unit/country_test.rb +6 -0
  480. data/test/unit/coupon_test.rb +56 -0
  481. data/test/unit/credit_test.rb +61 -0
  482. data/test/unit/creditcard_payment_test.rb +28 -0
  483. data/test/unit/creditcard_test.rb +44 -0
  484. data/test/unit/factories_test.rb +29 -0
  485. data/test/unit/flat_percent_item_total_test.rb +28 -0
  486. data/test/unit/flat_rate_calculators_test.rb +13 -0
  487. data/test/unit/has_calculator_test.rb +22 -0
  488. data/test/unit/helpers/calculators_helper_test.rb +4 -0
  489. data/test/unit/helpers/checkouts_helper_test.rb +26 -0
  490. data/test/unit/helpers/products_helper_test.rb +32 -0
  491. data/test/unit/helpers/spree/base_helper_test.rb +43 -0
  492. data/test/unit/incomplete_checkout_test.rb +68 -0
  493. data/test/unit/inventory_unit_test.rb +20 -0
  494. data/test/unit/line_item_test.rb +73 -0
  495. data/test/unit/order_test.rb +80 -0
  496. data/test/unit/per_item_calculator_test.rb +14 -0
  497. data/test/unit/preference_test.rb +148 -0
  498. data/test/unit/product_test.rb +279 -0
  499. data/test/unit/sales_tax_calculator_test.rb +46 -0
  500. data/test/unit/shipping_method_test.rb +21 -0
  501. data/test/unit/state_event_test.rb +40 -0
  502. data/test/unit/state_test.rb +7 -0
  503. data/test/unit/tax_rate_test.rb +9 -0
  504. data/test/unit/variant_test.rb +128 -0
  505. data/test/unit/vat_calculator_test.rb +60 -0
  506. data/vendor/extensions/calculators/README.markdown +4 -0
  507. data/vendor/extensions/calculators/calculators_extension.rb +31 -0
  508. data/vendor/extensions/localization/public/images/flags/{dk.png → da.png} +0 -0
  509. data/vendor/extensions/localization/public/images/flags/de_CH.png +0 -0
  510. data/vendor/extensions/payment_gateway/README_PAYPAL.markdown +1 -1
  511. data/vendor/extensions/payment_gateway/db/migrate/20090517173727_add_currency_code_option_to_paypal_gateway.rb +13 -0
  512. data/vendor/extensions/payment_gateway/lib/spree/payment_gateway.rb +22 -12
  513. data/vendor/plugins/acts_as_adjacency_list/lib/active_record/acts/adjacency_list.rb +13 -20
  514. data/vendor/plugins/delegate_belongs_to/README +1 -0
  515. data/vendor/plugins/delegate_belongs_to/Rakefile +21 -0
  516. data/vendor/plugins/delegate_belongs_to/init.rb +2 -0
  517. data/vendor/plugins/delegate_belongs_to/lib/delegate_belongs_to.rb +95 -0
  518. data/vendor/plugins/delegate_belongs_to/spec/app_root/app/controllers/application.rb +2 -0
  519. data/vendor/plugins/delegate_belongs_to/spec/app_root/app/models/contact.rb +5 -0
  520. data/vendor/plugins/delegate_belongs_to/spec/app_root/app/models/user_default.rb +2 -0
  521. data/vendor/plugins/delegate_belongs_to/spec/app_root/app/models/user_mixed.rb +2 -0
  522. data/vendor/plugins/delegate_belongs_to/spec/app_root/app/models/user_no_default.rb +2 -0
  523. data/vendor/plugins/{resource_controller/test → delegate_belongs_to/spec/app_root}/config/boot.rb +14 -9
  524. data/vendor/plugins/delegate_belongs_to/spec/app_root/config/database.yml +21 -0
  525. data/vendor/plugins/delegate_belongs_to/spec/app_root/config/environment.rb +13 -0
  526. data/{public/favicon.ico → vendor/plugins/delegate_belongs_to/spec/app_root/config/environments/in_memory.rb} +0 -0
  527. data/vendor/plugins/{resource_controller/test/app/views/tags/index.rjs → delegate_belongs_to/spec/app_root/config/environments/mysql.rb} +0 -0
  528. data/vendor/plugins/delegate_belongs_to/spec/app_root/config/environments/postgresql.rb +0 -0
  529. data/vendor/plugins/delegate_belongs_to/spec/app_root/config/environments/sqlite.rb +0 -0
  530. data/vendor/plugins/delegate_belongs_to/spec/app_root/config/environments/sqlite3.rb +0 -0
  531. data/vendor/plugins/delegate_belongs_to/spec/app_root/config/routes.rb +4 -0
  532. data/vendor/plugins/delegate_belongs_to/spec/app_root/db/migrate/01_create_users.rb +22 -0
  533. data/vendor/plugins/delegate_belongs_to/spec/app_root/db/migrate/02_create_contacts.rb +12 -0
  534. data/vendor/plugins/delegate_belongs_to/spec/app_root/lib/console_with_fixtures.rb +4 -0
  535. data/vendor/plugins/delegate_belongs_to/spec/app_root/script/console +7 -0
  536. data/vendor/plugins/delegate_belongs_to/spec/model/with_defaults_spec.rb +30 -0
  537. data/vendor/plugins/delegate_belongs_to/spec/model/with_mixed_spec.rb +29 -0
  538. data/vendor/plugins/delegate_belongs_to/spec/model/with_no_defaults_spec.rb +30 -0
  539. data/vendor/plugins/delegate_belongs_to/spec/spec_helper.rb +68 -0
  540. data/vendor/plugins/has_calculator/README +7 -0
  541. data/vendor/plugins/has_calculator/init.rb +2 -0
  542. data/vendor/plugins/has_calculator/lib/has_calculator.rb +52 -0
  543. data/vendor/plugins/mail_queue/README +40 -0
  544. data/vendor/plugins/mail_queue/Rakefile +22 -0
  545. data/vendor/plugins/mail_queue/init.rb +1 -0
  546. data/vendor/plugins/mail_queue/install.rb +1 -0
  547. data/vendor/plugins/mail_queue/lib/mail_queue.rb +48 -0
  548. data/vendor/plugins/mail_queue/lib/queued_mail.rb +5 -0
  549. data/vendor/plugins/mail_queue/lib/test_mail_queue_mailer.rb +19 -0
  550. data/vendor/plugins/mail_queue/lib/test_mail_queue_mailer/notify.rhtml +1 -0
  551. data/vendor/plugins/mail_queue/tasks/mailer_queue_tasks.rake +4 -0
  552. data/vendor/plugins/mail_queue/test/mailer_queue_test.rb +29 -0
  553. data/vendor/plugins/paperclip/README.rdoc +126 -11
  554. data/vendor/plugins/paperclip/Rakefile +35 -24
  555. data/vendor/plugins/paperclip/lib/paperclip.rb +141 -67
  556. data/vendor/plugins/paperclip/lib/paperclip/attachment.rb +233 -117
  557. data/vendor/plugins/paperclip/lib/paperclip/callback_compatability.rb +33 -0
  558. data/vendor/plugins/paperclip/lib/paperclip/geometry.rb +4 -3
  559. data/vendor/plugins/paperclip/lib/paperclip/interpolations.rb +105 -0
  560. data/vendor/plugins/paperclip/lib/paperclip/iostream.rb +16 -1
  561. data/vendor/plugins/paperclip/lib/paperclip/matchers.rb +4 -0
  562. data/vendor/plugins/paperclip/lib/paperclip/matchers/have_attached_file_matcher.rb +49 -0
  563. data/vendor/plugins/paperclip/lib/paperclip/matchers/validate_attachment_content_type_matcher.rb +66 -0
  564. data/vendor/plugins/paperclip/lib/paperclip/matchers/validate_attachment_presence_matcher.rb +48 -0
  565. data/vendor/plugins/paperclip/lib/paperclip/matchers/validate_attachment_size_matcher.rb +83 -0
  566. data/vendor/plugins/paperclip/lib/paperclip/processor.rb +49 -0
  567. data/vendor/plugins/paperclip/lib/paperclip/storage.rb +54 -25
  568. data/vendor/plugins/paperclip/lib/paperclip/thumbnail.rb +13 -31
  569. data/vendor/plugins/paperclip/lib/paperclip/upfile.rb +11 -0
  570. data/vendor/plugins/paperclip/paperclip.gemspec +37 -0
  571. data/vendor/plugins/paperclip/shoulda_macros/paperclip.rb +58 -22
  572. data/vendor/plugins/paperclip/tasks/paperclip_tasks.rake +1 -1
  573. data/vendor/plugins/paperclip/test/attachment_test.rb +460 -54
  574. data/vendor/plugins/paperclip/test/database.yml +0 -1
  575. data/vendor/plugins/paperclip/test/fixtures/s3.yml +4 -0
  576. data/vendor/plugins/paperclip/test/fixtures/twopage.pdf +0 -0
  577. data/vendor/plugins/paperclip/test/geometry_test.rb +22 -13
  578. data/vendor/plugins/paperclip/test/helper.rb +46 -3
  579. data/vendor/plugins/paperclip/test/integration_test.rb +140 -52
  580. data/vendor/plugins/paperclip/test/interpolations_test.rb +120 -0
  581. data/vendor/plugins/paperclip/test/iostream_test.rb +32 -21
  582. data/vendor/plugins/paperclip/test/matchers/have_attached_file_matcher_test.rb +21 -0
  583. data/vendor/plugins/paperclip/test/matchers/validate_attachment_content_type_matcher_test.rb +30 -0
  584. data/vendor/plugins/paperclip/test/matchers/validate_attachment_presence_matcher_test.rb +21 -0
  585. data/vendor/plugins/paperclip/test/matchers/validate_attachment_size_matcher_test.rb +50 -0
  586. data/vendor/plugins/paperclip/test/paperclip_test.rb +148 -36
  587. data/vendor/plugins/paperclip/test/processor_test.rb +10 -0
  588. data/vendor/plugins/paperclip/test/storage_test.rb +126 -16
  589. data/vendor/plugins/paperclip/test/thumbnail_test.rb +51 -19
  590. metadata +586 -622
  591. data/app/views/admin/products/_images.html.erb +0 -42
  592. data/app/views/admin/taxonomies/_yui_head.html.erb +0 -17
  593. data/app/views/orders/_billing.html.erb +0 -53
  594. data/app/views/orders/_checkout_form.html.erb +0 -14
  595. data/app/views/orders/_confirmation.html.erb +0 -11
  596. data/app/views/orders/_payment.html.erb +0 -30
  597. data/app/views/orders/_shipping.html.erb +0 -54
  598. data/app/views/orders/_shipping_method.html.erb +0 -10
  599. data/app/views/orders/checkout.html.erb +0 -15
  600. data/config/initializers/searchlogic.rb +0 -6
  601. data/db/sample/images/ror_bag.jpg +0 -0
  602. data/db/sample/images/ror_baseball_jersey.jpg +0 -0
  603. data/db/sample/images/ror_jr_spaghetti.jpg +0 -0
  604. data/db/sample/images/ror_mug.jpg +0 -0
  605. data/db/sample/images/ror_ringer_tshirt.jpg +0 -0
  606. data/db/sample/images/ror_stein.jpg +0 -0
  607. data/db/sample/images/ror_tote.jpg +0 -0
  608. data/db/sample/zone_members.yml +0 -16
  609. data/db/sample/zones.yml +0 -6
  610. data/lib/flat_rate.rb +0 -10
  611. data/lib/spree/checkout.rb +0 -74
  612. data/public/assets/products/1/mini/ror_tote.jpeg +0 -0
  613. data/public/assets/products/1/original/ror_tote.jpeg +0 -0
  614. data/public/assets/products/1/product/ror_tote.jpeg +0 -0
  615. data/public/assets/products/1/small/ror_tote.jpeg +0 -0
  616. data/public/assets/products/10/mini/ror_ringer_back.jpeg +0 -0
  617. data/public/assets/products/10/original/ror_ringer_back.jpeg +0 -0
  618. data/public/assets/products/10/product/ror_ringer_back.jpeg +0 -0
  619. data/public/assets/products/10/small/ror_ringer_back.jpeg +0 -0
  620. data/public/assets/products/1004/mini/apache_baseball.png +0 -0
  621. data/public/assets/products/1004/original/apache_baseball.png +0 -0
  622. data/public/assets/products/1004/product/apache_baseball.png +0 -0
  623. data/public/assets/products/1004/small/apache_baseball.png +0 -0
  624. data/public/assets/products/1008/mini/ruby_baseball.png +0 -0
  625. data/public/assets/products/1008/original/ruby_baseball.png +0 -0
  626. data/public/assets/products/1008/product/ruby_baseball.png +0 -0
  627. data/public/assets/products/1008/small/ruby_baseball.png +0 -0
  628. data/public/assets/products/11/mini/ror_stein.jpeg +0 -0
  629. data/public/assets/products/11/original/ror_stein.jpeg +0 -0
  630. data/public/assets/products/11/product/ror_stein.jpeg +0 -0
  631. data/public/assets/products/11/small/ror_stein.jpeg +0 -0
  632. data/public/assets/products/12/mini/ror_stein_back.jpeg +0 -0
  633. data/public/assets/products/12/original/ror_stein_back.jpeg +0 -0
  634. data/public/assets/products/12/product/ror_stein_back.jpeg +0 -0
  635. data/public/assets/products/12/small/ror_stein_back.jpeg +0 -0
  636. data/public/assets/products/2/mini/ror_tote_back.jpeg +0 -0
  637. data/public/assets/products/2/original/ror_tote_back.jpeg +0 -0
  638. data/public/assets/products/2/product/ror_tote_back.jpeg +0 -0
  639. data/public/assets/products/2/small/ror_tote_back.jpeg +0 -0
  640. data/public/assets/products/3/mini/ror_bag.jpeg +0 -0
  641. data/public/assets/products/3/original/ror_bag.jpeg +0 -0
  642. data/public/assets/products/3/product/ror_bag.jpeg +0 -0
  643. data/public/assets/products/3/small/ror_bag.jpeg +0 -0
  644. data/public/assets/products/4/mini/ror_baseball.jpeg +0 -0
  645. data/public/assets/products/4/original/ror_baseball.jpeg +0 -0
  646. data/public/assets/products/4/product/ror_baseball.jpeg +0 -0
  647. data/public/assets/products/4/small/ror_baseball.jpeg +0 -0
  648. data/public/assets/products/5/mini/ror_baseball_back.jpeg +0 -0
  649. data/public/assets/products/5/original/ror_baseball_back.jpeg +0 -0
  650. data/public/assets/products/5/product/ror_baseball_back.jpeg +0 -0
  651. data/public/assets/products/5/small/ror_baseball_back.jpeg +0 -0
  652. data/public/assets/products/6/mini/ror_jr_spaghetti.jpeg +0 -0
  653. data/public/assets/products/6/original/ror_jr_spaghetti.jpeg +0 -0
  654. data/public/assets/products/6/product/ror_jr_spaghetti.jpeg +0 -0
  655. data/public/assets/products/6/small/ror_jr_spaghetti.jpeg +0 -0
  656. data/public/assets/products/7/mini/ror_mug.jpeg +0 -0
  657. data/public/assets/products/7/original/ror_mug.jpeg +0 -0
  658. data/public/assets/products/7/product/ror_mug.jpeg +0 -0
  659. data/public/assets/products/7/small/ror_mug.jpeg +0 -0
  660. data/public/assets/products/8/mini/ror_mug_back.jpeg +0 -0
  661. data/public/assets/products/8/original/ror_mug_back.jpeg +0 -0
  662. data/public/assets/products/8/product/ror_mug_back.jpeg +0 -0
  663. data/public/assets/products/8/small/ror_mug_back.jpeg +0 -0
  664. data/public/assets/products/9/mini/ror_ringer.jpeg +0 -0
  665. data/public/assets/products/9/original/ror_ringer.jpeg +0 -0
  666. data/public/assets/products/9/product/ror_ringer.jpeg +0 -0
  667. data/public/assets/products/9/small/ror_ringer.jpeg +0 -0
  668. data/public/javascripts/jquery.validate.pack.js +0 -15
  669. data/public/javascripts/spree-yui.js +0 -693
  670. data/public/javascripts/yui-includes.js +0 -57
  671. data/public/stylesheets/admin/david-admin.css +0 -210
  672. data/spec/controllers/admin/shipments_controller_spec.rb +0 -30
  673. data/spec/helpers/admin/configurations_helper_spec.rb +0 -11
  674. data/spec/helpers/admin/mail_settings_helper_spec.rb +0 -11
  675. data/spec/helpers/products_helper_spec.rb +0 -12
  676. data/spec/helpers/spree/base_helper_spec.rb +0 -30
  677. data/spec/models/country_spec.rb +0 -29
  678. data/spec/models/line_item_spec.rb +0 -78
  679. data/spec/models/preference_spec.rb +0 -185
  680. data/spec/models/product_spec.rb +0 -207
  681. data/spec/models/shipping_method_spec.rb +0 -59
  682. data/spec/models/state_event_spec.rb +0 -12
  683. data/spec/models/state_spec.rb +0 -28
  684. data/spec/models/variant_spec.rb +0 -98
  685. data/vendor/extensions/flat_rate_shipping/README.markdown +0 -3
  686. data/vendor/extensions/flat_rate_shipping/Rakefile +0 -120
  687. data/vendor/extensions/flat_rate_shipping/flat_rate_shipping_extension.rb +0 -11
  688. data/vendor/extensions/flat_rate_shipping/lib/flat_rate_shipping_configuration.rb +0 -7
  689. data/vendor/extensions/flat_rate_shipping/lib/spree/flat_rate_shipping/calculator.rb +0 -9
  690. data/vendor/extensions/flat_rate_shipping/lib/spree/flat_rate_shipping/config.rb +0 -22
  691. data/vendor/extensions/flat_rate_shipping/lib/tasks/flat_rate_shipping_extension_tasks.rake +0 -29
  692. data/vendor/extensions/flat_rate_shipping/spec/spec.opts +0 -6
  693. data/vendor/extensions/flat_rate_shipping/spec/spec_helper.rb +0 -37
  694. data/vendor/extensions/tax_calculator/README.markdown +0 -8
  695. data/vendor/extensions/tax_calculator/Rakefile +0 -120
  696. data/vendor/extensions/tax_calculator/app/controllers/admin/tax_rates_controller.rb +0 -27
  697. data/vendor/extensions/tax_calculator/app/views/admin/tax_rates/_form.html.erb +0 -20
  698. data/vendor/extensions/tax_calculator/config/locales/de.yml +0 -30
  699. data/vendor/extensions/tax_calculator/config/locales/en-GB.yml +0 -30
  700. data/vendor/extensions/tax_calculator/config/locales/en-US.yml +0 -32
  701. data/vendor/extensions/tax_calculator/config/locales/es.yml +0 -30
  702. data/vendor/extensions/tax_calculator/config/locales/it.yml +0 -30
  703. data/vendor/extensions/tax_calculator/config/locales/nb-NO.yml +0 -30
  704. data/vendor/extensions/tax_calculator/config/locales/pl.yml +0 -30
  705. data/vendor/extensions/tax_calculator/config/locales/pt-BR.yml +0 -30
  706. data/vendor/extensions/tax_calculator/config/routes.rb +0 -4
  707. data/vendor/extensions/tax_calculator/lib/spree/sales_tax_calculator.rb +0 -31
  708. data/vendor/extensions/tax_calculator/lib/spree/tax/config.rb +0 -22
  709. data/vendor/extensions/tax_calculator/lib/spree/tax_calculator.rb +0 -18
  710. data/vendor/extensions/tax_calculator/lib/spree/vat_calculator.rb +0 -42
  711. data/vendor/extensions/tax_calculator/lib/tasks/tax_calculator_extension_tasks.rake +0 -18
  712. data/vendor/extensions/tax_calculator/lib/tax_configuration.rb +0 -7
  713. data/vendor/extensions/tax_calculator/spec/controllers/tax_calculator_spec.rb +0 -12
  714. data/vendor/extensions/tax_calculator/spec/helpers/admin/tax_rates_helper_spec.rb +0 -6
  715. data/vendor/extensions/tax_calculator/spec/helpers/products_helper_spec.rb +0 -88
  716. data/vendor/extensions/tax_calculator/spec/models/sales_tax_calculator_spec.rb +0 -53
  717. data/vendor/extensions/tax_calculator/spec/models/tax_calculator_spec.rb +0 -58
  718. data/vendor/extensions/tax_calculator/spec/models/tax_rate_spec.rb +0 -17
  719. data/vendor/extensions/tax_calculator/spec/models/vat_calculator_spec.rb +0 -56
  720. data/vendor/extensions/tax_calculator/spec/spec.opts +0 -6
  721. data/vendor/extensions/tax_calculator/spec/spec_helper.rb +0 -42
  722. data/vendor/extensions/tax_calculator/tax_calculator_extension.rb +0 -41
  723. data/vendor/plugins/resource_controller/test/Rakefile +0 -10
  724. data/vendor/plugins/resource_controller/test/app/controllers/accounts_controller.rb +0 -6
  725. data/vendor/plugins/resource_controller/test/app/controllers/application.rb +0 -7
  726. data/vendor/plugins/resource_controller/test/app/controllers/cms/options_controller.rb +0 -3
  727. data/vendor/plugins/resource_controller/test/app/controllers/cms/personnel_controller.rb +0 -2
  728. data/vendor/plugins/resource_controller/test/app/controllers/cms/photos_controller.rb +0 -6
  729. data/vendor/plugins/resource_controller/test/app/controllers/cms/products_controller.rb +0 -3
  730. data/vendor/plugins/resource_controller/test/app/controllers/comments_controller.rb +0 -3
  731. data/vendor/plugins/resource_controller/test/app/controllers/images_controller.rb +0 -4
  732. data/vendor/plugins/resource_controller/test/app/controllers/options_controller.rb +0 -8
  733. data/vendor/plugins/resource_controller/test/app/controllers/people_controller.rb +0 -9
  734. data/vendor/plugins/resource_controller/test/app/controllers/photos_controller.rb +0 -11
  735. data/vendor/plugins/resource_controller/test/app/controllers/posts_controller.rb +0 -10
  736. data/vendor/plugins/resource_controller/test/app/controllers/projects_controller.rb +0 -3
  737. data/vendor/plugins/resource_controller/test/app/controllers/somethings_controller.rb +0 -3
  738. data/vendor/plugins/resource_controller/test/app/controllers/tags_controller.rb +0 -13
  739. data/vendor/plugins/resource_controller/test/app/controllers/users_controller.rb +0 -12
  740. data/vendor/plugins/resource_controller/test/app/helpers/accounts_helper.rb +0 -2
  741. data/vendor/plugins/resource_controller/test/app/helpers/application_helper.rb +0 -3
  742. data/vendor/plugins/resource_controller/test/app/helpers/cms/products_helper.rb +0 -2
  743. data/vendor/plugins/resource_controller/test/app/helpers/comments_helper.rb +0 -2
  744. data/vendor/plugins/resource_controller/test/app/helpers/images_helper.rb +0 -2
  745. data/vendor/plugins/resource_controller/test/app/helpers/options_helper.rb +0 -2
  746. data/vendor/plugins/resource_controller/test/app/helpers/people_helper.rb +0 -2
  747. data/vendor/plugins/resource_controller/test/app/helpers/photos_helper.rb +0 -2
  748. data/vendor/plugins/resource_controller/test/app/helpers/posts_helper.rb +0 -2
  749. data/vendor/plugins/resource_controller/test/app/helpers/projects_helper.rb +0 -2
  750. data/vendor/plugins/resource_controller/test/app/helpers/somethings_helper.rb +0 -2
  751. data/vendor/plugins/resource_controller/test/app/helpers/tags_helper.rb +0 -2
  752. data/vendor/plugins/resource_controller/test/app/helpers/users_helper.rb +0 -2
  753. data/vendor/plugins/resource_controller/test/app/models/account.rb +0 -4
  754. data/vendor/plugins/resource_controller/test/app/models/comment.rb +0 -3
  755. data/vendor/plugins/resource_controller/test/app/models/image.rb +0 -3
  756. data/vendor/plugins/resource_controller/test/app/models/option.rb +0 -3
  757. data/vendor/plugins/resource_controller/test/app/models/personnel.rb +0 -3
  758. data/vendor/plugins/resource_controller/test/app/models/photo.rb +0 -5
  759. data/vendor/plugins/resource_controller/test/app/models/post.rb +0 -3
  760. data/vendor/plugins/resource_controller/test/app/models/product.rb +0 -3
  761. data/vendor/plugins/resource_controller/test/app/models/project.rb +0 -2
  762. data/vendor/plugins/resource_controller/test/app/models/something.rb +0 -2
  763. data/vendor/plugins/resource_controller/test/app/models/tag.rb +0 -3
  764. data/vendor/plugins/resource_controller/test/app/models/user.rb +0 -3
  765. data/vendor/plugins/resource_controller/test/app/views/accounts/_form.html.erb +0 -4
  766. data/vendor/plugins/resource_controller/test/app/views/accounts/edit.html.erb +0 -14
  767. data/vendor/plugins/resource_controller/test/app/views/accounts/new.html.erb +0 -12
  768. data/vendor/plugins/resource_controller/test/app/views/accounts/show.html.erb +0 -5
  769. data/vendor/plugins/resource_controller/test/app/views/cms/options/edit.rhtml +0 -17
  770. data/vendor/plugins/resource_controller/test/app/views/cms/options/index.rhtml +0 -20
  771. data/vendor/plugins/resource_controller/test/app/views/cms/options/new.rhtml +0 -16
  772. data/vendor/plugins/resource_controller/test/app/views/cms/options/show.rhtml +0 -8
  773. data/vendor/plugins/resource_controller/test/app/views/cms/photos/edit.rhtml +0 -17
  774. data/vendor/plugins/resource_controller/test/app/views/cms/photos/index.rhtml +0 -20
  775. data/vendor/plugins/resource_controller/test/app/views/cms/photos/new.rhtml +0 -16
  776. data/vendor/plugins/resource_controller/test/app/views/cms/photos/show.rhtml +0 -8
  777. data/vendor/plugins/resource_controller/test/app/views/cms/products/edit.rhtml +0 -17
  778. data/vendor/plugins/resource_controller/test/app/views/cms/products/index.rhtml +0 -20
  779. data/vendor/plugins/resource_controller/test/app/views/cms/products/new.rhtml +0 -16
  780. data/vendor/plugins/resource_controller/test/app/views/cms/products/show.rhtml +0 -8
  781. data/vendor/plugins/resource_controller/test/app/views/comments/edit.rhtml +0 -27
  782. data/vendor/plugins/resource_controller/test/app/views/comments/index.rhtml +0 -24
  783. data/vendor/plugins/resource_controller/test/app/views/comments/new.rhtml +0 -26
  784. data/vendor/plugins/resource_controller/test/app/views/comments/show.rhtml +0 -18
  785. data/vendor/plugins/resource_controller/test/app/views/images/_form.html.erb +0 -4
  786. data/vendor/plugins/resource_controller/test/app/views/images/edit.html.erb +0 -14
  787. data/vendor/plugins/resource_controller/test/app/views/images/new.html.erb +0 -12
  788. data/vendor/plugins/resource_controller/test/app/views/layouts/comments.rhtml +0 -17
  789. data/vendor/plugins/resource_controller/test/app/views/layouts/options.rhtml +0 -17
  790. data/vendor/plugins/resource_controller/test/app/views/layouts/people.rhtml +0 -17
  791. data/vendor/plugins/resource_controller/test/app/views/layouts/photos.rhtml +0 -17
  792. data/vendor/plugins/resource_controller/test/app/views/layouts/projects.rhtml +0 -17
  793. data/vendor/plugins/resource_controller/test/app/views/layouts/somethings.rhtml +0 -17
  794. data/vendor/plugins/resource_controller/test/app/views/layouts/tags.rhtml +0 -17
  795. data/vendor/plugins/resource_controller/test/app/views/options/_form.html.erb +0 -8
  796. data/vendor/plugins/resource_controller/test/app/views/options/edit.html.erb +0 -16
  797. data/vendor/plugins/resource_controller/test/app/views/options/index.html.erb +0 -21
  798. data/vendor/plugins/resource_controller/test/app/views/options/new.html.erb +0 -12
  799. data/vendor/plugins/resource_controller/test/app/views/options/show.html.erb +0 -10
  800. data/vendor/plugins/resource_controller/test/app/views/people/edit.rhtml +0 -17
  801. data/vendor/plugins/resource_controller/test/app/views/people/index.rhtml +0 -20
  802. data/vendor/plugins/resource_controller/test/app/views/people/new.rhtml +0 -16
  803. data/vendor/plugins/resource_controller/test/app/views/people/show.rhtml +0 -8
  804. data/vendor/plugins/resource_controller/test/app/views/photos/edit.rhtml +0 -17
  805. data/vendor/plugins/resource_controller/test/app/views/photos/index.rhtml +0 -20
  806. data/vendor/plugins/resource_controller/test/app/views/photos/new.rhtml +0 -16
  807. data/vendor/plugins/resource_controller/test/app/views/photos/show.rhtml +0 -8
  808. data/vendor/plugins/resource_controller/test/app/views/posts/edit.rhtml +0 -22
  809. data/vendor/plugins/resource_controller/test/app/views/posts/index.rhtml +0 -22
  810. data/vendor/plugins/resource_controller/test/app/views/posts/new.rhtml +0 -21
  811. data/vendor/plugins/resource_controller/test/app/views/posts/show.rhtml +0 -13
  812. data/vendor/plugins/resource_controller/test/app/views/projects/edit.rhtml +0 -17
  813. data/vendor/plugins/resource_controller/test/app/views/projects/index.rhtml +0 -20
  814. data/vendor/plugins/resource_controller/test/app/views/projects/new.rhtml +0 -16
  815. data/vendor/plugins/resource_controller/test/app/views/projects/show.rhtml +0 -8
  816. data/vendor/plugins/resource_controller/test/app/views/somethings/edit.rhtml +0 -17
  817. data/vendor/plugins/resource_controller/test/app/views/somethings/index.rhtml +0 -20
  818. data/vendor/plugins/resource_controller/test/app/views/somethings/new.rhtml +0 -16
  819. data/vendor/plugins/resource_controller/test/app/views/somethings/show.rhtml +0 -8
  820. data/vendor/plugins/resource_controller/test/app/views/tags/edit.rhtml +0 -17
  821. data/vendor/plugins/resource_controller/test/app/views/tags/index.rhtml +0 -20
  822. data/vendor/plugins/resource_controller/test/app/views/tags/new.rhtml +0 -16
  823. data/vendor/plugins/resource_controller/test/app/views/tags/show.rhtml +0 -8
  824. data/vendor/plugins/resource_controller/test/app/views/users/edit.rhtml +0 -17
  825. data/vendor/plugins/resource_controller/test/app/views/users/index.rhtml +0 -20
  826. data/vendor/plugins/resource_controller/test/app/views/users/new.rhtml +0 -16
  827. data/vendor/plugins/resource_controller/test/app/views/users/show.rhtml +0 -8
  828. data/vendor/plugins/resource_controller/test/config/database.yml +0 -9
  829. data/vendor/plugins/resource_controller/test/config/environment.rb +0 -47
  830. data/vendor/plugins/resource_controller/test/config/environments/development.rb +0 -21
  831. data/vendor/plugins/resource_controller/test/config/environments/test.rb +0 -19
  832. data/vendor/plugins/resource_controller/test/config/initializers/inflections.rb +0 -14
  833. data/vendor/plugins/resource_controller/test/config/routes.rb +0 -61
  834. data/vendor/plugins/resource_controller/test/db/migrate/001_create_posts.rb +0 -12
  835. data/vendor/plugins/resource_controller/test/db/migrate/002_create_products.rb +0 -11
  836. data/vendor/plugins/resource_controller/test/db/migrate/003_create_comments.rb +0 -13
  837. data/vendor/plugins/resource_controller/test/db/migrate/004_create_options.rb +0 -13
  838. data/vendor/plugins/resource_controller/test/db/migrate/005_create_photos.rb +0 -11
  839. data/vendor/plugins/resource_controller/test/db/migrate/006_create_tags.rb +0 -17
  840. data/vendor/plugins/resource_controller/test/db/migrate/007_create_somethings.rb +0 -11
  841. data/vendor/plugins/resource_controller/test/db/migrate/008_create_accounts.rb +0 -11
  842. data/vendor/plugins/resource_controller/test/db/migrate/009_add_account_id_to_photos.rb +0 -9
  843. data/vendor/plugins/resource_controller/test/db/migrate/010_create_projects.rb +0 -11
  844. data/vendor/plugins/resource_controller/test/db/migrate/011_create_images.rb +0 -12
  845. data/vendor/plugins/resource_controller/test/db/migrate/012_create_users.rb +0 -11
  846. data/vendor/plugins/resource_controller/test/db/migrate/013_create_personnel.rb +0 -11
  847. data/vendor/plugins/resource_controller/test/db/migrate/014_add_personnel_id_to_photos.rb +0 -9
  848. data/vendor/plugins/resource_controller/test/db/schema.rb +0 -78
  849. data/vendor/plugins/resource_controller/test/script/console +0 -3
  850. data/vendor/plugins/resource_controller/test/script/destroy +0 -3
  851. data/vendor/plugins/resource_controller/test/script/generate +0 -3
  852. data/vendor/plugins/resource_controller/test/script/server +0 -3
  853. data/vendor/plugins/resource_controller/test/test/fixtures/accounts.yml +0 -7
  854. data/vendor/plugins/resource_controller/test/test/fixtures/comments.yml +0 -11
  855. data/vendor/plugins/resource_controller/test/test/fixtures/images.yml +0 -6
  856. data/vendor/plugins/resource_controller/test/test/fixtures/options.yml +0 -9
  857. data/vendor/plugins/resource_controller/test/test/fixtures/personnel.yml +0 -5
  858. data/vendor/plugins/resource_controller/test/test/fixtures/photos.yml +0 -9
  859. data/vendor/plugins/resource_controller/test/test/fixtures/photos_tags.yml +0 -3
  860. data/vendor/plugins/resource_controller/test/test/fixtures/posts.yml +0 -9
  861. data/vendor/plugins/resource_controller/test/test/fixtures/products.yml +0 -7
  862. data/vendor/plugins/resource_controller/test/test/fixtures/projects.yml +0 -7
  863. data/vendor/plugins/resource_controller/test/test/fixtures/somethings.yml +0 -7
  864. data/vendor/plugins/resource_controller/test/test/fixtures/tags.yml +0 -7
  865. data/vendor/plugins/resource_controller/test/test/fixtures/users.yml +0 -5
  866. data/vendor/plugins/resource_controller/test/test/functional/cms/options_controller_test.rb +0 -23
  867. data/vendor/plugins/resource_controller/test/test/functional/cms/photos_controller_test.rb +0 -43
  868. data/vendor/plugins/resource_controller/test/test/functional/cms/products_controller_test.rb +0 -23
  869. data/vendor/plugins/resource_controller/test/test/functional/comments_controller_test.rb +0 -26
  870. data/vendor/plugins/resource_controller/test/test/functional/images_controller_test.rb +0 -37
  871. data/vendor/plugins/resource_controller/test/test/functional/people_controller_test.rb +0 -34
  872. data/vendor/plugins/resource_controller/test/test/functional/photos_controller_test.rb +0 -130
  873. data/vendor/plugins/resource_controller/test/test/functional/posts_controller_test.rb +0 -34
  874. data/vendor/plugins/resource_controller/test/test/functional/projects_controller_test.rb +0 -18
  875. data/vendor/plugins/resource_controller/test/test/functional/somethings_controller_test.rb +0 -28
  876. data/vendor/plugins/resource_controller/test/test/functional/tags_controller_test.rb +0 -64
  877. data/vendor/plugins/resource_controller/test/test/functional/users_controller_test.rb +0 -24
  878. data/vendor/plugins/resource_controller/test/test/test_helper.rb +0 -12
  879. data/vendor/plugins/resource_controller/test/test/unit/accessors_test.rb +0 -110
  880. data/vendor/plugins/resource_controller/test/test/unit/account_test.rb +0 -7
  881. data/vendor/plugins/resource_controller/test/test/unit/action_options_test.rb +0 -109
  882. data/vendor/plugins/resource_controller/test/test/unit/base_test.rb +0 -11
  883. data/vendor/plugins/resource_controller/test/test/unit/comment_test.rb +0 -10
  884. data/vendor/plugins/resource_controller/test/test/unit/failable_action_options_test.rb +0 -77
  885. data/vendor/plugins/resource_controller/test/test/unit/helpers/current_objects_test.rb +0 -133
  886. data/vendor/plugins/resource_controller/test/test/unit/helpers/internal_test.rb +0 -106
  887. data/vendor/plugins/resource_controller/test/test/unit/helpers/nested_test.rb +0 -86
  888. data/vendor/plugins/resource_controller/test/test/unit/helpers/singleton_current_objects_test.rb +0 -68
  889. data/vendor/plugins/resource_controller/test/test/unit/helpers/singleton_nested_test.rb +0 -77
  890. data/vendor/plugins/resource_controller/test/test/unit/helpers/singleton_urls_test.rb +0 -67
  891. data/vendor/plugins/resource_controller/test/test/unit/helpers/urls_test.rb +0 -75
  892. data/vendor/plugins/resource_controller/test/test/unit/helpers_test.rb +0 -25
  893. data/vendor/plugins/resource_controller/test/test/unit/image_test.rb +0 -7
  894. data/vendor/plugins/resource_controller/test/test/unit/option_test.rb +0 -10
  895. data/vendor/plugins/resource_controller/test/test/unit/photo_test.rb +0 -10
  896. data/vendor/plugins/resource_controller/test/test/unit/post_test.rb +0 -10
  897. data/vendor/plugins/resource_controller/test/test/unit/project_test.rb +0 -10
  898. data/vendor/plugins/resource_controller/test/test/unit/response_collector_test.rb +0 -49
  899. data/vendor/plugins/resource_controller/test/test/unit/something_test.rb +0 -10
  900. data/vendor/plugins/resource_controller/test/test/unit/tag_test.rb +0 -10
  901. data/vendor/plugins/resource_controller/test/test/unit/urligence_test.rb +0 -203
  902. data/vendor/plugins/resource_controller/test/vendor/plugins/shoulda/Rakefile +0 -32
  903. data/vendor/plugins/resource_controller/test/vendor/plugins/shoulda/bin/convert_to_should_syntax +0 -40
  904. data/vendor/plugins/resource_controller/test/vendor/plugins/shoulda/init.rb +0 -3
  905. data/vendor/plugins/resource_controller/test/vendor/plugins/shoulda/lib/shoulda.rb +0 -43
  906. data/vendor/plugins/resource_controller/test/vendor/plugins/shoulda/lib/shoulda/active_record_helpers.rb +0 -580
  907. data/vendor/plugins/resource_controller/test/vendor/plugins/shoulda/lib/shoulda/color.rb +0 -77
  908. data/vendor/plugins/resource_controller/test/vendor/plugins/shoulda/lib/shoulda/controller_tests/controller_tests.rb +0 -467
  909. data/vendor/plugins/resource_controller/test/vendor/plugins/shoulda/lib/shoulda/controller_tests/formats/html.rb +0 -201
  910. data/vendor/plugins/resource_controller/test/vendor/plugins/shoulda/lib/shoulda/controller_tests/formats/xml.rb +0 -170
  911. data/vendor/plugins/resource_controller/test/vendor/plugins/shoulda/lib/shoulda/gem/proc_extensions.rb +0 -14
  912. data/vendor/plugins/resource_controller/test/vendor/plugins/shoulda/lib/shoulda/gem/shoulda.rb +0 -239
  913. data/vendor/plugins/resource_controller/test/vendor/plugins/shoulda/lib/shoulda/general.rb +0 -118
  914. data/vendor/plugins/resource_controller/test/vendor/plugins/shoulda/lib/shoulda/private_helpers.rb +0 -22
@@ -1,4 +1,4 @@
1
- class OrderMailer < ActionMailer::Base
1
+ class OrderMailer < ActionMailer::QueueMailer
2
2
  helper "spree/base"
3
3
 
4
4
  def confirm(order, resend = false)
@@ -0,0 +1,15 @@
1
+ class OrderObserver < ActiveRecord::Observer
2
+ observe :order
3
+
4
+ # Generic transition callback *after* the transition is performed
5
+ def after_transition(record, attribute_name, event_name, from_state, to_state)
6
+ current_user_session = UserSession.activated? ? UserSession.find : nil
7
+ author = current_user_session ? current_user_session.user : record.user
8
+ record.state_events.create({
9
+ :previous_state => from_state,
10
+ :name => event_name,
11
+ :user_id => author && author.id
12
+ })
13
+ ActiveRecord::Base.logger.info("Order##{record.id}: #{from_state} => #{to_state}")
14
+ end
15
+ end
@@ -1,20 +1,50 @@
1
+ # PRODUCTS
2
+ # Products represent an entity for sale in a store.
3
+ # Products can have variations, called variants
4
+ # Products properties include description, permalink, availability,
5
+ # shipping category, etc. that do not change by variant.
6
+ #
7
+ # MASTER VARIANT
8
+ # Every product has one master variant, which stores master price and sku, size and weight, etc.
9
+ # The master variant does not have option values associated with it.
10
+ # Price, SKU, size, weight, etc. are all delegated to the master variant.
11
+ # Contains on_hand inventory levels only when there are no variants for the product.
12
+ #
13
+ # VARIANTS
14
+ # All variants can access the product properties directly (via reverse delegation).
15
+ # Inventory units are tied to Variant.
16
+ # The master variant can have inventory units, but not option values.
17
+ # All other variants have option values and may have inventory units.
18
+ # Sum of on_hand each variant's inventory level determine "on_hand" level for the product.
19
+ #
1
20
  class Product < ActiveRecord::Base
2
- after_update :adjust_inventory, :adjust_variant_price
3
- after_create :set_initial_inventory
4
-
5
21
  has_many :product_option_types, :dependent => :destroy
6
22
  has_many :option_types, :through => :product_option_types
7
23
  has_many :variants, :dependent => :destroy
8
- has_many :images, :as => :viewable, :order => :position, :dependent => :destroy
9
24
  has_many :product_properties, :dependent => :destroy, :attributes => true
10
25
  has_many :properties, :through => :product_properties
26
+ has_many :images, :as => :viewable, :order => :position, :dependent => :destroy
27
+
11
28
  belongs_to :tax_category
12
29
  has_and_belongs_to_many :taxons
13
30
  belongs_to :shipping_category
14
31
 
32
+ has_one :master,
33
+ :class_name => 'Variant',
34
+ :conditions => ["variants.is_master = ? AND variants.deleted_at IS NULL", true],
35
+ :dependent => :destroy
36
+ delegate_belongs_to :master, :sku, :price, :weight, :height, :width, :depth, :is_master
37
+ after_create :set_master_variant_defaults
38
+ after_create :add_properties_and_option_types_from_prototype
39
+ after_save :set_master_on_hand_to_zero_when_product_has_variants
40
+ after_save :save_master
41
+
42
+ has_many :variants,
43
+ :conditions => ["variants.is_master = ? AND variants.deleted_at IS NULL", false],
44
+ :dependent => :destroy
15
45
 
16
- validates_presence_of :name
17
- validates_presence_of :master_price
46
+ validates_presence_of :name
47
+ validates_presence_of :price
18
48
 
19
49
  accepts_nested_attributes_for :product_properties
20
50
 
@@ -23,66 +53,76 @@ class Product < ActiveRecord::Base
23
53
  alias :options :product_option_types
24
54
 
25
55
  # default product scope only lists available and non-deleted products
26
- named_scope :active, lambda { |*args| { :conditions => ["products.available_on <= ? and products.deleted_at is null", (args.first || Time.zone.now)] } }
27
- named_scope :not_deleted, lambda { |*args| { :conditions => ["products.deleted_at is null", (args.first || Time.zone.now)] } }
28
-
29
- named_scope :available, lambda { |*args| { :conditions => ["products.available_on <= ?", (args.first || Time.zone.now)] } }
56
+ named_scope :active, lambda { |*args| Product.not_deleted.available(args.first).scope(:find) }
30
57
 
58
+ named_scope :not_deleted, { :conditions => "products.deleted_at is null" }
59
+ named_scope :available, lambda { |*args| { :conditions => ["products.available_on <= ?", args.first || Time.zone.now] } }
31
60
 
32
- named_scope :with_property_value, lambda { |property_id, value| { :include => :product_properties, :conditions => ["product_properties.property_id = ? AND product_properties.value = ?", property_id, value] } }
61
+ # other useful product scopes
62
+ include ProductScopes
33
63
 
34
-
35
- def to_param
36
- return permalink unless permalink.blank?
37
- name.parameterize.to_s
64
+
65
+ # ----------------------------------------------------------------------------------------------------------
66
+ #
67
+ # The following methods are deprecated and will be removed in a future version of Spree
68
+ #
69
+ # ----------------------------------------------------------------------------------------------------------
70
+
71
+ def master_price
72
+ warn "[DEPRECATION] `Product.master_price` is deprecated. Please use `Product.price` instead. (called from #{caller[0]}"
73
+ self.price
38
74
  end
39
75
 
40
- # checks is there are any meaningful variants (ie. variants with at least one option value)
41
- def variants?
42
- self.variants.each do |v|
43
- return true unless v.option_values.empty?
44
- end
45
- false
76
+ def master_price=(value)
77
+ warn "[DEPRECATION] `Product.master_price=` is deprecated. Please use `Product.price=` instead. (called from #{caller[0]}"
78
+ self.price = value
46
79
  end
47
-
48
- # special method that returns the single empty variant (but only if there are no meaningful variants)
49
- def variant
50
- return nil if variants?
51
- variants.first
80
+
81
+ def variants?
82
+ warn "[DEPRECATION] `Product.variants?` is deprecated. Please use `Product.has_variants?` instead. (called from #{caller[0]})"
83
+ self.has_variants?
52
84
  end
53
85
 
54
- # Pseduo Attribute. Products don't really have inventory - variants do. We want to make the variant stuff transparent
55
- # in the simple cases, however, so we pretend like we're setting the inventory of the product when in fact, we're really
56
- # changing the inventory of the so-called "empty variant."
57
- def on_hand
58
- variant.on_hand
86
+ def variant
87
+ warn "[DEPRECATION] `Product.variant` is deprecated. Please use `Product.master` instead. (called from #{caller[0]})"
88
+ self.master
59
89
  end
60
90
 
61
- def on_hand=(quantity)
62
- @quantity = quantity
91
+ # ----------------------------------------------------------------------------------------------------------
92
+ # end deprecation region
93
+ # ----------------------------------------------------------------------------------------------------------
94
+
95
+ def to_param
96
+ return permalink unless permalink.blank?
97
+ name.to_url
63
98
  end
64
99
 
65
- # Pseduo attribute for SKU, similiar as on_hand above.
66
- def sku
67
- variant.sku if variant
100
+ # returns true if the product has any variants (the master variant is not a member of the variants array)
101
+ def has_variants?
102
+ !variants.empty?
68
103
  end
69
-
70
- def sku=(sku)
71
- variant.sku = sku if variant
104
+
105
+ # returns the number of inventory units "on_hand" for this product
106
+ def on_hand
107
+ has_variants? ? variants.inject(0){|sum, v| sum + v.on_hand} : master.on_hand
72
108
  end
73
-
109
+
110
+ # adjusts the "on_hand" inventory level for the product up or down to match the given new_level
111
+ def on_hand=(new_level)
112
+ raise "cannot set on_hand of product with variants" if has_variants?
113
+ master.on_hand = new_level
114
+ end
115
+
116
+ # Returns true if there are inventory units (any variant) with "on_hand" state for this product
74
117
  def has_stock?
75
- variants.inject(false){ |tf, v| tf ||= v.in_stock }
118
+ master.in_stock? || !!variants.detect{|v| v.in_stock?}
76
119
  end
77
-
78
-
120
+
79
121
  # Adding properties and option types on creation based on a chosen prototype
80
-
81
122
  attr_reader :prototype_id
82
123
  def prototype_id=(value)
83
124
  @prototype_id = value.to_i
84
125
  end
85
- after_create :add_properties_and_option_types_from_prototype
86
126
 
87
127
  def add_properties_and_option_types_from_prototype
88
128
  if prototype_id and prototype = Prototype.find_by_id(prototype_id)
@@ -93,48 +133,22 @@ class Product < ActiveRecord::Base
93
133
  end
94
134
  end
95
135
 
96
-
97
-
98
136
  private
99
137
 
100
- def adjust_inventory
101
- return if self.new_record?
102
- return unless @quantity && @quantity.is_integer?
103
- new_level = @quantity.to_i
104
- # don't allow negative on_hand inventory
105
- return if new_level < 0
106
- variant.save
107
- variant.inventory_units.with_state("backordered").each{|iu|
108
- if new_level > 0
109
- iu.fill_backorder
110
- new_level = new_level - 1
111
- end
112
- break if new_level < 1
113
- }
114
-
115
- adjustment = new_level - on_hand
116
- if adjustment > 0
117
- InventoryUnit.create_on_hand(variant, adjustment)
118
- reload
119
- elsif adjustment < 0
120
- InventoryUnit.destroy_on_hand(variant, adjustment.abs)
121
- reload
122
- end
123
- end
124
-
125
- def adjust_variant_price
126
- # If there's a master price change, make sure the empty variant has its price changed as well (Bug #61)
127
- if master_price_changed?
128
- variants.first.price = master_price
129
- variants.first.save
130
- end
131
- end
132
-
133
- def set_initial_inventory
134
- return unless @quantity && @quantity.is_integer?
135
- variant.save
136
- level = @quantity.to_i
137
- InventoryUnit.create_on_hand(variant, level)
138
- reload
139
- end
138
+ # the master on_hand is meaningless once a product has variants as the inventory
139
+ # units are now "contained" within the product variants
140
+ def set_master_on_hand_to_zero_when_product_has_variants
141
+ master.on_hand = 0 if has_variants?
142
+ end
143
+
144
+ # ensures the master variant is flagged as such
145
+ def set_master_variant_defaults
146
+ master.is_master = true
147
+ end
148
+
149
+ # there's a weird quirk with the delegate stuff that does not automatically save the delegate object
150
+ # when saving so we force a save using a hook.
151
+ def save_master
152
+ master.save if master
153
+ end
140
154
  end
@@ -2,12 +2,14 @@ class Shipment < ActiveRecord::Base
2
2
  belongs_to :order
3
3
  belongs_to :shipping_method
4
4
  belongs_to :address
5
+ has_one :charge, :as => :adjustment_source
5
6
 
6
7
  before_create :generate_shipment_number
7
- after_save :recalculate_tax
8
8
  after_save :transition_order
9
-
10
- accepts_nested_attributes_for :address
9
+ after_save :create_shipping_charge
10
+
11
+ attr_accessor :special_instructions
12
+ accepts_nested_attributes_for :address
11
13
 
12
14
  def shipped?
13
15
  self.shipped_at
@@ -18,7 +20,19 @@ class Shipment < ActiveRecord::Base
18
20
  self.shipped_at = Time.now
19
21
  end
20
22
 
21
- private
23
+ def create_shipping_charge
24
+ if shipping_method
25
+ self.charge ||= Charge.create({
26
+ :order => order,
27
+ :secondary_type => "ShippingCharge",
28
+ :description => "#{I18n.t(:shipping)} (#{shipping_method.name})",
29
+ :adjustment_source => self,
30
+ })
31
+ end
32
+ end
33
+
34
+ private
35
+
22
36
  def generate_shipment_number
23
37
  record = true
24
38
  while record
@@ -34,14 +48,6 @@ class Shipment < ActiveRecord::Base
34
48
  order.shipments.each do |shipment|
35
49
  return unless shipment.shipped?
36
50
  end
37
- current_user_session = UserSession.find
38
- current_user = current_user_session.user if current_user_session
39
- order.ship!
40
- order.state_events.create(:name => I18n.t('ship'), :user => current_user, :previous_state => order.state_was)
41
- end
42
-
43
- def recalculate_tax
44
- return unless order && order.respond_to?(:calculate_tax)
45
- order.update_attribute("tax_amount", order.calculate_tax)
51
+ order.ship!
46
52
  end
47
- end
53
+ end
@@ -1,3 +1,5 @@
1
1
  class ShippingCategory < ActiveRecord::Base
2
+ has_many :shipping_rates
3
+
2
4
  validates_presence_of :name
3
5
  end
@@ -1,14 +1,27 @@
1
1
  class ShippingMethod < ActiveRecord::Base
2
2
  belongs_to :zone
3
+ has_many :shipping_rates
3
4
 
4
- def calculate_shipping(shipment)
5
- return 0 unless zone.include?(shipment.address)
6
- return shipping_calculator.constantize.new.send(:calculate_shipping, shipment)
5
+ has_calculator
6
+
7
+ def calculate_cost(shipment)
8
+ rate_calculators = {}
9
+ shipping_rates.each do |sr|
10
+ rate_calculators[sr.shipping_category_id] = sr.calculator
11
+ end
12
+
13
+ calculated_costs = shipment.order.line_items.group_by{|li|
14
+ li.product.shipping_category_id
15
+ }.map{ |shipping_category_id, line_items|
16
+ calc = rate_calculators[shipping_category_id] || self.calculator
17
+ calc.compute(line_items)
18
+ }.sum
19
+
20
+ return(calculated_costs)
7
21
  end
8
22
 
9
23
  def available?(order)
10
- calculator = shipping_calculator.constantize.new
11
- return true unless calculator.respond_to?(:available?)
12
- calculator.available?(order)
24
+ zone.include?(order.shipment.address) &&
25
+ calculator
13
26
  end
14
27
  end
@@ -0,0 +1,6 @@
1
+ class ShippingRate < ActiveRecord::Base
2
+ belongs_to :shipping_method
3
+ belongs_to :shipping_category
4
+
5
+ has_calculator
6
+ end
data/app/models/state.rb CHANGED
@@ -1,11 +1,17 @@
1
1
  class State < ActiveRecord::Base
2
- belongs_to :country
2
+ belongs_to :country
3
3
  named_scope :order_by_name, :order => :name
4
+
5
+ has_one :zone_member, :as => :zoneable
6
+ has_one :zone, :through => :zone_member
4
7
 
5
8
  validates_presence_of [:country, :name]
6
9
 
7
10
  def <=>(other)
8
11
  name <=> other.name
9
12
  end
10
-
13
+
14
+ def to_s
15
+ name
16
+ end
11
17
  end
@@ -5,4 +5,11 @@ class StateEvent < ActiveRecord::Base
5
5
  def <=>(other)
6
6
  created_at <=> other.created_at
7
7
  end
8
+
9
+ def before_create
10
+ if UserSession.activated? && current_user_session = UserSession.find
11
+ self.user_id ||= current_user_session.user.id
12
+ end
13
+ true # don't stop the filters
14
+ end
8
15
  end
@@ -1,4 +1,6 @@
1
1
  class TaxCategory < ActiveRecord::Base
2
2
  validates_presence_of :name
3
3
  validates_uniqueness_of :name
4
+
5
+ has_many :tax_rates
4
6
  end
@@ -1,9 +1,15 @@
1
1
  class TaxRate < ActiveRecord::Base
2
2
  belongs_to :zone
3
3
  belongs_to :tax_category
4
- validates_numericality_of :amount
4
+
5
5
  validates_presence_of :amount
6
- named_scope :by_zone, lambda { |zone| { :conditions => ["zone_id = ?", zone] } }
6
+ validates_numericality_of :amount
7
7
 
8
- enumerable_constant :tax_type, :constants => [:sales_tax, :vat]
8
+ has_calculator
9
+ named_scope :by_zone, lambda { |zone| { :conditions => ["zone_id = ?", zone] } }
10
+
11
+ def calculate_tax(order)
12
+ calculator.compute(order)
13
+ end
14
+
9
15
  end
data/app/models/taxon.rb CHANGED
@@ -4,25 +4,31 @@ class Taxon < ActiveRecord::Base
4
4
  has_and_belongs_to_many :products
5
5
  before_save :set_permalink
6
6
 
7
+
8
+ # indicate which filters should be used for a taxon
9
+ # this method should be customized to your own site
10
+ include ProductFilters # for detailed defs of filters
11
+ def applicable_filters
12
+ fs = []
13
+ fs << ProductFilters.taxons_below(self)
14
+ ## unless it's a root taxon? left open for demo purposes
15
+ fs += [
16
+ ProductFilters.price_filter,
17
+ ProductFilters.brand_filter,
18
+ ProductFilters.selective_brand_filter(self) ]
19
+ end
20
+
7
21
  private
22
+
23
+ # Creates permalink based on .to_url method provided by stringx gem
8
24
  def set_permalink
9
- ancestors.reverse.collect { |ancestor| ancestor.name }.join( "/")
10
- prefix = ancestors.reverse.collect { |ancestor| escape(ancestor.name) }.join( "/")
11
- prefix += "/" unless prefix.blank?
12
- self.permalink = prefix + "#{escape(name)}/"
25
+ self.permalink = (ancestors.reverse + [self]).collect { |taxon|
26
+ taxon.name.to_url
27
+ }.join("/") + "/"
13
28
  end
14
29
 
15
- # taken from the find_by_param plugin
30
+ # obsolete, kept for backwards compat
16
31
  def escape(str)
17
- return "" if str.blank? # hack if the str/attribute is nil/blank
18
- s = Iconv.iconv('ascii//ignore//translit', 'utf-8', str.dup).to_s
19
- returning str.dup.to_s do |s|
20
- s.gsub!(/\ +/, '-') # spaces to dashes, preferred separator char everywhere
21
- s.gsub!(/[^\w^-]+/, '') # kill non-word chars except -
22
- s.strip! # ohh la la
23
- s.downcase! # :D
24
- s.gsub!(/([^ a-zA-Z0-9_-]+)/n,"") # and now kill every char not allowed.
25
- end
32
+ str.blank? ? "" : str.to_url
26
33
  end
27
-
28
34
  end