solidus_support 0.2.1 → 0.2.2

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: 5f38daae0fcb1b2de8343abb23d59c80e553fd0e1c72c3d15e11414862ad8b05
4
- data.tar.gz: b5f61ace5703a2dcf5e03775e4ea22db6a116a19b21ce803c819153dad7d7080
3
+ metadata.gz: 7c6337566230395848b49403c4b56e36c77e145a4b622c08e144021b8fbf86e1
4
+ data.tar.gz: 6a89880916b4420dd0faafa0542d33da84e0ae95ee5193402441af91a96d3799
5
5
  SHA512:
6
- metadata.gz: c920bb64d3fc147e2e86ca8edbe7356bff0273b98af6f08d45448dcdaa218b1a812f3f54a9d7bfe7cd26d4ad2091b67335bee21fa4453863f81d2e23b2dfb794
7
- data.tar.gz: 6544d8cd2a38174b015871c4e267e8e92ab565e1a73483047e2a817f296875087d2de00f2f776576c971c2c6a16e068d5153536232606ad38501a2f4874e498e
6
+ metadata.gz: 3c202ec470b49983809717d7f9e8633e0a086bd1e782410aa0f221fd444e23842842f112fea46da313f23e66aba3a28ee0a9560b3c227b0f412c41ad129ce597
7
+ data.tar.gz: 6c03785d6c92023a8d9fe6b3e1fc5d12867c712fce458f7bf33417918ee4f814b91428ecae72593dbc30317e25cb70902780afb2693b10b4ee155e602e4b071d
data/.gitignore CHANGED
@@ -7,3 +7,4 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ /log/
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --require spec_helper
@@ -0,0 +1,23 @@
1
+ sudo: false
2
+ language: ruby
3
+ dist: trusty
4
+ cache:
5
+ bundler: true
6
+ before_install:
7
+ - "gem install bundler --pre"
8
+ - "bundler -v"
9
+ rvm:
10
+ - 2.4.2
11
+ env:
12
+ matrix:
13
+ - SOLIDUS_BRANCH=v1.0
14
+ - SOLIDUS_BRANCH=v1.1
15
+ - SOLIDUS_BRANCH=v1.2
16
+ - SOLIDUS_BRANCH=v1.3
17
+ - SOLIDUS_BRANCH=v1.4
18
+ - SOLIDUS_BRANCH=v2.0
19
+ - SOLIDUS_BRANCH=v2.1
20
+ - SOLIDUS_BRANCH=v2.2
21
+ - SOLIDUS_BRANCH=v2.3
22
+ - SOLIDUS_BRANCH=v2.4
23
+ - SOLIDUS_BRANCH=master
data/Gemfile CHANGED
@@ -1,7 +1,10 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  branch = ENV.fetch('SOLIDUS_BRANCH', 'master')
4
- gem 'solidus', github: 'solidusio/solidus', branch: branch
4
+ gem 'solidus_core', github: 'solidusio/solidus', branch: branch
5
5
 
6
6
  # Specify your gem's dependencies in solidus_support.gemspec
7
7
  gemspec
8
+
9
+ gem 'sqlite3'
10
+ gem 'sprockets-rails'
data/README.md CHANGED
@@ -24,6 +24,42 @@ SolidusSupport::Migration[5.0] # same as `ActiveRecord::Migration[5.0]`
24
24
 
25
25
  There's no reason to use `SolidusSupport::Migration[5.0]` over `ActiveRecord::Migration[5.0]`, but it is provided.
26
26
 
27
+ ### Testing Helpers
28
+
29
+ This gem provides some useful helpers for RSpec to setup an extension's test
30
+ environment easily.
31
+
32
+ Into your extension's spec/spec_helper.rb:
33
+
34
+ ```ruby
35
+ require "solidus_support/extension/feature_helper"
36
+ ```
37
+
38
+ This helper loads configuration needed to run extensions feature specs
39
+ correctly, setting up Capybara and configuring Rails test application
40
+ to precompile assets before the first feature spec.
41
+
42
+ This helper requires the `rails_helper`, also provided by this gem and
43
+ requireable as a stand-alone helper.
44
+
45
+ By doing:
46
+
47
+ ```ruby
48
+ require "solidus_support/extension/rails_helper"
49
+ ```
50
+
51
+ extension's test suite will have all Rails related tests configuration,
52
+ like authorization helpers, Solidus core factories, url helpers, and
53
+ other helpers to easily work with Solidus Config.
54
+
55
+ This `rails_helper` in turn requires the basic `spec_helper`, which is
56
+ responsible to load a basic RSpec configuration, which could be needed
57
+ in all extensions. It is also requireable as a stand-alone helper with:
58
+
59
+ ```ruby
60
+ require "solidus_support/extension/spec_helper"
61
+ ```
62
+
27
63
  ## Development
28
64
 
29
65
  After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -33,4 +69,3 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
33
69
  ## Contributing
34
70
 
35
71
  Bug reports and pull requests are welcome on GitHub at https://github.com/solidusio/solidus_support.
36
-
@@ -16,14 +16,31 @@ module SolidusSupport
16
16
  end
17
17
  end
18
18
 
19
+ def new_gateway_code?
20
+ first_version_with_new_gateway_code = Gem::Requirement.new('>= 2.3')
21
+ first_version_with_new_gateway_code.satisfied_by?(solidus_gem_version)
22
+ end
23
+
19
24
  def payment_source_parent_class
20
- if solidus_gem_version > Gem::Version.new('2.2.x')
25
+ if new_gateway_code?
21
26
  Spree::PaymentSource
22
27
  else
23
28
  Spree::Base
24
29
  end
25
30
  end
26
31
 
32
+ def payment_method_parent_class(credit_card: false)
33
+ if new_gateway_code?
34
+ if credit_card
35
+ Spree::PaymentMethod::CreditCard
36
+ else
37
+ Spree::PaymentMethod
38
+ end
39
+ else
40
+ Spree::Gateway
41
+ end
42
+ end
43
+
27
44
  def frontend_available?
28
45
  defined?(Spree::Frontend::Engine)
29
46
  end
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # Can be required from an extension's spec/feature_helper.rb
4
4
  #
5
- # require 'solidus_support/extension/feature_helper.rb'
5
+ # require 'solidus_support/extension/feature_helper'
6
6
  #
7
7
 
8
8
  require 'solidus_support/extension/rails_helper'
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # Can be required from an extension's spec/rails_helper.rb
4
4
  #
5
- # require 'solidus_support/extension/rails_helper.rb'
5
+ # require 'solidus_support/extension/rails_helper'
6
6
  #
7
7
 
8
8
  require 'solidus_support/extension/spec_helper'
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # Can be required from an extension's spec/spec_helper.rb
4
4
  #
5
- # require 'solidus_support/extension/spec_helper.rb'
5
+ # require 'solidus_support/extension/spec_helper'
6
6
  #
7
7
 
8
8
  RSpec.configure do |config|
@@ -1,3 +1,3 @@
1
1
  module SolidusSupport
2
- VERSION = "0.2.1"
2
+ VERSION = "0.2.2"
3
3
  end
@@ -16,6 +16,8 @@ Gem::Specification.new do |spec|
16
16
  spec.files = `git ls-files -z`.split("\x0")
17
17
  spec.require_paths = ["lib"]
18
18
 
19
+ spec.add_development_dependency "solidus_core"
19
20
  spec.add_development_dependency "bundler", "~> 1.14"
20
21
  spec.add_development_dependency "rake", "~> 10.0"
22
+ spec.add_development_dependency "rspec-rails", "~> 3.7"
21
23
  end
@@ -0,0 +1,41 @@
1
+ RSpec.describe SolidusSupport do
2
+ describe '.payment_method_parent_class' do
3
+ subject { described_class.payment_method_parent_class(credit_card: credit_card) }
4
+
5
+ let(:credit_card) { nil }
6
+
7
+ before do
8
+ allow(described_class).to receive(:solidus_gem_version) do
9
+ Gem::Version.new(solidus_version)
10
+ end
11
+ end
12
+
13
+ context 'For Solidus < 2.3' do
14
+ let(:solidus_version) { '2.2.1' }
15
+
16
+ it { is_expected.to eq(Spree::Gateway) }
17
+ end
18
+
19
+ context 'For Solidus >= 2.3' do
20
+ let(:solidus_version) { '2.3.1' }
21
+
22
+ it { is_expected.to eq(Spree::PaymentMethod) }
23
+ end
24
+
25
+ context 'with credit_card: true' do
26
+ let(:credit_card) { true }
27
+
28
+ context 'For Solidus < 2.3' do
29
+ let(:solidus_version) { '2.2.1' }
30
+
31
+ it { is_expected.to eq(Spree::Gateway) }
32
+ end
33
+
34
+ context 'For Solidus >= 2.3' do
35
+ let(:solidus_version) { '2.3.1' }
36
+
37
+ it { is_expected.to eq(Spree::PaymentMethod::CreditCard) }
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,2 @@
1
+ require_relative 'support/dummy_app'
2
+ require 'solidus_support/extension/spec_helper'
@@ -0,0 +1,18 @@
1
+ ENV['RAILS_ENV'] = 'test'
2
+ ENV['DISABLE_DATABASE_ENVIRONMENT_CHECK'] = '1'
3
+
4
+ Bundler.setup
5
+
6
+ require 'rails'
7
+ require 'solidus_core'
8
+
9
+ Bundler.require(:default, :test)
10
+
11
+ module DummyApp
12
+ class Application < ::Rails::Application
13
+ config.eager_load = false
14
+ config.paths["config/database"] = File.expand_path('../dummy_app/database.yml', __FILE__)
15
+ end
16
+ end
17
+
18
+ DummyApp::Application.initialize!
@@ -0,0 +1,4 @@
1
+ test:
2
+ adapter: sqlite3
3
+ database: ':memory:'
4
+ timeout: 10000
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_support
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Hawthorn
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-22 00:00:00.000000000 Z
11
+ date: 2018-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: solidus_core
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: bundler
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +52,20 @@ dependencies:
38
52
  - - "~>"
39
53
  - !ruby/object:Gem::Version
40
54
  version: '10.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec-rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.7'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.7'
41
69
  description: Collection of common functionality for solidus extensions
42
70
  email:
43
71
  - john@stembolt.com
@@ -46,6 +74,8 @@ extensions: []
46
74
  extra_rdoc_files: []
47
75
  files:
48
76
  - ".gitignore"
77
+ - ".rspec"
78
+ - ".travis.yml"
49
79
  - Gemfile
50
80
  - README.md
51
81
  - Rakefile
@@ -56,6 +86,10 @@ files:
56
86
  - lib/solidus_support/migration.rb
57
87
  - lib/solidus_support/version.rb
58
88
  - solidus_support.gemspec
89
+ - spec/solidus_support_spec.rb
90
+ - spec/spec_helper.rb
91
+ - spec/support/dummy_app.rb
92
+ - spec/support/dummy_app/database.yml
59
93
  homepage: https://solidus.io
60
94
  licenses: []
61
95
  metadata: {}
@@ -75,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
75
109
  version: '0'
76
110
  requirements: []
77
111
  rubyforge_project:
78
- rubygems_version: 2.7.6
112
+ rubygems_version: 2.7.3
79
113
  signing_key:
80
114
  specification_version: 4
81
115
  summary: A common functionality for solidus extensions