solidus_core 2.0.3 → 2.1.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 (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"