spree_bank_transfer_payment 2.0.0

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 7ffc24fd7ef86c955818874c4f67749867b46de8fa7681ec8eb705bdab512252
4
+ data.tar.gz: 45a64b39fd76f4e19a5deff89c3bbecbf2ae69e49a66a4c1938888701efd6bc7
5
+ SHA512:
6
+ metadata.gz: 5f1b9caddf429021d8f4bb1d85f6dcab4aab9614040b821f2bd722e62479beb3327b757182cfaa13675af87f5b6e11ddfff5a10f2e73368feac87ba02fd8e8f1
7
+ data.tar.gz: 56406587023a79394f97c5d4665629f625d97f7381944392018305476ea552bbf0a0ef6784032752afcac3505f9d249ca75d45b3244ff7f95db395d6784198af
data/LICENSE.md ADDED
@@ -0,0 +1,8 @@
1
+ # MIT License
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
+
5
+ The above copyright notice and this permission notice shall be included in all
6
+ copies or substantial portions of the Software.
7
+
8
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,69 @@
1
+ # SpreeBankTransferPayment
2
+
3
+ This is a Bank Transfer Payment extension for [Spree Commerce](https://spreecommerce.org), an open source e-commerce platform built with Ruby on Rails. Adds Bank Transfer payment method to Spree stores.
4
+
5
+ [![Gem Version](https://badge.fury.io/rb/spree_bank_transfer_payment.svg)](https://badge.fury.io/rb/spree_cod_payment)
6
+
7
+ ## Installation
8
+
9
+ 1. Add this extension to your Gemfile with this line:
10
+
11
+ ```ruby
12
+ bundle add spree_bank_transfer_payment
13
+ ```
14
+
15
+ 2. Install the migrations:
16
+
17
+ ```sh
18
+ bundle exec rake railties:install:migrations FROM=spree_bank_transfer_payment
19
+ ```
20
+
21
+ 3. Run the migrations:
22
+
23
+ ```sh
24
+ bundle exec rails db:migrate
25
+ ```
26
+
27
+ 4. Restart your server
28
+
29
+ If your server was running, restart it so that it can find the assets properly.
30
+
31
+ ## Developing
32
+
33
+ 1. Create a dummy app
34
+
35
+ ```bash
36
+ bundle update
37
+ bundle exec rake test_app
38
+ ```
39
+
40
+ 2. Add your new code
41
+ 3. Run tests
42
+
43
+ ```bash
44
+ bundle exec rspec
45
+ ```
46
+
47
+ When testing your applications integration with this extension you may use it's factories.
48
+ Simply add this require statement to your spec_helper:
49
+
50
+ ```ruby
51
+ require 'spree_bank_transfer_payment/factories'
52
+ ```
53
+
54
+ ## Releasing a new version
55
+
56
+ ```shell
57
+ bundle exec gem bump -p -t
58
+ bundle exec gem release
59
+ ```
60
+
61
+ For more options please see [gem-release README](https://github.com/svenfuchs/gem-release)
62
+
63
+ ## Contributing
64
+
65
+ If you'd like to contribute, please take a look at the
66
+ [instructions](CONTRIBUTING.md) for installing dependencies and crafting a good
67
+ pull request.
68
+
69
+ Copyright (c) 2025 OlympusOne, released under the MIT
data/Rakefile ADDED
@@ -0,0 +1,21 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+
4
+ require 'rspec/core/rake_task'
5
+ require 'spree/testing_support/extension_rake'
6
+
7
+ RSpec::Core::RakeTask.new
8
+
9
+ task :default do
10
+ if Dir['spec/dummy'].empty?
11
+ Rake::Task[:test_app].invoke
12
+ Dir.chdir('../../')
13
+ end
14
+ Rake::Task[:spec].invoke
15
+ end
16
+
17
+ desc 'Generates a dummy app for testing'
18
+ task :test_app do
19
+ ENV['LIB_NAME'] = 'spree_bank_transfer_payment'
20
+ Rake::Task['extension:test_app'].invoke
21
+ end
@@ -0,0 +1,55 @@
1
+ module Spree
2
+ class PaymentMethod::BankTransfer < Spree::PaymentMethod
3
+ def method_type
4
+ type.demodulize.underscore
5
+ end
6
+
7
+ def default_name
8
+ Spree.t(:bank_transfer_method)
9
+ end
10
+
11
+ def custom_form_fields_partial_name
12
+ :bank_transfer_instructions
13
+ end
14
+
15
+ def source_required?
16
+ false
17
+ end
18
+
19
+ def auto_capture?
20
+ false
21
+ end
22
+
23
+ def actions
24
+ %w[capture void]
25
+ end
26
+
27
+ # Indicates whether its possible to capture the payment
28
+ def can_capture?(payment)
29
+ payment.pending?
30
+ end
31
+
32
+ # Indicates whether its possible to void the payment.
33
+ def can_void?(payment)
34
+ !payment.void?
35
+ end
36
+
37
+ def capture(*)
38
+ simulated_successful_billing_response
39
+ end
40
+
41
+ def cancel(*)
42
+ simulated_successful_billing_response
43
+ end
44
+
45
+ def credit(*)
46
+ simulated_successful_billing_response
47
+ end
48
+
49
+ private
50
+
51
+ def simulated_successful_billing_response
52
+ ActiveMerchant::Billing::Response.new(true, '', {}, {})
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,3 @@
1
+ <div class="trix-container">
2
+ <%= f.rich_text_area :instructions, class: 'overflow-auto', style: 'height: 300px' %>
3
+ </div>
@@ -0,0 +1,3 @@
1
+ <% if payment_method.instructions.present? %>
2
+ <%= payment_method.instructions.html_safe %>
3
+ <% end %>
@@ -0,0 +1,9 @@
1
+ ---
2
+ el:
3
+ activerecord:
4
+ attributes:
5
+ spree/payment_method:
6
+ instructions: Οδηγίες
7
+ spree:
8
+ bank_transfer: Τραπεζική Κατάθεση
9
+ bank_transfer_method: Τραπεζική Κατάθεση
@@ -0,0 +1,9 @@
1
+ ---
2
+ en:
3
+ activerecord:
4
+ attributes:
5
+ spree/payment_method:
6
+ instructions: Instructions
7
+ spree:
8
+ bank_transfer: Bank Transfer
9
+ bank_transfer_method: Bank Transfer
data/config/routes.rb ADDED
@@ -0,0 +1,3 @@
1
+ Spree::Core::Engine.add_routes do
2
+ # Add your extension routes here
3
+ end
@@ -0,0 +1,5 @@
1
+ class AddInstructionsToPaymentMethods < ActiveRecord::Migration[8.0]
2
+ def change
3
+ add_column :spree_payment_methods, :instructions, :text
4
+ end
5
+ end
@@ -0,0 +1,20 @@
1
+ module SpreeBankTransferPayment
2
+ module Generators
3
+ class InstallGenerator < Rails::Generators::Base
4
+ class_option :migrate, type: :boolean, default: true
5
+
6
+ def add_migrations
7
+ run 'bundle exec rake railties:install:migrations FROM=spree_bank_transfer_payment'
8
+ end
9
+
10
+ def run_migrations
11
+ run_migrations = options[:migrate] || ['', 'y', 'Y'].include?(ask('Would you like to run the migrations now? [Y/n]'))
12
+ if run_migrations
13
+ run 'bin/rails db:migrate'
14
+ else
15
+ puts 'Skipping rails db:migrate, don\'t forget to run it!'
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,26 @@
1
+ module SpreeBankTransferPayment
2
+ class Engine < Rails::Engine
3
+ require 'spree/core'
4
+ isolate_namespace Spree
5
+ engine_name 'spree_bank_transfer_payment'
6
+
7
+ # use rspec for tests
8
+ config.generators do |g|
9
+ g.test_framework :rspec
10
+ end
11
+
12
+ config.after_initialize do |app|
13
+ app.config.spree.payment_methods << Spree::PaymentMethod::BankTransfer
14
+
15
+ Spree::PermittedAttributes.payment_method_attributes << :instructions
16
+ end
17
+
18
+ def self.activate
19
+ Dir.glob(File.join(File.dirname(__FILE__), '../../app/**/*_decorator*.rb')) do |c|
20
+ Rails.configuration.cache_classes ? require(c) : load(c)
21
+ end
22
+ end
23
+
24
+ config.to_prepare(&method(:activate).to_proc)
25
+ end
26
+ end
@@ -0,0 +1,6 @@
1
+ FactoryBot.define do
2
+ # Define your Spree extensions Factories within this file to enable applications, and other extensions to use and override them.
3
+ #
4
+ # Example adding this to your spec_helper will load these Factories for use:
5
+ # require 'spree_bank_transfer_payment/factories'
6
+ end
@@ -0,0 +1,7 @@
1
+ module SpreeBankTransferPayment
2
+ VERSION = '2.0.0'.freeze
3
+
4
+ def gem_version
5
+ Gem::Version.new(VERSION)
6
+ end
7
+ end
@@ -0,0 +1,4 @@
1
+ require 'spree_core'
2
+ require 'spree_extension'
3
+ require 'spree_bank_transfer_payment/engine'
4
+ require 'spree_bank_transfer_payment/version'
metadata ADDED
@@ -0,0 +1,134 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: spree_bank_transfer_payment
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.0
5
+ platform: ruby
6
+ authors:
7
+ - OlympusOne
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: spree
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: 5.0.4
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: 5.0.4
26
+ - !ruby/object:Gem::Dependency
27
+ name: spree_storefront
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 5.0.4
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: 5.0.4
40
+ - !ruby/object:Gem::Dependency
41
+ name: spree_admin
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 5.0.4
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 5.0.4
54
+ - !ruby/object:Gem::Dependency
55
+ name: spree_extension
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ - !ruby/object:Gem::Dependency
69
+ name: spree_dev_tools
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ type: :development
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ description: Adds Bank Transfer payment method to Spree stores.
83
+ email: info@olympusone.com
84
+ executables: []
85
+ extensions: []
86
+ extra_rdoc_files: []
87
+ files:
88
+ - LICENSE.md
89
+ - README.md
90
+ - Rakefile
91
+ - app/models/spree/payment_method/bank_transfer.rb
92
+ - app/views/spree/admin/payment_methods/_bank_transfer.html.erb
93
+ - app/views/spree/admin/payment_methods/custom_form_fields/_bank_transfer_instructions.html.erb
94
+ - app/views/spree/admin/payment_methods/descriptions/_bank_transfer.html.erb
95
+ - app/views/spree/admin/payments/source_views/_bank_transfer.html.erb
96
+ - app/views/spree/admin/spree/checkout/payment/_bank_transfer.html.erb
97
+ - app/views/spree/checkout/payment/_bank_transfer.html.erb
98
+ - config/locales/el.yml
99
+ - config/locales/en.yml
100
+ - config/routes.rb
101
+ - db/migrate/20250601215018_add_instructions_to_payment_methods.rb
102
+ - lib/generators/spree_bank_transfer_payment/install/install_generator.rb
103
+ - lib/spree_bank_transfer_payment.rb
104
+ - lib/spree_bank_transfer_payment/engine.rb
105
+ - lib/spree_bank_transfer_payment/factories.rb
106
+ - lib/spree_bank_transfer_payment/version.rb
107
+ homepage: https://github.com/olympusone/spree_bank_transfer_payment
108
+ licenses:
109
+ - MIT
110
+ metadata:
111
+ bug_tracker_uri: https://github.com/olympusone/spree_bank_transfer_payment/issues
112
+ changelog_uri: https://github.com/olympusone/spree_bank_transfer_payment/releases/tag/v2.0.0
113
+ documentation_uri: https://github.com/olympusone/spree_bank_transfer_payment
114
+ homepage_uri: https://github.com/olympusone/spree_bank_transfer_payment
115
+ source_code_uri: https://github.com/olympusone/spree_bank_transfer_payment/tree/v2.0.0
116
+ rdoc_options: []
117
+ require_paths:
118
+ - lib
119
+ required_ruby_version: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '3.0'
124
+ required_rubygems_version: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ version: '0'
129
+ requirements:
130
+ - none
131
+ rubygems_version: 3.6.9
132
+ specification_version: 4
133
+ summary: Spree Commerce Bank Transfer Payment Extension
134
+ test_files: []