spree_core 3.3.6 → 3.4.0.rc1

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 (230) hide show
  1. checksums.yaml +4 -4
  2. data/app/helpers/spree/base_helper.rb +17 -18
  3. data/app/helpers/spree/products_helper.rb +5 -5
  4. data/app/models/concerns/spree/calculated_adjustments.rb +4 -3
  5. data/app/models/concerns/spree/default_price.rb +4 -5
  6. data/app/models/concerns/spree/display_money.rb +1 -1
  7. data/app/models/concerns/spree/named_type.rb +1 -1
  8. data/app/models/concerns/spree/ransackable_attributes.rb +5 -6
  9. data/app/models/concerns/spree/user_address.rb +6 -6
  10. data/app/models/concerns/spree/user_methods.rb +3 -3
  11. data/app/models/concerns/spree/user_payment_source.rb +4 -2
  12. data/app/models/concerns/spree/user_reporting.rb +1 -1
  13. data/app/models/spree/ability.rb +3 -3
  14. data/app/models/spree/address.rb +13 -9
  15. data/app/models/spree/adjustable/adjuster/promotion.rb +1 -1
  16. data/app/models/spree/adjustable/adjustments_updater.rb +2 -2
  17. data/app/models/spree/adjustable/promotion_accumulator.rb +6 -4
  18. data/app/models/spree/adjustment.rb +2 -3
  19. data/app/models/spree/app_configuration.rb +5 -6
  20. data/app/models/spree/base.rb +1 -1
  21. data/app/models/spree/calculator/default_tax.rb +4 -5
  22. data/app/models/spree/calculator/flat_percent_item_total.rb +1 -1
  23. data/app/models/spree/calculator/flat_rate.rb +3 -3
  24. data/app/models/spree/calculator/flexi_rate.rb +5 -5
  25. data/app/models/spree/calculator/price_sack.rb +9 -9
  26. data/app/models/spree/calculator/shipping/flat_percent_item_total.rb +1 -1
  27. data/app/models/spree/calculator/shipping/flat_rate.rb +3 -3
  28. data/app/models/spree/calculator/shipping/flexi_rate.rb +7 -7
  29. data/app/models/spree/calculator/shipping/per_item.rb +2 -2
  30. data/app/models/spree/calculator/shipping/price_sack.rb +4 -4
  31. data/app/models/spree/calculator/tiered_flat_rate.rb +3 -2
  32. data/app/models/spree/calculator/tiered_percent.rb +4 -3
  33. data/app/models/spree/calculator.rb +4 -4
  34. data/app/models/spree/classification.rb +2 -2
  35. data/app/models/spree/credit_card.rb +1 -1
  36. data/app/models/spree/exchange.rb +4 -5
  37. data/app/models/spree/gateway/bogus.rb +20 -20
  38. data/app/models/spree/gateway/bogus_simple.rb +2 -4
  39. data/app/models/spree/gateway.rb +4 -4
  40. data/app/models/spree/image.rb +3 -3
  41. data/app/models/spree/inventory_unit.rb +30 -30
  42. data/app/models/spree/line_item.rb +7 -9
  43. data/app/models/spree/option_type.rb +1 -1
  44. data/app/models/spree/order/checkout.rb +5 -5
  45. data/app/models/spree/order/currency_updater.rb +1 -4
  46. data/app/models/spree/order/payments.rb +4 -4
  47. data/app/models/spree/order/store_credit.rb +2 -2
  48. data/app/models/spree/order.rb +11 -29
  49. data/app/models/spree/order_contents.rb +6 -5
  50. data/app/models/spree/order_inventory.rb +3 -4
  51. data/app/models/spree/order_updater.rb +13 -14
  52. data/app/models/spree/payment/processing.rb +25 -26
  53. data/app/models/spree/payment.rb +72 -79
  54. data/app/models/spree/payment_capture_event.rb +1 -1
  55. data/app/models/spree/payment_method/check.rb +1 -1
  56. data/app/models/spree/payment_method/store_credit.rb +5 -5
  57. data/app/models/spree/payment_method.rb +7 -7
  58. data/app/models/spree/preferences/configuration.rb +6 -9
  59. data/app/models/spree/preferences/preferable.rb +11 -11
  60. data/app/models/spree/preferences/preferable_class_methods.rb +2 -3
  61. data/app/models/spree/preferences/scoped_store.rb +6 -5
  62. data/app/models/spree/preferences/store.rb +9 -14
  63. data/app/models/spree/price.rb +1 -1
  64. data/app/models/spree/product/scopes.rb +49 -49
  65. data/app/models/spree/product.rb +16 -16
  66. data/app/models/spree/promotion/actions/create_item_adjustments.rb +2 -1
  67. data/app/models/spree/promotion/actions/free_shipping.rb +1 -1
  68. data/app/models/spree/promotion/rules/first_order.rb +7 -6
  69. data/app/models/spree/promotion/rules/item_total.rb +3 -5
  70. data/app/models/spree/promotion/rules/one_use_per_user.rb +1 -2
  71. data/app/models/spree/promotion/rules/option_value.rb +14 -6
  72. data/app/models/spree/promotion/rules/product.rb +4 -4
  73. data/app/models/spree/promotion/rules/taxon.rb +6 -6
  74. data/app/models/spree/promotion/rules/user.rb +3 -3
  75. data/app/models/spree/promotion/rules/user_logged_in.rb +1 -1
  76. data/app/models/spree/promotion.rb +15 -16
  77. data/app/models/spree/promotion_action.rb +1 -1
  78. data/app/models/spree/promotion_handler/cart.rb +3 -2
  79. data/app/models/spree/promotion_handler/free_shipping.rb +1 -3
  80. data/app/models/spree/promotion_handler/page.rb +3 -3
  81. data/app/models/spree/promotion_rule.rb +5 -4
  82. data/app/models/spree/refund.rb +8 -8
  83. data/app/models/spree/reimbursement/credit.rb +1 -1
  84. data/app/models/spree/reimbursement/reimbursement_type_engine.rb +1 -3
  85. data/app/models/spree/reimbursement.rb +4 -8
  86. data/app/models/spree/reimbursement_performer.rb +0 -5
  87. data/app/models/spree/reimbursement_tax_calculator.rb +5 -12
  88. data/app/models/spree/reimbursement_type.rb +2 -2
  89. data/app/models/spree/return_authorization.rb +22 -26
  90. data/app/models/spree/return_item/eligibility_validator/default.rb +3 -3
  91. data/app/models/spree/return_item/eligibility_validator/inventory_shipped.rb +2 -2
  92. data/app/models/spree/return_item/eligibility_validator/no_reimbursements.rb +2 -2
  93. data/app/models/spree/return_item/eligibility_validator/order_completed.rb +2 -2
  94. data/app/models/spree/return_item/eligibility_validator/rma_required.rb +2 -3
  95. data/app/models/spree/return_item/eligibility_validator/time_since_purchase.rb +2 -2
  96. data/app/models/spree/return_item.rb +15 -19
  97. data/app/models/spree/returns_calculator.rb +1 -2
  98. data/app/models/spree/shipment.rb +14 -35
  99. data/app/models/spree/shipment_handler.rb +10 -12
  100. data/app/models/spree/shipping_calculator.rb +5 -6
  101. data/app/models/spree/shipping_method.rb +3 -3
  102. data/app/models/spree/shipping_rate.rb +2 -2
  103. data/app/models/spree/state.rb +2 -2
  104. data/app/models/spree/stock/availability_validator.rb +1 -1
  105. data/app/models/spree/stock/content_item.rb +2 -3
  106. data/app/models/spree/stock/coordinator.rb +3 -2
  107. data/app/models/spree/stock/differentiator.rb +3 -2
  108. data/app/models/spree/stock/estimator.rb +7 -5
  109. data/app/models/spree/stock/package.rb +5 -5
  110. data/app/models/spree/stock/packer.rb +1 -1
  111. data/app/models/spree/stock/prioritizer.rb +5 -7
  112. data/app/models/spree/stock/quantifier.rb +0 -1
  113. data/app/models/spree/stock/splitter/backordered.rb +2 -4
  114. data/app/models/spree/stock/splitter/base.rb +3 -2
  115. data/app/models/spree/stock/splitter/shipping_category.rb +2 -1
  116. data/app/models/spree/stock_item.rb +1 -1
  117. data/app/models/spree/stock_location.rb +12 -11
  118. data/app/models/spree/stock_movement.rb +1 -3
  119. data/app/models/spree/stock_transfer.rb +1 -1
  120. data/app/models/spree/store.rb +4 -4
  121. data/app/models/spree/store_credit.rb +3 -3
  122. data/app/models/spree/tax_category.rb +1 -1
  123. data/app/models/spree/tax_rate.rb +10 -10
  124. data/app/models/spree/taxon.rb +13 -13
  125. data/app/models/spree/taxonomy.rb +9 -8
  126. data/app/models/spree/validations/db_maximum_length_validator.rb +2 -3
  127. data/app/models/spree/variant.rb +30 -41
  128. data/app/models/spree/zone.rb +10 -10
  129. data/app/validators/db_maximum_length_validator.rb +5 -5
  130. data/config/initializers/acts_as_taggable_on.rb +3 -3
  131. data/config/initializers/assets.rb +1 -1
  132. data/config/initializers/friendly_id.rb +1 -1
  133. data/config/initializers/premailer_assets.rb +1 -1
  134. data/config/locales/en.yml +8 -2
  135. data/db/default/spree/states.rb +1 -0
  136. data/lib/generators/spree/custom_user/custom_user_generator.rb +12 -15
  137. data/lib/generators/spree/install/install_generator.rb +45 -32
  138. data/lib/spree/core/components.rb +3 -3
  139. data/lib/spree/core/controller_helpers/auth.rb +5 -10
  140. data/lib/spree/core/controller_helpers/common.rb +2 -3
  141. data/lib/spree/core/controller_helpers/order.rb +3 -7
  142. data/lib/spree/core/controller_helpers/respond_with.rb +4 -4
  143. data/lib/spree/core/engine.rb +3 -3
  144. data/lib/spree/core/environment/calculators.rb +0 -1
  145. data/lib/spree/core/environment_extension.rb +8 -8
  146. data/lib/spree/core/importer/order.rb +64 -67
  147. data/lib/spree/core/importer/product.rb +10 -9
  148. data/lib/spree/core/product_filters.rb +17 -18
  149. data/lib/spree/core/routes.rb +2 -6
  150. data/lib/spree/core/search/base.rb +62 -59
  151. data/lib/spree/core/version.rb +1 -1
  152. data/lib/spree/core.rb +4 -6
  153. data/lib/spree/i18n.rb +3 -5
  154. data/lib/spree/localized_number.rb +0 -2
  155. data/lib/spree/migrations.rb +8 -7
  156. data/lib/spree/money.rb +3 -7
  157. data/lib/spree/permitted_attributes.rb +2 -2
  158. data/lib/spree/responder.rb +4 -5
  159. data/lib/spree/testing_support/authorization_helpers.rb +3 -3
  160. data/lib/spree/testing_support/caching.rb +5 -5
  161. data/lib/spree/testing_support/capybara_ext.rb +16 -18
  162. data/lib/spree/testing_support/common_rake.rb +8 -9
  163. data/lib/spree/testing_support/controller_requests.rb +6 -6
  164. data/lib/spree/testing_support/extension_rake.rb +2 -3
  165. data/lib/spree/testing_support/factories/address_factory.rb +1 -1
  166. data/lib/spree/testing_support/factories/adjustment_factory.rb +1 -1
  167. data/lib/spree/testing_support/factories/calculator_factory.rb +1 -1
  168. data/lib/spree/testing_support/factories/country_factory.rb +1 -1
  169. data/lib/spree/testing_support/factories/credit_card_factory.rb +1 -1
  170. data/lib/spree/testing_support/factories/customer_return_factory.rb +1 -3
  171. data/lib/spree/testing_support/factories/image_factory.rb +2 -2
  172. data/lib/spree/testing_support/factories/inventory_unit_factory.rb +1 -1
  173. data/lib/spree/testing_support/factories/line_item_factory.rb +2 -2
  174. data/lib/spree/testing_support/factories/options_factory.rb +1 -1
  175. data/lib/spree/testing_support/factories/order_factory.rb +1 -1
  176. data/lib/spree/testing_support/factories/payment_factory.rb +1 -1
  177. data/lib/spree/testing_support/factories/payment_method_factory.rb +4 -4
  178. data/lib/spree/testing_support/factories/price_factory.rb +1 -1
  179. data/lib/spree/testing_support/factories/product_factory.rb +1 -1
  180. data/lib/spree/testing_support/factories/product_option_type_factory.rb +1 -1
  181. data/lib/spree/testing_support/factories/product_property_factory.rb +1 -1
  182. data/lib/spree/testing_support/factories/promotion_category_factory.rb +1 -2
  183. data/lib/spree/testing_support/factories/promotion_factory.rb +1 -2
  184. data/lib/spree/testing_support/factories/promotion_rule_factory.rb +1 -1
  185. data/lib/spree/testing_support/factories/property_factory.rb +1 -1
  186. data/lib/spree/testing_support/factories/prototype_factory.rb +1 -1
  187. data/lib/spree/testing_support/factories/refund_factory.rb +1 -1
  188. data/lib/spree/testing_support/factories/reimbursement_factory.rb +2 -2
  189. data/lib/spree/testing_support/factories/reimbursement_type_factory.rb +1 -1
  190. data/lib/spree/testing_support/factories/return_authorization_factory.rb +1 -1
  191. data/lib/spree/testing_support/factories/return_item_factory.rb +1 -1
  192. data/lib/spree/testing_support/factories/role_factory.rb +1 -1
  193. data/lib/spree/testing_support/factories/shipment_factory.rb +2 -2
  194. data/lib/spree/testing_support/factories/shipping_category_factory.rb +1 -1
  195. data/lib/spree/testing_support/factories/shipping_method_factory.rb +3 -3
  196. data/lib/spree/testing_support/factories/state_factory.rb +1 -1
  197. data/lib/spree/testing_support/factories/stock_factory.rb +1 -1
  198. data/lib/spree/testing_support/factories/stock_item_factory.rb +1 -1
  199. data/lib/spree/testing_support/factories/stock_location_factory.rb +2 -2
  200. data/lib/spree/testing_support/factories/stock_movement_factory.rb +1 -1
  201. data/lib/spree/testing_support/factories/store_credit_category_factory.rb +2 -2
  202. data/lib/spree/testing_support/factories/store_credit_event_factory.rb +1 -1
  203. data/lib/spree/testing_support/factories/store_credit_factory.rb +1 -1
  204. data/lib/spree/testing_support/factories/store_credit_type_factory.rb +1 -1
  205. data/lib/spree/testing_support/factories/store_factory.rb +1 -1
  206. data/lib/spree/testing_support/factories/tag_factory.rb +1 -1
  207. data/lib/spree/testing_support/factories/tax_category_factory.rb +2 -2
  208. data/lib/spree/testing_support/factories/tax_rate_factory.rb +1 -1
  209. data/lib/spree/testing_support/factories/taxon_factory.rb +1 -1
  210. data/lib/spree/testing_support/factories/taxonomy_factory.rb +1 -1
  211. data/lib/spree/testing_support/factories/tracker_factory.rb +1 -1
  212. data/lib/spree/testing_support/factories/user_factory.rb +1 -1
  213. data/lib/spree/testing_support/factories/variant_factory.rb +1 -2
  214. data/lib/spree/testing_support/factories/zone_factory.rb +1 -1
  215. data/lib/spree/testing_support/factories/zone_member_factory.rb +1 -1
  216. data/lib/spree/testing_support/factories.rb +3 -3
  217. data/lib/spree/testing_support/flash.rb +1 -3
  218. data/lib/spree/testing_support/i18n.rb +5 -6
  219. data/lib/spree/testing_support/kernel.rb +1 -2
  220. data/lib/spree/testing_support/order_walkthrough.rb +12 -15
  221. data/lib/spree/testing_support/preferences.rb +0 -1
  222. data/lib/tasks/core.rake +47 -56
  223. data/lib/tasks/email.rake +2 -2
  224. data/lib/tasks/exchanges.rake +5 -5
  225. data/spree_core.gemspec +1 -1
  226. metadata +5 -9
  227. data/app/models/spree/calculator/percent_per_item.rb +0 -51
  228. data/config/initializers/premailer_rails.rb +0 -3
  229. data/lib/spree/core/delegate_belongs_to.rb +0 -99
  230. data/lib/spree/testing_support/microdata.rb +0 -192
data/lib/spree/money.rb CHANGED
@@ -15,17 +15,13 @@ module Spree
15
15
 
16
16
  attr_reader :money
17
17
 
18
- delegate :cents, :currency, to: :money
18
+ delegate :cents, to: :money
19
19
 
20
- def initialize(amount, options={})
20
+ def initialize(amount, options = {})
21
21
  @money = Monetize.parse([amount, (options[:currency] || Spree::Config[:currency])].join)
22
22
  @options = Spree::Money.default_formatting_rules.merge(options)
23
23
  end
24
24
 
25
- def amount_in_cents
26
- (cents / currency.subunit_to_unit.to_f * 100).round
27
- end
28
-
29
25
  def to_s
30
26
  @money.format(@options)
31
27
  end
@@ -35,7 +31,7 @@ module Spree
35
31
  if options[:html]
36
32
  # 1) prevent blank, breaking spaces
37
33
  # 2) prevent escaping of HTML character entities
38
- output = output.sub(" ", " ").html_safe
34
+ output = output.sub(' ', ' ').html_safe
39
35
  end
40
36
  output
41
37
  end
@@ -91,7 +91,7 @@ module Spree
91
91
  :quantity, :stock_item, :stock_item_id, :originator, :action]
92
92
 
93
93
  @@store_attributes = [:name, :url, :seo_title, :meta_keywords,
94
- :meta_description, :default_currency, :mail_from_address]
94
+ :meta_description, :default_currency, :mail_from_address]
95
95
 
96
96
  @@store_credit_attributes = [:amount, :category_id, :memo]
97
97
 
@@ -101,7 +101,7 @@ module Spree
101
101
  :name, :parent_id, :position, :icon, :description, :permalink, :taxonomy_id,
102
102
  :meta_description, :meta_keywords, :meta_title, :child_index]
103
103
 
104
- # TODO Should probably use something like Spree.user_class.attributes
104
+ # TODO: Should probably use something like Spree.user_class.attributes
105
105
  @@user_attributes = [:email, :password, :password_confirmation]
106
106
 
107
107
  @@variant_attributes = [
@@ -1,27 +1,26 @@
1
1
  module Spree
2
2
  class Responder < ::ActionController::Responder #:nodoc:
3
-
4
3
  attr_accessor :on_success, :on_failure
5
4
 
6
- def initialize(controller, resources, options={})
5
+ def initialize(controller, resources, options = {})
7
6
  super
8
7
 
9
8
  class_name = controller.class.name.to_sym
10
9
  action_name = options.delete(:action_name)
11
10
 
12
- if result = Spree::BaseController.spree_responders[class_name].try(:[], action_name).try(:[], self.format.to_sym)
11
+ if result = Spree::BaseController.spree_responders[class_name].try(:[], action_name).try(:[], format.to_sym)
13
12
  self.on_success = handler(controller, result, :success)
14
13
  self.on_failure = handler(controller, result, :failure)
15
14
  end
16
15
  end
17
16
 
18
17
  def to_html
19
- super and return if !(on_success || on_failure)
18
+ super && return unless on_success || on_failure
20
19
  has_errors? ? controller.instance_exec(&on_failure) : controller.instance_exec(&on_success)
21
20
  end
22
21
 
23
22
  def to_format
24
- super and return if !(on_success || on_failure)
23
+ super && return unless on_success || on_failure
25
24
  has_errors? ? controller.instance_exec(&on_failure) : controller.instance_exec(&on_success)
26
25
  end
27
26
 
@@ -3,7 +3,7 @@ module Spree
3
3
  module AuthorizationHelpers
4
4
  module CustomAbility
5
5
  def build_ability(&block)
6
- block ||= proc{ |u| can :manage, :all }
6
+ block ||= proc { |_u| can :manage, :all }
7
7
  Class.new do
8
8
  include CanCan::Ability
9
9
  define_method(:initialize, block)
@@ -38,8 +38,8 @@ module Spree
38
38
 
39
39
  before do
40
40
  allow(Spree.user_class).to receive(:find_by).
41
- with(hash_including(:spree_api_key)).
42
- and_return(Spree.user_class.new)
41
+ with(hash_including(:spree_api_key)).
42
+ and_return(Spree.user_class.new)
43
43
  end
44
44
  end
45
45
 
@@ -7,7 +7,7 @@ module Spree
7
7
 
8
8
  def assert_written_to_cache(key)
9
9
  unless @cache_write_events.detect { |event| event[:key].starts_with?(key) }
10
- fail %Q{Expected to find #{key} in the cache, but didn't.
10
+ raise %Q{Expected to find #{key} in the cache, but didn't.
11
11
 
12
12
  Cache writes:
13
13
  #{@cache_write_events.join("\n")}
@@ -29,12 +29,12 @@ RSpec.configure do |config|
29
29
  config.before(:each, caching: true) do
30
30
  ActionController::Base.perform_caching = true
31
31
 
32
- ActiveSupport::Notifications.subscribe("read_fragment.action_controller") do |event, start_time, finish_time, _, details|
32
+ ActiveSupport::Notifications.subscribe('read_fragment.action_controller') do |_event, _start_time, _finish_time, _, details|
33
33
  @cache_read_events ||= []
34
- @cache_read_events << details
34
+ @cache_read_events << details
35
35
  end
36
36
 
37
- ActiveSupport::Notifications.subscribe("write_fragment.action_controller") do |event, start_time, finish_time, _, details|
37
+ ActiveSupport::Notifications.subscribe('write_fragment.action_controller') do |_event, _start_time, _finish_time, _, details|
38
38
  @cache_write_events ||= []
39
39
  @cache_write_events << details
40
40
  end
@@ -44,4 +44,4 @@ RSpec.configure do |config|
44
44
  ActionController::Base.perform_caching = false
45
45
  Rails.cache.clear
46
46
  end
47
- end
47
+ end
@@ -7,7 +7,7 @@ module CapybaraExt
7
7
  find(".icon-#{type}").click
8
8
  end
9
9
 
10
- def eventually_fill_in(field, options={})
10
+ def eventually_fill_in(field, options = {})
11
11
  expect(page).to have_css('#' + field)
12
12
  fill_in field, options
13
13
  end
@@ -16,7 +16,7 @@ module CapybaraExt
16
16
  if RSpec.current_example.metadata[:js]
17
17
  within("table.table tbody tr:nth-child(#{num})", &block)
18
18
  else
19
- within(:xpath, all("table.table tbody tr")[num-1].path, &block)
19
+ within(:xpath, all('table.table tbody tr')[num - 1].path, &block)
20
20
  end
21
21
  end
22
22
 
@@ -24,7 +24,7 @@ module CapybaraExt
24
24
  if RSpec.current_example.metadata[:js]
25
25
  find("td:nth-child(#{num})").text
26
26
  else
27
- all("td")[num-1].text
27
+ all('td')[num - 1].text
28
28
  end
29
29
  end
30
30
 
@@ -34,8 +34,8 @@ module CapybaraExt
34
34
 
35
35
  def select2_search(value, options)
36
36
  label = find_label_by_text(options[:from])
37
- within label.first(:xpath,".//..") do
38
- options[:from] = "##{find(".select2-container")["id"]}"
37
+ within label.first(:xpath, './/..') do
38
+ options[:from] = "##{find('.select2-container')['id']}"
39
39
  end
40
40
  targetted_select2_search(value, options)
41
41
  end
@@ -49,14 +49,14 @@ module CapybaraExt
49
49
  def select2(value, options)
50
50
  label = find_label_by_text(options[:from])
51
51
 
52
- within label.first(:xpath,".//..") do
53
- options[:from] = "##{find(".select2-container")["id"]}"
52
+ within label.first(:xpath, './/..') do
53
+ options[:from] = "##{find('.select2-container')['id']}"
54
54
  end
55
55
  targetted_select2(value, options)
56
56
  end
57
57
 
58
- def select2_no_label value, options={}
59
- raise "Must pass a hash containing 'from'" if not options.is_a?(Hash) or not options.has_key?(:from)
58
+ def select2_no_label(value, options = {})
59
+ raise "Must pass a hash containing 'from'" if !options.is_a?(Hash) || !options.key?(:from)
60
60
 
61
61
  placeholder = options[:from]
62
62
  minlength = options[:minlength] || 4
@@ -75,7 +75,7 @@ module CapybaraExt
75
75
  def select_select2_result(value)
76
76
  # results are in a div appended to the end of the document
77
77
  within(:xpath, '//body') do
78
- page.find("div.select2-result-label", text: %r{#{Regexp.escape(value)}}i).click
78
+ page.find('div.select2-result-label', text: %r{#{Regexp.escape(value)}}i).click
79
79
  end
80
80
  end
81
81
 
@@ -90,9 +90,7 @@ module CapybaraExt
90
90
  label = find_label(text)
91
91
  end
92
92
 
93
- if label.nil?
94
- raise "Could not find label by text #{text}"
95
- end
93
+ raise "Could not find label by text #{text}" if label.nil?
96
94
 
97
95
  label
98
96
  end
@@ -119,7 +117,7 @@ module CapybaraExt
119
117
  def wait_for_condition(delay = Capybara.default_max_wait_time)
120
118
  counter = 0
121
119
  delay_threshold = delay * 10
122
- while !yield
120
+ until yield
123
121
  counter += 1
124
122
  sleep(0.1)
125
123
  raise "Could not achieve condition within #{delay} seconds." if counter >= delay_threshold
@@ -145,7 +143,7 @@ Capybara.configure do |config|
145
143
  end
146
144
 
147
145
  RSpec::Matchers.define :have_meta do |name, expected|
148
- match do |actual|
146
+ match do |_actual|
149
147
  has_css?("meta[name='#{name}'][content='#{expected}']", visible: false)
150
148
  end
151
149
 
@@ -160,12 +158,12 @@ RSpec::Matchers.define :have_meta do |name, expected|
160
158
  end
161
159
 
162
160
  RSpec::Matchers.define :have_title do |expected|
163
- match do |actual|
164
- has_css?("title", text: expected, visible: false)
161
+ match do |_actual|
162
+ has_css?('title', text: expected, visible: false)
165
163
  end
166
164
 
167
165
  failure_message do |actual|
168
- actual = first("title")
166
+ actual = first('title')
169
167
  if actual
170
168
  "expected that title would have been '#{expected}' but was '#{actual.text}'"
171
169
  else
@@ -3,37 +3,36 @@ unless defined?(Spree::InstallGenerator)
3
3
  end
4
4
 
5
5
  require 'generators/spree/dummy/dummy_generator'
6
- require 'rails'
7
6
 
8
- desc "Generates a dummy app for testing"
7
+ desc 'Generates a dummy app for testing'
9
8
  namespace :common do
10
9
  task :test_app, :user_class do |_t, args|
11
- args.with_defaults(user_class: "Spree::LegacyUser")
10
+ args.with_defaults(user_class: 'Spree::LegacyUser')
12
11
  require ENV['LIB_NAME'].to_s
13
12
 
14
13
  ENV['RAILS_ENV'] = 'test'
15
14
  Rails.env = 'test'
16
15
 
17
- Spree::DummyGenerator.start ["--lib_name=#{ENV['LIB_NAME']}", "--quiet"]
18
- Spree::InstallGenerator.start ["--lib_name=#{ENV['LIB_NAME']}", "--auto-accept", "--migrate=false", "--seed=false", "--sample=false", "--quiet", "--user_class=#{args[:user_class]}"]
16
+ Spree::DummyGenerator.start ["--lib_name=#{ENV['LIB_NAME']}", '--quiet']
17
+ Spree::InstallGenerator.start ["--lib_name=#{ENV['LIB_NAME']}", '--auto-accept', '--migrate=false', '--seed=false', '--sample=false', '--quiet', '--copy_views=false', "--user_class=#{args[:user_class]}"]
19
18
 
20
- puts "Setting up dummy database..."
19
+ puts 'Setting up dummy database...'
21
20
  system("bundle exec rake db:drop db:create db:migrate > #{File::NULL}")
22
21
 
23
22
  begin
24
23
  require "generators/#{ENV['LIB_NAME']}/install/install_generator"
25
24
  puts 'Running extension installation generator...'
26
- "#{ENV['LIB_NAME'].camelize}::Generators::InstallGenerator".constantize.start(["--auto-run-migrations"])
25
+ "#{ENV['LIB_NAME'].camelize}::Generators::InstallGenerator".constantize.start(['--auto-run-migrations'])
27
26
  rescue LoadError
28
27
  puts 'Skipping installation no generator to run...'
29
28
  end
30
29
 
31
- puts "Precompiling assets..."
30
+ puts 'Precompiling assets...'
32
31
  system("bundle exec rake assets:precompile > #{File::NULL}")
33
32
  end
34
33
 
35
34
  task :seed do |_t|
36
- puts "Seeding ..."
35
+ puts 'Seeding ...'
37
36
  system("bundle exec rake db:seed RAILS_ENV=test > #{File::NULL}")
38
37
  end
39
38
  end
@@ -33,27 +33,27 @@ module Spree
33
33
  end
34
34
 
35
35
  def spree_get(action, parameters = nil, session = nil, flash = nil)
36
- process_spree_action(action, parameters, session, flash, "GET")
36
+ process_spree_action(action, parameters, session, flash, 'GET')
37
37
  end
38
38
 
39
39
  # Executes a request simulating POST HTTP method and set/volley the response
40
40
  def spree_post(action, parameters = nil, session = nil, flash = nil)
41
- process_spree_action(action, parameters, session, flash, "POST")
41
+ process_spree_action(action, parameters, session, flash, 'POST')
42
42
  end
43
43
 
44
44
  # Executes a request simulating PUT HTTP method and set/volley the response
45
45
  def spree_put(action, parameters = nil, session = nil, flash = nil)
46
- process_spree_action(action, parameters, session, flash, "PUT")
46
+ process_spree_action(action, parameters, session, flash, 'PUT')
47
47
  end
48
48
 
49
49
  # Executes a request simulating PATCH HTTP method and set/volley the response
50
50
  def spree_patch(action, parameters = nil, session = nil, flash = nil)
51
- process_spree_action(action, parameters, session, flash, "PATCH")
51
+ process_spree_action(action, parameters, session, flash, 'PATCH')
52
52
  end
53
53
 
54
54
  # Executes a request simulating DELETE HTTP method and set/volley the response
55
55
  def spree_delete(action, parameters = nil, session = nil, flash = nil)
56
- process_spree_action(action, parameters, session, flash, "DELETE")
56
+ process_spree_action(action, parameters, session, flash, 'DELETE')
57
57
  end
58
58
 
59
59
  def spree_xhr_get(action, parameters = nil, session = nil, flash = nil)
@@ -78,7 +78,7 @@ module Spree
78
78
 
79
79
  private
80
80
 
81
- def process_spree_action(action, parameters = nil, session = nil, flash = nil, method = "GET")
81
+ def process_spree_action(action, parameters = nil, session = nil, flash = nil, method = 'GET')
82
82
  parameters ||= {}
83
83
  process(action, method: method, params: parameters, session: session, flash: flash)
84
84
  end
@@ -1,10 +1,9 @@
1
1
  require 'spree/testing_support/common_rake'
2
2
 
3
- desc "Generates a dummy app for testing an extension"
3
+ desc 'Generates a dummy app for testing an extension'
4
4
  namespace :extension do
5
- task :test_app, [:user_class] do |t, args|
5
+ task :test_app, [:user_class] do |_t, _args|
6
6
  Spree::DummyGeneratorHelper.inject_extension_requirements = true
7
7
  Rake::Task['common:test_app'].invoke
8
8
  end
9
9
  end
10
-
@@ -1,4 +1,4 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  factory :address, aliases: [:bill_address, :ship_address], class: Spree::Address do
3
3
  firstname 'John'
4
4
  lastname 'Doe'
@@ -1,4 +1,4 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  factory :adjustment, class: Spree::Adjustment do
3
3
  association(:adjustable, factory: :order)
4
4
  amount 100.0
@@ -1,4 +1,4 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  factory :calculator, class: Spree::Calculator::FlatRate do
3
3
  after(:create) { |c| c.set_preference(:amount, 10.0) }
4
4
  end
@@ -1,4 +1,4 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  factory :country, class: Spree::Country do
3
3
  sequence(:iso_name) { |n| "ISO_NAME_#{n}" }
4
4
  sequence(:name) { |n| "NAME_#{n}" }
@@ -1,4 +1,4 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  factory :credit_card, class: Spree::CreditCard do
3
3
  verification_value 123
4
4
  month 12
@@ -1,5 +1,4 @@
1
- FactoryBot.define do
2
-
1
+ FactoryGirl.define do
3
2
  factory :customer_return, class: Spree::CustomerReturn do
4
3
  association(:stock_location, factory: :stock_location)
5
4
 
@@ -27,5 +26,4 @@ FactoryBot.define do
27
26
  factory :customer_return_without_return_items, class: Spree::CustomerReturn do
28
27
  association(:stock_location, factory: :stock_location)
29
28
  end
30
-
31
29
  end
@@ -1,5 +1,5 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  factory :image, class: Spree::Image do
3
- attachment { File.new(Spree::Core::Engine.root + "spec/fixtures" + 'thinking-cat.jpg') }
3
+ attachment { File.new(Spree::Core::Engine.root + 'spec/fixtures' + 'thinking-cat.jpg') }
4
4
  end
5
5
  end
@@ -1,4 +1,4 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  factory :inventory_unit, class: Spree::InventoryUnit do
3
3
  variant
4
4
  order
@@ -1,4 +1,4 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  factory :line_item, class: Spree::LineItem do
3
3
  quantity 1
4
4
  price { BigDecimal.new('10.00') }
@@ -6,6 +6,6 @@ FactoryBot.define do
6
6
  transient do
7
7
  association :product
8
8
  end
9
- variant{ product.master }
9
+ variant { product.master }
10
10
  end
11
11
  end
@@ -1,4 +1,4 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  factory :option_value, class: Spree::OptionValue do
3
3
  sequence(:name) { |n| "Size-#{n}" }
4
4
 
@@ -1,4 +1,4 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  factory :order, class: Spree::Order do
3
3
  user
4
4
  bill_address
@@ -1,4 +1,4 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  factory :payment, class: Spree::Payment do
3
3
  amount 45.75
4
4
  association(:payment_method, factory: :credit_card_payment_method)
@@ -1,4 +1,4 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  factory :check_payment_method, class: Spree::PaymentMethod::Check do
3
3
  name 'Check'
4
4
  end
@@ -14,9 +14,9 @@ FactoryBot.define do
14
14
  end
15
15
 
16
16
  factory :store_credit_payment_method, class: Spree::PaymentMethod::StoreCredit do
17
- type "Spree::PaymentMethod::StoreCredit"
18
- name "Store Credit"
19
- description "Store Credit"
17
+ type 'Spree::PaymentMethod::StoreCredit'
18
+ name 'Store Credit'
19
+ description 'Store Credit'
20
20
  active true
21
21
  auto_capture true
22
22
  end
@@ -1,4 +1,4 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  factory :price, class: Spree::Price do
3
3
  variant
4
4
  amount 19.99
@@ -1,4 +1,4 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  factory :base_product, class: Spree::Product do
3
3
  sequence(:name) { |n| "Product ##{n} - #{Kernel.rand(9999)}" }
4
4
  description { generate(:random_description) }
@@ -1,4 +1,4 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  factory :product_option_type, class: Spree::ProductOptionType do
3
3
  product
4
4
  option_type
@@ -1,4 +1,4 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  factory :product_property, class: Spree::ProductProperty do
3
3
  product
4
4
  property
@@ -1,6 +1,5 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  factory :promotion_category, class: Spree::PromotionCategory do
3
3
  name 'Promotion Category'
4
4
  end
5
5
  end
6
-
@@ -1,4 +1,4 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  factory :promotion, class: Spree::Promotion do
3
3
  name 'Promo'
4
4
 
@@ -47,6 +47,5 @@ FactoryBot.define do
47
47
  end
48
48
  end
49
49
  factory :promotion_with_item_total_rule, traits: [:with_item_total_rule]
50
-
51
50
  end
52
51
  end
@@ -1,4 +1,4 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  factory :promotion_rule, class: Spree::PromotionRule do
3
3
  association :promotion
4
4
  end
@@ -1,4 +1,4 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  factory :property, class: Spree::Property do
3
3
  name 'baseball_cap_color'
4
4
  presentation 'cap color'
@@ -1,4 +1,4 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  factory :prototype, class: Spree::Prototype do
3
3
  name 'Baseball Cap'
4
4
  properties { [create(:property)] }
@@ -1,4 +1,4 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  sequence(:refund_transaction_id) { |n| "fake-refund-transaction-#{n}" }
3
3
 
4
4
  factory :refund, class: Spree::Refund do
@@ -1,4 +1,4 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  factory :reimbursement, class: Spree::Reimbursement do
3
3
  transient do
4
4
  return_items_count 1
@@ -6,7 +6,7 @@ FactoryBot.define do
6
6
 
7
7
  customer_return { create(:customer_return_with_accepted_items, line_items_count: return_items_count) }
8
8
 
9
- before(:create) do |reimbursement, evaluator|
9
+ before(:create) do |reimbursement, _evaluator|
10
10
  reimbursement.order ||= reimbursement.customer_return.order
11
11
  if reimbursement.return_items.empty?
12
12
  reimbursement.return_items = reimbursement.customer_return.return_items
@@ -1,4 +1,4 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  factory :reimbursement_type, class: Spree::ReimbursementType do
3
3
  sequence(:name) { |n| "Reimbursement Type #{n}" }
4
4
  active true
@@ -1,4 +1,4 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  factory :return_authorization, class: Spree::ReturnAuthorization do
3
3
  association(:order, factory: :shipped_order)
4
4
  association(:stock_location, factory: :stock_location)
@@ -1,4 +1,4 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  factory :return_item, class: Spree::ReturnItem do
3
3
  association(:inventory_unit, factory: :inventory_unit, state: :shipped)
4
4
  association(:return_authorization, factory: :return_authorization)
@@ -1,4 +1,4 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  factory :role, class: Spree::Role do
3
3
  sequence(:name) { |n| "Role ##{n}" }
4
4
 
@@ -1,4 +1,4 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  factory :shipment, class: Spree::Shipment do
3
3
  tracking 'U10000'
4
4
  cost 100.00
@@ -6,7 +6,7 @@ FactoryBot.define do
6
6
  order
7
7
  stock_location
8
8
 
9
- after(:create) do |shipment, evalulator|
9
+ after(:create) do |shipment, _evalulator|
10
10
  shipment.add_shipping_method(create(:shipping_method), true)
11
11
 
12
12
  shipment.order.line_items.each do |line_item|
@@ -1,4 +1,4 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  factory :shipping_category, class: Spree::ShippingCategory do
3
3
  sequence(:name) { |n| "ShippingCategory ##{n}" }
4
4
  end
@@ -1,11 +1,11 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  factory :base_shipping_method, class: Spree::ShippingMethod do
3
- zones { |a| [Spree::Zone.global] }
3
+ zones { |_a| [Spree::Zone.global] }
4
4
  name 'UPS Ground'
5
5
  code 'UPS_GROUND'
6
6
  display_on 'both'
7
7
 
8
- before(:create) do |shipping_method, evaluator|
8
+ before(:create) do |shipping_method, _evaluator|
9
9
  if shipping_method.shipping_categories.empty?
10
10
  shipping_method.shipping_categories << (Spree::ShippingCategory.first || create(:shipping_category))
11
11
  end
@@ -1,4 +1,4 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  factory :state, class: Spree::State do
3
3
  sequence(:name) { |n| "STATE_NAME_#{n}" }
4
4
  sequence(:abbr) { |n| "STATE_ABBR_#{n}" }
@@ -1,4 +1,4 @@
1
- FactoryBot.define do
1
+ FactoryGirl.define do
2
2
  # must use build()
3
3
  factory :stock_packer, class: Spree::Stock::Packer do
4
4
  transient do