solidus_bank_transfer 0.0.1

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 (118) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +26 -0
  3. data/README.md +63 -0
  4. data/Rakefile +32 -0
  5. data/app/assets/javascripts/spree/backend/solidus_bank_transfer.js +2 -0
  6. data/app/assets/javascripts/spree/frontend/solidus_bank_transfer.js +2 -0
  7. data/app/assets/stylesheets/spree/backend/solidus_bank_transfer.css +4 -0
  8. data/app/assets/stylesheets/spree/frontend/solidus_bank_transfer.css +4 -0
  9. data/app/models/spree/payment_method/bank_transfer.rb +46 -0
  10. data/app/views/spree/checkout/payment/_banktransfer.html.erb +16 -0
  11. data/app/views/spree/order_mailer/_bank_transfer_details.html.erb +23 -0
  12. data/app/views/spree/orders/_bank_transfer_details.html.erb +22 -0
  13. data/config/locales/en.yml +14 -0
  14. data/config/locales/it.yml +14 -0
  15. data/config/routes.rb +5 -0
  16. data/lib/generators/solidus_bank_transfer/install/install_generator.rb +32 -0
  17. data/lib/solidus_bank_transfer.rb +4 -0
  18. data/lib/solidus_bank_transfer/engine.rb +26 -0
  19. data/lib/solidus_bank_transfer/factories.rb +17 -0
  20. data/lib/solidus_bank_transfer/version.rb +5 -0
  21. data/spec/dummy/README.md +24 -0
  22. data/spec/dummy/Rakefile +6 -0
  23. data/spec/dummy/app/assets/config/manifest.js +3 -0
  24. data/spec/dummy/app/assets/javascripts/cable.js +13 -0
  25. data/spec/dummy/app/assets/stylesheets/application.css +15 -0
  26. data/spec/dummy/app/channels/application_cable/channel.rb +4 -0
  27. data/spec/dummy/app/channels/application_cable/connection.rb +4 -0
  28. data/spec/dummy/app/controllers/application_controller.rb +2 -0
  29. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  30. data/spec/dummy/app/jobs/application_job.rb +2 -0
  31. data/spec/dummy/app/mailers/application_mailer.rb +4 -0
  32. data/spec/dummy/app/models/application_record.rb +3 -0
  33. data/spec/dummy/app/views/layouts/application.html.erb +15 -0
  34. data/spec/dummy/app/views/layouts/mailer.html.erb +13 -0
  35. data/spec/dummy/app/views/layouts/mailer.text.erb +1 -0
  36. data/spec/dummy/bin/bundle +3 -0
  37. data/spec/dummy/bin/rails +4 -0
  38. data/spec/dummy/bin/rake +4 -0
  39. data/spec/dummy/bin/setup +33 -0
  40. data/spec/dummy/bin/update +28 -0
  41. data/spec/dummy/config.ru +5 -0
  42. data/spec/dummy/config/application.rb +54 -0
  43. data/spec/dummy/config/boot.rb +6 -0
  44. data/spec/dummy/config/cable.yml +10 -0
  45. data/spec/dummy/config/credentials.yml.enc +1 -0
  46. data/spec/dummy/config/database.yml +21 -0
  47. data/spec/dummy/config/environment.rb +5 -0
  48. data/spec/dummy/config/environments/development.rb +61 -0
  49. data/spec/dummy/config/environments/production.rb +94 -0
  50. data/spec/dummy/config/environments/test.rb +33 -0
  51. data/spec/dummy/config/initializers/application_controller_renderer.rb +8 -0
  52. data/spec/dummy/config/initializers/assets.rb +12 -0
  53. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  54. data/spec/dummy/config/initializers/content_security_policy.rb +25 -0
  55. data/spec/dummy/config/initializers/cookies_serializer.rb +5 -0
  56. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  57. data/spec/dummy/config/initializers/inflections.rb +16 -0
  58. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  59. data/spec/dummy/config/initializers/spree.rb +52 -0
  60. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  61. data/spec/dummy/config/locales/en.yml +33 -0
  62. data/spec/dummy/config/master.key +1 -0
  63. data/spec/dummy/config/routes.rb +9 -0
  64. data/spec/dummy/config/storage.yml +34 -0
  65. data/spec/dummy/db/migrate/20190822070920_create_active_storage_tables.active_storage.rb +27 -0
  66. data/spec/dummy/db/migrate/20190822070921_solidus_one_four.spree.rb +1103 -0
  67. data/spec/dummy/db/migrate/20190822070922_create_spree_wallet_payment_sources.spree.rb +28 -0
  68. data/spec/dummy/db/migrate/20190822070923_migrate_credit_cards_to_wallet_payment_sources.spree.rb +30 -0
  69. data/spec/dummy/db/migrate/20190822070924_remove_is_default_from_prices.spree.rb +8 -0
  70. data/spec/dummy/db/migrate/20190822070925_remove_currency_from_line_items.spree.rb +8 -0
  71. data/spec/dummy/db/migrate/20190822070926_add_available_to_columns_and_remove_display_on_from_payment_methods.spree.rb +31 -0
  72. data/spec/dummy/db/migrate/20190822070927_create_spree_promotion_code_batch.spree.rb +39 -0
  73. data/spec/dummy/db/migrate/20190822070928_add_available_to_users_and_remove_display_on_from_shipping_methods.spree.rb +23 -0
  74. data/spec/dummy/db/migrate/20190822070929_add_index_to_spree_payments_number.spree.rb +8 -0
  75. data/spec/dummy/db/migrate/20190822070930_remove_spree_store_credits_column.spree.rb +8 -0
  76. data/spec/dummy/db/migrate/20190822070931_add_lft_and_rgt_indexes_to_taxons.spree.rb +9 -0
  77. data/spec/dummy/db/migrate/20190822070932_remove_order_id_from_inventory_units.spree.rb +31 -0
  78. data/spec/dummy/db/migrate/20190822070933_transform_tax_rate_category_relation.spree.rb +51 -0
  79. data/spec/dummy/db/migrate/20190822070934_add_roles_unique_constraints.spree.rb +9 -0
  80. data/spec/dummy/db/migrate/20190822070935_add_time_range_to_tax_rate.spree.rb +9 -0
  81. data/spec/dummy/db/migrate/20190822070936_rename_bogus_gateways.spree.rb +19 -0
  82. data/spec/dummy/db/migrate/20190822070937_remove_default_tax_from_spree_zones.spree.rb +8 -0
  83. data/spec/dummy/db/migrate/20190822070938_create_promotion_rule_stores.spree.rb +13 -0
  84. data/spec/dummy/db/migrate/20190822070939_create_store_shipping_methods.spree.rb +13 -0
  85. data/spec/dummy/db/migrate/20190822070940_add_available_locales_to_stores.spree.rb +10 -0
  86. data/spec/dummy/db/migrate/20190822070941_add_amount_remaining_to_store_credit_events.spree.rb +62 -0
  87. data/spec/dummy/db/migrate/20190822070942_add_join_characters_to_promotion_code_batch.spree.rb +12 -0
  88. data/spec/dummy/db/migrate/20190822070943_create_spree_store_credit_reasons_table.spree.rb +56 -0
  89. data/spec/dummy/db/migrate/20190822070944_remove_code_from_spree_promotions.spree.rb +43 -0
  90. data/spec/dummy/db/migrate/20190822070945_drop_spree_store_credit_update_reasons.spree.rb +20 -0
  91. data/spec/dummy/db/migrate/20190822070946_add_api_key_to_spree_users.spree_api.rb +10 -0
  92. data/spec/dummy/db/migrate/20190822070947_resize_api_key_field.spree_api.rb +10 -0
  93. data/spec/dummy/db/migrate/20190822070948_rename_api_key_to_spree_api_key.spree_api.rb +10 -0
  94. data/spec/dummy/db/migrate/20190822070949_add_index_to_user_spree_api_key.spree_api.rb +10 -0
  95. data/spec/dummy/db/migrate/20190822070950_create_users.solidus_auth.rb +30 -0
  96. data/spec/dummy/db/migrate/20190822070951_rename_columns_for_devise.solidus_auth.rb +38 -0
  97. data/spec/dummy/db/migrate/20190822070952_convert_user_remember_field.solidus_auth.rb +12 -0
  98. data/spec/dummy/db/migrate/20190822070953_add_reset_password_sent_at_to_spree_users.solidus_auth.rb +9 -0
  99. data/spec/dummy/db/migrate/20190822070954_make_users_email_index_unique.solidus_auth.rb +10 -0
  100. data/spec/dummy/db/migrate/20190822070955_add_deleted_at_to_users.solidus_auth.rb +7 -0
  101. data/spec/dummy/db/migrate/20190822070956_add_confirmable_to_users.solidus_auth.rb +8 -0
  102. data/spec/dummy/db/schema.rb +1194 -0
  103. data/spec/dummy/db/seeds.rb +10 -0
  104. data/spec/dummy/log/test.log +1058 -0
  105. data/spec/dummy/public/404.html +67 -0
  106. data/spec/dummy/public/422.html +67 -0
  107. data/spec/dummy/public/500.html +66 -0
  108. data/spec/dummy/public/apple-touch-icon-precomposed.png +0 -0
  109. data/spec/dummy/public/apple-touch-icon.png +0 -0
  110. data/spec/dummy/public/favicon.ico +0 -0
  111. data/spec/dummy/tmp/development_secret.txt +1 -0
  112. data/spec/dummy/vendor/assets/javascripts/spree/backend/all.js +11 -0
  113. data/spec/dummy/vendor/assets/javascripts/spree/frontend/all.js +11 -0
  114. data/spec/dummy/vendor/assets/stylesheets/spree/backend/all.css +10 -0
  115. data/spec/dummy/vendor/assets/stylesheets/spree/frontend/all.css +10 -0
  116. data/spec/models/spree/payment_method/bank_transfer_spec.rb +146 -0
  117. data/spec/spec_helper.rb +89 -0
  118. metadata +429 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 98a3409b6d8f9946b8f0846beca795983c1a17e53f784ba19cd9633addae14cd
4
+ data.tar.gz: 604674a6e8d0ae2c34d1685d3cb3c36376047d64ee23c226453f90b474305ec6
5
+ SHA512:
6
+ metadata.gz: b60e11fc406c7facf683e4a59d50094069a5964afd7000782fa02217965996a2f136507778b3b3a795f742f73e044096b90e80998316fd8dc223dd29c691a540
7
+ data.tar.gz: 60e9559962b678c95004f4fa60659f61cdf5b432ac1baf6a8e019cc86d1a4d14b937cb1e27c2a3649b5bb38db1d8f616d17ce880f5c209ebfc9427d17945c905
data/LICENSE ADDED
@@ -0,0 +1,26 @@
1
+ Copyright (c) 2019 weLaika
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without modification,
5
+ are permitted provided that the following conditions are met:
6
+
7
+ * Redistributions of source code must retain the above copyright notice,
8
+ this list of conditions and the following disclaimer.
9
+ * Redistributions in binary form must reproduce the above copyright notice,
10
+ this list of conditions and the following disclaimer in the documentation
11
+ and/or other materials provided with the distribution.
12
+ * Neither the name Spree nor the names of its contributors may be used to
13
+ endorse or promote products derived from this software without specific
14
+ prior written permission.
15
+
16
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
20
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
23
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
24
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
data/README.md ADDED
@@ -0,0 +1,63 @@
1
+ SolidusBankTransfer
2
+ ===================
3
+
4
+ [![Build Status](https://travis-ci.org/welaika/solidus_bank_transfer.svg?branch=master)](https://travis-ci.org/welaika/solidus_bank_transfer)
5
+
6
+ This extensions add a Bank Transfer payment method.
7
+
8
+ You can define bank name, IBAN number and holder name in the backend. This data will be shown to the user in the checkout process.
9
+
10
+ Installation
11
+ ------------
12
+
13
+ Add solidus_bank_transfer to your Gemfile:
14
+
15
+ ```ruby
16
+ gem 'solidus_bank_transfer'
17
+ ```
18
+
19
+ Bundle your dependencies and run the installation generator:
20
+
21
+ ```shell
22
+ bundle
23
+ bundle exec rails g solidus_bank_transfer:install
24
+ ```
25
+
26
+ Testing
27
+ -------
28
+
29
+ I usually test with PostgreSQL locally. For this to work, you need a role named `postgres`. If you don't have it, you can create a superuser role with
30
+
31
+ ```shell
32
+ createuser -s postgres
33
+ ```
34
+
35
+ Bundle your dependencies, then run `rake`. `rake` will default to building the dummy app if it does not exist, then it will run specs, and [Rubocop](https://github.com/bbatsov/rubocop) static code analysis. The dummy app can be regenerated by using `rake test_app`.
36
+
37
+ ```shell
38
+ bundle
39
+ DB=postgres bundle exec rake
40
+ ```
41
+
42
+ When testing your application's integration with this extension you may use its factories.
43
+ Simply add this require statement to your spec_helper:
44
+
45
+ ```ruby
46
+ require 'solidus_bank_transfer/factories'
47
+ ```
48
+
49
+ Releasing
50
+ ---------
51
+
52
+ Your new extension version can be released using `gem-release` like this:
53
+
54
+ ```shell
55
+ bundle exec gem bump -v VERSION --tag --push --remote upstream && gem release
56
+ ```
57
+
58
+ Author
59
+ ------
60
+
61
+ made with ❤️and ☕️by weLaika
62
+
63
+ Copyright (c) 2019 weLaika, released under the New BSD License
data/Rakefile ADDED
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler'
4
+
5
+ Bundler::GemHelper.install_tasks
6
+
7
+ begin
8
+ require 'spree/testing_support/extension_rake'
9
+ require 'rubocop/rake_task'
10
+ require 'rspec/core/rake_task'
11
+
12
+ RSpec::Core::RakeTask.new(:spec)
13
+
14
+ RuboCop::RakeTask.new
15
+
16
+ task default: %i[first_run rubocop spec]
17
+ rescue LoadError
18
+ # no rspec available
19
+ end
20
+
21
+ task :first_run do
22
+ if Dir['spec/dummy'].empty?
23
+ Rake::Task[:test_app].invoke
24
+ Dir.chdir('../../')
25
+ end
26
+ end
27
+
28
+ desc 'Generates a dummy app for testing'
29
+ task :test_app do
30
+ ENV['LIB_NAME'] = 'solidus_bank_transfer'
31
+ Rake::Task['extension:test_app'].invoke
32
+ end
@@ -0,0 +1,2 @@
1
+ // Placeholder manifest file.
2
+ // the installer will append this file to the app vendored assets here: vendor/assets/javascripts/spree/backend/all.js'
@@ -0,0 +1,2 @@
1
+ // Placeholder manifest file.
2
+ // the installer will append this file to the app vendored assets here: vendor/assets/javascripts/spree/frontend/all.js'
@@ -0,0 +1,4 @@
1
+ /*
2
+ Placeholder manifest file.
3
+ the installer will append this file to the app vendored assets here: 'vendor/assets/stylesheets/spree/backend/all.css'
4
+ */
@@ -0,0 +1,4 @@
1
+ /*
2
+ Placeholder manifest file.
3
+ the installer will append this file to the app vendored assets here: 'vendor/assets/stylesheets/spree/frontend/all.css'
4
+ */
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Spree
4
+ class PaymentMethod::BankTransfer < PaymentMethod
5
+ preference :iban, :string
6
+ preference :bank_name, :string
7
+ preference :holder, :string
8
+
9
+ def actions
10
+ %w[capture void credit]
11
+ end
12
+
13
+ # Indicates whether its possible to capture the payment
14
+ def can_capture?(payment)
15
+ %w[checkout pending].include?(payment.state)
16
+ end
17
+
18
+ # Indicates whether its possible to void the payment.
19
+ def can_void?(payment)
20
+ payment.state != 'void'
21
+ end
22
+
23
+ def capture(*)
24
+ simulated_successful_billing_response
25
+ end
26
+
27
+ def void(*)
28
+ simulated_successful_billing_response
29
+ end
30
+ alias try_void void
31
+
32
+ def credit(*)
33
+ simulated_successful_billing_response
34
+ end
35
+
36
+ def source_required?
37
+ false
38
+ end
39
+
40
+ private
41
+
42
+ def simulated_successful_billing_response
43
+ ActiveMerchant::Billing::Response.new(true, '', {}, {})
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,16 @@
1
+ <div>
2
+ <h4><%= t('spree.bank_transfer.pay_with_this_method') %></h4>
3
+ <p>
4
+ <strong><%= t('spree.bank_transfer.reason_for_payment') %>: </strong>
5
+ <span><%= t('spree.bank_transfer.reason_for_payment_instructions') %></span>
6
+ <br>
7
+ <strong><%= t('spree.bank_transfer.holder') %>: </strong>
8
+ <span><%= payment_method.preferred_holder %></span>
9
+ <br>
10
+ <strong><%= t('spree.bank_transfer.iban') %>: </strong>
11
+ <span><%= payment_method.preferred_iban %></span>
12
+ <br>
13
+ <strong><%= t('spree.bank_transfer.bank_name') %>: </strong>
14
+ <span><%= payment_method.preferred_bank_name %></span>
15
+ </p>
16
+ </div>
@@ -0,0 +1,23 @@
1
+ <%
2
+ payment_method =
3
+ @order.payments.map(&:payment_method).select do |pm|
4
+ pm.is_a?(Spree::PaymentMethod::BankTransfer)
5
+ end.first
6
+ %>
7
+
8
+ <% if payment_method.present? %>
9
+ <h4><%= t('spree.bank_transfer.pay_with_this_method') %></h4>
10
+ <p>
11
+ <strong><%= t('spree.bank_transfer.reason_for_payment') %>: </strong>
12
+ <span><%= t('spree.bank_transfer.reason_for_payment_value', order_number: @order.number) %></span>
13
+ <br>
14
+ <strong><%= t('spree.bank_transfer.holder') %>: </strong>
15
+ <span><%= payment_method.preferred_holder %></span>
16
+ <br>
17
+ <strong><%= t('spree.bank_transfer.iban') %>: </strong>
18
+ <span><%= payment_method.preferred_iban %></span>
19
+ <br>
20
+ <strong><%= t('spree.bank_transfer.bank_name') %>: </strong>
21
+ <span><%= payment_method.preferred_bank_name %></span>
22
+ </p>
23
+ <% end %>
@@ -0,0 +1,22 @@
1
+ <%
2
+ payment_method =
3
+ @order.payments.map(&:payment_method).select do |pm|
4
+ pm.is_a?(Spree::PaymentMethod::BankTransfer)
5
+ end.first
6
+ %>
7
+
8
+ <% if payment_method.present? %>
9
+ <p>
10
+ <strong><%= t('spree.bank_transfer.reason_for_payment') %>: </strong>
11
+ <span><%= t('spree.bank_transfer.reason_for_payment_value', order_number: @order.number) %></span>
12
+ <br>
13
+ <strong><%= t('spree.bank_transfer.holder') %>: </strong>
14
+ <span><%= payment_method.preferred_holder %></span>
15
+ <br>
16
+ <strong><%= t('spree.bank_transfer.iban') %>: </strong>
17
+ <span><%= payment_method.preferred_iban %></span>
18
+ <br>
19
+ <strong><%= t('spree.bank_transfer.bank_name') %>: </strong>
20
+ <span><%= payment_method.preferred_bank_name %></span>
21
+ </p>
22
+ <% end %>
@@ -0,0 +1,14 @@
1
+ en:
2
+ spree:
3
+ holder: Holder
4
+ iban: IBAN
5
+ bank_name: Bank name
6
+
7
+ bank_transfer:
8
+ pay_with_this_method: Pay with bank transfer
9
+ holder: Holder
10
+ iban: IBAN
11
+ bank_name: Bank name
12
+ reason_for_payment: Reason for payment
13
+ reason_for_payment_instructions: enter the order number (it will be sent by email after completing the order).
14
+ reason_for_payment_value: "Order %{order_number}"
@@ -0,0 +1,14 @@
1
+ it:
2
+ spree:
3
+ holder: Intestatario
4
+ iban: IBAN
5
+ bank_name: Nome banca
6
+
7
+ bank_transfer:
8
+ pay_with_this_method: Paga con bonifico bancario
9
+ holder: Intestatario
10
+ iban: IBAN
11
+ bank_name: Nome banca
12
+ reason_for_payment: Causale
13
+ reason_for_payment_instructions: inserisci il numero d'ordine (verrà spedito via email una volta completato l'ordine).
14
+ reason_for_payment_value: "Ordine %{order_number}"
data/config/routes.rb ADDED
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ Spree::Core::Engine.routes.draw do
4
+ # Add your extension routes here
5
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SolidusBankTransfer
4
+ module Generators
5
+ class InstallGenerator < Rails::Generators::Base
6
+ class_option :auto_run_migrations, type: :boolean, default: false
7
+
8
+ def add_javascripts
9
+ append_file 'vendor/assets/javascripts/spree/frontend/all.js', "//= require spree/frontend/solidus_bank_transfer\n"
10
+ append_file 'vendor/assets/javascripts/spree/backend/all.js', "//= require spree/backend/solidus_bank_transfer\n"
11
+ end
12
+
13
+ def add_stylesheets
14
+ inject_into_file 'vendor/assets/stylesheets/spree/frontend/all.css', " *= require spree/frontend/solidus_bank_transfer\n", before: %r{\*/}, verbose: true
15
+ inject_into_file 'vendor/assets/stylesheets/spree/backend/all.css', " *= require spree/backend/solidus_bank_transfer\n", before: %r{\*/}, verbose: true
16
+ end
17
+
18
+ def add_migrations
19
+ run 'bundle exec rake railties:install:migrations FROM=solidus_bank_transfer'
20
+ end
21
+
22
+ def run_migrations
23
+ run_migrations = options[:auto_run_migrations] || ['', 'y', 'Y'].include?(ask('Would you like to run the migrations now? [Y/n]'))
24
+ if run_migrations
25
+ run 'bundle exec rake db:migrate'
26
+ else
27
+ puts 'Skipping rake db:migrate, don\'t forget to run it!'
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'solidus_core'
4
+ require 'solidus_bank_transfer/engine'
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SolidusBankTransfer
4
+ class Engine < Rails::Engine
5
+ require 'spree/core'
6
+ isolate_namespace Spree
7
+ engine_name 'solidus_bank_transfer'
8
+
9
+ # use rspec for tests
10
+ config.generators do |g|
11
+ g.test_framework :rspec
12
+ end
13
+
14
+ def self.activate
15
+ Dir.glob(File.join(File.dirname(__FILE__), '../../app/**/*_decorator*.rb')) do |c|
16
+ Rails.configuration.cache_classes ? require(c) : load(c)
17
+ end
18
+ end
19
+
20
+ initializer 'spree.register.payment_methods' do |app|
21
+ app.config.spree.payment_methods << Spree::PaymentMethod::BankTransfer
22
+ end
23
+
24
+ config.to_prepare(&method(:activate).to_proc)
25
+ end
26
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ FactoryBot.define do
4
+ # Define your Spree extensions Factories within this file to enable applications, and other extensions to use and override them.
5
+ #
6
+ # Example adding this to your spec_helper will load these Factories for use:
7
+ # require 'solidus_bank_transfer/factories'
8
+
9
+ factory :bank_transfer_payment_method, class: Spree::PaymentMethod::BankTransfer do
10
+ name { 'Bank Transfer' }
11
+ preferred_bank_name { 'Uncle Scrooge Bank & Partners' }
12
+ preferred_iban { 'IT00 S000 0000 0000 0000 0123 456' }
13
+ preferred_holder { 'Donald Duck' }
14
+ description { 'Bank transfer' }
15
+ active { true }
16
+ end
17
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SolidusBankTransfer
4
+ VERSION = '0.0.1'
5
+ end
@@ -0,0 +1,24 @@
1
+ # README
2
+
3
+ This README would normally document whatever steps are necessary to get the
4
+ application up and running.
5
+
6
+ Things you may want to cover:
7
+
8
+ * Ruby version
9
+
10
+ * System dependencies
11
+
12
+ * Configuration
13
+
14
+ * Database creation
15
+
16
+ * Database initialization
17
+
18
+ * How to run the test suite
19
+
20
+ * Services (job queues, cache servers, search engines, etc.)
21
+
22
+ * Deployment instructions
23
+
24
+ * ...
@@ -0,0 +1,6 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require_relative 'config/application'
5
+
6
+ Rails.application.load_tasks
@@ -0,0 +1,3 @@
1
+ //= link_tree ../images
2
+ //= link_directory ../javascripts .js
3
+ //= link_directory ../stylesheets .css
@@ -0,0 +1,13 @@
1
+ // Action Cable provides the framework to deal with WebSockets in Rails.
2
+ // You can generate new channels where WebSocket features live using the `rails generate channel` command.
3
+ //
4
+ //= require action_cable
5
+ //= require_self
6
+ //= require_tree ./channels
7
+
8
+ (function() {
9
+ this.App || (this.App = {});
10
+
11
+ App.cable = ActionCable.createConsumer();
12
+
13
+ }).call(this);