solidus_dev_support 2.1.0 → 2.2.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 +4 -4
- data/.mergify.yml +2 -0
- data/.rubocop.yml +1 -1
- data/CHANGELOG.md +38 -1
- data/README.md +10 -3
- data/Rakefile +10 -8
- data/lib/solidus_dev_support/extension.rb +29 -23
- data/lib/solidus_dev_support/rake_tasks.rb +6 -4
- data/lib/solidus_dev_support/rspec/capybara.rb +2 -0
- data/lib/solidus_dev_support/solidus_command.rb +8 -0
- data/lib/solidus_dev_support/templates/extension/CHANGELOG.md +1 -0
- data/lib/solidus_dev_support/templates/extension/README.md +5 -17
- data/lib/solidus_dev_support/templates/extension/extension.gemspec.tt +3 -3
- data/lib/solidus_dev_support/templates/extension/lib/%file_name%.rb.tt +0 -12
- data/lib/solidus_dev_support/templates/extension/lib/%file_name%/configuration.rb.tt +15 -2
- data/lib/solidus_dev_support/templates/extension/rubocop.yml +1 -1
- data/lib/solidus_dev_support/version.rb +1 -1
- data/solidus_dev_support.gemspec +1 -1
- data/spec/features/create_extension_spec.rb +20 -4
- data/spec/lib/extension_spec.rb +56 -20
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0bf90c2bc57b80b7ac05afe68db8c72f7c5156ac479e8fee99d61f38d48ce3b4
|
4
|
+
data.tar.gz: '0830edb6f1562d5b58345c9b79702f1d70aab2c5051cc03570772f5dbbef789d'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2afaf6d12de41f7748891da69a9b02a769af1b30bd8124e65378c1633a79a951c608a7d30a5e47267ac3c631029c781a96e6f07e61405e970c7434dd136e27dc
|
7
|
+
data.tar.gz: 4db74c432e1bc63e853c195d95d24e3ee7ed97854e0386ebea3ea4533bed82dbe23ee4eff46040d8b7603a126154a9d8fe91c7d899ca81e04a752ff49f40c48b
|
data/.mergify.yml
CHANGED
data/.rubocop.yml
CHANGED
@@ -36,7 +36,6 @@ Style/RedundantRegexpEscape:
|
|
36
36
|
Style/SlicingWithRange:
|
37
37
|
Enabled: true
|
38
38
|
|
39
|
-
|
40
39
|
AllCops:
|
41
40
|
TargetRubyVersion: 2.5
|
42
41
|
Exclude:
|
@@ -44,6 +43,7 @@ AllCops:
|
|
44
43
|
- "vendor/**/*"
|
45
44
|
# Generated binstubs
|
46
45
|
- bin/rake
|
46
|
+
NewCops: enable
|
47
47
|
|
48
48
|
Style/FrozenStringLiteralComment:
|
49
49
|
Exclude:
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,39 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [2.2.0](https://github.com/solidusio/solidus_dev_support/tree/2.2.0) (2020-11-27)
|
4
|
+
|
5
|
+
[Full Changelog](https://github.com/solidusio/solidus_dev_support/compare/v2.1.0...2.2.0)
|
6
|
+
|
7
|
+
**Implemented enhancements:**
|
8
|
+
|
9
|
+
- Improve the URL generation for the gemspec and Readme \(defaulting to the solidusio-contrib organization\), consistently use a file-based Changelog [\#159](https://github.com/solidusio/solidus_dev_support/pull/159) ([elia](https://github.com/elia))
|
10
|
+
- Configuration Cleanup [\#158](https://github.com/solidusio/solidus_dev_support/pull/158) ([elia](https://github.com/elia))
|
11
|
+
- Refer to Solidus wiki page for gem release info [\#157](https://github.com/solidusio/solidus_dev_support/pull/157) ([spaghetticode](https://github.com/spaghetticode))
|
12
|
+
- Upgrade to RuboCop 1.0 [\#156](https://github.com/solidusio/solidus_dev_support/pull/156) ([aldesantis](https://github.com/aldesantis))
|
13
|
+
- Add a command to display gem's version [\#154](https://github.com/solidusio/solidus_dev_support/pull/154) ([igorbp](https://github.com/igorbp))
|
14
|
+
|
15
|
+
**Fixed bugs:**
|
16
|
+
|
17
|
+
- Require "webdrivers" before using it as the default javascript driver [\#152](https://github.com/solidusio/solidus_dev_support/pull/152) ([ccarruitero](https://github.com/ccarruitero))
|
18
|
+
|
19
|
+
**Merged pull requests:**
|
20
|
+
|
21
|
+
- Don't let mergify mark a PR as red because it's missing a review [\#153](https://github.com/solidusio/solidus_dev_support/pull/153) ([elia](https://github.com/elia))
|
22
|
+
|
23
|
+
## [v2.1.0](https://github.com/solidusio/solidus_dev_support/tree/v2.1.0) (2020-10-02)
|
24
|
+
|
25
|
+
[Full Changelog](https://github.com/solidusio/solidus_dev_support/compare/v2.0.1...v2.1.0)
|
26
|
+
|
27
|
+
**Implemented enhancements:**
|
28
|
+
|
29
|
+
- Add standard github\_changelog\_generator configuration [\#151](https://github.com/solidusio/solidus_dev_support/pull/151) ([aldesantis](https://github.com/aldesantis))
|
30
|
+
- Move generated factories to `testing\_support/` [\#150](https://github.com/solidusio/solidus_dev_support/pull/150) ([aldesantis](https://github.com/aldesantis))
|
31
|
+
- Add extension configuration boilerplate [\#149](https://github.com/solidusio/solidus_dev_support/pull/149) ([aldesantis](https://github.com/aldesantis))
|
32
|
+
|
33
|
+
**Fixed bugs:**
|
34
|
+
|
35
|
+
- Fix `NewCops: Enable` option for RuboCop [\#148](https://github.com/solidusio/solidus_dev_support/pull/148) ([aldesantis](https://github.com/aldesantis))
|
36
|
+
|
3
37
|
## [v2.0.1](https://github.com/solidusio/solidus_dev_support/tree/v2.0.1) (2020-09-22)
|
4
38
|
|
5
39
|
[Full Changelog](https://github.com/solidusio/solidus_dev_support/compare/v2.0.0...v2.0.1)
|
@@ -25,7 +59,6 @@
|
|
25
59
|
- Add precompiled badges fro CI and coverage [\#132](https://github.com/solidusio/solidus_dev_support/pull/132) ([elia](https://github.com/elia))
|
26
60
|
- Add Changelog Rake task [\#128](https://github.com/solidusio/solidus_dev_support/pull/128) ([tvdeyen](https://github.com/tvdeyen))
|
27
61
|
- Readme fixes [\#122](https://github.com/solidusio/solidus_dev_support/pull/122) ([elia](https://github.com/elia))
|
28
|
-
- Restore the generic bin/rails command [\#106](https://github.com/solidusio/solidus_dev_support/pull/106) ([elia](https://github.com/elia))
|
29
62
|
|
30
63
|
**Fixed bugs:**
|
31
64
|
|
@@ -35,6 +68,10 @@
|
|
35
68
|
- Don't install a payment-method in the sandbox [\#131](https://github.com/solidusio/solidus_dev_support/pull/131) ([elia](https://github.com/elia))
|
36
69
|
- Run extension generator in sandbox [\#127](https://github.com/solidusio/solidus_dev_support/pull/127) ([elia](https://github.com/elia))
|
37
70
|
|
71
|
+
**Merged pull requests:**
|
72
|
+
|
73
|
+
- Update readme template [\#109](https://github.com/solidusio/solidus_dev_support/pull/109) ([aldesantis](https://github.com/aldesantis))
|
74
|
+
|
38
75
|
## [v1.5.0](https://github.com/solidusio/solidus_dev_support/tree/v1.5.0) (2020-06-13)
|
39
76
|
|
40
77
|
[Full Changelog](https://github.com/solidusio/solidus_dev_support/compare/v1.4.0...v1.5.0)
|
data/README.md
CHANGED
@@ -232,9 +232,16 @@ After checking out the repo, run `bin/setup` to install dependencies. Then, run
|
|
232
232
|
the tests. You can also run `bin/console` for an interactive prompt that will allow you to
|
233
233
|
experiment.
|
234
234
|
|
235
|
-
To install this gem onto your local machine, run `bin/rake install`.
|
236
|
-
|
237
|
-
|
235
|
+
To install this gem onto your local machine, run `bin/rake install`.
|
236
|
+
|
237
|
+
To release a new version:
|
238
|
+
|
239
|
+
1. update the version number in `version.rb`
|
240
|
+
2. update the changelog with `bin/rake changelog`
|
241
|
+
3. commit the changes using `Bump SolidusDevSupport to 1.2.3` as the message
|
242
|
+
3. run `bin/rake release`
|
243
|
+
|
244
|
+
The last command will create a git tag for the version, push git commits and tags, and push the `.gem` file to
|
238
245
|
[rubygems.org](https://rubygems.org).
|
239
246
|
|
240
247
|
## Contributing
|
data/Rakefile
CHANGED
@@ -2,14 +2,16 @@
|
|
2
2
|
|
3
3
|
require "bundler/gem_tasks"
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
5
|
+
desc "Update the changelog, specify the version for the unreleased changes appending VERSION=1.2.3 to the command"
|
6
|
+
task :changelog do
|
7
|
+
require_relative "lib/solidus_dev_support/version"
|
8
|
+
|
9
|
+
future_release = ENV.fetch("VERSION") {
|
10
|
+
warn "Using current version (#{SolidusDevSupport::VERSION}) for unreleased changes, use VERSION=1.2.3 to select a different one."
|
11
|
+
SolidusDevSupport::VERSION
|
12
|
+
}
|
13
|
+
|
14
|
+
sh "bundle exec github_changelog_generator --project solidus_dev_support --user solidusio --future-release #{future_release}"
|
13
15
|
end
|
14
16
|
|
15
17
|
require "rspec/core/rake_task"
|
@@ -28,6 +28,7 @@ module SolidusDevSupport
|
|
28
28
|
make_executable bin
|
29
29
|
end
|
30
30
|
|
31
|
+
template 'CHANGELOG.md', "#{path}/CHANGELOG.md"
|
31
32
|
template 'extension.gemspec', "#{path}/#{file_name}.gemspec"
|
32
33
|
template 'Gemfile', "#{path}/Gemfile"
|
33
34
|
template 'gitignore', "#{path}/.gitignore"
|
@@ -50,27 +51,36 @@ module SolidusDevSupport
|
|
50
51
|
@file_name = Thor::Util.snake_case(File.basename(path))
|
51
52
|
@file_name = PREFIX + @file_name unless @file_name.start_with?(PREFIX)
|
52
53
|
|
53
|
-
@class_name = Thor::Util.camel_case
|
54
|
+
@class_name = Thor::Util.camel_case file_name
|
54
55
|
|
55
56
|
@root = File.dirname(path)
|
56
|
-
@path = File.join(
|
57
|
+
@path = File.join(root, file_name)
|
58
|
+
|
59
|
+
@repo = existing_repo || default_repo
|
57
60
|
|
58
61
|
@gemspec = existing_gemspec || default_gemspec
|
59
62
|
end
|
60
63
|
|
64
|
+
attr_reader :root, :path, :file_name, :class_name, :gemspec, :repo
|
65
|
+
|
66
|
+
private
|
67
|
+
|
61
68
|
def gemspec_path
|
62
69
|
@gemspec_path ||= File.join(path, "#{file_name}.gemspec")
|
63
70
|
end
|
64
71
|
|
65
72
|
def default_gemspec
|
66
|
-
@default_gemspec ||= Gem::Specification.new(
|
73
|
+
@default_gemspec ||= Gem::Specification.new(file_name, '0.0.1') do |gem|
|
67
74
|
gem.author = git('config user.name', 'TODO: Write your name')
|
68
|
-
gem.description = 'TODO: Write a longer description or delete this line.'
|
69
75
|
gem.email = git('config user.email', 'TODO: Write your email address')
|
70
|
-
|
71
|
-
gem.license = 'BSD-3-Clause'
|
72
|
-
gem.metadata['changelog_uri'] = default_homepage + '/releases'
|
76
|
+
|
73
77
|
gem.summary = 'TODO: Write a short summary, because RubyGems requires one.'
|
78
|
+
gem.description = 'TODO: Write a longer description or delete this line.'
|
79
|
+
gem.license = 'BSD-3-Clause'
|
80
|
+
|
81
|
+
gem.metadata['homepage_uri'] = gem.homepage = "https://github.com/#{repo}#readme"
|
82
|
+
gem.metadata['changelog_uri'] = "https://github.com/#{repo}/blob/master/CHANGELOG.md"
|
83
|
+
gem.metadata['source_code_uri'] = "https://github.com/#{repo}"
|
74
84
|
end
|
75
85
|
end
|
76
86
|
|
@@ -80,28 +90,26 @@ module SolidusDevSupport
|
|
80
90
|
@existing_gemspec ||= Gem::Specification.load(gemspec_path).tap do |spec|
|
81
91
|
spec.author ||= default_gemspec.author
|
82
92
|
spec.email ||= default_gemspec.email
|
83
|
-
|
84
|
-
spec.license ||= default_gemspec.license
|
85
|
-
spec.metadata['changelog_uri'] ||= default_gemspec.metadata[:changelog_uri]
|
93
|
+
|
86
94
|
spec.summary ||= default_gemspec.summary
|
95
|
+
spec.license ||= default_gemspec.license
|
96
|
+
|
97
|
+
spec.homepage ||= default_gemspec.homepage
|
98
|
+
spec.metadata['source_code_uri'] ||= default_gemspec.metadata['source_code_uri']
|
99
|
+
spec.metadata['changelog_uri'] ||= default_gemspec.metadata['changelog_uri']
|
100
|
+
spec.metadata['source_code_uri'] ||= default_gemspec.metadata['source_code_uri']
|
87
101
|
end
|
88
102
|
end
|
89
103
|
|
90
|
-
def
|
91
|
-
|
92
|
-
'remote get-url origin',
|
93
|
-
"git@github.com:#{github_user}/#{file_name}.git"
|
94
|
-
).sub(
|
95
|
-
%r{^.*github\.com.([^/]+)/([^/.]+).*$},
|
96
|
-
'https://github.com/\1/\2'
|
97
|
-
)
|
104
|
+
def default_repo
|
105
|
+
"solidusio-contrib/#{file_name}"
|
98
106
|
end
|
99
107
|
|
100
|
-
def
|
101
|
-
|
108
|
+
def existing_repo
|
109
|
+
git('remote get-url origin')&.sub(%r{^.*github\.com.([^/]+)/([^/.]+).*$}, '\1/\2')
|
102
110
|
end
|
103
111
|
|
104
|
-
def git(command, default)
|
112
|
+
def git(command, default = nil)
|
105
113
|
result = `git #{command} 2> /dev/null`.strip
|
106
114
|
result.empty? ? default : result
|
107
115
|
end
|
@@ -111,8 +119,6 @@ module SolidusDevSupport
|
|
111
119
|
executable = (path.stat.mode | 0o111)
|
112
120
|
path.chmod(executable)
|
113
121
|
end
|
114
|
-
|
115
|
-
attr_reader :root, :path, :file_name, :class_name, :gemspec
|
116
122
|
end
|
117
123
|
|
118
124
|
def self.source_root
|
@@ -76,11 +76,13 @@ module SolidusDevSupport
|
|
76
76
|
def install_changelog_task
|
77
77
|
require 'github_changelog_generator/task'
|
78
78
|
|
79
|
-
user, project = gemspec.homepage.split("/")[3..5]
|
80
79
|
GitHubChangelogGenerator::RakeTask.new(:changelog) do |config|
|
81
|
-
|
82
|
-
|
83
|
-
|
80
|
+
require 'octokit'
|
81
|
+
repo = Octokit::Repository.from_url(gemspec.metadata['source_code_uri'] || gemspec.homepage)
|
82
|
+
|
83
|
+
config.user = repo.owner
|
84
|
+
config.project = repo.name
|
85
|
+
config.future_release = "v#{ENV['UNRELEASED_VERSION'] || gemspec.version}"
|
84
86
|
end
|
85
87
|
end
|
86
88
|
end
|
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'thor'
|
4
4
|
require 'solidus_dev_support/extension'
|
5
|
+
require 'spree/core/version'
|
5
6
|
|
6
7
|
module SolidusDevSupport
|
7
8
|
class SolidusCommand < Thor
|
@@ -13,6 +14,13 @@ module SolidusDevSupport
|
|
13
14
|
desc 'e', 'Manage solidus extensions (shortcut for "extension")'
|
14
15
|
subcommand 'e', Extension
|
15
16
|
|
17
|
+
desc 'version', 'Displays solidus_dev_support version'
|
18
|
+
def version
|
19
|
+
puts "Solidus version #{Spree.solidus_gem_version}"
|
20
|
+
puts "Solidus Dev Support version #{SolidusDevSupport::VERSION}"
|
21
|
+
end
|
22
|
+
map ['-v', '--version'] => :version
|
23
|
+
|
16
24
|
def self.exit_on_failure?
|
17
25
|
true
|
18
26
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
# Changelog
|
@@ -1,13 +1,9 @@
|
|
1
1
|
# <%= class_name.gsub(/(?<=[^A-Z])([A-Z])/, ' \1') %>
|
2
2
|
|
3
|
-
|
3
|
+
[](https://circleci.com/gh/<%= repo %>)
|
4
|
+
[](https://codecov.io/gh/<%= repo %>)
|
4
5
|
|
5
|
-
<!--
|
6
|
-
[](https://circleci.com/gh/REPO_ORG/<%= file_name %>)
|
7
|
-
[](https://codecov.io/gh/REPO_ORG/<%= file_name %>)
|
8
|
-
-->
|
9
|
-
|
10
|
-
[Explain what your extension does.]
|
6
|
+
<!-- Explain what your extension does. -->
|
11
7
|
|
12
8
|
## Installation
|
13
9
|
|
@@ -25,7 +21,7 @@ bin/rails generate <%= file_name %>:install
|
|
25
21
|
|
26
22
|
## Usage
|
27
23
|
|
28
|
-
|
24
|
+
<!-- Explain how to use your extension once it's been installed. -->
|
29
25
|
|
30
26
|
## Development
|
31
27
|
|
@@ -81,15 +77,7 @@ git commit -m "Update the changelog"
|
|
81
77
|
|
82
78
|
### Releasing new versions
|
83
79
|
|
84
|
-
|
85
|
-
|
86
|
-
```shell
|
87
|
-
bundle exec gem bump -v 1.6.0
|
88
|
-
bin/rake changelog
|
89
|
-
git commit -a --amend
|
90
|
-
git push
|
91
|
-
bundle exec gem release
|
92
|
-
```
|
80
|
+
Please refer to the dedicated [page](https://github.com/solidusio/solidus/wiki/How-to-release-extensions) on Solidus wiki.
|
93
81
|
|
94
82
|
## License
|
95
83
|
|
@@ -9,12 +9,12 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.email = '<%= gemspec.email %>'
|
10
10
|
|
11
11
|
spec.summary = '<%= gemspec.summary %>'
|
12
|
-
spec.description = '<%= gemspec.description %>'
|
13
|
-
spec.homepage = '<%= gemspec.homepage %>'
|
12
|
+
<% if gemspec.description %>spec.description = '<%= gemspec.description %>'
|
13
|
+
<% end %>spec.homepage = '<%= gemspec.homepage %>'
|
14
14
|
spec.license = '<%= gemspec.license %>'
|
15
15
|
|
16
16
|
spec.metadata['homepage_uri'] = spec.homepage
|
17
|
-
spec.metadata['source_code_uri'] = '<%= gemspec.
|
17
|
+
spec.metadata['source_code_uri'] = '<%= gemspec.metadata["source_code_uri"] %>'
|
18
18
|
spec.metadata['changelog_uri'] = '<%= gemspec.metadata["changelog_uri"] %>'
|
19
19
|
|
20
20
|
spec.required_ruby_version = Gem::Requirement.new('~> 2.5')
|
@@ -6,15 +6,3 @@ require 'solidus_support'
|
|
6
6
|
require '<%=file_name%>/configuration'
|
7
7
|
require '<%=file_name%>/version'
|
8
8
|
require '<%=file_name%>/engine'
|
9
|
-
|
10
|
-
module <%= class_name %>
|
11
|
-
class << self
|
12
|
-
def configuration
|
13
|
-
@configuration ||= Configuration.new
|
14
|
-
end
|
15
|
-
|
16
|
-
def configure
|
17
|
-
yield configuration
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
@@ -2,7 +2,20 @@
|
|
2
2
|
|
3
3
|
module <%= class_name %>
|
4
4
|
class Configuration
|
5
|
-
#
|
6
|
-
#
|
5
|
+
# Define here the settings for this extensions, e.g.:
|
6
|
+
#
|
7
|
+
# attr_accessor :my_setting
|
8
|
+
end
|
9
|
+
|
10
|
+
class << self
|
11
|
+
def configuration
|
12
|
+
@configuration ||= Configuration.new
|
13
|
+
end
|
14
|
+
|
15
|
+
alias config configuration
|
16
|
+
|
17
|
+
def configure
|
18
|
+
yield configuration
|
19
|
+
end
|
7
20
|
end
|
8
21
|
end
|
data/solidus_dev_support.gemspec
CHANGED
@@ -39,7 +39,7 @@ Gem::Specification.new do |spec|
|
|
39
39
|
spec.add_dependency 'puma', '~> 4.3'
|
40
40
|
spec.add_dependency 'rspec_junit_formatter'
|
41
41
|
spec.add_dependency 'rspec-rails', '~> 4.0.0.beta3'
|
42
|
-
spec.add_dependency 'rubocop', '~> 0
|
42
|
+
spec.add_dependency 'rubocop', '~> 1.0'
|
43
43
|
spec.add_dependency 'rubocop-performance', '~> 1.5'
|
44
44
|
spec.add_dependency 'rubocop-rails', '~> 2.3'
|
45
45
|
spec.add_dependency 'rubocop-rspec', '~> 1.36'
|
@@ -3,6 +3,7 @@
|
|
3
3
|
require 'fileutils'
|
4
4
|
require 'open3'
|
5
5
|
require 'spec_helper'
|
6
|
+
require 'spree/core/version'
|
6
7
|
|
7
8
|
RSpec.describe 'Create extension' do
|
8
9
|
include FileUtils
|
@@ -13,8 +14,7 @@ RSpec.describe 'Create extension' do
|
|
13
14
|
let(:gemspec_name) { "solidus_#{extension_name}.gemspec" }
|
14
15
|
let(:tmp_path) { Pathname.new(gem_root).join('tmp') }
|
15
16
|
let(:install_path) { tmp_path.join("solidus_#{extension_name}") }
|
16
|
-
|
17
|
-
class CommandFailed < StandardError; end
|
17
|
+
let(:command_failed_error) { Class.new(StandardError) }
|
18
18
|
|
19
19
|
before do
|
20
20
|
rm_rf(install_path)
|
@@ -28,6 +28,7 @@ RSpec.describe 'Create extension' do
|
|
28
28
|
|
29
29
|
it 'checks the create extension process' do
|
30
30
|
step :check_solidus_cmd
|
31
|
+
step :check_gem_version
|
31
32
|
step :check_create_extension
|
32
33
|
step :check_bundle_install
|
33
34
|
step :check_default_task
|
@@ -45,6 +46,21 @@ RSpec.describe 'Create extension' do
|
|
45
46
|
end
|
46
47
|
end
|
47
48
|
|
49
|
+
def check_gem_version
|
50
|
+
gem_version_commands = ['version', '--version', '-v']
|
51
|
+
gem_version = SolidusDevSupport::VERSION
|
52
|
+
solidus_version = Spree.solidus_gem_version
|
53
|
+
|
54
|
+
cd(tmp_path) do
|
55
|
+
gem_version_commands.each do |gem_version_cmd|
|
56
|
+
output = `#{solidus_cmd} #{gem_version_cmd}`
|
57
|
+
expect($?).to be_success
|
58
|
+
expect(output).to include("Solidus version #{solidus_version}")
|
59
|
+
expect(output).to include("Solidus Dev Support version #{gem_version}")
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
48
64
|
def check_create_extension
|
49
65
|
cd(tmp_path) do
|
50
66
|
output = `#{solidus_cmd} extension #{extension_name}`
|
@@ -83,7 +99,7 @@ RSpec.describe 'Create extension' do
|
|
83
99
|
open('Gemfile', 'a') { |f| f.puts "gem 'solidus_dev_support', path: '../../..'" }
|
84
100
|
end
|
85
101
|
|
86
|
-
expect { bundle_install }.to raise_error(
|
102
|
+
expect { bundle_install }.to raise_error(command_failed_error, /invalid gemspec/)
|
87
103
|
|
88
104
|
# Update gemspec with the required fields
|
89
105
|
gemspec_path = install_path.join(gemspec_name)
|
@@ -144,7 +160,7 @@ RSpec.describe 'Create extension' do
|
|
144
160
|
warn "$ #{command}"
|
145
161
|
warn output.to_s
|
146
162
|
end
|
147
|
-
raise(
|
163
|
+
raise(command_failed_error, "command failed: #{command}\n#{output}")
|
148
164
|
end
|
149
165
|
end
|
150
166
|
|
data/spec/lib/extension_spec.rb
CHANGED
@@ -1,33 +1,69 @@
|
|
1
1
|
require 'solidus_dev_support/extension'
|
2
2
|
|
3
3
|
RSpec.describe SolidusDevSupport::Extension do
|
4
|
-
describe '#
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
end
|
4
|
+
describe '#path=' do
|
5
|
+
specify 'with an existing extension' do
|
6
|
+
allow(subject).to receive(:git).with('remote get-url origin', any_args).and_return('git@github.com:some_user/solidus_my_ext.git')
|
7
|
+
allow(subject).to receive(:git).with('config user.name', any_args).and_return('John Doe')
|
8
|
+
allow(subject).to receive(:git).with('config user.email', any_args).and_return('john.doe@example.com')
|
10
9
|
|
11
|
-
|
12
|
-
|
10
|
+
allow(File).to receive(:exist?).with('/foo/bar/solidus_my_ext/solidus_my_ext.gemspec').and_return(true)
|
11
|
+
allow(Gem::Specification).to receive(:load).with('/foo/bar/solidus_my_ext/solidus_my_ext.gemspec').and_return(
|
12
|
+
Gem::Specification.new('solidus_my_ext', '0.1.1') do |gem|
|
13
|
+
gem.author = "Jane Doe"
|
14
|
+
gem.email = "jane.doe@example.com"
|
13
15
|
|
14
|
-
|
15
|
-
|
16
|
-
end
|
17
|
-
end
|
16
|
+
gem.summary = 'This extension is awesome!'
|
17
|
+
gem.license = 'MIT'
|
18
18
|
|
19
|
-
|
20
|
-
|
19
|
+
gem.homepage = "some_user.github.io/solidus_my_ext"
|
20
|
+
gem.metadata['changelog_uri'] = "https://github.com/some_user/solidus_my_ext/releases"
|
21
|
+
gem.metadata['source_code_uri'] = "https://github.com/some_user/solidus_my_ext"
|
22
|
+
end
|
23
|
+
)
|
21
24
|
|
22
|
-
|
23
|
-
|
25
|
+
subject.path = '/foo/bar/solidus_my_ext'
|
26
|
+
|
27
|
+
aggregate_failures do
|
28
|
+
expect(subject.file_name).to eq("solidus_my_ext")
|
29
|
+
expect(subject.class_name).to eq("SolidusMyExt")
|
30
|
+
expect(subject.root).to eq("/foo/bar")
|
31
|
+
expect(subject.path).to eq("/foo/bar/solidus_my_ext")
|
32
|
+
expect(subject.repo).to eq("some_user/solidus_my_ext")
|
33
|
+
expect(subject.gemspec.author).to eq('Jane Doe')
|
34
|
+
expect(subject.gemspec.email).to eq('jane.doe@example.com')
|
35
|
+
expect(subject.gemspec.summary).to eq('This extension is awesome!')
|
36
|
+
expect(subject.gemspec.license).to eq('MIT')
|
37
|
+
expect(subject.gemspec.homepage).to eq("some_user.github.io/solidus_my_ext")
|
38
|
+
expect(subject.gemspec.metadata['changelog_uri']).to eq("https://github.com/some_user/solidus_my_ext/releases")
|
39
|
+
expect(subject.gemspec.metadata['source_code_uri']).to eq("https://github.com/some_user/solidus_my_ext")
|
24
40
|
end
|
25
41
|
end
|
26
|
-
end
|
27
42
|
|
28
|
-
|
29
|
-
|
30
|
-
|
43
|
+
specify 'when creating a new extension' do
|
44
|
+
allow(subject).to receive(:git).with('remote get-url origin', any_args) { |_, default| default }
|
45
|
+
allow(subject).to receive(:git).with('config user.name', any_args).and_return('John Doe')
|
46
|
+
allow(subject).to receive(:git).with('config user.email', any_args).and_return('john.doe@example.com')
|
47
|
+
|
48
|
+
allow(Dir).to receive(:pwd).and_return('/foo/bar')
|
49
|
+
|
50
|
+
subject.path = '/foo/bar/solidus_my_ext'
|
51
|
+
|
52
|
+
aggregate_failures do
|
53
|
+
expect(subject.file_name).to eq("solidus_my_ext")
|
54
|
+
expect(subject.class_name).to eq("SolidusMyExt")
|
55
|
+
expect(subject.root).to eq("/foo/bar")
|
56
|
+
expect(subject.path).to eq("/foo/bar/solidus_my_ext")
|
57
|
+
expect(subject.repo).to eq("solidusio-contrib/solidus_my_ext")
|
58
|
+
expect(subject.gemspec.author).to eq('John Doe')
|
59
|
+
expect(subject.gemspec.email).to eq('john.doe@example.com')
|
60
|
+
expect(subject.gemspec.summary).to eq('TODO: Write a short summary, because RubyGems requires one.')
|
61
|
+
expect(subject.gemspec.description).to eq('TODO: Write a longer description or delete this line.')
|
62
|
+
expect(subject.gemspec.license).to eq('BSD-3-Clause')
|
63
|
+
expect(subject.gemspec.homepage).to eq("https://github.com/solidusio-contrib/solidus_my_ext#readme")
|
64
|
+
expect(subject.gemspec.metadata['changelog_uri']).to eq("https://github.com/solidusio-contrib/solidus_my_ext/blob/master/CHANGELOG.md")
|
65
|
+
expect(subject.gemspec.metadata['source_code_uri']).to eq("https://github.com/solidusio-contrib/solidus_my_ext")
|
66
|
+
end
|
31
67
|
end
|
32
68
|
end
|
33
69
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solidus_dev_support
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alessandro Desantis
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-11-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: capybara
|
@@ -170,14 +170,14 @@ dependencies:
|
|
170
170
|
requirements:
|
171
171
|
- - "~>"
|
172
172
|
- !ruby/object:Gem::Version
|
173
|
-
version: '0
|
173
|
+
version: '1.0'
|
174
174
|
type: :runtime
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
178
|
- - "~>"
|
179
179
|
- !ruby/object:Gem::Version
|
180
|
-
version: '0
|
180
|
+
version: '1.0'
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
182
|
name: rubocop-performance
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
@@ -323,6 +323,7 @@ files:
|
|
323
323
|
- lib/solidus_dev_support/solidus_command.rb
|
324
324
|
- lib/solidus_dev_support/templates/extension/.circleci/config.yml
|
325
325
|
- lib/solidus_dev_support/templates/extension/.github/stale.yml
|
326
|
+
- lib/solidus_dev_support/templates/extension/CHANGELOG.md
|
326
327
|
- lib/solidus_dev_support/templates/extension/CONTRIBUTING.md
|
327
328
|
- lib/solidus_dev_support/templates/extension/Gemfile
|
328
329
|
- lib/solidus_dev_support/templates/extension/LICENSE
|
@@ -383,7 +384,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
383
384
|
- !ruby/object:Gem::Version
|
384
385
|
version: '0'
|
385
386
|
requirements: []
|
386
|
-
rubygems_version: 3.1.
|
387
|
+
rubygems_version: 3.1.4
|
387
388
|
signing_key:
|
388
389
|
specification_version: 4
|
389
390
|
summary: Development tools for Solidus extensions.
|