solidus_core 1.2.3 → 1.3.0.beta1

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

Potentially problematic release.


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

Files changed (573) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/Rakefile +1 -1
  4. data/app/assets/javascripts/spree.js.coffee.erb +1 -1
  5. data/app/helpers/spree/base_helper.rb +21 -43
  6. data/app/helpers/spree/orders_helper.rb +0 -1
  7. data/app/helpers/spree/products_helper.rb +10 -12
  8. data/app/helpers/spree/taxons_helper.rb +4 -4
  9. data/app/mailers/spree/base_mailer.rb +1 -3
  10. data/app/mailers/spree/carton_mailer.rb +2 -2
  11. data/app/mailers/spree/order_mailer.rb +2 -2
  12. data/app/models/concerns/spree/adjustment_source.rb +12 -16
  13. data/app/models/concerns/spree/calculated_adjustments.rb +17 -14
  14. data/app/models/concerns/spree/default_price.rb +10 -26
  15. data/app/models/concerns/spree/display_money.rb +1 -1
  16. data/app/models/concerns/spree/ordered_property_value_list.rb +10 -12
  17. data/app/models/concerns/spree/ransackable_attributes.rb +6 -5
  18. data/app/models/concerns/spree/user_address_book.rb +87 -81
  19. data/app/models/concerns/spree/user_methods.rb +2 -2
  20. data/app/models/concerns/spree/user_payment_source.rb +12 -8
  21. data/app/models/spree/ability.rb +2 -2
  22. data/app/models/spree/address.rb +37 -38
  23. data/app/models/spree/adjustment.rb +2 -6
  24. data/app/models/spree/app_configuration.rb +60 -5
  25. data/app/models/spree/base.rb +1 -1
  26. data/app/models/spree/calculator/default_tax.rb +28 -24
  27. data/app/models/spree/calculator/flat_percent_item_total.rb +1 -1
  28. data/app/models/spree/calculator/flat_rate.rb +2 -2
  29. data/app/models/spree/calculator/flexi_rate.rb +4 -4
  30. data/app/models/spree/calculator/percent_per_item.rb +8 -9
  31. data/app/models/spree/calculator/price_sack.rb +3 -3
  32. data/app/models/spree/calculator/returns/default_refund_amount.rb +11 -12
  33. data/app/models/spree/calculator/shipping/flat_percent_item_total.rb +1 -1
  34. data/app/models/spree/calculator/shipping/flat_rate.rb +2 -2
  35. data/app/models/spree/calculator/shipping/flexi_rate.rb +3 -3
  36. data/app/models/spree/calculator/shipping/per_item.rb +1 -1
  37. data/app/models/spree/calculator/shipping/price_sack.rb +3 -3
  38. data/app/models/spree/calculator/tiered_flat_rate.rb +2 -1
  39. data/app/models/spree/calculator/tiered_percent.rb +2 -1
  40. data/app/models/spree/calculator.rb +3 -3
  41. data/app/models/spree/carton.rb +2 -2
  42. data/app/models/spree/country.rb +7 -4
  43. data/app/models/spree/credit_card.rb +26 -22
  44. data/app/models/spree/customer_return.rb +8 -7
  45. data/app/models/spree/exchange.rb +1 -9
  46. data/app/models/spree/gateway/bogus.rb +31 -31
  47. data/app/models/spree/gateway/bogus_simple.rb +6 -8
  48. data/app/models/spree/gateway.rb +9 -15
  49. data/app/models/spree/image.rb +3 -3
  50. data/app/models/spree/inventory_unit.rb +23 -23
  51. data/app/models/spree/item_adjustments.rb +3 -2
  52. data/app/models/spree/legacy_user.rb +1 -5
  53. data/app/models/spree/line_item.rb +95 -84
  54. data/app/models/spree/option_type.rb +1 -1
  55. data/app/models/spree/option_value.rb +3 -1
  56. data/app/models/spree/order/checkout.rb +45 -44
  57. data/app/models/spree/order/payments.rb +42 -45
  58. data/app/models/spree/order.rb +70 -75
  59. data/app/models/spree/order_cancellations.rb +4 -4
  60. data/app/models/spree/order_capturing.rb +3 -2
  61. data/app/models/spree/order_contents.rb +61 -59
  62. data/app/models/spree/order_inventory.rb +59 -54
  63. data/app/models/spree/order_mutex.rb +0 -1
  64. data/app/models/spree/order_shipping.rb +8 -9
  65. data/app/models/spree/order_stock_location.rb +3 -3
  66. data/app/models/spree/order_update_attributes.rb +0 -2
  67. data/app/models/spree/order_updater.rb +11 -24
  68. data/app/models/spree/payment/processing.rb +26 -37
  69. data/app/models/spree/payment.rb +68 -71
  70. data/app/models/spree/payment_method/check.rb +2 -2
  71. data/app/models/spree/payment_method/store_credit.rb +6 -7
  72. data/app/models/spree/payment_method.rb +11 -8
  73. data/app/models/spree/preferences/configuration.rb +2 -2
  74. data/app/models/spree/preferences/preferable.rb +1 -1
  75. data/app/models/spree/preferences/preferable_class_methods.rb +1 -1
  76. data/app/models/spree/preferences/scoped_store.rb +6 -5
  77. data/app/models/spree/preferences/static_model_preferences.rb +1 -1
  78. data/app/models/spree/preferences/statically_configurable.rb +2 -2
  79. data/app/models/spree/preferences/store.rb +2 -6
  80. data/app/models/spree/price.rb +17 -19
  81. data/app/models/spree/product/scopes.rb +18 -17
  82. data/app/models/spree/product.rb +28 -11
  83. data/app/models/spree/product_property.rb +2 -0
  84. data/app/models/spree/product_scope/scopes.rb +22 -22
  85. data/app/models/spree/promotion/actions/create_adjustment.rb +3 -4
  86. data/app/models/spree/promotion/actions/create_item_adjustments.rb +8 -8
  87. data/app/models/spree/promotion/actions/create_quantity_adjustments.rb +3 -3
  88. data/app/models/spree/promotion/actions/free_shipping.rb +4 -4
  89. data/app/models/spree/promotion/rules/first_order.rb +7 -6
  90. data/app/models/spree/promotion/rules/first_repeat_purchase_since.rb +2 -3
  91. data/app/models/spree/promotion/rules/item_total.rb +5 -2
  92. data/app/models/spree/promotion/rules/nth_order.rb +3 -4
  93. data/app/models/spree/promotion/rules/one_use_per_user.rb +1 -2
  94. data/app/models/spree/promotion/rules/option_value.rb +1 -2
  95. data/app/models/spree/promotion/rules/product.rb +4 -4
  96. data/app/models/spree/promotion/rules/taxon.rb +5 -5
  97. data/app/models/spree/promotion/rules/user.rb +1 -1
  98. data/app/models/spree/promotion/rules/user_logged_in.rb +1 -1
  99. data/app/models/spree/promotion.rb +8 -8
  100. data/app/models/spree/promotion_action.rb +1 -1
  101. data/app/models/spree/promotion_builder.rb +2 -2
  102. data/app/models/spree/promotion_chooser.rb +1 -0
  103. data/app/models/spree/promotion_code/code_builder.rb +3 -3
  104. data/app/models/spree/promotion_handler/cart.rb +17 -16
  105. data/app/models/spree/promotion_handler/coupon.rb +10 -14
  106. data/app/models/spree/promotion_handler/page.rb +4 -4
  107. data/app/models/spree/promotion_rule.rb +4 -3
  108. data/app/models/spree/prototype.rb +0 -1
  109. data/app/models/spree/refund.rb +3 -3
  110. data/app/models/spree/reimbursement/reimbursement_type_engine.rb +1 -3
  111. data/app/models/spree/reimbursement.rb +3 -5
  112. data/app/models/spree/reimbursement_performer.rb +0 -5
  113. data/app/models/spree/reimbursement_tax_calculator.rb +2 -7
  114. data/app/models/spree/reimbursement_type/credit.rb +1 -1
  115. data/app/models/spree/reimbursement_type/original_payment.rb +1 -1
  116. data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +3 -3
  117. data/app/models/spree/reimbursement_type/store_credit.rb +1 -1
  118. data/app/models/spree/reimbursement_type.rb +1 -1
  119. data/app/models/spree/return_authorization.rb +38 -37
  120. data/app/models/spree/return_item/eligibility_validator/default.rb +4 -4
  121. data/app/models/spree/return_item/eligibility_validator/no_reimbursements.rb +0 -1
  122. data/app/models/spree/return_item/eligibility_validator/rma_required.rb +0 -1
  123. data/app/models/spree/return_item.rb +24 -23
  124. data/app/models/spree/returns_calculator.rb +1 -2
  125. data/app/models/spree/shipment.rb +80 -74
  126. data/app/models/spree/shipping_calculator.rb +4 -5
  127. data/app/models/spree/shipping_manifest.rb +3 -4
  128. data/app/models/spree/shipping_method.rb +54 -23
  129. data/app/models/spree/shipping_method_stock_location.rb +4 -0
  130. data/app/models/spree/shipping_rate.rb +24 -29
  131. data/app/models/spree/shipping_rate_tax.rb +41 -0
  132. data/app/models/spree/state.rb +1 -1
  133. data/app/models/spree/state_change.rb +1 -1
  134. data/app/models/spree/stock/availability_validator.rb +2 -2
  135. data/app/models/spree/stock/coordinator.rb +12 -13
  136. data/app/models/spree/stock/differentiator.rb +1 -0
  137. data/app/models/spree/stock/estimator.rb +18 -25
  138. data/app/models/spree/stock/inventory_unit_builder.rb +1 -1
  139. data/app/models/spree/stock/package.rb +19 -9
  140. data/app/models/spree/stock/packer.rb +2 -3
  141. data/app/models/spree/stock/prioritizer.rb +3 -2
  142. data/app/models/spree/stock/quantifier.rb +2 -3
  143. data/app/models/spree/stock/shipping_rate_selector.rb +0 -1
  144. data/app/models/spree/stock/shipping_rate_sorter.rb +0 -1
  145. data/app/models/spree/stock/splitter/backordered.rb +0 -2
  146. data/app/models/spree/stock/splitter/base.rb +3 -2
  147. data/app/models/spree/stock/splitter/shipping_category.rb +2 -1
  148. data/app/models/spree/stock/splitter/weight.rb +2 -2
  149. data/app/models/spree/stock_item.rb +36 -37
  150. data/app/models/spree/stock_location.rb +17 -13
  151. data/app/models/spree/stock_movement.rb +1 -3
  152. data/app/models/spree/stock_transfer.rb +8 -8
  153. data/app/models/spree/store.rb +6 -0
  154. data/app/models/spree/store_credit.rb +24 -24
  155. data/app/models/spree/store_credit_category.rb +1 -2
  156. data/app/models/spree/tax/item_adjuster.rb +37 -0
  157. data/app/models/spree/tax/order_adjuster.rb +38 -0
  158. data/app/models/spree/tax/shipping_rate_taxer.rb +31 -0
  159. data/app/models/spree/tax/tax_helpers.rb +49 -0
  160. data/app/models/spree/tax/tax_location.rb +33 -0
  161. data/app/models/spree/tax_category.rb +1 -1
  162. data/app/models/spree/tax_rate.rb +46 -111
  163. data/app/models/spree/taxon.rb +36 -12
  164. data/app/models/spree/taxonomy.rb +10 -10
  165. data/app/models/spree/validations/db_maximum_length_validator.rb +0 -1
  166. data/app/models/spree/variant/pricer.rb +19 -0
  167. data/app/models/spree/variant/pricing_options.rb +31 -0
  168. data/app/models/spree/variant/scopes.rb +9 -9
  169. data/app/models/spree/variant.rb +95 -89
  170. data/app/models/spree/variant_property_rule.rb +1 -1
  171. data/app/models/spree/variant_property_rule_value.rb +2 -0
  172. data/app/models/spree/zone.rb +60 -24
  173. data/config/initializers/friendly_id.rb +1 -1
  174. data/config/locales/en.yml +337 -51
  175. data/config/routes.rb +1 -1
  176. data/db/default/spree/countries.rb +9 -15
  177. data/db/default/spree/roles.rb +1 -2
  178. data/db/default/spree/states.rb +7 -11
  179. data/db/default/spree/store_credit.rb +2 -2
  180. data/db/default/spree/stores.rb +2 -1
  181. data/db/migrate/20120831092320_spree_one_two.rb +100 -101
  182. data/db/migrate/20120831092359_spree_promo_one_two.rb +12 -12
  183. data/db/migrate/20120905151823_add_toggle_tax_rate_display.rb +1 -1
  184. data/db/migrate/20121009142519_add_lock_version_to_variant.rb +1 -1
  185. data/db/migrate/20121010142909_add_states_required_to_countries.rb +1 -1
  186. data/db/migrate/20121012071449_add_on_demand_to_product_and_variant.rb +2 -2
  187. data/db/migrate/20121017010007_remove_not_null_constraint_from_products_on_hand.rb +4 -4
  188. data/db/migrate/20121031162139_split_prices_from_variants.rb +8 -8
  189. data/db/migrate/20121107003422_remove_not_null_from_spree_prices_amount.rb +2 -2
  190. data/db/migrate/20121109173623_add_cost_currency_to_variants.rb +1 -1
  191. data/db/migrate/20121124203911_add_position_to_taxonomies.rb +1 -1
  192. data/db/migrate/20130120201805_add_position_to_product_properties.spree.rb +1 -2
  193. data/db/migrate/20130211190146_create_spree_stock_items.rb +1 -1
  194. data/db/migrate/20130213191427_create_default_stock.rb +12 -21
  195. data/db/migrate/20130226032817_change_meta_description_on_spree_products_to_text.rb +1 -1
  196. data/db/migrate/20130227143905_add_pending_to_inventory_unit.rb +2 -2
  197. data/db/migrate/20130228210442_create_shipping_method_zone.rb +1 -1
  198. data/db/migrate/20130301162924_create_shipping_method_categories.rb +2 -2
  199. data/db/migrate/20130304162240_create_spree_shipping_rates.rb +4 -4
  200. data/db/migrate/20130306181701_add_address_fields_to_stock_location.rb +2 -3
  201. data/db/migrate/20130306191917_add_active_field_to_stock_locations.rb +1 -1
  202. data/db/migrate/20130306195650_add_backorderable_to_stock_item.rb +1 -1
  203. data/db/migrate/20130307161754_add_default_quantity_to_stock_movement.rb +1 -1
  204. data/db/migrate/20130319062004_change_orders_total_precision.rb +4 -4
  205. data/db/migrate/20130319063911_change_spree_payments_amount_precision.rb +1 -3
  206. data/db/migrate/20130319064308_change_spree_return_authorization_amount_precision.rb +2 -4
  207. data/db/migrate/20130319082943_change_adjustments_amount_precision.rb +1 -3
  208. data/db/migrate/20130319190507_drop_source_and_destination_from_stock_movement.rb +2 -2
  209. data/db/migrate/20130325163316_migrate_inventory_unit_sold_to_on_hand.rb +2 -2
  210. data/db/migrate/20130417120035_update_adjustment_states.rb +2 -2
  211. data/db/migrate/20130417123427_add_shipping_rates_to_shipments.rb +3 -3
  212. data/db/migrate/20130628021056_add_unique_index_to_permalink_on_spree_products.rb +1 -1
  213. data/db/migrate/20130628022817_add_unique_index_to_orders_shipments_and_stock_transfers.rb +3 -3
  214. data/db/migrate/20130718042445_add_cost_price_to_line_item.rb +1 -1
  215. data/db/migrate/20130718233855_set_backorderable_to_default_to_false.rb +2 -2
  216. data/db/migrate/20130807024301_upgrade_adjustments.rb +3 -3
  217. data/db/migrate/20130813004002_add_shipment_total_to_spree_orders.rb +1 -1
  218. data/db/migrate/20130813140619_expand_order_number_size.rb +2 -2
  219. data/db/migrate/20130815000406_add_adjustment_total_to_line_items.rb +1 -1
  220. data/db/migrate/20130815024413_add_adjustment_total_to_shipments.rb +1 -1
  221. data/db/migrate/20130826062534_add_depth_to_spree_taxons.rb +1 -1
  222. data/db/migrate/20130830001033_add_shipping_category_to_shipping_methods_and_products.rb +1 -1
  223. data/db/migrate/20130830001159_migrate_old_shipping_calculators.rb +1 -1
  224. data/db/migrate/20131001013410_remove_unused_credit_card_fields.rb +1 -0
  225. data/db/migrate/20131026154747_add_track_inventory_to_variant.rb +1 -1
  226. data/db/migrate/20131118043959_add_included_to_adjustments.rb +1 -1
  227. data/db/migrate/20131118183431_add_line_item_id_to_spree_inventory_units.rb +0 -1
  228. data/db/migrate/20131211112807_create_spree_orders_promotions.rb +1 -1
  229. data/db/migrate/20131218054603_add_item_count_to_spree_orders.rb +1 -1
  230. data/db/migrate/20140106065820_remove_value_type_from_spree_preferences.rb +1 -0
  231. data/db/migrate/20140219060952_add_considered_risky_to_orders.rb +1 -1
  232. data/db/migrate/20140309023735_migrate_old_preferences.rb +4 -3
  233. data/db/migrate/20140309033438_create_store_from_preferences.rb +2 -2
  234. data/db/migrate/20140410141842_add_many_missing_indexes.rb +13 -15
  235. data/db/migrate/20140410150358_correct_some_polymorphic_index_and_add_more_missing.rb +38 -40
  236. data/db/migrate/20140508151342_change_spree_price_amount_precision.rb +4 -4
  237. data/db/migrate/20140530024945_move_order_token_from_tokenized_permission.rb +1 -1
  238. data/db/migrate/20140710041921_recreate_spree_return_authorizations.rb +0 -1
  239. data/db/migrate/20140718195325_create_friendly_id_slugs.rb +4 -4
  240. data/db/migrate/20140723214541_copy_product_slugs_to_slug_history.rb +4 -6
  241. data/db/migrate/20140805171219_make_existing_credit_cards_default.rb +1 -0
  242. data/db/migrate/20141217215630_update_product_slug_index.rb +2 -4
  243. data/db/migrate/20150112194216_add_position_to_stock_location.rb +2 -2
  244. data/db/migrate/20150225205344_move_promotion_code_to_promotion_code_value.rb +0 -1
  245. data/db/migrate/20150313201503_copy_shipped_shipments_to_cartons.rb +0 -1
  246. data/db/migrate/20150506181611_create_spree_store_credit_payment_method.rb +3 -3
  247. data/db/migrate/20150515211137_fix_adjustment_order_id.rb +0 -1
  248. data/db/migrate/20150612205731_remove_spree_configurations.rb +2 -2
  249. data/db/migrate/20150619160613_create_adjustment_reason.rb +1 -1
  250. data/db/migrate/20150723224133_remove_unnecessary_indexes.rb +10 -2
  251. data/db/migrate/20150731201146_add_spree_user_addresses.rb +0 -1
  252. data/db/migrate/20150811211025_add_finalized_to_spree_adjustments.rb +1 -1
  253. data/db/migrate/20151001121454_create_spree_shipping_method_stock_locations.rb +13 -0
  254. data/db/migrate/20151002023248_add_foreign_key_to_shipping_method_stock_location.rb +6 -0
  255. data/db/migrate/20151026093607_change_return_item_pre_tax_amount_to_amount.rb +29 -0
  256. data/db/migrate/20160111091912_add_column_available_to_all_on_spree_shipping_method.rb +5 -0
  257. data/db/migrate/20160116133604_add_position_to_spree_payment_methods.rb +5 -0
  258. data/db/migrate/20160122182105_add_carrier_and_service_level_to_spree_shipping_methods.rb +6 -0
  259. data/db/migrate/20160224201413_create_spree_shipping_rate_taxes.rb +11 -0
  260. data/db/migrate/20160229133259_add_cart_tax_country_iso_to_spree_store.rb +5 -0
  261. data/db/migrate/20160301103333_remove_pre_tax_amount_on_line_item_and_shipment.rb +6 -0
  262. data/db/migrate/20160308000300_disallow_adjustment_finalized_nulls.rb +19 -0
  263. data/db/migrate/20160318145302_add_timestamps_to_prices.rb +5 -0
  264. data/db/migrate/20160330204846_add_missing_timestamp_columns.rb +20 -0
  265. data/lib/generators/spree/custom_user/custom_user_generator.rb +3 -8
  266. data/lib/generators/spree/dummy/dummy_generator.rb +17 -19
  267. data/lib/generators/spree/install/install_generator.rb +15 -15
  268. data/lib/generators/spree/install/templates/config/initializers/spree.rb +1 -0
  269. data/lib/spree/core/controller_helpers/auth.rb +2 -4
  270. data/lib/spree/core/controller_helpers/common.rb +42 -43
  271. data/lib/spree/core/controller_helpers/order.rb +5 -9
  272. data/lib/spree/core/controller_helpers/payment_parameters.rb +4 -5
  273. data/lib/spree/core/controller_helpers/pricing.rb +27 -0
  274. data/lib/spree/core/controller_helpers/respond_with.rb +4 -4
  275. data/lib/spree/core/controller_helpers/search.rb +2 -2
  276. data/lib/spree/core/controller_helpers/store.rb +3 -3
  277. data/lib/spree/core/controller_helpers/strong_parameters.rb +4 -4
  278. data/lib/spree/core/current_store.rb +1 -1
  279. data/lib/spree/core/delegate_belongs_to.rb +19 -21
  280. data/lib/spree/core/engine.rb +12 -8
  281. data/lib/spree/core/environment/calculators.rb +0 -1
  282. data/lib/spree/core/environment_extension.rb +4 -4
  283. data/lib/spree/core/importer/order.rb +17 -22
  284. data/lib/spree/core/importer/product.rb +10 -9
  285. data/lib/spree/core/permalinks.rb +16 -16
  286. data/lib/spree/core/product_duplicator.rb +2 -3
  287. data/lib/spree/core/product_filters.rb +15 -16
  288. data/lib/spree/core/role_configuration.rb +2 -2
  289. data/lib/spree/core/search/base.rb +71 -57
  290. data/lib/spree/core/search/variant.rb +2 -4
  291. data/lib/spree/core/unreturned_item_charger.rb +1 -2
  292. data/lib/spree/core/validators/email.rb +2 -2
  293. data/lib/spree/core/version.rb +1 -1
  294. data/lib/spree/core.rb +2 -4
  295. data/lib/spree/i18n.rb +1 -1
  296. data/lib/spree/localized_number.rb +3 -1
  297. data/lib/spree/migrations.rb +27 -26
  298. data/lib/spree/money.rb +19 -4
  299. data/lib/spree/permission_sets/base.rb +1 -1
  300. data/lib/spree/permitted_attributes.rb +7 -7
  301. data/lib/spree/responder.rb +4 -5
  302. data/lib/spree/testing_support/authorization_helpers.rb +1 -1
  303. data/lib/spree/testing_support/caching.rb +8 -8
  304. data/lib/spree/testing_support/capybara_ext.rb +11 -13
  305. data/lib/spree/testing_support/common_rake.rb +4 -4
  306. data/lib/spree/testing_support/controller_requests.rb +1 -1
  307. data/lib/spree/testing_support/extension_rake.rb +1 -2
  308. data/lib/spree/testing_support/factories/address_factory.rb +14 -3
  309. data/lib/spree/testing_support/factories/adjustment_reason_factory.rb +1 -1
  310. data/lib/spree/testing_support/factories/carton_factory.rb +2 -2
  311. data/lib/spree/testing_support/factories/credit_card_factory.rb +4 -0
  312. data/lib/spree/testing_support/factories/customer_return_factory.rb +4 -6
  313. data/lib/spree/testing_support/factories/line_item_factory.rb +1 -1
  314. data/lib/spree/testing_support/factories/order_factory.rb +10 -11
  315. data/lib/spree/testing_support/factories/payment_factory.rb +5 -0
  316. data/lib/spree/testing_support/factories/promotion_category_factory.rb +0 -1
  317. data/lib/spree/testing_support/factories/promotion_factory.rb +0 -1
  318. data/lib/spree/testing_support/factories/refund_factory.rb +1 -1
  319. data/lib/spree/testing_support/factories/reimbursement_factory.rb +1 -1
  320. data/lib/spree/testing_support/factories/return_item_factory.rb +1 -1
  321. data/lib/spree/testing_support/factories/shipping_method_factory.rb +5 -2
  322. data/lib/spree/testing_support/factories/state_factory.rb +17 -7
  323. data/lib/spree/testing_support/factories/stock_location_factory.rb +4 -4
  324. data/lib/spree/testing_support/factories/stock_transfer_factory.rb +1 -1
  325. data/lib/spree/testing_support/factories/store_credit_category_factory.rb +0 -1
  326. data/lib/spree/testing_support/factories/store_credit_type_factory.rb +0 -2
  327. data/lib/spree/testing_support/factories/tax_category_factory.rb +2 -2
  328. data/lib/spree/testing_support/factories/user_factory.rb +1 -1
  329. data/lib/spree/testing_support/factories/variant_factory.rb +1 -2
  330. data/lib/spree/testing_support/factories/zone_factory.rb +2 -1
  331. data/lib/spree/testing_support/i18n.rb +4 -5
  332. data/lib/spree/testing_support/order_walkthrough.rb +8 -9
  333. data/lib/spree/testing_support/preferences.rb +1 -1
  334. data/lib/spree/testing_support/sequences.rb +5 -4
  335. data/lib/tasks/core.rake +15 -19
  336. data/lib/tasks/email.rake +3 -3
  337. data/lib/tasks/exchanges.rake +12 -14
  338. data/lib/tasks/migrations/assure_store_on_orders.rake +38 -0
  339. data/lib/tasks/migrations/copy_order_bill_address_to_credit_card.rake +2 -2
  340. data/lib/tasks/migrations/copy_shipped_shipments_to_cartons.rake +1 -11
  341. data/lib/tasks/migrations/migrate_shipping_rate_taxes.rake +17 -0
  342. data/lib/tasks/migrations/migrate_user_addresses.rake +1 -1
  343. data/lib/tasks/order_capturing.rake +1 -1
  344. data/lib/tasks/upgrade.rake +11 -0
  345. data/script/rails +0 -1
  346. data/solidus_core.gemspec +6 -8
  347. data/spec/helpers/base_helper_spec.rb +15 -18
  348. data/spec/helpers/order_helper_spec.rb +2 -2
  349. data/spec/helpers/products_helper_spec.rb +43 -51
  350. data/spec/helpers/taxons_helper_spec.rb +1 -1
  351. data/spec/lib/i18n_spec.rb +11 -11
  352. data/spec/lib/search/base_spec.rb +12 -14
  353. data/spec/lib/search/variant_spec.rb +1 -0
  354. data/spec/lib/spree/core/controller_helpers/order_spec.rb +1 -7
  355. data/spec/lib/spree/core/controller_helpers/payment_parameters_spec.rb +26 -28
  356. data/spec/lib/spree/core/controller_helpers/pricing_spec.rb +63 -0
  357. data/spec/lib/spree/core/controller_helpers/search_spec.rb +4 -2
  358. data/spec/lib/spree/core/delegate_belongs_to_spec.rb +1 -1
  359. data/spec/lib/spree/core/importer/order_spec.rb +95 -90
  360. data/spec/lib/spree/core/role_configuration_spec.rb +16 -16
  361. data/spec/lib/spree/core/testing_support/factories/address_factory_spec.rb +35 -0
  362. data/spec/lib/spree/core/testing_support/factories/customer_return_factory_spec.rb +10 -1
  363. data/spec/lib/spree/core/testing_support/factories/order_factory_spec.rb +0 -1
  364. data/spec/lib/spree/core/testing_support/factories/shipping_method_factory_spec.rb +6 -1
  365. data/spec/lib/spree/core/testing_support/factories/state_factory_spec.rb +37 -1
  366. data/spec/lib/spree/core/testing_support/factories/stock_package_factory_spec.rb +2 -2
  367. data/spec/lib/spree/core/testing_support/factories/stock_packer_factory_spec.rb +1 -1
  368. data/spec/lib/spree/core/testing_support/factories/store_credit_event_factory_spec.rb +1 -2
  369. data/spec/lib/spree/core/testing_support/preferences_spec.rb +26 -0
  370. data/spec/lib/spree/core/unreturned_item_charger_spec.rb +7 -9
  371. data/spec/lib/spree/core/validators/email_spec.rb +8 -6
  372. data/spec/lib/spree/localized_number_spec.rb +1 -3
  373. data/spec/lib/spree/migrations_spec.rb +2 -2
  374. data/spec/lib/spree/money_spec.rb +75 -6
  375. data/spec/lib/tasks/exchanges_spec.rb +2 -12
  376. data/spec/lib/tasks/migrations/copy_shipped_shipments_to_cartons_spec.rb +0 -1
  377. data/spec/lib/tasks/order_capturing_spec.rb +1 -1
  378. data/spec/mailers/carton_mailer_spec.rb +3 -3
  379. data/spec/mailers/order_mailer_spec.rb +9 -11
  380. data/spec/mailers/reimbursement_mailer_spec.rb +2 -2
  381. data/spec/mailers/test_mailer_spec.rb +1 -1
  382. data/spec/models/spree/ability_spec.rb +4 -7
  383. data/spec/models/spree/address_spec.rb +32 -35
  384. data/spec/models/spree/adjustment_reason_spec.rb +0 -2
  385. data/spec/models/spree/adjustment_spec.rb +2 -2
  386. data/spec/models/spree/app_configuration_spec.rb +33 -3
  387. data/spec/models/spree/asset_spec.rb +1 -2
  388. data/spec/models/spree/calculator/default_tax_spec.rb +141 -52
  389. data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +1 -1
  390. data/spec/models/spree/calculator/flexi_rate_spec.rb +6 -6
  391. data/spec/models/spree/calculator/percent_on_line_item_spec.rb +1 -1
  392. data/spec/models/spree/calculator/price_sack_spec.rb +2 -2
  393. data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +9 -11
  394. data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +4 -4
  395. data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +2 -2
  396. data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +6 -7
  397. data/spec/models/spree/calculator/shipping/per_item_spec.rb +2 -2
  398. data/spec/models/spree/calculator/shipping/price_sack_spec.rb +2 -2
  399. data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +1 -2
  400. data/spec/models/spree/calculator/tiered_percent_spec.rb +1 -1
  401. data/spec/models/spree/calculator_spec.rb +3 -8
  402. data/spec/models/spree/carton_spec.rb +1 -1
  403. data/spec/models/spree/classification_spec.rb +1 -1
  404. data/spec/models/spree/concerns/display_money_spec.rb +0 -1
  405. data/spec/models/spree/concerns/ordered_property_value_list_spec.rb +26 -1
  406. data/spec/models/spree/concerns/user_address_book_spec.rb +19 -12
  407. data/spec/models/spree/concerns/user_methods_spec.rb +1 -1
  408. data/spec/models/spree/country_spec.rb +52 -0
  409. data/spec/models/spree/credit_card_spec.rb +17 -12
  410. data/spec/models/spree/customer_return_spec.rb +27 -23
  411. data/spec/models/spree/exchange_spec.rb +2 -7
  412. data/spec/models/spree/gateway/bogus_simple.rb +2 -4
  413. data/spec/models/spree/gateway/bogus_spec.rb +4 -2
  414. data/spec/models/spree/gateway_spec.rb +8 -3
  415. data/spec/models/spree/inventory_unit_spec.rb +13 -14
  416. data/spec/models/spree/item_adjustments_spec.rb +36 -40
  417. data/spec/models/spree/line_item_spec.rb +92 -48
  418. data/spec/models/spree/option_type_spec.rb +1 -1
  419. data/spec/models/spree/option_value_spec.rb +1 -1
  420. data/spec/models/spree/order/address_spec.rb +1 -1
  421. data/spec/models/spree/order/callbacks_spec.rb +3 -3
  422. data/spec/models/spree/order/checkout_spec.rb +55 -48
  423. data/spec/models/spree/order/finalizing_spec.rb +8 -9
  424. data/spec/models/spree/order/payment_spec.rb +20 -20
  425. data/spec/models/spree/order/risk_assessment_spec.rb +1 -1
  426. data/spec/models/spree/order/state_machine_spec.rb +40 -131
  427. data/spec/models/spree/order/tax_spec.rb +11 -12
  428. data/spec/models/spree/order/totals_spec.rb +3 -3
  429. data/spec/models/spree/order/updating_spec.rb +2 -2
  430. data/spec/models/spree/order/validations_spec.rb +2 -2
  431. data/spec/models/spree/order_cancellations_spec.rb +1 -1
  432. data/spec/models/spree/order_capturing_spec.rb +1 -1
  433. data/spec/models/spree/order_contents_spec.rb +10 -11
  434. data/spec/models/spree/order_inventory_spec.rb +11 -11
  435. data/spec/models/spree/order_merger_spec.rb +1 -0
  436. data/spec/models/spree/order_shipping_spec.rb +8 -10
  437. data/spec/models/spree/order_spec.rb +137 -124
  438. data/spec/models/spree/order_stock_location_spec.rb +2 -2
  439. data/spec/models/spree/order_update_attributes_spec.rb +6 -10
  440. data/spec/models/spree/order_updater_spec.rb +4 -8
  441. data/spec/models/spree/payment_create_spec.rb +11 -12
  442. data/spec/models/spree/payment_method/store_credit_spec.rb +10 -6
  443. data/spec/models/spree/payment_method_spec.rb +4 -5
  444. data/spec/models/spree/payment_spec.rb +61 -69
  445. data/spec/models/spree/permission_sets/base_spec.rb +1 -1
  446. data/spec/models/spree/permission_sets/configuration_display.rb +0 -1
  447. data/spec/models/spree/permission_sets/configuration_management_spec.rb +0 -1
  448. data/spec/models/spree/permission_sets/dashboard_display_spec.rb +0 -1
  449. data/spec/models/spree/permission_sets/order_display_spec.rb +0 -1
  450. data/spec/models/spree/permission_sets/order_management_spec.rb +0 -1
  451. data/spec/models/spree/permission_sets/product_display_spec.rb +0 -1
  452. data/spec/models/spree/permission_sets/product_management_spec.rb +0 -1
  453. data/spec/models/spree/permission_sets/promotion_display_spec.rb +0 -1
  454. data/spec/models/spree/permission_sets/promotion_management_spec.rb +0 -1
  455. data/spec/models/spree/permission_sets/report_display_spec.rb +0 -1
  456. data/spec/models/spree/permission_sets/restricted_stock_display_spec.rb +0 -1
  457. data/spec/models/spree/permission_sets/restricted_stock_management_spec.rb +0 -1
  458. data/spec/models/spree/permission_sets/restricted_stock_transfer_display_spec.rb +0 -1
  459. data/spec/models/spree/permission_sets/restricted_stock_transfer_management_spec.rb +6 -6
  460. data/spec/models/spree/permission_sets/stock_display_spec.rb +0 -1
  461. data/spec/models/spree/permission_sets/stock_management_spec.rb +0 -1
  462. data/spec/models/spree/permission_sets/stock_transfer_display_spec.rb +0 -1
  463. data/spec/models/spree/permission_sets/stock_transfer_management_spec.rb +0 -2
  464. data/spec/models/spree/permission_sets/user_display_spec.rb +0 -1
  465. data/spec/models/spree/permission_sets/user_management_spec.rb +0 -1
  466. data/spec/models/spree/preference_spec.rb +1 -4
  467. data/spec/models/spree/preferences/configuration_spec.rb +2 -7
  468. data/spec/models/spree/preferences/preferable_spec.rb +13 -24
  469. data/spec/models/spree/preferences/scoped_store_spec.rb +1 -1
  470. data/spec/models/spree/preferences/static_model_preferences_spec.rb +5 -6
  471. data/spec/models/spree/preferences/statically_configurable_spec.rb +2 -6
  472. data/spec/models/spree/preferences/store_spec.rb +2 -3
  473. data/spec/models/spree/price_spec.rb +6 -6
  474. data/spec/models/spree/product/scopes_spec.rb +20 -20
  475. data/spec/models/spree/product_duplicator_spec.rb +16 -29
  476. data/spec/models/spree/product_filter_spec.rb +2 -2
  477. data/spec/models/spree/product_spec.rb +53 -20
  478. data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +10 -12
  479. data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +4 -4
  480. data/spec/models/spree/promotion/actions/create_quantity_adjustments_spec.rb +9 -9
  481. data/spec/models/spree/promotion/actions/free_shipping_spec.rb +1 -1
  482. data/spec/models/spree/promotion/rules/first_order_spec.rb +10 -10
  483. data/spec/models/spree/promotion/rules/item_total_spec.rb +63 -19
  484. data/spec/models/spree/promotion/rules/one_use_per_user_spec.rb +1 -1
  485. data/spec/models/spree/promotion/rules/product_spec.rb +8 -8
  486. data/spec/models/spree/promotion/rules/taxon_spec.rb +4 -4
  487. data/spec/models/spree/promotion/rules/user_logged_in_spec.rb +3 -4
  488. data/spec/models/spree/promotion/rules/user_spec.rb +7 -7
  489. data/spec/models/spree/promotion_builder_spec.rb +10 -8
  490. data/spec/models/spree/promotion_category_spec.rb +1 -1
  491. data/spec/models/spree/promotion_code/code_builder_spec.rb +1 -3
  492. data/spec/models/spree/promotion_code_spec.rb +8 -7
  493. data/spec/models/spree/promotion_handler/cart_spec.rb +1 -1
  494. data/spec/models/spree/promotion_handler/coupon_spec.rb +28 -28
  495. data/spec/models/spree/promotion_handler/page_spec.rb +6 -7
  496. data/spec/models/spree/promotion_rule_spec.rb +1 -2
  497. data/spec/models/spree/promotion_spec.rb +25 -21
  498. data/spec/models/spree/refund_spec.rb +8 -11
  499. data/spec/models/spree/reimbursement/credit_spec.rb +2 -2
  500. data/spec/models/spree/reimbursement/reimbursement_type_engine_spec.rb +6 -4
  501. data/spec/models/spree/reimbursement/reimbursement_type_validator_spec.rb +1 -1
  502. data/spec/models/spree/reimbursement_performer_spec.rb +2 -2
  503. data/spec/models/spree/reimbursement_spec.rb +9 -11
  504. data/spec/models/spree/reimbursement_tax_calculator_spec.rb +4 -5
  505. data/spec/models/spree/reimbursement_type/credit_spec.rb +2 -2
  506. data/spec/models/spree/reimbursement_type/exchange_spec.rb +2 -3
  507. data/spec/models/spree/reimbursement_type/original_payment_spec.rb +4 -4
  508. data/spec/models/spree/reimbursement_type/store_credit_spec.rb +1 -1
  509. data/spec/models/spree/return_authorization_spec.rb +18 -21
  510. data/spec/models/spree/return_item/eligibility_validator/default_spec.rb +7 -7
  511. data/spec/models/spree/return_item/eligibility_validator/inventory_shipped_spec.rb +0 -1
  512. data/spec/models/spree/return_item/eligibility_validator/no_reimbursements_spec.rb +0 -1
  513. data/spec/models/spree/return_item/eligibility_validator/rma_required_spec.rb +1 -1
  514. data/spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb +1 -1
  515. data/spec/models/spree/return_item/exchange_variant_eligibility/same_option_value_spec.rb +1 -2
  516. data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +3 -5
  517. data/spec/models/spree/return_item_spec.rb +29 -31
  518. data/spec/models/spree/returns_calculator_spec.rb +1 -1
  519. data/spec/models/spree/shipment_spec.rb +59 -43
  520. data/spec/models/spree/shipping_calculator_spec.rb +3 -3
  521. data/spec/models/spree/shipping_manifest_spec.rb +8 -7
  522. data/spec/models/spree/shipping_method_spec.rb +149 -24
  523. data/spec/models/spree/shipping_rate_spec.rb +116 -76
  524. data/spec/models/spree/shipping_rate_tax_spec.rb +83 -0
  525. data/spec/models/spree/state_spec.rb +2 -2
  526. data/spec/models/spree/stock/availability_validator_spec.rb +4 -4
  527. data/spec/models/spree/stock/coordinator_spec.rb +33 -49
  528. data/spec/models/spree/stock/differentiator_spec.rb +1 -1
  529. data/spec/models/spree/stock/estimator_spec.rb +83 -54
  530. data/spec/models/spree/stock/inventory_unit_builder_spec.rb +1 -3
  531. data/spec/models/spree/stock/package_spec.rb +27 -10
  532. data/spec/models/spree/stock/packer_spec.rb +4 -4
  533. data/spec/models/spree/stock/prioritizer_spec.rb +1 -1
  534. data/spec/models/spree/stock/quantifier_spec.rb +2 -6
  535. data/spec/models/spree/stock/splitter/backordered_spec.rb +1 -1
  536. data/spec/models/spree/stock/splitter/base_spec.rb +1 -2
  537. data/spec/models/spree/stock/splitter/shipping_category_spec.rb +1 -3
  538. data/spec/models/spree/stock/splitter/weight_spec.rb +3 -3
  539. data/spec/models/spree/stock_item_spec.rb +16 -16
  540. data/spec/models/spree/stock_location_spec.rb +6 -8
  541. data/spec/models/spree/stock_movement_spec.rb +1 -1
  542. data/spec/models/spree/stock_transfer_spec.rb +1 -3
  543. data/spec/models/spree/store_credit_category_spec.rb +1 -1
  544. data/spec/models/spree/store_credit_event_spec.rb +3 -5
  545. data/spec/models/spree/store_credit_spec.rb +24 -23
  546. data/spec/models/spree/store_spec.rb +21 -2
  547. data/spec/models/spree/tax/item_adjuster_spec.rb +74 -0
  548. data/spec/models/spree/tax/order_adjuster_spec.rb +49 -0
  549. data/spec/models/spree/tax/shipping_rate_taxer_spec.rb +50 -0
  550. data/spec/models/spree/tax/tax_location_spec.rb +68 -0
  551. data/spec/models/spree/tax/taxation_integration_spec.rb +787 -0
  552. data/spec/models/spree/tax_category_spec.rb +2 -2
  553. data/spec/models/spree/tax_rate_spec.rb +185 -536
  554. data/spec/models/spree/taxon_spec.rb +69 -5
  555. data/spec/models/spree/taxonomy_spec.rb +2 -3
  556. data/spec/models/spree/tracker_spec.rb +1 -1
  557. data/spec/models/spree/transfer_item_spec.rb +1 -1
  558. data/spec/models/spree/unit_cancel_spec.rb +9 -14
  559. data/spec/models/spree/user_spec.rb +19 -24
  560. data/spec/models/spree/validations/db_maximum_length_validator_spec.rb +1 -1
  561. data/spec/models/spree/variant/pricer_spec.rb +48 -0
  562. data/spec/models/spree/variant/pricing_options_spec.rb +106 -0
  563. data/spec/models/spree/variant/scopes_spec.rb +31 -8
  564. data/spec/models/spree/variant_property_rule_spec.rb +1 -1
  565. data/spec/models/spree/variant_spec.rb +166 -52
  566. data/spec/models/spree/zone_spec.rb +135 -10
  567. data/spec/support/big_decimal.rb +1 -1
  568. data/spec/support/concerns/working_factories.rb +2 -2
  569. data/spec/support/dummy_ability.rb +0 -1
  570. metadata +55 -44
  571. data/lib/generators/spree/dummy/templates/initializers/devise.rb +0 -3
  572. data/lib/spree/migration_helpers.rb +0 -19
  573. data/vendor/assets/stylesheets/skeleton.css +0 -242
@@ -50,7 +50,7 @@ module Spree
50
50
  self.used_translations ||= []
51
51
  self.unused_translation_messages = []
52
52
  self.unused_translations = []
53
- self.load_translations(translations)
53
+ load_translations(translations)
54
54
  translation_diff = unused_translations - used_translations
55
55
  translation_diff.each do |translation|
56
56
  Spree.unused_translation_messages << "#{translation} (#{I18n.locale})"
@@ -59,13 +59,13 @@ module Spree
59
59
 
60
60
  private
61
61
 
62
- def self.load_translations(hash, root=[])
63
- hash.each do |k,v|
62
+ def self.load_translations(hash, root = [])
63
+ hash.each do |k, v|
64
64
  if v.is_a?(Hash)
65
65
  load_translations(v, root.dup << k)
66
66
  else
67
67
  key = (root + [k]).join('.')
68
- self.unused_translations << key
68
+ unused_translations << key
69
69
  end
70
70
  end
71
71
  end
@@ -95,4 +95,3 @@ RSpec.configure do |config|
95
95
  end
96
96
  end
97
97
  end
98
-
@@ -7,9 +7,9 @@ class OrderWalkthrough
7
7
  # Need to create a valid zone too...
8
8
  @zone = FactoryGirl.create(:zone)
9
9
  @country = FactoryGirl.create(:country)
10
- @state = FactoryGirl.create(:state, :country => @country)
10
+ @state = FactoryGirl.create(:state, country: @country)
11
11
 
12
- @zone.members << Spree::ZoneMember.create(:zoneable => @country)
12
+ @zone.members << Spree::ZoneMember.create(zoneable: @country)
13
13
 
14
14
  # A shipping method must exist for rates to be displayed on checkout page
15
15
  FactoryGirl.create(:shipping_method, zones: [@zone]).tap do |sm|
@@ -32,8 +32,8 @@ class OrderWalkthrough
32
32
  states[0..end_state_position]
33
33
  end
34
34
 
35
- states_to_process.each do |state|
36
- send(state, order)
35
+ states_to_process.each do |state_to_process|
36
+ send(state_to_process, order)
37
37
  end
38
38
 
39
39
  order
@@ -47,8 +47,8 @@ class OrderWalkthrough
47
47
  end
48
48
 
49
49
  def address(order)
50
- order.bill_address = FactoryGirl.create(:address, :country => @country, state: @state)
51
- order.ship_address = FactoryGirl.create(:address, :country => @country, state: @state)
50
+ order.bill_address = FactoryGirl.create(:address, country: @country, state: @state)
51
+ order.ship_address = FactoryGirl.create(:address, country: @country, state: @state)
52
52
  order.next!
53
53
  end
54
54
 
@@ -58,7 +58,7 @@ class OrderWalkthrough
58
58
 
59
59
  def payment(order)
60
60
  credit_card = FactoryGirl.create(:credit_card)
61
- order.payments.create!(:payment_method => credit_card.payment_method, :amount => order.total, source: credit_card)
61
+ order.payments.create!(payment_method: credit_card.payment_method, amount: order.total, source: credit_card)
62
62
  # TODO: maybe look at some way of making this payment_state change automatic
63
63
  order.payment_state = 'paid'
64
64
  order.next!
@@ -69,11 +69,10 @@ class OrderWalkthrough
69
69
  end
70
70
 
71
71
  def complete(order)
72
- #noop?
72
+ # noop?
73
73
  end
74
74
 
75
75
  def states
76
76
  [:address, :delivery, :payment, :confirm]
77
77
  end
78
-
79
78
  end
@@ -9,6 +9,7 @@ module Spree
9
9
  # end
10
10
  #
11
11
  def reset_spree_preferences(&config_block)
12
+ Spree::Config.instance_variables.each { |iv| Spree::Config.remove_instance_variable(iv) }
12
13
  Spree::Config.preference_store = Spree::Config.default_preferences
13
14
 
14
15
  configure_spree_preferences(&config_block) if block_given?
@@ -26,4 +27,3 @@ module Spree
26
27
  end
27
28
  end
28
29
  end
29
-
@@ -1,9 +1,10 @@
1
1
  require 'factory_girl'
2
+ require 'ffaker'
2
3
 
3
4
  FactoryGirl.define do
4
- sequence(:random_code) { Faker::Lorem.characters(10) }
5
- sequence(:random_description) { Faker::Lorem.paragraphs(1 + Kernel.rand(5)).join("\n") }
6
- sequence(:random_email) { Faker::Internet.email }
7
- sequence(:random_string) { Faker::Lorem.sentence }
5
+ sequence(:random_code) { FFaker::Lorem.characters(10) }
6
+ sequence(:random_description) { FFaker::Lorem.paragraphs(1 + Kernel.rand(5)).join("\n") }
7
+ sequence(:random_email) { FFaker::Internet.email }
8
+ sequence(:random_string) { FFaker::Lorem.sentence }
8
9
  sequence(:sku) { |n| "SKU-#{n}" }
9
10
  end
data/lib/tasks/core.rake CHANGED
@@ -1,10 +1,10 @@
1
1
  require 'active_record'
2
2
 
3
3
  namespace :db do
4
- desc %q{Loads a specified fixture file:
5
- use rake db:load_file[/absolute/path/to/sample/filename.rb]}
4
+ desc 'Loads a specified fixture file:
5
+ use rake db:load_file[/absolute/path/to/sample/filename.rb]'
6
6
 
7
- task :load_file , [:file, :dir] => :environment do |t, args|
7
+ task :load_file, [:file, :dir] => :environment do |_t, args|
8
8
  file = Pathname.new(args.file)
9
9
 
10
10
  puts "loading ruby #{file}"
@@ -12,18 +12,17 @@ use rake db:load_file[/absolute/path/to/sample/filename.rb]}
12
12
  end
13
13
 
14
14
  desc "Loads fixtures from the the dir you specify using rake db:load_dir[loadfrom]"
15
- task :load_dir , [:dir] => :environment do |t, args|
15
+ task :load_dir, [:dir] => :environment do |_t, args|
16
16
  dir = args.dir
17
17
  dir = File.join(Rails.root, "db", dir) if Pathname.new(dir).relative?
18
18
 
19
19
  ruby_files = {}
20
- Dir.glob(File.join(dir , '**/*.{rb}')).each do |fixture_file|
21
- ext = File.extname fixture_file
20
+ Dir.glob(File.join(dir, '**/*.{rb}')).each do |fixture_file|
22
21
  ruby_files[File.basename(fixture_file, '.*')] = fixture_file
23
22
  end
24
- ruby_files.sort.each do |fixture , ruby_file|
23
+ ruby_files.sort.each do |fixture, ruby_file|
25
24
  # If file is exists within application it takes precendence.
26
- if File.exists?(File.join(Rails.root, "db/default/spree", "#{fixture}.rb"))
25
+ if File.exist?(File.join(Rails.root, "db/default/spree", "#{fixture}.rb"))
27
26
  ruby_file = File.expand_path(File.join(Rails.root, "db/default/spree", "#{fixture}.rb"))
28
27
  end
29
28
  # an invoke will only execute the task once
@@ -32,10 +31,10 @@ use rake db:load_file[/absolute/path/to/sample/filename.rb]}
32
31
  end
33
32
 
34
33
  desc "Migrate schema to version 0 and back up again. WARNING: Destroys all data in tables!!"
35
- task :remigrate => :environment do
34
+ task remigrate: :environment do
36
35
  require 'highline/import'
37
36
 
38
- if ENV['SKIP_NAG'] or ENV['OVERWRITE'].to_s.downcase == 'true' or agree("This task will destroy any data in the database. Are you sure you want to \ncontinue? [y/n] ")
37
+ if ENV['SKIP_NAG'] || ENV['OVERWRITE'].to_s.casecmp('true') || agree("This task will destroy any data in the database. Are you sure you want to \ncontinue? [y/n] ")
39
38
 
40
39
  # Drop all tables
41
40
  ActiveRecord::Base.connection.tables.each { |t| ActiveRecord::Base.connection.drop_table t }
@@ -52,12 +51,12 @@ use rake db:load_file[/absolute/path/to/sample/filename.rb]}
52
51
  end
53
52
 
54
53
  desc "Bootstrap is: migrating, loading defaults, sample data and seeding (for all extensions) and load_products tasks"
55
- task :bootstrap do
54
+ task :bootstrap do
56
55
  require 'highline/import'
57
56
 
58
57
  # remigrate unless production mode (as saftey check)
59
58
  if %w[demo development test].include? Rails.env
60
- if ENV['AUTO_ACCEPT'] or agree("This task will destroy any data in the database. Are you sure you want to \ncontinue? [y/n] ")
59
+ if ENV['AUTO_ACCEPT'] || agree("This task will destroy any data in the database. Are you sure you want to \ncontinue? [y/n] ")
61
60
  ENV['SKIP_NAG'] = 'yes'
62
61
  Rake::Task["db:create"].invoke
63
62
  Rake::Task["db:remigrate"].invoke
@@ -70,19 +69,17 @@ use rake db:load_file[/absolute/path/to/sample/filename.rb]}
70
69
  Rake::Task["db:migrate"].invoke
71
70
  end
72
71
 
73
- ActiveRecord::Base.send(:subclasses).each do |model|
74
- model.reset_column_information
75
- end
72
+ ActiveRecord::Base.send(:subclasses).each(&:reset_column_information)
76
73
 
77
- load_defaults = Spree::Country.count == 0
78
- unless load_defaults # ask if there are already Countries => default data hass been loaded
74
+ load_defaults = Spree::Country.count == 0
75
+ unless load_defaults # ask if there are already Countries => default data hass been loaded
79
76
  load_defaults = agree('Countries present, load sample data anyways? [y/n]: ')
80
77
  end
81
78
  if load_defaults
82
79
  Rake::Task["db:seed"].invoke
83
80
  end
84
81
 
85
- if Rails.env.production? and Spree::Product.count > 0
82
+ if Rails.env.production? && Spree::Product.count > 0
86
83
  load_sample = agree("WARNING: In Production and products exist in database, load sample data anyways? [y/n]:" )
87
84
  else
88
85
  load_sample = true if ENV['AUTO_ACCEPT']
@@ -97,5 +94,4 @@ use rake db:load_file[/absolute/path/to/sample/filename.rb]}
97
94
 
98
95
  puts "Bootstrap Complete.\n\n"
99
96
  end
100
-
101
97
  end
data/lib/tasks/email.rake CHANGED
@@ -1,7 +1,7 @@
1
1
  namespace :email do
2
- desc 'Sends test email to specified address - Example: EMAIL=spree@example.com bundle exec rake test:email'
3
- task :test => :environment do
4
- raise ArgumentError, "Must pass EMAIL environment variable. Example: EMAIL=spree@example.com bundle exec rake test:email" unless ENV['EMAIL'].present?
2
+ desc 'Sends test email to specified address - Example: EMAIL=spree@example.com bundle exec rake email:test'
3
+ task test: :environment do
4
+ raise ArgumentError, "Must pass EMAIL environment variable. Example: EMAIL=spree@example.com bundle exec rake email:test" unless ENV['EMAIL'].present?
5
5
  Spree::TestMailer.test_email(ENV['EMAIL']).deliver!
6
6
  end
7
7
  end
@@ -1,12 +1,11 @@
1
1
  namespace :exchanges do
2
- desc %q{Takes unreturned exchanged items and creates a new order to charge
3
- the customer for not returning them}
2
+ desc 'Takes unreturned exchanged items and creates a new order to charge
3
+ the customer for not returning them'
4
4
  task charge_unreturned_items: :environment do
5
-
6
- unreturned_return_items = Spree::ReturnItem.expecting_return.exchange_processed.includes(:exchange_inventory_unit).where([
5
+ unreturned_return_items = Spree::ReturnItem.expecting_return.exchange_processed.joins(:exchange_inventory_unit).where([
7
6
  "spree_inventory_units.created_at < :days_ago AND spree_inventory_units.state = :iu_state",
8
7
  days_ago: Spree::Config[:expedited_exchanges_days_window].days.ago, iu_state: "shipped"
9
- ]).references(:exchange_inventory_units).to_a
8
+ ]).preload(:exchange_inventory_unit).to_a
10
9
 
11
10
  # Determine that a return item has already been deemed unreturned and therefore charged
12
11
  # by the fact that its exchange inventory unit has popped off to a different order
@@ -25,15 +24,14 @@ namespace :exchanges do
25
24
  failure = { message: "#{e.class}: #{e.message}" }
26
25
  end
27
26
 
28
- if failure
29
- failure[:new_order] = item_charger.new_order.number if item_charger.new_order
30
- failures << failure.merge({
31
- order: item_charger.original_order.number,
32
- shipment: shipment.number,
33
- return_items: return_items.map(&:id),
34
- order_errors: item_charger.original_order.errors.full_messages,
35
- })
36
- end
27
+ next unless failure
28
+ failure[:new_order] = item_charger.new_order.number if item_charger.new_order
29
+ failures << failure.merge({
30
+ order: item_charger.original_order.number,
31
+ shipment: shipment.number,
32
+ return_items: return_items.map(&:id),
33
+ order_errors: item_charger.original_order.errors.full_messages
34
+ })
37
35
  end
38
36
 
39
37
  if failures.any?
@@ -0,0 +1,38 @@
1
+ namespace :solidus do
2
+ namespace :migrations do
3
+ namespace :assure_store_on_orders do
4
+ desc "Makes sure every order in the system has a store attached"
5
+ task up: :environment do
6
+
7
+ attach_store_to_all_orders
8
+ end
9
+
10
+ def attach_store_to_all_orders
11
+ orders_without_store_count = Spree::Order.where(store_id: nil).count
12
+ if orders_without_store_count == 0
13
+ puts "Everything is good, all orders in your database have a store attached."
14
+ return
15
+ end
16
+
17
+ spree_store_count = Spree::Store.count
18
+ if spree_store_count == 0
19
+ abort "You do not have a store set up. Please create a store instance for your installation."
20
+ elsif spree_store_count > 1
21
+ abort(<<-TEXT.squish)
22
+ You have more than one store set up. We can not be sure which store to attach your
23
+ orders to. Please attach store ids to all your orders, and run this task again
24
+ when you're finished.
25
+ TEXT
26
+ end
27
+
28
+ default_store = Store.where(default: true).first
29
+ unless default_store
30
+ abort "Your store is not marked as default. Please mark your one store as the default store and run this task again."
31
+ end
32
+
33
+ Spree::Order.where(store_id: nil).update_all(store_id: Spree::Store.default.id)
34
+ puts "All orders updated with the default store."
35
+ end
36
+ end
37
+ end
38
+ end
@@ -65,7 +65,7 @@ namespace 'spree:migrations:copy_order_bill_address_to_credit_card' do
65
65
  postgres_sql(
66
66
  start_id: current_start_id,
67
67
  end_id: current_end_id,
68
- payment_state: "not in ('failed', 'invalid')",
68
+ payment_state: "not in ('failed', 'invalid')"
69
69
  )
70
70
  )
71
71
 
@@ -74,7 +74,7 @@ namespace 'spree:migrations:copy_order_bill_address_to_credit_card' do
74
74
  postgres_sql(
75
75
  start_id: current_start_id,
76
76
  end_id: current_end_id,
77
- payment_state: "in ('failed', 'invalid')",
77
+ payment_state: "in ('failed', 'invalid')"
78
78
  )
79
79
  )
80
80
 
@@ -33,11 +33,9 @@ namespace 'spree:migrations:copy_shipped_shipments_to_cartons' do
33
33
  end
34
34
 
35
35
  say_with_time 'generating cartons' do
36
-
37
36
  last_id = Spree::Shipment.last.try!(:id) || 0
38
37
 
39
38
  in_batches(last_id: last_id) do |start_id, end_id|
40
-
41
39
  say_with_time "processing shipment #{start_id} to #{end_id}" do
42
40
  Spree::Carton.connection.execute(<<-SQL.strip_heredoc)
43
41
  insert into spree_cartons
@@ -48,7 +46,7 @@ namespace 'spree:migrations:copy_shipped_shipments_to_cartons' do
48
46
  )
49
47
  select
50
48
  -- create the carton number as 'C'+shipment number:
51
- #{db_concat("'C'", "spree_shipments.number")}, -- number
49
+ #{db_concat("'C'", 'spree_shipments.number')}, -- number
52
50
  spree_shipments.id, -- imported_from_shipment_id
53
51
  spree_shipments.stock_location_id,
54
52
  spree_shipments.address_id,
@@ -80,15 +78,12 @@ namespace 'spree:migrations:copy_shipped_shipments_to_cartons' do
80
78
  SQL
81
79
  end
82
80
  end
83
-
84
81
  end
85
82
 
86
83
  say_with_time 'linking inventory units to cartons' do
87
-
88
84
  last_id = Spree::InventoryUnit.last.try!(:id) || 0
89
85
 
90
86
  in_batches(last_id: last_id) do |start_id, end_id|
91
-
92
87
  say_with_time "processing inventory units #{start_id} to #{end_id}" do
93
88
  Spree::InventoryUnit.connection.execute(<<-SQL.strip_heredoc)
94
89
  update spree_inventory_units
@@ -106,16 +101,13 @@ namespace 'spree:migrations:copy_shipped_shipments_to_cartons' do
106
101
  SQL
107
102
  end
108
103
  end
109
-
110
104
  end
111
-
112
105
  end
113
106
 
114
107
  task down: :environment do
115
108
  last_id = Spree::InventoryUnit.last.try!(:id) || 0
116
109
 
117
110
  say_with_time 'unlinking inventory units from cartons' do
118
-
119
111
  in_batches(last_id: last_id) do |start_id, end_id|
120
112
  say_with_time "processing inventory units #{start_id} to #{end_id}" do
121
113
  Spree::InventoryUnit.connection.execute(<<-SQL.strip_heredoc)
@@ -133,7 +125,6 @@ namespace 'spree:migrations:copy_shipped_shipments_to_cartons' do
133
125
  SQL
134
126
  end
135
127
  end
136
-
137
128
  end
138
129
 
139
130
  say_with_time "clearing carton imported_from_shipment_ids" do
@@ -176,5 +167,4 @@ namespace 'spree:migrations:copy_shipped_shipments_to_cartons' do
176
167
  start_id += batch_size
177
168
  end
178
169
  end
179
-
180
170
  end
@@ -0,0 +1,17 @@
1
+ namespace :solidus do
2
+ namespace :migrations do
3
+ namespace :migrate_shipping_rate_taxes do
4
+ task up: :environment do
5
+ puts "Adding persisted tax notes to historic shipping rates"
6
+ Spree::ShippingRate.where.not(tax_rate_id: nil).find_each do |shipping_rate|
7
+ tax_rate = Spree::TaxRate.unscoped.find(shipping_rate.tax_rate_id)
8
+ shipping_rate.taxes.find_or_create_by!(
9
+ tax_rate: tax_rate,
10
+ amount: tax_rate.compute_amount(shipping_rate)
11
+ )
12
+ end
13
+ Spree::ShippingRate.where.not(tax_rate_id: nil).update_all(tax_rate: nil)
14
+ end
15
+ end
16
+ end
17
+ end
@@ -2,7 +2,7 @@ namespace 'spree:migrations:migrate_user_addresses' do
2
2
  # This creates an entry in the user_addresses table for a user's currently
3
3
  # associated shipping and billing addresses.
4
4
 
5
- # This task should not need to be run more than once. But the de-dup behavior in
5
+ # This task should not need to be run more than once. But the de-dup behavior in
6
6
  # UserAddressBook should make it safe.
7
7
  # When the code (in the same PR) is deployed, each new order's addresses will be added
8
8
  # to the user's address book. This will catch up all the historical data.
@@ -5,7 +5,7 @@ namespace :order_capturing do
5
5
  orders = Spree::Order.complete.where(payment_state: 'balance_due').where('completed_at > ?', Spree::Config[:order_capturing_time_window].days.ago)
6
6
 
7
7
  orders.find_each do |order|
8
- if order.inventory_units.all? {|iu| iu.canceled? || iu.shipped? }
8
+ if order.inventory_units.all? { |iu| iu.canceled? || iu.shipped? }
9
9
  if Spree::OrderCapturing.failure_handler
10
10
  begin
11
11
  Spree::OrderCapturing.new(order).capture_payments
@@ -0,0 +1,11 @@
1
+ namespace :solidus do
2
+ namespace :upgrade do
3
+ desc "Upgrade Solidus to version 1.3"
4
+ task one_point_three: [
5
+ 'solidus:migrations:assure_store_on_orders:up',
6
+ 'solidus:migrations:migrate_shipping_rate_taxes:up'
7
+ ] do
8
+ puts "Your Solidus install is ready for Solidus 1.3."
9
+ end
10
+ end
11
+ end
data/script/rails CHANGED
@@ -6,4 +6,3 @@ ENGINE_PATH = File.expand_path('../../lib/spree/core/engine', __FILE__)
6
6
 
7
7
  require 'rails/all'
8
8
  require 'rails/engine/commands'
9
-
data/solidus_core.gemspec CHANGED
@@ -12,30 +12,28 @@ Gem::Specification.new do |s|
12
12
  s.author = 'Solidus Team'
13
13
  s.email = 'contact@solidus.io'
14
14
  s.homepage = 'http://solidus.io'
15
- s.license = %q{BSD-3}
15
+ s.license = 'BSD-3'
16
16
 
17
17
  s.files = `git ls-files`.split("\n")
18
18
  s.require_path = 'lib'
19
19
 
20
20
  s.required_ruby_version = '>= 2.1.0'
21
21
 
22
- s.add_dependency 'activemerchant', '~> 1.48.0'
22
+ s.add_dependency 'activemerchant', '~> 1.48'
23
23
  s.add_dependency 'acts_as_list', '~> 0.3'
24
24
  s.add_dependency 'awesome_nested_set', '~> 3.0.1'
25
25
  s.add_dependency 'carmen', '~> 1.0.0'
26
26
  s.add_dependency 'cancancan', '~> 1.10'
27
- s.add_dependency 'ffaker', '~> 1.16'
28
- s.add_dependency 'font-awesome-rails', '~> 4.0'
27
+ s.add_dependency 'ffaker', '~> 2.0'
29
28
  s.add_dependency 'friendly_id', '~> 5.0'
30
29
  s.add_dependency 'highline', '~> 1.6.18' # Necessary for the install generator
31
- s.add_dependency 'json', '~> 1.7'
32
30
  s.add_dependency 'kaminari', '~> 0.15', '>= 0.15.1'
33
31
  s.add_dependency 'monetize', '~> 1.1'
34
32
  s.add_dependency 'paperclip', '~> 4.2.0'
35
- s.add_dependency 'paranoia', '~> 2.1.4'
33
+ s.add_dependency 'paranoia', '~> 2.1', '>= 2.1.4'
36
34
  s.add_dependency 'premailer-rails'
37
- s.add_dependency 'rails', '~> 4.2.0'
38
- s.add_dependency 'ransack', '~> 1.6.0'
35
+ s.add_dependency 'rails', '~> 4.2.5'
36
+ s.add_dependency 'ransack', '~> 1.6'
39
37
  s.add_dependency 'responders'
40
38
  s.add_dependency 'state_machines-activerecord', '~> 0.2'
41
39
  s.add_dependency 'stringex', '~> 1.5.1'
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Spree::BaseHelper, :type => :helper do
3
+ describe Spree::BaseHelper, type: :helper do
4
4
  include Spree::BaseHelper
5
5
 
6
6
  let(:current_store){ create :store }
@@ -25,8 +25,8 @@ describe Spree::BaseHelper, :type => :helper do
25
25
  context "with a checkout zone defined" do
26
26
  context "checkout zone is of type country" do
27
27
  before do
28
- @country_zone = create(:zone, :name => "CountryZone")
29
- @country_zone.members.create(:zoneable => country)
28
+ @country_zone = create(:zone, name: "CountryZone")
29
+ @country_zone.members.create(zoneable: country)
30
30
  Spree::Config[:checkout_zone] = @country_zone.name
31
31
  end
32
32
 
@@ -37,9 +37,9 @@ describe Spree::BaseHelper, :type => :helper do
37
37
 
38
38
  context "checkout zone is of type state" do
39
39
  before do
40
- state_zone = create(:zone, :name => "StateZone")
41
- state = create(:state, :country => country)
42
- state_zone.members.create(:zoneable => state)
40
+ state_zone = create(:zone, name: "StateZone")
41
+ state = create(:state, country: country)
42
+ state_zone.members.create(zoneable: state)
43
43
  Spree::Config[:checkout_zone] = state_zone.name
44
44
  end
45
45
 
@@ -52,10 +52,10 @@ describe Spree::BaseHelper, :type => :helper do
52
52
 
53
53
  # Regression test for https://github.com/spree/spree/issues/1436
54
54
  context "defining custom image helpers" do
55
- let(:product) { mock_model(Spree::Product, :images => [], :variant_images => []) }
55
+ let(:product) { mock_model(Spree::Product, images: [], variant_images: []) }
56
56
  before do
57
57
  Spree::Image.class_eval do
58
- attachment_definitions[:attachment][:styles].merge!({:very_strange => '1x1'})
58
+ attachment_definitions[:attachment][:styles][:very_strange] = '1x1'
59
59
  end
60
60
  end
61
61
 
@@ -68,12 +68,11 @@ describe Spree::BaseHelper, :type => :helper do
68
68
  it "should raise NoMethodError when style is not exists" do
69
69
  expect { another_strange_image(product) }.to raise_error(NoMethodError)
70
70
  end
71
-
72
71
  end
73
72
 
74
73
  # Regression test for https://github.com/spree/spree/issues/2034
75
74
  context "flash_message" do
76
- let(:flash) { {"notice" => "ok", "foo" => "foo", "bar" => "bar"} }
75
+ let(:flash) { { "notice" => "ok", "foo" => "foo", "bar" => "bar" } }
77
76
 
78
77
  it "should output all flash content" do
79
78
  flash_messages
@@ -84,7 +83,7 @@ describe Spree::BaseHelper, :type => :helper do
84
83
  end
85
84
 
86
85
  it "should output flash content except one key" do
87
- flash_messages(:ignore_types => :bar)
86
+ flash_messages(ignore_types: :bar)
88
87
  html = Nokogiri::HTML(helper.output_buffer)
89
88
  expect(html.css(".notice").text).to eq("ok")
90
89
  expect(html.css(".foo").text).to eq("foo")
@@ -92,7 +91,7 @@ describe Spree::BaseHelper, :type => :helper do
92
91
  end
93
92
 
94
93
  it "should output flash content except some keys" do
95
- flash_messages(:ignore_types => [:foo, :bar])
94
+ flash_messages(ignore_types: [:foo, :bar])
96
95
  html = Nokogiri::HTML(helper.output_buffer)
97
96
  expect(html.css(".notice").text).to eq("ok")
98
97
  expect(html.css(".foo").text).to be_empty
@@ -136,20 +135,19 @@ describe Spree::BaseHelper, :type => :helper do
136
135
  # Because the controller_name method returns "test"
137
136
  # controller_name is used by this method to infer what it is supposed
138
137
  # to be generating meta_data_tags for
139
- text = Faker::Lorem.paragraphs(2).join(" ")
140
- @test = Spree::Product.new(:description => text)
138
+ @test = Spree::Product.new(description: "a" * 200)
141
139
  tags = Nokogiri::HTML.parse(meta_data_tags)
142
140
  content = tags.css("meta[name=description]").first["content"]
143
- assert content.length <= 160, "content length is not truncated to 160 characters"
141
+ expect(content.length).to be <= 160
144
142
  end
145
143
  end
146
144
 
147
145
  # Regression test for https://github.com/spree/spree/issues/5384
148
146
  context "custom image helpers conflict with inproper statements" do
149
- let(:product) { mock_model(Spree::Product, :images => [], :variant_images => []) }
147
+ let(:product) { mock_model(Spree::Product, images: [], variant_images: []) }
150
148
  before do
151
149
  Spree::Image.class_eval do
152
- attachment_definitions[:attachment][:styles].merge!({:foobar => '1x1'})
150
+ attachment_definitions[:attachment][:styles][:foobar] = '1x1'
153
151
  end
154
152
  end
155
153
 
@@ -162,7 +160,6 @@ describe Spree::BaseHelper, :type => :helper do
162
160
  it "should raise NoMethodError when statement with name equal to style name called" do
163
161
  expect { foobar(product) }.to raise_error(NoMethodError)
164
162
  end
165
-
166
163
  end
167
164
 
168
165
  context "pretty_time" do
@@ -1,10 +1,10 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  module Spree
4
- describe Spree::OrdersHelper, :type => :helper do
4
+ describe Spree::OrdersHelper, type: :helper do
5
5
  # Regression test for https://github.com/spree/spree/issues/2518 and https://github.com/spree/spree/issues/2323
6
6
  it "truncates HTML correctly in product description" do
7
- product = double(:description => "<strong>" + ("a" * 95) + "</strong> This content is invisible.")
7
+ product = double(description: "<strong>" + ("a" * 95) + "</strong> This content is invisible.")
8
8
  expected = "<strong>" + ("a" * 95) + "</strong>..."
9
9
  expect(truncated_product_description(product)).to eq(expected)
10
10
  end