effective_orders 4.5.3 → 4.5.8

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d2216991c7430e4902a33b35ee0d8d4ea9e637c927a587b1dbedf1eaf4cf57fe
4
- data.tar.gz: a51f8b35bfebb1e375664ee006e24717cec9ddac464f17e008296a87e2883c81
3
+ metadata.gz: fe17b4322391ee31880303afd90c92998a86da1cb2cd0fb82fa716783e481635
4
+ data.tar.gz: d3370f18d4c440ffdde9aa59207f586ba38abcf73e91974ee1e7f8866ba1ab82
5
5
  SHA512:
6
- metadata.gz: 7b5a07d109578b5bc7654ca5eaa6ec3f18b7cd89841b15e7f0a5a1128089e9715cd9b317c884ef0afb6cb4a9fed7f0934b7693f7e0b3ba4648544769a00ef3be
7
- data.tar.gz: e94f3d309875b26bbf6f185990e80e1d1911ae0d320050550915dd7970f025a07645c402aa1b6422e114f1e1563b1d86420cba3a8d8058123ce437650c900269
6
+ metadata.gz: 00af503a2181c78ad3ac1d587aeda9bbc9b35bafab752cb37f28f5c64c5ba787070b6685bdb455745b16ee33fcd7940e272cdedea8b672188788bd496e21e6aa
7
+ data.tar.gz: eb5199b72923d9236016e2a81ed0b102d9a28b0112cba3924dc72c1dbaad1d5b1b5cc9c2ea73141af58010ab12d517de3c34b544e46e3c64b5d08c5ea18fa241
data/README.md CHANGED
@@ -828,6 +828,12 @@ effective_orders works around this by appending a timestamp to the order ID.
828
828
 
829
829
  Make sure `gem 'stripe'` is included in your Gemfile.
830
830
 
831
+ Add to your application layout / header
832
+
833
+ ```
834
+ = javascript_include_tag 'https://js.stripe.com/v3/'
835
+ ```
836
+
831
837
  First register for an account with Stripe
832
838
 
833
839
  https://manage.stripe.com/register
@@ -1001,4 +1007,3 @@ MIT License. Copyright [Code and Effect Inc.](http://www.codeandeffect.com/)
1001
1007
  4. Push to the branch (`git push origin my-new-feature`)
1002
1008
  5. Bonus points for test coverage
1003
1009
  6. Create new Pull Request
1004
-
@@ -8,7 +8,7 @@ this.StripeForm ||= class StripeForm
8
8
  @card = null
9
9
 
10
10
  initialize: ->
11
- @form = $('form[data-stripe-form]').first()
11
+ @form = $('form[data-stripe-form]:not(.initialized)').first()
12
12
  return false unless @form.length > 0
13
13
 
14
14
  @paymentIntent = @form.find("input[name$='[payment_intent_id]']").first()
@@ -17,6 +17,7 @@ this.StripeForm ||= class StripeForm
17
17
  @card = @stripe.elements().create('card', @style())
18
18
 
19
19
  @mount()
20
+ @form.addClass('initialized')
20
21
 
21
22
  style: ->
22
23
  style: {
@@ -75,3 +76,4 @@ this.StripeForm ||= class StripeForm
75
76
  EffectiveForm.invalidate(@form);
76
77
 
77
78
  $ -> (new StripeForm()).initialize()
79
+ $(document).on 'turbolinks:load', -> (new StripeForm()).initialize()
@@ -2,6 +2,8 @@ module Effective
2
2
  class CartsController < ApplicationController
3
3
  layout (EffectiveOrders.layout.kind_of?(Hash) ? EffectiveOrders.layout[:carts] : EffectiveOrders.layout)
4
4
 
5
+ before_action :authenticate_user!
6
+
5
7
  def show
6
8
  @cart = current_cart
7
9
  @pending_orders = Effective::Order.pending.where(user: current_user) if current_user.present?
@@ -4,6 +4,8 @@ module Effective
4
4
 
5
5
  include Effective::CrudController
6
6
 
7
+ before_action :authenticate_user!
8
+
7
9
  submit :save, 'Save', success: -> { 'Successfully updated card.' }
8
10
  page_title 'Customer Settings'
9
11
 
@@ -228,13 +228,13 @@ module Effective
228
228
 
229
229
  def update_prices!
230
230
  raise('already purchased') if purchased?
231
- raise('must be pending') unless pending?
231
+ raise('must be pending or confirmed') unless pending? || confirmed?
232
232
 
233
233
  order_items.each do |item|
234
234
  purchasable = item.purchasable
235
235
 
236
236
  if purchasable.blank? || purchasable.marked_for_destruction?
237
- item.mark_for_destruction
237
+ item.mark_for_destruction
238
238
  else
239
239
  item.price = purchasable.price
240
240
  end
@@ -382,11 +382,11 @@ module Effective
382
382
 
383
383
  raise "Failed to purchase order: #{error || errors.full_messages.to_sentence}" unless error.nil?
384
384
 
385
+ run_purchasable_callbacks(:after_purchase)
386
+
385
387
  send_refund_notification! if email && refund?
386
388
  send_order_receipts! if email
387
389
 
388
- run_purchasable_callbacks(:after_purchase)
389
-
390
390
  true
391
391
  end
392
392
 
@@ -487,13 +487,17 @@ module Effective
487
487
 
488
488
  def get_tax
489
489
  return nil unless tax_rate.present?
490
- order_items.reject { |oi| oi.tax_exempt? }.map { |oi| (oi.subtotal * (tax_rate / 100.0)).round(0).to_i }.sum
490
+ present_order_items.reject { |oi| oi.tax_exempt? }.map { |oi| (oi.subtotal * (tax_rate / 100.0)).round(0).to_i }.sum
491
491
  end
492
492
 
493
493
  private
494
494
 
495
+ def present_order_items
496
+ order_items.reject { |oi| oi.marked_for_destruction? }
497
+ end
498
+
495
499
  def assign_order_totals
496
- self.subtotal = order_items.map { |oi| oi.subtotal }.sum
500
+ self.subtotal = present_order_items.map { |oi| oi.subtotal }.sum
497
501
  self.tax_rate = get_tax_rate() unless (tax_rate || 0) > 0
498
502
  self.tax = get_tax()
499
503
  self.total = subtotal + (tax || 0)
@@ -534,7 +538,11 @@ module Effective
534
538
  end
535
539
 
536
540
  def send_email(email, *mailer_args)
537
- Effective::OrdersMailer.public_send(email, *mailer_args).public_send(EffectiveOrders.mailer[:deliver_method])
541
+ begin
542
+ Effective::OrdersMailer.public_send(email, *mailer_args).public_send(EffectiveOrders.mailer[:deliver_method])
543
+ rescue => e
544
+ raise if Rails.env.development? || Rails.env.test?
545
+ end
538
546
  end
539
547
 
540
548
  def truthy?(value)
@@ -1,4 +1,4 @@
1
- = javascript_include_tag 'https://js.stripe.com/v3/'
1
+ /= javascript_include_tag 'https://js.stripe.com/v3/'
2
2
 
3
3
  - stripe = stripe_payment_intent(order)
4
4
 
@@ -1,3 +1,3 @@
1
1
  module EffectiveOrders
2
- VERSION = '4.5.3'.freeze
2
+ VERSION = '4.5.8'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_orders
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.5.3
4
+ version: 4.5.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-06 00:00:00.000000000 Z
11
+ date: 2020-08-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails