solidus_core 2.0.3 → 2.1.0.beta1

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

Potentially problematic release.


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

Files changed (187) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +62 -3
  3. data/app/assets/javascripts/spree.js.coffee.erb +4 -1
  4. data/app/helpers/spree/base_helper.rb +7 -48
  5. data/app/models/spree/address.rb +5 -1
  6. data/app/models/spree/adjustment.rb +3 -3
  7. data/app/models/spree/app_configuration.rb +13 -0
  8. data/app/models/spree/calculator.rb +3 -2
  9. data/app/models/spree/calculator/default_tax.rb +6 -10
  10. data/app/models/spree/calculator/flat_percent_item_total.rb +0 -4
  11. data/app/models/spree/calculator/flat_rate.rb +0 -4
  12. data/app/models/spree/calculator/flexi_rate.rb +0 -4
  13. data/app/models/spree/calculator/free_shipping.rb +0 -3
  14. data/app/models/spree/calculator/percent_on_line_item.rb +0 -4
  15. data/app/models/spree/calculator/percent_per_item.rb +0 -4
  16. data/app/models/spree/calculator/price_sack.rb +0 -4
  17. data/app/models/spree/calculator/returns/default_refund_amount.rb +0 -3
  18. data/app/models/spree/calculator/shipping/flat_percent_item_total.rb +0 -4
  19. data/app/models/spree/calculator/shipping/flat_rate.rb +0 -4
  20. data/app/models/spree/calculator/shipping/flexi_rate.rb +0 -4
  21. data/app/models/spree/calculator/shipping/per_item.rb +0 -4
  22. data/app/models/spree/calculator/shipping/price_sack.rb +0 -4
  23. data/app/models/spree/calculator/tiered_flat_rate.rb +0 -4
  24. data/app/models/spree/calculator/tiered_percent.rb +0 -4
  25. data/app/models/spree/credit_card.rb +27 -14
  26. data/app/models/spree/gateway.rb +4 -0
  27. data/app/models/spree/inventory_unit.rb +2 -0
  28. data/app/models/spree/line_item.rb +31 -26
  29. data/app/models/spree/option_type.rb +0 -3
  30. data/app/models/spree/order.rb +28 -31
  31. data/app/models/spree/order/checkout.rb +0 -2
  32. data/app/models/spree/order_contents.rb +0 -45
  33. data/app/models/spree/order_merger.rb +6 -6
  34. data/app/models/spree/order_update_attributes.rb +0 -2
  35. data/app/models/spree/order_updater.rb +91 -13
  36. data/app/models/spree/payment.rb +9 -2
  37. data/app/models/spree/payment/processing.rb +15 -9
  38. data/app/models/spree/payment_method.rb +48 -5
  39. data/app/models/spree/price.rb +7 -9
  40. data/app/models/spree/product.rb +1 -25
  41. data/app/models/spree/promotion.rb +22 -14
  42. data/app/models/spree/promotion/actions/create_adjustment.rb +12 -1
  43. data/app/models/spree/promotion/actions/create_item_adjustments.rb +15 -1
  44. data/app/models/spree/promotion/actions/create_quantity_adjustments.rb +5 -3
  45. data/app/models/spree/promotion/actions/free_shipping.rb +14 -0
  46. data/app/models/spree/promotion/rules/taxon.rb +7 -2
  47. data/app/models/spree/promotion/rules/user_role.rb +43 -0
  48. data/app/models/spree/promotion_action.rb +19 -2
  49. data/app/models/spree/promotion_handler/coupon.rb +1 -4
  50. data/app/models/spree/promotion_handler/free_shipping.rb +22 -17
  51. data/app/models/spree/promotion_rule_role.rb +6 -0
  52. data/app/models/spree/property.rb +0 -3
  53. data/app/models/spree/return_authorization.rb +2 -0
  54. data/app/models/spree/shipment.rb +5 -21
  55. data/app/models/spree/shipping_method.rb +23 -2
  56. data/app/models/spree/shipping_rate.rb +3 -0
  57. data/app/models/spree/stock/estimator.rb +1 -1
  58. data/app/models/spree/stock_location.rb +3 -0
  59. data/app/models/spree/store.rb +7 -0
  60. data/app/models/spree/tax/item_adjuster.rb +27 -12
  61. data/app/models/spree/tax/order_adjuster.rb +2 -5
  62. data/app/models/spree/tax/tax_helpers.rb +4 -8
  63. data/app/models/spree/tax_rate.rb +1 -15
  64. data/app/models/spree/taxon.rb +0 -3
  65. data/app/models/spree/transfer_item.rb +1 -1
  66. data/app/models/spree/user_class_handle.rb +14 -9
  67. data/app/models/spree/variant/pricing_options.rb +1 -1
  68. data/app/models/spree/wallet/add_payment_sources_to_wallet.rb +1 -1
  69. data/app/models/spree/zone.rb +20 -13
  70. data/config/locales/en.yml +144 -62
  71. data/db/migrate/20120831092320_spree_one_two.rb +0 -7
  72. data/db/migrate/20150723224133_remove_unnecessary_indexes.rb +0 -2
  73. data/db/migrate/20160924135758_remove_is_default_from_prices.rb +5 -0
  74. data/db/migrate/20161009141333_remove_currency_from_line_items.rb +5 -0
  75. data/db/migrate/20161014221052_add_available_to_columns_and_remove_display_on_from_payment_methods.rb +28 -0
  76. data/db/migrate/20161123154034_add_available_to_users_and_remove_display_on_from_shipping_methods.rb +20 -0
  77. data/lib/generators/spree/custom_user/templates/authentication_helpers.rb.tt +4 -0
  78. data/lib/generators/spree/dummy/dummy_generator.rb +0 -2
  79. data/lib/spree/core.rb +0 -5
  80. data/lib/spree/core/controller_helpers/pricing.rb +2 -1
  81. data/lib/spree/core/engine.rb +14 -0
  82. data/lib/spree/core/version.rb +1 -1
  83. data/lib/spree/deprecation.rb +1 -1
  84. data/lib/spree/localized_number.rb +3 -2
  85. data/lib/spree/permission_sets/configuration_display.rb +0 -1
  86. data/lib/spree/permission_sets/configuration_management.rb +0 -1
  87. data/lib/spree/permission_sets/product_display.rb +0 -1
  88. data/lib/spree/permission_sets/product_management.rb +0 -1
  89. data/lib/spree/permission_sets/user_management.rb +2 -4
  90. data/lib/spree/permitted_attributes.rb +3 -2
  91. data/lib/spree/testing_support/capybara_ext.rb +0 -12
  92. data/lib/spree/testing_support/factories/address_factory.rb +1 -1
  93. data/lib/spree/testing_support/factories/line_item_factory.rb +0 -1
  94. data/lib/spree/testing_support/factories/payment_factory.rb +4 -0
  95. data/lib/spree/testing_support/factories/payment_method_factory.rb +8 -1
  96. data/lib/spree/testing_support/factories/user_factory.rb +2 -2
  97. data/solidus_core.gemspec +4 -3
  98. data/spec/helpers/base_helper_spec.rb +0 -40
  99. data/spec/lib/spree/core/controller_helpers/pricing_spec.rb +16 -0
  100. data/spec/lib/spree/core/importer/order_spec.rb +27 -18
  101. data/spec/lib/spree/core/price_migrator_spec.rb +3 -1
  102. data/spec/lib/spree/core/testing_support/factories/order_factory_spec.rb +16 -0
  103. data/spec/lib/spree/core/unreturned_item_charger_spec.rb +0 -2
  104. data/spec/lib/tasks/exchanges_spec.rb +4 -2
  105. data/spec/lib/tasks/migrations/create_vat_prices_spec.rb +5 -3
  106. data/spec/models/spree/adjustment_spec.rb +136 -0
  107. data/spec/models/spree/calculator/default_tax_spec.rb +13 -7
  108. data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +3 -0
  109. data/spec/models/spree/calculator/flat_rate_spec.rb +3 -0
  110. data/spec/models/spree/calculator/flexi_rate_spec.rb +3 -0
  111. data/spec/models/spree/calculator/free_shipping_spec.rb +6 -0
  112. data/spec/models/spree/calculator/percent_on_line_item_spec.rb +9 -4
  113. data/spec/models/spree/calculator/percent_per_item_spec.rb +10 -0
  114. data/spec/models/spree/calculator/price_sack_spec.rb +3 -0
  115. data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +3 -0
  116. data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +3 -0
  117. data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +3 -0
  118. data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +3 -0
  119. data/spec/models/spree/calculator/shipping/per_item_spec.rb +3 -0
  120. data/spec/models/spree/calculator/shipping/price_sack_spec.rb +4 -1
  121. data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +3 -0
  122. data/spec/models/spree/calculator/tiered_percent_spec.rb +3 -0
  123. data/spec/models/spree/credit_card_spec.rb +27 -1
  124. data/spec/models/spree/line_item_spec.rb +58 -65
  125. data/spec/models/spree/order/checkout_spec.rb +2 -1
  126. data/spec/models/spree/order/payment_spec.rb +9 -10
  127. data/spec/models/spree/order/tax_spec.rb +22 -7
  128. data/spec/models/spree/order/updating_spec.rb +1 -3
  129. data/spec/models/spree/order_cancellations_spec.rb +6 -4
  130. data/spec/models/spree/order_contents_spec.rb +34 -50
  131. data/spec/models/spree/order_inventory_spec.rb +3 -5
  132. data/spec/models/spree/order_merger_spec.rb +20 -0
  133. data/spec/models/spree/order_spec.rb +28 -64
  134. data/spec/models/spree/order_update_attributes_spec.rb +1 -5
  135. data/spec/models/spree/order_updater_spec.rb +251 -0
  136. data/spec/models/spree/payment_method_spec.rb +178 -28
  137. data/spec/models/spree/payment_spec.rb +35 -19
  138. data/spec/models/spree/permission_sets/configuration_display.rb +0 -4
  139. data/spec/models/spree/permission_sets/configuration_management_spec.rb +0 -2
  140. data/spec/models/spree/permission_sets/product_display_spec.rb +0 -4
  141. data/spec/models/spree/permission_sets/product_management_spec.rb +0 -2
  142. data/spec/models/spree/permission_sets/user_management_spec.rb +9 -2
  143. data/spec/models/spree/price_spec.rb +16 -1
  144. data/spec/models/spree/product_spec.rb +0 -75
  145. data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +20 -0
  146. data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +39 -15
  147. data/spec/models/spree/promotion/actions/create_quantity_adjustments_spec.rb +203 -22
  148. data/spec/models/spree/promotion/actions/free_shipping_spec.rb +22 -3
  149. data/spec/models/spree/promotion/rules/taxon_spec.rb +26 -0
  150. data/spec/models/spree/promotion/rules/user_role_spec.rb +86 -0
  151. data/spec/models/spree/promotion_action_spec.rb +38 -0
  152. data/spec/models/spree/promotion_handler/coupon_spec.rb +36 -33
  153. data/spec/models/spree/promotion_handler/free_shipping_spec.rb +21 -22
  154. data/spec/models/spree/promotion_spec.rb +46 -6
  155. data/spec/models/spree/reimbursement_spec.rb +1 -1
  156. data/spec/models/spree/reimbursement_tax_calculator_spec.rb +2 -2
  157. data/spec/models/spree/shipment_spec.rb +68 -50
  158. data/spec/models/spree/shipping_method_spec.rb +41 -0
  159. data/spec/models/spree/shipping_rate_spec.rb +9 -3
  160. data/spec/models/spree/stock/estimator_spec.rb +4 -2
  161. data/spec/models/spree/store_credit_spec.rb +3 -3
  162. data/spec/models/spree/tax/item_adjuster_spec.rb +31 -21
  163. data/spec/models/spree/tax/order_adjuster_spec.rb +6 -10
  164. data/spec/models/spree/tax/taxation_integration_spec.rb +19 -0
  165. data/spec/models/spree/tax_rate_spec.rb +5 -26
  166. data/spec/models/spree/transfer_item_spec.rb +11 -0
  167. data/spec/models/spree/variant/pricing_options_spec.rb +7 -17
  168. data/spec/models/spree/variant_spec.rb +2 -4
  169. data/spec/models/spree/zone_spec.rb +60 -20
  170. data/spec/shared_examples/calculator_shared_examples.rb +8 -0
  171. metadata +19 -24
  172. data/app/models/spree/item_adjustments.rb +0 -89
  173. data/app/models/spree/option_type_prototype.rb +0 -6
  174. data/app/models/spree/property_prototype.rb +0 -6
  175. data/app/models/spree/prototype.rb +0 -14
  176. data/app/models/spree/prototype_taxon.rb +0 -6
  177. data/app/models/spree/tracker.rb +0 -8
  178. data/db/migrate/20150128032538_remove_environment_from_tracker.rb +0 -6
  179. data/lib/generators/spree/dummy/templates/initializers/custom_user.rb +0 -1
  180. data/lib/spree/core/delegate_belongs_to.rb +0 -94
  181. data/lib/spree/testing_support/factories/prototype_factory.rb +0 -8
  182. data/lib/spree/testing_support/factories/tracker_factory.rb +0 -6
  183. data/spec/lib/spree/core/delegate_belongs_to_spec.rb +0 -24
  184. data/spec/lib/spree/core/testing_support/factories/prototype_factory_spec.rb +0 -12
  185. data/spec/lib/spree/core/testing_support/factories/tracker_factory_spec.rb +0 -12
  186. data/spec/models/spree/item_adjustments_spec.rb +0 -306
  187. data/spec/models/spree/tracker_spec.rb +0 -21
@@ -413,13 +413,6 @@ class SpreeOneTwo < ActiveRecord::Migration[4.2]
413
413
 
414
414
  add_index :spree_tokenized_permissions, [:permissable_id, :permissable_type], name: 'index_tokenized_name_and_type'
415
415
 
416
- create_table :spree_trackers do |t|
417
- t.string :environment
418
- t.string :analytics_id
419
- t.boolean :active, default: true
420
- t.timestamps null: true
421
- end
422
-
423
416
  create_table :spree_users do |t|
424
417
  t.string :encrypted_password, limit: 128
425
418
  t.string :password_salt, limit: 128
@@ -28,7 +28,6 @@ class RemoveUnnecessaryIndexes < ActiveRecord::Migration[4.2]
28
28
  safe_remove_index :spree_tax_categories, :deleted_at
29
29
  safe_remove_index :spree_tax_rates, :show_rate_in_label
30
30
  safe_remove_index :spree_tax_rates, :included_in_price
31
- safe_remove_index :spree_trackers, :active
32
31
  safe_remove_index :spree_variants, :is_master
33
32
  safe_remove_index :spree_variants, :deleted_at
34
33
  safe_remove_index :spree_zones, :default_tax
@@ -56,7 +55,6 @@ class RemoveUnnecessaryIndexes < ActiveRecord::Migration[4.2]
56
55
  safe_add_index :spree_tax_categories, :deleted_at
57
56
  safe_add_index :spree_tax_rates, :show_rate_in_label
58
57
  safe_add_index :spree_tax_rates, :included_in_price
59
- safe_add_index :spree_trackers, :active
60
58
  safe_add_index :spree_variants, :is_master
61
59
  safe_add_index :spree_variants, :deleted_at
62
60
  safe_add_index :spree_zones, :default_tax
@@ -0,0 +1,5 @@
1
+ class RemoveIsDefaultFromPrices < ActiveRecord::Migration[5.0]
2
+ def change
3
+ remove_column :spree_prices, :is_default, :boolean, default: true
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class RemoveCurrencyFromLineItems < ActiveRecord::Migration[5.0]
2
+ def change
3
+ remove_column :spree_line_items, :currency, :string
4
+ end
5
+ end
@@ -0,0 +1,28 @@
1
+ class AddAvailableToColumnsAndRemoveDisplayOnFromPaymentMethods < ActiveRecord::Migration[5.0]
2
+ def up
3
+ add_column(:spree_payment_methods, :available_to_users, :boolean, default: true)
4
+ add_column(:spree_payment_methods, :available_to_admin, :boolean, default: true)
5
+ execute("UPDATE spree_payment_methods "\
6
+ "SET available_to_users=#{quoted_false} "\
7
+ "WHERE NOT (display_on='front_end' OR display_on='' OR display_on IS NULL)")
8
+ execute("UPDATE spree_payment_methods "\
9
+ "SET available_to_admin=#{quoted_false} "\
10
+ "WHERE NOT (display_on='back_end' OR display_on='' OR display_on IS NULL)")
11
+ remove_column(:spree_payment_methods, :display_on)
12
+ end
13
+
14
+ def down
15
+ add_column(:spree_payment_methods, :display_on, :string)
16
+ execute("UPDATE spree_payment_methods "\
17
+ "SET display_on='' "\
18
+ "WHERE (available_to_users=#{quoted_true} AND available_to_admin=#{quoted_true})")
19
+ execute("UPDATE spree_payment_methods "\
20
+ "SET display_on='front_end' "\
21
+ "WHERE (available_to_users=#{quoted_true} AND NOT available_to_admin=#{quoted_true})")
22
+ execute("UPDATE spree_payment_methods "\
23
+ "SET display_on='back_end' "\
24
+ "WHERE (available_to_admin=#{quoted_true} AND NOT available_to_users=#{quoted_true})")
25
+ remove_column(:spree_payment_methods, :available_to_users)
26
+ remove_column(:spree_payment_methods, :available_to_admin)
27
+ end
28
+ end
@@ -0,0 +1,20 @@
1
+ class AddAvailableToUsersAndRemoveDisplayOnFromShippingMethods < ActiveRecord::Migration[5.0]
2
+ def up
3
+ add_column(:spree_shipping_methods, :available_to_users, :boolean, default: true)
4
+ execute("UPDATE spree_shipping_methods "\
5
+ "SET available_to_users=#{quoted_false} "\
6
+ "WHERE display_on='back_end'")
7
+ remove_column(:spree_shipping_methods, :display_on)
8
+ end
9
+
10
+ def down
11
+ add_column(:spree_shipping_methods, :display_on, :string)
12
+ execute("UPDATE spree_shipping_methods "\
13
+ "SET display_on='both' "\
14
+ "WHERE (available_to_users=#{quoted_true}")
15
+ execute("UPDATE spree_shipping_methods "\
16
+ "SET display_on='back_end' "\
17
+ "WHERE (available_to_users=#{quoted_false})")
18
+ remove_column(:spree_shipping_methods, :available_to_users)
19
+ end
20
+ end
@@ -1,3 +1,7 @@
1
+ # This file was originally generated by the spree:custom_user generator
2
+ # in solidus <%= Spree.solidus_version %>. You can customize the helper method
3
+ # implementations for your custom auth solution.
4
+
1
5
  module Spree
2
6
  module CurrentUserHelpers
3
7
  def self.included(receiver)
@@ -30,7 +30,6 @@ module Spree
30
30
  opts[:database] = 'sqlite3' if opts[:database].blank?
31
31
  opts[:force] = true
32
32
  opts[:skip_bundle] = true
33
- opts[:old_style_hash] = true
34
33
 
35
34
  puts "Generating dummy Rails application..."
36
35
  invoke Rails::Generators::AppGenerator,
@@ -47,7 +46,6 @@ module Spree
47
46
  template "rails/routes.rb", "#{dummy_path}/config/routes.rb", force: true
48
47
  template "rails/test.rb", "#{dummy_path}/config/environments/test.rb", force: true
49
48
  template "rails/script/rails", "#{dummy_path}/spec/dummy/script/rails", force: true
50
- template "initializers/custom_user.rb", "#{dummy_path}/config/initializers/custom_user.rb", force: true
51
49
 
52
50
  # FIXME: We aren't ready for rails 5 defaults
53
51
  remove_file "#{dummy_path}/config/initializers/new_framework_defaults.rb"
data/lib/spree/core.rb CHANGED
@@ -77,7 +77,6 @@ require 'spree/localized_number'
77
77
  require 'spree/money'
78
78
  require 'spree/permitted_attributes'
79
79
 
80
- require 'spree/core/delegate_belongs_to'
81
80
  require 'spree/core/importer'
82
81
  require 'spree/core/permalinks'
83
82
  require 'spree/core/product_duplicator'
@@ -97,8 +96,4 @@ require 'spree/core/stock_configuration'
97
96
  require 'spree/permission_sets'
98
97
  require 'spree/deprecation'
99
98
 
100
- require 'spree/mailer_previews/order_preview'
101
- require 'spree/mailer_previews/carton_preview'
102
- require 'spree/mailer_previews/reimbursement_preview'
103
-
104
99
  require 'spree/core/price_migrator'
@@ -13,7 +13,8 @@ module Spree
13
13
 
14
14
  def current_pricing_options
15
15
  Spree::Config.pricing_options_class.new(
16
- currency: current_store.try!(:default_currency).presence || Spree::Config[:currency]
16
+ currency: current_store.try!(:default_currency).presence || Spree::Config[:currency],
17
+ country_iso: current_store.try!(:cart_tax_country_iso).presence
17
18
  )
18
19
  end
19
20
 
@@ -95,6 +95,7 @@ module Spree
95
95
  Spree::Promotion::Rules::NthOrder
96
96
  Spree::Promotion::Rules::OptionValue
97
97
  Spree::Promotion::Rules::FirstRepeatPurchaseSince
98
+ Spree::Promotion::Rules::UserRole
98
99
  ]
99
100
  end
100
101
 
@@ -119,6 +120,19 @@ module Spree
119
120
  initializer "spree.core.checking_migrations", before: :load_config_initializers do |_app|
120
121
  Migrations.new(config, engine_name).check
121
122
  end
123
+
124
+ # Load in mailer previews for apps to use in development.
125
+ # We need to make sure we call `Preview.all` before requiring our
126
+ # previews, otherwise any previews the app attempts to add need to be
127
+ # manually required.
128
+ if Rails.env.development?
129
+ initializer "spree.mailer_previews" do
130
+ ActionMailer::Preview.all
131
+ Dir[root.join("lib/spree/mailer_previews/**/*_preview.rb")].each do |file|
132
+ require_dependency file
133
+ end
134
+ end
135
+ end
122
136
  end
123
137
  end
124
138
  end
@@ -5,7 +5,7 @@ module Spree
5
5
  end
6
6
 
7
7
  def self.solidus_version
8
- "2.0.3"
8
+ "2.1.0.beta1"
9
9
  end
10
10
 
11
11
  def self.solidus_gem_version
@@ -1,3 +1,3 @@
1
1
  module Spree
2
- Deprecation = ActiveSupport::Deprecation.new('2.1', 'Solidus')
2
+ Deprecation = ActiveSupport::Deprecation.new('3.0', 'Solidus')
3
3
  end
@@ -16,9 +16,10 @@ module Spree
16
16
  non_number_characters = /[^0-9\-#{separator}]/
17
17
 
18
18
  # strip everything else first
19
- number.gsub!(non_number_characters, '')
19
+ number = number.gsub(non_number_characters, '')
20
+
20
21
  # then replace the locale-specific decimal separator with the standard separator if necessary
21
- number.gsub!(separator, '.') unless separator == '.'
22
+ number = number.gsub(separator, '.') unless separator == '.'
22
23
 
23
24
  number.to_d
24
25
  end
@@ -14,7 +14,6 @@ module Spree
14
14
  can [:display, :admin], Spree::ShippingCategory
15
15
  can [:display, :admin], Spree::StockLocation
16
16
  can [:display, :admin], Spree::StockMovement
17
- can [:display, :admin], Spree::Tracker
18
17
  can [:display, :admin], Spree::RefundReason
19
18
  can [:display, :admin], Spree::ReimbursementType
20
19
  can [:display, :admin], Spree::ReturnReason
@@ -14,7 +14,6 @@ module Spree
14
14
  can :manage, Spree::ShippingCategory
15
15
  can :manage, Spree::StockLocation
16
16
  can :manage, Spree::StockMovement
17
- can :manage, Spree::Tracker
18
17
  can :manage, Spree::RefundReason
19
18
  can :manage, Spree::ReimbursementType
20
19
  can :manage, Spree::ReturnReason
@@ -9,7 +9,6 @@ module Spree
9
9
  can [:display, :admin], Spree::ProductProperty
10
10
  can [:display, :admin], Spree::OptionType
11
11
  can [:display, :admin], Spree::Property
12
- can [:display, :admin], Spree::Prototype
13
12
  can [:display, :admin], Spree::Taxonomy
14
13
  can [:display, :admin], Spree::Taxon
15
14
  end
@@ -9,7 +9,6 @@ module Spree
9
9
  can :manage, Spree::ProductProperty
10
10
  can :manage, Spree::OptionType
11
11
  can :manage, Spree::Property
12
- can :manage, Spree::Prototype
13
12
  can :manage, Spree::Taxonomy
14
13
  can :manage, Spree::Taxon
15
14
  can :manage, Spree::Classification
@@ -4,10 +4,8 @@ module Spree
4
4
  def activate!
5
5
  can [:admin, :display, :create, :update, :save_in_address_book, :remove_from_address_book, :addresses, :orders, :items], Spree.user_class
6
6
 
7
- # due to how cancancan filters by associations,
8
- # we have to define this twice, once for `accessible_by`
9
- can :update_email, Spree.user_class, spree_roles: { id: nil }
10
- # and once for `can?`
7
+ # Note: This does not work with accessible_by.
8
+ # See https://github.com/solidusio/solidus/pull/1263
11
9
  can :update_email, Spree.user_class do |user|
12
10
  user.spree_roles.none?
13
11
  end
@@ -70,7 +70,7 @@ module Spree
70
70
 
71
71
  @@product_attributes = [
72
72
  :name, :description, :available_on, :permalink, :meta_description,
73
- :meta_keywords, :price, :sku, :deleted_at, :prototype_id,
73
+ :meta_keywords, :price, :sku, :deleted_at,
74
74
  :option_values_hash, :weight, :height, :width, :depth,
75
75
  :shipping_category_id, :tax_category_id,
76
76
  :taxon_ids, :option_type_ids, :cost_currency, :cost_price]
@@ -102,7 +102,8 @@ module Spree
102
102
  :quantity, :stock_item, :stock_item_id, :originator, :action]
103
103
 
104
104
  @@store_attributes = [:name, :url, :seo_title, :meta_keywords,
105
- :meta_description, :default_currency, :mail_from_address]
105
+ :meta_description, :default_currency,
106
+ :mail_from_address, :cart_tax_country_iso]
106
107
 
107
108
  @@taxonomy_attributes = [:name]
108
109
 
@@ -107,18 +107,6 @@ module CapybaraExt
107
107
  raise "AJAX request took longer than 5 seconds." if counter >= 50
108
108
  end
109
109
  end
110
-
111
- def accept_alert
112
- page.evaluate_script('window.confirm = function() { return true; }')
113
- yield
114
- end
115
-
116
- def dismiss_alert
117
- page.evaluate_script('window.confirm = function() { return false; }')
118
- yield
119
- # Restore existing default
120
- page.evaluate_script('window.confirm = function() { return true; }')
121
- end
122
110
  end
123
111
 
124
112
  RSpec::Matchers.define :have_meta do |name, expected|
@@ -11,7 +11,7 @@ FactoryGirl.define do
11
11
  end
12
12
 
13
13
  firstname 'John'
14
- lastname 'Doe'
14
+ lastname nil
15
15
  company 'Company'
16
16
  address1 '10 Lovely Street'
17
17
  address2 'Northwest'
@@ -12,6 +12,5 @@ FactoryGirl.define do
12
12
  variant do
13
13
  (product || create(:product)).master
14
14
  end
15
- currency { order.currency }
16
15
  end
17
16
  end
@@ -27,6 +27,10 @@ FactoryGirl.define do
27
27
 
28
28
  refunds { build_list :refund, 1, amount: refund_amount }
29
29
  end
30
+
31
+ initialize_with do
32
+ order.payments.new(attributes)
33
+ end
30
34
  end
31
35
 
32
36
  factory :check_payment, class: Spree::Payment do
@@ -1,23 +1,30 @@
1
1
  FactoryGirl.define do
2
2
  factory :payment_method, aliases: [:credit_card_payment_method], class: Spree::Gateway::Bogus do
3
3
  name 'Credit Card'
4
+ available_to_admin true
5
+ available_to_users true
4
6
  end
5
7
 
6
8
  factory :check_payment_method, class: Spree::PaymentMethod::Check do
7
9
  name 'Check'
10
+ available_to_admin true
11
+ available_to_users true
8
12
  end
9
13
 
10
14
  # authorize.net was moved to spree_gateway.
11
15
  # Leaving this factory in place with bogus in case anyone is using it.
12
16
  factory :simple_credit_card_payment_method, class: Spree::Gateway::BogusSimple do
13
17
  name 'Credit Card'
18
+ available_to_admin true
19
+ available_to_users true
14
20
  end
15
21
 
16
22
  factory :store_credit_payment_method, class: Spree::PaymentMethod::StoreCredit do
17
23
  name "Store Credit"
18
24
  description "Store Credit"
19
25
  active true
20
- display_on 'none'
26
+ available_to_admin false
27
+ available_to_users false
21
28
  auto_capture true
22
29
  end
23
30
  end
@@ -9,9 +9,9 @@ FactoryGirl.define do
9
9
 
10
10
  factory :user, class: Spree.user_class do
11
11
  email { generate(:random_email) }
12
- login { email }
12
+ login { email } if Spree.user_class.attribute_method? :login
13
13
  password 'secret'
14
- password_confirmation { password }
14
+ password_confirmation { password } if Spree.user_class.attribute_method? :password_confirmation
15
15
  authentication_token { generate(:user_authentication_token) } if Spree.user_class.attribute_method? :authentication_token
16
16
 
17
17
  trait :with_api_key do
data/solidus_core.gemspec CHANGED
@@ -12,12 +12,13 @@ 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 = 'BSD-3'
15
+ s.license = 'BSD-3-Clause'
16
16
 
17
17
  s.files = `git ls-files`.split("\n")
18
18
  s.require_path = 'lib'
19
19
 
20
- s.required_ruby_version = '>= 2.1.0'
20
+ s.required_ruby_version = '>= 2.2.2'
21
+ s.required_rubygems_version = '>= 1.8.23'
21
22
 
22
23
  s.add_dependency 'activemerchant', '~> 1.48'
23
24
  s.add_dependency 'acts_as_list', '~> 0.3'
@@ -26,7 +27,7 @@ Gem::Specification.new do |s|
26
27
  s.add_dependency 'cancancan', '~> 1.10'
27
28
  s.add_dependency 'ffaker', '~> 2.0'
28
29
  s.add_dependency 'friendly_id', '~> 5.0'
29
- s.add_dependency 'highline', '~> 1.6.18' # Necessary for the install generator
30
+ s.add_dependency 'highline', '~> 1.7' # Necessary for the install generator
30
31
  s.add_dependency 'kaminari', '~> 0.15', '>= 0.15.1'
31
32
  s.add_dependency 'monetize', '~> 1.1'
32
33
  s.add_dependency 'paperclip', '~> 4.2'
@@ -50,26 +50,6 @@ describe Spree::BaseHelper, type: :helper do
50
50
  end
51
51
  end
52
52
 
53
- # Regression test for https://github.com/spree/spree/issues/1436
54
- context "defining custom image helpers" do
55
- let(:product) { mock_model(Spree::Product, images: [], variant_images: []) }
56
- before do
57
- Spree::Image.class_eval do
58
- attachment_definitions[:attachment][:styles][:very_strange] = '1x1'
59
- end
60
- end
61
-
62
- it "should not raise errors when style exists" do
63
- Spree::Deprecation.silence do
64
- very_strange_image(product)
65
- end
66
- end
67
-
68
- it "should raise NoMethodError when style is not exists" do
69
- expect { another_strange_image(product) }.to raise_error(NoMethodError)
70
- end
71
- end
72
-
73
53
  # Regression test for https://github.com/spree/spree/issues/2034
74
54
  context "flash_message" do
75
55
  let(:flash) { { "notice" => "ok", "foo" => "foo", "bar" => "bar" } }
@@ -142,26 +122,6 @@ describe Spree::BaseHelper, type: :helper do
142
122
  end
143
123
  end
144
124
 
145
- # Regression test for https://github.com/spree/spree/issues/5384
146
- context "custom image helpers conflict with inproper statements" do
147
- let(:product) { mock_model(Spree::Product, images: [], variant_images: []) }
148
- before do
149
- Spree::Image.class_eval do
150
- attachment_definitions[:attachment][:styles][:foobar] = '1x1'
151
- end
152
- end
153
-
154
- it "should not raise errors when helper method called" do
155
- Spree::Deprecation.silence do
156
- foobar_image(product)
157
- end
158
- end
159
-
160
- it "should raise NoMethodError when statement with name equal to style name called" do
161
- expect { foobar(product) }.to raise_error(NoMethodError)
162
- end
163
- end
164
-
165
125
  context "pretty_time" do
166
126
  it "prints in a format" do
167
127
  expect(pretty_time(DateTime.new(2012, 5, 6, 13, 33))).to eq "May 06, 2012 1:33 PM"