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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 775cf185474367ed130d07d17702a80fe73b1f30c16c904d3f0ec2a6ae6d030b
4
- data.tar.gz: 3cb289f1aa0ac28cae5d1df0f2508acf87c705f07cd706ee4c05f014517d7357
3
+ metadata.gz: 0bf90c2bc57b80b7ac05afe68db8c72f7c5156ac479e8fee99d61f38d48ce3b4
4
+ data.tar.gz: '0830edb6f1562d5b58345c9b79702f1d70aab2c5051cc03570772f5dbbef789d'
5
5
  SHA512:
6
- metadata.gz: 8051cde4fdfb198b4e034fd67204e8f04f0e91eda4d8c92bf1f7a88b62bfd4a3ebb5d3c9e6e253bf52f3d6589efc9c9c866ccf06124cd77adbff0f06bed23f00
7
- data.tar.gz: d06396c50c33c207ecbbbc9181a92aa1eeda7daab6f79268128d72b8419d7f755ef923aea33b25505e6faaad187d7bce6428a84b6f2436c5d8ce20702e9aec47
6
+ metadata.gz: 2afaf6d12de41f7748891da69a9b02a769af1b30bd8124e65378c1633a79a951c608a7d30a5e47267ac3c631029c781a96e6f07e61405e970c7434dd136e27dc
7
+ data.tar.gz: 4db74c432e1bc63e853c195d95d24e3ee7ed97854e0386ebea3ea4533bed82dbe23ee4eff46040d8b7603a126154a9d8fe91c7d899ca81e04a752ff49f40c48b
@@ -34,6 +34,8 @@ pull_request_rules:
34
34
  - base=master
35
35
  - -label="needs changelog label"
36
36
  - -label=blocked
37
+ - "#approved-reviews-by>=1"
38
+ - -draft
37
39
  actions:
38
40
  merge:
39
41
  method: merge
@@ -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:
@@ -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`. To release a new
236
- version, update the version number in `version.rb`, and then run `bin/rake release`, which
237
- will create a git tag for the version, push git commits and tags, and push the `.gem` file to
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
- require 'github_changelog_generator/task'
6
- GitHubChangelogGenerator::RakeTask.new :changelog do |config|
7
- config.user = 'solidusio'
8
- config.project = 'solidus_dev_support'
9
- config.exclude_labels = %w[infrastructure]
10
- config.issues = false
11
- config.base = "#{__dir__}/OLD_CHANGELOG.md"
12
- config.since_tag = 'v1.4.0'
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 @file_name
54
+ @class_name = Thor::Util.camel_case file_name
54
55
 
55
56
  @root = File.dirname(path)
56
- @path = File.join(@root, @file_name)
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(@file_name, '0.0.1') do |gem|
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
- gem.homepage = default_homepage
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
- spec.homepage ||= default_gemspec.homepage
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 default_homepage
91
- @default_homepage ||= git(
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 github_user
101
- @github_user ||= git('config github.user', '[USERNAME]')
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
- config.user = user || 'solidus-contrib'
82
- config.project = project || gemspec.name
83
- config.future_release = "v#{gemspec.version}"
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
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'webdrivers/chromedriver'
4
+
3
5
  # Allow to override the initial windows size
4
6
  CAPYBARA_WINDOW_SIZE = (ENV['CAPYBARA_WINDOW_SIZE'] || '1920x1080').split('x', 2).map(&:to_i)
5
7
 
@@ -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
@@ -1,13 +1,9 @@
1
1
  # <%= class_name.gsub(/(?<=[^A-Z])([A-Z])/, ' \1') %>
2
2
 
3
- <!-- Replace REPO_ORG and uncomment the following to show badges for CI and coverage. -->
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
- [Explain how to use your extension once it's been installed.]
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
- Your new extension version can be released using `gem-release` like this:
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.homepage %>'
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
- # TODO: Remember to change this with your extension's actual preferences!
6
- # attr_accessor :sample_preference
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
@@ -2,4 +2,4 @@ require:
2
2
  - solidus_dev_support/rubocop
3
3
 
4
4
  AllCops:
5
- NewCops: Enable
5
+ NewCops: disable
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SolidusDevSupport
4
- VERSION = "2.1.0"
4
+ VERSION = "2.2.0"
5
5
 
6
6
  def self.gem_version
7
7
  Gem::Version.new(VERSION)
@@ -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.90'
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(CommandFailed, /invalid gemspec/)
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(CommandFailed, "command failed: #{command}\n#{output}")
163
+ raise(command_failed_error, "command failed: #{command}\n#{output}")
148
164
  end
149
165
  end
150
166
 
@@ -1,33 +1,69 @@
1
1
  require 'solidus_dev_support/extension'
2
2
 
3
3
  RSpec.describe SolidusDevSupport::Extension do
4
- describe '#default_homepage' do
5
- before do
6
- expect(subject).to receive(:git).with('remote get-url origin', any_args).and_return(remote)
7
- expect(subject).to receive(:github_user).and_return('[USERNAME]')
8
- expect(subject).to receive(:file_name).and_return('solidus_foo_bar')
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
- context 'with a git ssh-style remote' do
12
- let(:remote) { 'git@github.com:solidusio-contrib/solidus_extension_dev_tools.git' }
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
- it 'generates a github home page value' do
15
- expect(subject.default_homepage).to eq('https://github.com/solidusio-contrib/solidus_extension_dev_tools')
16
- end
17
- end
16
+ gem.summary = 'This extension is awesome!'
17
+ gem.license = 'MIT'
18
18
 
19
- context 'with a git https remote' do
20
- let(:remote) { 'https://github.com/solidusio-contrib/solidus_extension_dev_tools.git' }
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
- it 'generates a github home page value' do
23
- expect(subject.default_homepage).to eq('https://github.com/solidusio-contrib/solidus_extension_dev_tools')
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
- describe '#default_gemspec' do
29
- it 'has a changelog_uri' do
30
- expect(subject.default_gemspec.metadata['changelog_uri']).to end_with('/releases')
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.1.0
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-10-02 00:00:00.000000000 Z
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.90'
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.90'
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.2
387
+ rubygems_version: 3.1.4
387
388
  signing_key:
388
389
  specification_version: 4
389
390
  summary: Development tools for Solidus extensions.