spree_cod_payment 2.1.4 → 2.1.6

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: 2d0754f87eb4e4ef36d219a5b08173f0aa1415406743a54a8f8733d261121651
4
- data.tar.gz: 262475f6e407a57f1b8b2ff5bbbeec1bf14616db66b540864cb4b305e1c02d8f
3
+ metadata.gz: 072c0fb115ffe57b9ef898a4e4302277c77aa4b312cf4d7478301ff8c002ff39
4
+ data.tar.gz: ec31dc0fac14b895b973706a80767a95ebd47f949d36c11dc53c116126db362b
5
5
  SHA512:
6
- metadata.gz: '09969f5c0c2a29eaf1d92fd0f423531720afb9ed6c4455116297c4b7d3ae2a8ad683e869421a591d30d05e29217e5920bdf18d335abbea2c7de19f0705a2ea70'
7
- data.tar.gz: 6106b0a6d05e0a9ab5eaf0c5a2cb12f39a7d5455ae7532c0ec81ab7658c607f7b6dacf37fda84a663b96e8c0a5a66c3e542f4fd19dad7b931e19a772326c449d
6
+ metadata.gz: 930c01febe106423066542d298faa9824c7161a8b3eb51ced8068dd80805a0c064403ab6aebbec021d7e6ca828525dfc96eeff30e037270419f1dbe83342398a
7
+ data.tar.gz: cfe061924bce0d3cbae8af428974df1c5588ea9150652096278a3a62239535aaed3dbc3f57ee6f03261f10656600431fe1d1219ad68e5a31c2b624d29e66e345
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 OlympusOne
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # SpreeCodPayment
1
+ # Spree COD Payment
2
2
 
3
3
  This is a Cash On Delivery Payment extension for [Spree Commerce](https://spreecommerce.org), an open source e-commerce platform built with Ruby on Rails. Adds Cash on Delivery (COD) payment method option during checkout.
4
4
 
@@ -6,63 +6,82 @@ This is a Cash On Delivery Payment extension for [Spree Commerce](https://spreec
6
6
 
7
7
  ## Installation
8
8
 
9
- 1. Add this extension to your Gemfile:
9
+ 1. Add this extension to your Gemfile with this line:
10
10
 
11
11
  ```bash
12
12
  bundle add spree_cod_payment
13
13
  ```
14
14
 
15
- 2. Install the migrations:
15
+ 2. Run the install generator
16
16
 
17
17
  ```bash
18
- bundle exec rake railties:install:migrations FROM=spree_cod_payment
18
+ bundle exec rails g spree_cod_payment:install
19
19
  ```
20
20
 
21
- 3. Run the migrations:
21
+ 3. Restart your server
22
22
 
23
- ```bash
24
- bundle exec rails db:migrate
25
- ```
23
+ If your server was running, restart it so that it can find the assets properly.
24
+
25
+ ## Usage
26
+
27
+ 1. Create a Payment Method for Cash on Delivery (e.g. name: "Cash on Delivery") whose `method_type` is `cod_payment`.
28
+ 2. This gem supplies helpers:
29
+ * `payment_method.cod_payment?`
30
+ * `payment_method.cod_payment_available?(order)` (true when the order’s shipping method supports COD)
31
+ 3. To show the COD payment method ONLY when eligible (and optionally hide it for store pickup), add a decorator in the host app:
32
+
33
+ ````ruby
34
+ module Spree
35
+ module PaymentMethodDecorator
36
+ def available_for_order?(order)
37
+ return false unless super
38
+
39
+ # Show COD only when shipping method allows it.
40
+ if cod_payment_available?(order)
41
+ return cod_payment?
42
+ end
43
+
44
+ # If integrating with store pickup (from spree_store_pickup):
45
+ if respond_to?(:store_pickup_available?) && store_pickup_available?(order)
46
+ return false if cod_payment? # Hide COD during pickup
47
+ return !cod_payment? # Allow other methods
48
+ end
49
+
50
+ # Hide specialized method when its condition is not met.
51
+ return false if cod_payment?
52
+
53
+ true
54
+ end
55
+ end
26
56
 
27
- 4. Restart your server
57
+ PaymentMethod.prepend PaymentMethodDecorator
58
+ end
59
+ ````
28
60
 
29
61
  ## Developing
30
62
 
31
- 1. Create a dummy app:
63
+ 1. Create a dummy app
32
64
 
33
65
  ```bash
34
66
  bundle update
35
67
  bundle exec rake test_app
36
68
  ```
37
69
 
38
- 2. Add code.
70
+ 2. Add your new code
39
71
 
40
- 3. Run tests:
72
+ 3. Run tests
41
73
 
42
74
  ```bash
43
75
  bundle exec rspec
44
76
  ```
45
77
 
46
- When testing your application's integration you may use its factories:
78
+ When testing your applications integration with this extension you may use it's factories.
79
+ Simply add this require statement to your spec_helper:
47
80
 
48
81
  ```ruby
49
82
  require 'spree_cod_payment/factories'
50
83
  ```
51
84
 
52
- ## Testing
53
-
54
- Generate the test app:
55
-
56
- ```bash
57
- bundle exec rake test_app
58
- ```
59
-
60
- Then run:
61
-
62
- ```bash
63
- bundle exec rspec
64
- ```
65
-
66
85
  ## Releasing a new version
67
86
 
68
87
  ```bash
@@ -78,4 +97,4 @@ If you'd like to contribute, please take a look at the
78
97
  [instructions](CONTRIBUTING.md) for installing dependencies and crafting a good
79
98
  pull request.
80
99
 
81
- Copyright (c) 2025 OlympusOne, released under the AGPL-3.0 or later.
100
+ Copyright (c) 2026 OlympusOne, released under the MIT License.
@@ -8,6 +8,6 @@ module Spree
8
8
  order.shipping_method&.cod?
9
9
  end
10
10
  end
11
- end
12
11
 
13
- Spree::PaymentMethod.prepend Spree::PaymentMethodDecorator
12
+ PaymentMethod.prepend PaymentMethodDecorator
13
+ end
@@ -5,10 +5,6 @@
5
5
  </h5>
6
6
  </div>
7
7
  <div class="card-body">
8
- <div class="custom-control custom-checkbox">
9
- <%= f.check_box :cod, class: 'custom-control-input' %>
10
- <%= f.label :cod, class: 'custom-control-label font-weight-semibold' %>
11
- <%= f.error_message_on :cod %>
12
- </div>
8
+ <%= f.spree_check_box :cod %>
13
9
  </div>
14
10
  </div>
@@ -1,8 +1,7 @@
1
1
  Rails.application.config.after_initialize do
2
- Rails.application.config.spree.payment_methods << Spree::PaymentMethod::CodPayment
2
+ Spree.payment_methods << Spree::PaymentMethod::CodPayment
3
3
 
4
- # Admin partials
5
- Rails.application.config.spree_admin.shipping_method_form_partials << 'spree/admin/shipping_methods/cod_form'
4
+ Spree.admin.partials.shipping_method_form << 'spree/admin/shipping_methods/cod_form'
6
5
 
7
6
  Spree::PermittedAttributes.shipping_method_attributes << :cod
8
7
  end
@@ -1,5 +1,5 @@
1
1
  module SpreeCodPayment
2
- VERSION = '2.1.4'.freeze
2
+ VERSION = '2.1.6'.freeze
3
3
 
4
4
  def gem_version
5
5
  Gem::Version.new(VERSION)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_cod_payment
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.4
4
+ version: 2.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - OlympusOne
@@ -15,42 +15,42 @@ dependencies:
15
15
  requirements:
16
16
  - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: 5.1.8
18
+ version: 5.2.0
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
- version: 5.1.8
25
+ version: 5.2.0
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: spree_storefront
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 5.1.8
32
+ version: 5.2.0
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: 5.1.8
39
+ version: 5.2.0
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: spree_admin
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: 5.1.8
46
+ version: 5.2.0
47
47
  type: :runtime
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - ">="
52
52
  - !ruby/object:Gem::Version
53
- version: 5.1.8
53
+ version: 5.2.0
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: spree_extension
56
56
  requirement: !ruby/object:Gem::Requirement
@@ -85,7 +85,7 @@ executables: []
85
85
  extensions: []
86
86
  extra_rdoc_files: []
87
87
  files:
88
- - LICENSE.md
88
+ - LICENSE
89
89
  - README.md
90
90
  - Rakefile
91
91
  - app/models/spree/payment_method/cod_payment.rb
@@ -109,13 +109,13 @@ files:
109
109
  - lib/spree_cod_payment/version.rb
110
110
  homepage: https://github.com/olympusone/spree_cod_payment
111
111
  licenses:
112
- - AGPL-3.0-or-later
112
+ - MIT
113
113
  metadata:
114
114
  bug_tracker_uri: https://github.com/olympusone/spree_cod_payment/issues
115
- changelog_uri: https://github.com/olympusone/spree_cod_payment/releases/tag/v2.1.4
115
+ changelog_uri: https://github.com/olympusone/spree_cod_payment/releases/tag/v2.1.6
116
116
  documentation_uri: https://github.com/olympusone/spree_cod_payment
117
117
  homepage_uri: https://github.com/olympusone/spree_cod_payment
118
- source_code_uri: https://github.com/olympusone/spree_cod_payment/tree/v2.1.4
118
+ source_code_uri: https://github.com/olympusone/spree_cod_payment/tree/v2.1.6
119
119
  rdoc_options: []
120
120
  require_paths:
121
121
  - lib
data/LICENSE.md DELETED
@@ -1,15 +0,0 @@
1
- # LICENSE
2
-
3
- Copyright (c) 2025 OlympusOne. All rights reserved.
4
-
5
- This program is free software: you can redistribute it and/or modify it under the terms of the
6
- GNU Affero General Public License as published by the Free Software Foundation, either
7
- version 3 of the License, or any later version.
8
-
9
- This program is distributed in the hope that it will be useful,
10
- but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- GNU Affero General Public License for more details.
13
-
14
- You should have received a copy of the GNU Affero General Public License
15
- along with this program. If not, see [https://www.gnu.org/licenses/](https://www.gnu.org/licenses/).