solidus_core 1.2.3 → 1.3.0.beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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