solidus_dev_support 2.1.0 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
[![CircleCI](https://circleci.com/gh/<%= repo %>.svg?style=shield)](https://circleci.com/gh/<%= repo %>)
|
4
|
+
[![codecov](https://codecov.io/gh/<%= repo %>/branch/master/graph/badge.svg)](https://codecov.io/gh/<%= repo %>)
|
4
5
|
|
5
|
-
<!--
|
6
|
-
[![CircleCI](https://circleci.com/gh/REPO_ORG/<%= file_name %>.svg?style=shield)](https://circleci.com/gh/REPO_ORG/<%= file_name %>)
|
7
|
-
[![codecov](https://codecov.io/gh/REPO_ORG/<%= file_name %>/branch/master/graph/badge.svg)](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.
|