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
@@ -5,18 +5,18 @@ require 'bundler/cli'
5
5
 
6
6
  module Spree
7
7
  class InstallGenerator < Rails::Generators::Base
8
- class_option :migrate, :type => :boolean, :default => true, :banner => 'Run Spree migrations'
9
- class_option :seed, :type => :boolean, :default => true, :banner => 'load seed data (migrations must be run)'
10
- class_option :sample, :type => :boolean, :default => true, :banner => 'load sample data (migrations must be run)'
11
- class_option :auto_accept, :type => :boolean
12
- class_option :user_class, :type => :string
13
- class_option :admin_email, :type => :string
14
- class_option :admin_password, :type => :string
15
- class_option :lib_name, :type => :string, :default => 'spree'
16
- class_option :enforce_available_locales, :type => :boolean, :default => nil
8
+ class_option :migrate, type: :boolean, default: true, banner: 'Run Spree migrations'
9
+ class_option :seed, type: :boolean, default: true, banner: 'load seed data (migrations must be run)'
10
+ class_option :sample, type: :boolean, default: true, banner: 'load sample data (migrations must be run)'
11
+ class_option :auto_accept, type: :boolean
12
+ class_option :user_class, type: :string
13
+ class_option :admin_email, type: :string
14
+ class_option :admin_password, type: :string
15
+ class_option :lib_name, type: :string, default: 'spree'
16
+ class_option :enforce_available_locales, type: :boolean, default: nil
17
17
 
18
18
  def self.source_paths
19
- paths = self.superclass.source_paths
19
+ paths = superclass.source_paths
20
20
  paths << File.expand_path('../templates', "../../#{__FILE__}")
21
21
  paths << File.expand_path('../templates', "../#{__FILE__}")
22
22
  paths << File.expand_path('../templates', __FILE__)
@@ -39,7 +39,7 @@ module Spree
39
39
  end
40
40
 
41
41
  def additional_tweaks
42
- return unless File.exists? 'public/robots.txt'
42
+ return unless File.exist? 'public/robots.txt'
43
43
  append_file "public/robots.txt", <<-ROBOTS
44
44
  User-agent: *
45
45
  Disallow: /checkout
@@ -134,14 +134,14 @@ Spree::Auth::Engine.load_seed if defined?(Spree::Auth)
134
134
  def populate_seed_data
135
135
  if @load_seed_data
136
136
  say_status :loading, "seed data"
137
- rake_options=[]
137
+ rake_options = []
138
138
  rake_options << "AUTO_ACCEPT=1" if options[:auto_accept]
139
139
  rake_options << "ADMIN_EMAIL=#{options[:admin_email]}" if options[:admin_email]
140
140
  rake_options << "ADMIN_PASSWORD=#{options[:admin_password]}" if options[:admin_password]
141
141
 
142
142
  cmd = lambda { rake("db:seed #{rake_options.join(' ')}") }
143
143
  if options[:auto_accept] || (options[:admin_email] && options[:admin_password])
144
- quietly &cmd
144
+ quietly(&cmd)
145
145
  else
146
146
  cmd.call
147
147
  end
@@ -160,8 +160,8 @@ Spree::Auth::Engine.load_seed if defined?(Spree::Auth)
160
160
  end
161
161
 
162
162
  def notify_about_routes
163
- insert_into_file File.join('config', 'routes.rb'), :after => "Rails.application.routes.draw do\n" do
164
- %Q{
163
+ insert_into_file File.join('config', 'routes.rb'), after: "Rails.application.routes.draw do\n" do
164
+ %{
165
165
  # This line mounts Spree's routes at the root of your application.
166
166
  # This means, any requests to URLs such as /products, will go to Spree::ProductsController.
167
167
  # If you would like to change where this engine is mounted, simply change the :at option to something different.
@@ -5,6 +5,7 @@ Spree.config do |config|
5
5
  # Without this preferences are loaded and persisted to the database. This
6
6
  # changes them to be stored in memory.
7
7
  # This will be the default in a future version.
8
+ # This line resets all preferences! It should be the first line in the block
8
9
  config.use_static_preferences!
9
10
 
10
11
  # Core:
@@ -22,7 +22,7 @@ module Spree
22
22
  end
23
23
 
24
24
  rescue_from CanCan::AccessDenied do
25
- instance_exec &unauthorized_redirect
25
+ instance_exec(&unauthorized_redirect)
26
26
  end
27
27
  end
28
28
 
@@ -68,9 +68,7 @@ module Spree
68
68
  # This one will be defined by Devise
69
69
  elsif respond_to?(:current_spree_user)
70
70
  current_spree_user
71
- else
72
- nil
73
- end
71
+ end
74
72
  end
75
73
  end
76
74
  end
@@ -11,62 +11,61 @@ module Spree
11
11
  layout :get_layout
12
12
 
13
13
  before_filter :set_user_language
14
+ end
14
15
 
15
- protected
16
+ protected
16
17
 
17
- # can be used in views as well as controllers.
18
- # e.g. <% self.title = 'This is a custom title for this view' %>
19
- attr_writer :title
18
+ # can be used in views as well as controllers.
19
+ # e.g. <% self.title = 'This is a custom title for this view' %>
20
+ attr_writer :title
20
21
 
21
- def title
22
- title_string = @title.present? ? @title : accurate_title
23
- if title_string.present?
24
- if Spree::Config[:always_put_site_name_in_title]
25
- [title_string, default_title].join(' - ')
26
- else
27
- title_string
28
- end
22
+ def title
23
+ title_string = @title.present? ? @title : accurate_title
24
+ if title_string.present?
25
+ if Spree::Config[:always_put_site_name_in_title]
26
+ [title_string, default_title].join(' - ')
29
27
  else
30
- default_title
28
+ title_string
31
29
  end
30
+ else
31
+ default_title
32
32
  end
33
+ end
33
34
 
34
- def default_title
35
- current_store.name
36
- end
35
+ def default_title
36
+ current_store.name
37
+ end
37
38
 
38
- # this is a hook for subclasses to provide title
39
- def accurate_title
40
- current_store.seo_title
41
- end
39
+ # this is a hook for subclasses to provide title
40
+ def accurate_title
41
+ current_store.seo_title
42
+ end
42
43
 
43
- def render_404(exception = nil)
44
- respond_to do |type|
45
- type.html { render :status => :not_found, :file => "#{::Rails.root}/public/404", :formats => [:html], :layout => nil}
46
- type.all { render :status => :not_found, :nothing => true }
47
- end
44
+ def render_404(_exception = nil)
45
+ respond_to do |type|
46
+ type.html { render status: :not_found, file: "#{::Rails.root}/public/404", formats: [:html], layout: nil }
47
+ type.all { render status: :not_found, nothing: true }
48
48
  end
49
+ end
49
50
 
50
- private
51
-
52
- def set_user_language
53
- locale = session[:locale]
54
- locale ||= config_locale if respond_to?(:config_locale, true)
55
- locale ||= Rails.application.config.i18n.default_locale
56
- locale ||= I18n.default_locale
57
- I18n.locale = locale
58
- end
51
+ private
59
52
 
60
- # Returns which layout to render.
61
- #
62
- # You can set the layout you want to render inside your Spree configuration with the +:layout+ option.
63
- #
64
- # Default layout is: +app/views/spree/layouts/spree_application+
65
- #
66
- def get_layout
67
- layout ||= Spree::Config[:layout]
68
- end
53
+ def set_user_language
54
+ locale = session[:locale]
55
+ locale ||= config_locale if respond_to?(:config_locale, true)
56
+ locale ||= Rails.application.config.i18n.default_locale
57
+ locale ||= I18n.default_locale
58
+ I18n.locale = locale
59
+ end
69
60
 
61
+ # Returns which layout to render.
62
+ #
63
+ # You can set the layout you want to render inside your Spree configuration with the +:layout+ option.
64
+ #
65
+ # Default layout is: +app/views/spree/layouts/spree_application+
66
+ #
67
+ def get_layout
68
+ Spree::Config[:layout]
70
69
  end
71
70
  end
72
71
  end
@@ -1,20 +1,21 @@
1
+ require 'spree/core/controller_helpers/pricing'
2
+
1
3
  module Spree
2
4
  module Core
3
5
  module ControllerHelpers
4
6
  module Order
5
7
  extend ActiveSupport::Concern
8
+ include ControllerHelpers::Pricing
6
9
 
7
10
  included do
8
11
  before_filter :set_current_order
9
12
 
10
- helper_method :current_currency
11
13
  helper_method :current_order
12
14
  helper_method :simple_current_order
13
15
  end
14
16
 
15
17
  # Used in the link_to_cart helper.
16
18
  def simple_current_order
17
-
18
19
  return @simple_current_order if @simple_current_order
19
20
 
20
21
  @simple_current_order = find_order_by_token_or_user
@@ -64,10 +65,6 @@ module Spree
64
65
  end
65
66
  end
66
67
 
67
- def current_currency
68
- Spree::Config[:currency]
69
- end
70
-
71
68
  def ip_address
72
69
  request.remote_ip
73
70
  end
@@ -79,10 +76,10 @@ module Spree
79
76
  end
80
77
 
81
78
  def current_order_params
82
- { currency: current_currency, guest_token: cookies.signed[:guest_token], store_id: current_store.id, user_id: try_spree_current_user.try(:id) }
79
+ { currency: current_pricing_options.currency, guest_token: cookies.signed[:guest_token], store_id: current_store.id, user_id: try_spree_current_user.try(:id) }
83
80
  end
84
81
 
85
- def find_order_by_token_or_user(options={}, with_adjustments = false)
82
+ def find_order_by_token_or_user(options = {}, with_adjustments = false)
86
83
  options[:lock] ||= false
87
84
 
88
85
  # Find any incomplete orders for the guest_token
@@ -99,7 +96,6 @@ module Spree
99
96
 
100
97
  order
101
98
  end
102
-
103
99
  end
104
100
  end
105
101
  end
@@ -44,8 +44,8 @@ module Spree
44
44
  return params if params[:payment_source].blank?
45
45
 
46
46
  payment_params = params[:order] &&
47
- params[:order][:payments_attributes] &&
48
- params[:order][:payments_attributes].first
47
+ params[:order][:payments_attributes] &&
48
+ params[:order][:payments_attributes].first
49
49
  return params if payment_params.blank?
50
50
 
51
51
  payment_method_id = payment_params[:payment_method_id]
@@ -105,9 +105,9 @@ module Spree
105
105
  {
106
106
  source_attributes: {
107
107
  existing_card_id: card_id,
108
- verification_value: cvc_confirm,
108
+ verification_value: cvc_confirm
109
109
  }
110
- },
110
+ }
111
111
  ]
112
112
 
113
113
  params[:order].delete(:existing_card)
@@ -161,6 +161,5 @@ module Spree
161
161
 
162
162
  params
163
163
  end
164
-
165
164
  end
166
165
  end
@@ -0,0 +1,27 @@
1
+ require 'spree/deprecation'
2
+
3
+ module Spree
4
+ module Core
5
+ module ControllerHelpers
6
+ module Pricing
7
+ extend ActiveSupport::Concern
8
+
9
+ included do
10
+ helper_method :current_currency
11
+ helper_method :current_pricing_options
12
+ end
13
+
14
+ def current_pricing_options
15
+ Spree::Config.pricing_options_class.new(
16
+ currency: current_store.try!(:default_currency).presence || Spree::Config[:currency]
17
+ )
18
+ end
19
+
20
+ def current_currency
21
+ current_pricing_options.currency
22
+ end
23
+ deprecate current_currency: :current_pricing_options, deprecator: Spree::Deprecation
24
+ end
25
+ end
26
+ end
27
+ end
@@ -7,7 +7,7 @@ module ActionController
7
7
  # Checkout AS Array#extract_options! and original respond_with
8
8
  # implementation for a better picture of this hack
9
9
  if resources.last.is_a? Hash
10
- resources.last.merge! action_name: action_name.to_sym
10
+ resources.last[:action_name] = action_name.to_sym
11
11
  else
12
12
  resources.push action_name: action_name.to_sym
13
13
  end
@@ -35,7 +35,7 @@ module Spree
35
35
  self.spree_responders = {}
36
36
  end
37
37
 
38
- def respond_override(options={})
38
+ def respond_override(options = {})
39
39
  unless options.blank?
40
40
  action_name = options.keys.first
41
41
  action_value = options.values.first
@@ -52,10 +52,10 @@ module Spree
52
52
  end
53
53
 
54
54
  if format_value.is_a?(Proc)
55
- options = {action_name.to_sym => {format_name.to_sym => {:success => format_value}}}
55
+ options = { action_name.to_sym => { format_name.to_sym => { success: format_value } } }
56
56
  end
57
57
 
58
- self.spree_responders.deep_merge!(self.name.to_sym => options)
58
+ spree_responders.deep_merge!(name.to_sym => options)
59
59
  end
60
60
  end
61
61
  end
@@ -2,10 +2,10 @@ module Spree
2
2
  module Core
3
3
  module ControllerHelpers
4
4
  module Search
5
- def build_searcher params
5
+ def build_searcher(params)
6
6
  Spree::Config.searcher_class.new(params).tap do |searcher|
7
7
  searcher.current_user = try_spree_current_user
8
- searcher.current_currency = current_currency
8
+ searcher.pricing_options = current_pricing_options
9
9
  end
10
10
  end
11
11
  end
@@ -13,12 +13,12 @@ module Spree
13
13
  class_attribute :current_store_class
14
14
  self.current_store_class = Spree::Core::CurrentStore
15
15
 
16
- def current_store
17
- @current_store ||= current_store_class.new(request).store
18
- end
19
16
  helper_method :current_store
20
17
  end
21
18
 
19
+ def current_store
20
+ @current_store ||= current_store_class.new(request).store
21
+ end
22
22
  end
23
23
  end
24
24
  end
@@ -6,13 +6,13 @@ module Spree
6
6
  Spree::PermittedAttributes
7
7
  end
8
8
 
9
- delegate *Spree::PermittedAttributes::ATTRIBUTES,
9
+ delegate(*Spree::PermittedAttributes::ATTRIBUTES,
10
10
  to: :permitted_attributes,
11
- prefix: :permitted
11
+ prefix: :permitted)
12
12
 
13
13
  def permitted_credit_card_update_attributes
14
14
  permitted_attributes.credit_card_update_attributes + [
15
- address_attributes: permitted_address_attributes,
15
+ address_attributes: permitted_address_attributes
16
16
  ]
17
17
  end
18
18
 
@@ -24,7 +24,7 @@ module Spree
24
24
 
25
25
  def permitted_source_attributes
26
26
  permitted_attributes.source_attributes + [
27
- address_attributes: permitted_address_attributes,
27
+ address_attributes: permitted_address_attributes
28
28
  ]
29
29
  end
30
30
 
@@ -23,4 +23,4 @@ module Spree
23
23
  end
24
24
  end
25
25
  end
26
- end
26
+ end
@@ -19,8 +19,7 @@ module DelegateBelongsTo
19
19
  extend ActiveSupport::Concern
20
20
 
21
21
  module ClassMethods
22
-
23
- @@default_rejected_delegate_columns = ['created_at','created_on','updated_at','updated_on','lock_version','type','id','position','parent_id','lft','rgt']
22
+ @@default_rejected_delegate_columns = ['created_at', 'created_on', 'updated_at', 'updated_on', 'lock_version', 'type', 'id', 'position', 'parent_id', 'lft', 'rgt']
24
23
  mattr_accessor :default_rejected_delegate_columns
25
24
 
26
25
  ##
@@ -50,28 +49,27 @@ module DelegateBelongsTo
50
49
 
51
50
  protected
52
51
 
53
- def get_association_column_names(association, without_default_rejected_delegate_columns=true)
54
- begin
55
- association_klass = reflect_on_association(association).klass
56
- methods = association_klass.column_names
57
- methods.reject!{|x|default_rejected_delegate_columns.include?(x.to_s)} if without_default_rejected_delegate_columns
58
- return methods
59
- rescue
60
- return []
61
- end
62
- end
52
+ def get_association_column_names(association, without_default_rejected_delegate_columns = true)
53
+ association_klass = reflect_on_association(association).klass
54
+ methods = association_klass.column_names
55
+ methods.reject!{ |x| default_rejected_delegate_columns.include?(x.to_s) } if without_default_rejected_delegate_columns
56
+ return methods
57
+ rescue
58
+ return []
59
+ end
63
60
 
64
- ##
65
- # initialize_association :belongs_to, :contact
66
- def initialize_association(type, association, opts={})
67
- raise 'Illegal or unimplemented association type.' unless [:belongs_to].include?(type.to_s.to_sym)
68
- send type, association, opts if reflect_on_association(association).nil?
69
- end
61
+ ##
62
+ # initialize_association :belongs_to, :contact
63
+ def initialize_association(type, association, opts = {})
64
+ raise 'Illegal or unimplemented association type.' unless [:belongs_to].include?(type.to_s.to_sym)
65
+ send type, association, opts if reflect_on_association(association).nil?
66
+ end
70
67
 
71
68
  private
72
- def class_def(name, method=nil, &blk)
73
- class_eval { method.nil? ? define_method(name, &blk) : define_method(name, method) }
74
- end
69
+
70
+ def class_def(name, method = nil, &blk)
71
+ class_eval { method.nil? ? define_method(name, &blk) : define_method(name, method) }
72
+ end
75
73
  end
76
74
 
77
75
  def delegator_for(association, attr, *args)
@@ -8,12 +8,16 @@ module Spree
8
8
  load File.join(root, "lib", "tasks", "exchanges.rake")
9
9
  end
10
10
 
11
- initializer "spree.environment", :before => :load_config_initializers do |app|
11
+ config.generators do |g|
12
+ g.test_framework :rspec
13
+ end
14
+
15
+ initializer "spree.environment", before: :load_config_initializers do |app|
12
16
  app.config.spree = Spree::Core::Environment.new
13
- Spree::Config = app.config.spree.preferences #legacy access
17
+ Spree::Config = app.config.spree.preferences # legacy access
14
18
  end
15
19
 
16
- initializer "spree.default_permissions" do |app|
20
+ initializer "spree.default_permissions" do |_app|
17
21
  Spree::RoleConfiguration.configure do |config|
18
22
  config.assign_permissions :default, [Spree::PermissionSets::DefaultCustomer]
19
23
  config.assign_permissions :admin, [Spree::PermissionSets::SuperUser]
@@ -28,8 +32,8 @@ module Spree
28
32
  Spree::Calculator::Shipping::PerItem,
29
33
  Spree::Calculator::Shipping::PriceSack]
30
34
 
31
- app.config.spree.calculators.tax_rates = [
32
- Spree::Calculator::DefaultTax]
35
+ app.config.spree.calculators.tax_rates = [
36
+ Spree::Calculator::DefaultTax]
33
37
  end
34
38
 
35
39
  initializer "spree.register.stock_splitters" do |app|
@@ -44,7 +48,7 @@ module Spree
44
48
  Spree::Gateway::Bogus,
45
49
  Spree::Gateway::BogusSimple,
46
50
  Spree::PaymentMethod::StoreCredit,
47
- Spree::PaymentMethod::Check ]
51
+ Spree::PaymentMethod::Check]
48
52
  end
49
53
 
50
54
  # We need to define promotions rules here so extensions and existing apps
@@ -95,7 +99,7 @@ module Spree
95
99
  Spree::Promotion::Rules::Taxon,
96
100
  Spree::Promotion::Rules::NthOrder,
97
101
  Spree::Promotion::Rules::OptionValue,
98
- Spree::Promotion::Rules::FirstRepeatPurchaseSince,
102
+ Spree::Promotion::Rules::FirstRepeatPurchaseSince
99
103
  ]
100
104
  end
101
105
 
@@ -116,7 +120,7 @@ module Spree
116
120
  :verification_value]
117
121
  end
118
122
 
119
- initializer "spree.core.checking_migrations" do |app|
123
+ initializer "spree.core.checking_migrations" do |_app|
120
124
  Migrations.new(config, engine_name).check
121
125
  end
122
126
  end
@@ -9,4 +9,3 @@ module Spree
9
9
  end
10
10
  end
11
11
  end
12
-
@@ -4,7 +4,7 @@ module Spree
4
4
  extend ActiveSupport::Concern
5
5
 
6
6
  def add_class(name)
7
- self.instance_variable_set "@#{name}", Set.new
7
+ instance_variable_set "@#{name}", Set.new
8
8
 
9
9
  create_method( "#{name}=".to_sym ) { |val|
10
10
  instance_variable_set( "@" + name, val)
@@ -17,9 +17,9 @@ module Spree
17
17
 
18
18
  private
19
19
 
20
- def create_method(name, &block)
21
- self.class.send(:define_method, name, &block)
22
- end
20
+ def create_method(name, &block)
21
+ self.class.send(:define_method, name, &block)
22
+ end
23
23
  end
24
24
  end
25
25
  end
@@ -2,9 +2,8 @@ module Spree
2
2
  module Core
3
3
  module Importer
4
4
  class Order
5
-
6
5
  def self.import(user, params)
7
- begin
6
+ ActiveRecord::Base.transaction do
8
7
  ensure_country_id_from_params params[:ship_address_attributes]
9
8
  ensure_state_id_from_params params[:ship_address_attributes]
10
9
  ensure_country_id_from_params params[:bill_address_attributes]
@@ -19,7 +18,7 @@ module Spree
19
18
  shipments_attrs = params.delete(:shipments_attributes)
20
19
 
21
20
  create_shipments_from_params(shipments_attrs, order)
22
- create_line_items_from_params(params.delete(:line_items_attributes),order)
21
+ create_line_items_from_params(params.delete(:line_items_attributes), order)
23
22
  create_adjustments_from_params(params.delete(:adjustments_attributes), order)
24
23
  create_payments_from_params(params.delete(:payments_attributes), order)
25
24
 
@@ -45,18 +44,14 @@ module Spree
45
44
  end
46
45
  end
47
46
  order.reload
48
- rescue
49
- order.destroy if order && order.persisted?
50
- raise
51
47
  end
52
48
  end
53
49
 
54
50
  def self.create_shipments_from_params(shipments_hash, order)
55
51
  return [] unless shipments_hash
56
52
 
57
- line_items = order.line_items
58
53
  shipments_hash.each do |s|
59
- shipment = order.shipments.build
54
+ shipment = Shipment.new
60
55
  shipment.tracking = s[:tracking]
61
56
  shipment.stock_location = Spree::StockLocation.find_by_admin_name(s[:stock_location]) || Spree::StockLocation.find_by_name!(s[:stock_location])
62
57
 
@@ -64,19 +59,19 @@ module Spree
64
59
  inventory_units.each do |iu|
65
60
  ensure_variant_id_from_params(iu)
66
61
 
67
- unit = shipment.inventory_units.build
68
- unit.order = order
62
+ unless line_item = order.line_items.find_by(variant_id: iu[:variant_id])
63
+ line_item = order.contents.add(Spree::Variant.find(iu[:variant_id]), 1)
64
+ end
69
65
 
70
66
  # Spree expects a Inventory Unit to always reference a line
71
67
  # item and variant otherwise users might get exceptions when
72
68
  # trying to view these units. Note the Importer might not be
73
69
  # able to find the line item if line_item.variant_id |= iu.variant_id
74
- unit.variant_id = iu[:variant_id]
75
- if line_item = order.line_items.find_by(variant_id: iu[:variant_id])
76
- unit.line_item = line_item
77
- else
78
- unit.line_item = order.contents.add(Spree::Variant.find(iu[:variant_id]), 1)
79
- end
70
+ shipment.inventory_units.new(
71
+ order: order,
72
+ variant_id: iu[:variant_id],
73
+ line_item: line_item
74
+ )
80
75
  end
81
76
 
82
77
  # Mark shipped if it should be.
@@ -88,11 +83,12 @@ module Spree
88
83
  end
89
84
  end
90
85
 
86
+ order.shipments << shipment
91
87
  shipment.save!
92
88
 
93
89
  shipping_method = Spree::ShippingMethod.find_by_name(s[:shipping_method]) || Spree::ShippingMethod.find_by_admin_name!(s[:shipping_method])
94
- rate = shipment.shipping_rates.create!(:shipping_method => shipping_method,
95
- :cost => s[:cost])
90
+ rate = shipment.shipping_rates.create!(shipping_method: shipping_method,
91
+ cost: s[:cost])
96
92
  shipment.selected_shipping_rate_id = rate.id
97
93
  shipment.update_amounts
98
94
  end
@@ -157,13 +153,13 @@ module Spree
157
153
  def self.ensure_variant_id_from_params(hash)
158
154
  sku = hash.delete(:sku)
159
155
  unless hash[:variant_id].present?
160
- hash[:variant_id] = Spree::Variant.active.find_by_sku!(sku).id
156
+ hash[:variant_id] = Spree::Variant.with_prices.find_by_sku!(sku).id
161
157
  end
162
158
  hash
163
159
  end
164
160
 
165
161
  def self.ensure_country_id_from_params(address)
166
- return if address.nil? or address[:country_id].present? or address[:country].nil?
162
+ return if address.nil? || address[:country_id].present? || address[:country].nil?
167
163
 
168
164
  search = {}
169
165
  if name = address[:country]['name']
@@ -181,7 +177,7 @@ module Spree
181
177
  end
182
178
 
183
179
  def self.ensure_state_id_from_params(address)
184
- return if address.nil? or address[:state_id].present? or address[:state].nil?
180
+ return if address.nil? || address[:state_id].present? || address[:state].nil?
185
181
 
186
182
  search = {}
187
183
  if name = address[:state]['name']
@@ -199,7 +195,6 @@ module Spree
199
195
  address[:state_name] = search[:name] || search[:abbr]
200
196
  end
201
197
  end
202
-
203
198
  end
204
199
  end
205
200
  end