solidus_dev_support 0.4.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gem_release.yml +5 -0
- data/.gitignore +2 -1
- data/.rubocop-https---relaxed-ruby-style-rubocop-yml +3 -24
- data/CHANGELOG.md +69 -7
- data/Gemfile +4 -0
- data/README.md +50 -9
- data/lib/solidus_dev_support/extension.rb +54 -4
- data/lib/solidus_dev_support/rake_tasks.rb +15 -0
- data/lib/solidus_dev_support/rspec/rails_helper.rb +3 -1
- data/lib/solidus_dev_support/templates/extension/Gemfile +7 -0
- data/lib/solidus_dev_support/templates/extension/LICENSE +1 -1
- data/lib/solidus_dev_support/templates/extension/README.md +1 -1
- data/lib/solidus_dev_support/templates/extension/Rakefile +1 -1
- data/lib/solidus_dev_support/templates/extension/bin/rails +7 -4
- data/lib/solidus_dev_support/templates/extension/bin/rake +7 -0
- data/lib/solidus_dev_support/templates/extension/bin/sandbox.tt +72 -0
- data/lib/solidus_dev_support/templates/extension/bin/setup +1 -1
- data/lib/solidus_dev_support/templates/extension/extension.gemspec.tt +36 -0
- data/lib/solidus_dev_support/templates/extension/gem_release.yml.tt +1 -1
- data/lib/solidus_dev_support/templates/extension/lib/%file_name%.rb.tt +1 -0
- data/lib/solidus_dev_support/templates/extension/lib/%file_name%/engine.rb.tt +1 -1
- data/lib/solidus_dev_support/templates/extension/lib/%file_name%/version.rb.tt +1 -1
- data/lib/solidus_dev_support/templates/extension/lib/generators/%file_name%/install/install_generator.rb.tt +3 -3
- data/lib/solidus_dev_support/templates/extension/rspec +2 -1
- data/lib/solidus_dev_support/templates/extension/rubocop.yml +0 -12
- data/lib/solidus_dev_support/version.rb +1 -1
- metadata +6 -3
- data/lib/solidus_dev_support/templates/extension/extension.gemspec.erb +0 -37
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f56dae194c8b778da9182c440ef9e3114dd3fc85f95884199c4809eda2d902e3
|
4
|
+
data.tar.gz: e8b766266ff7d54e13f706fb0a57682cb4578f834b79ef50d89b401ae1728304
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0db6603ab2abbda31d662be42a9195031a4e6f810e16d4735942189593ac3cae15c526e962f5162a0efb2b5f4412df6f446da6379e03c9e4753fcaf6a73ad75f
|
7
|
+
data.tar.gz: ecffb2ae71fc3188152defc95d8cf0ca3a9a1a26472bc5d6195aa3593e63bdb0804e09be1fa49a9d5d042917a9302c49e968d04d2d7b11dc1679e7a823e44733
|
data/.gem_release.yml
ADDED
data/.gitignore
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# Relaxed.Ruby.Style
|
2
|
-
## Version 2.
|
2
|
+
## Version 2.5
|
3
3
|
|
4
4
|
Style/Alias:
|
5
5
|
Enabled: false
|
@@ -145,30 +145,9 @@ Lint/AssignmentInCondition:
|
|
145
145
|
Enabled: false
|
146
146
|
StyleGuide: https://relaxed.ruby.style/#lintassignmentincondition
|
147
147
|
|
148
|
-
|
148
|
+
Layout/LineLength:
|
149
149
|
Enabled: false
|
150
150
|
|
151
|
-
Metrics
|
152
|
-
Enabled: false
|
153
|
-
|
154
|
-
Metrics/ClassLength:
|
155
|
-
Enabled: false
|
156
|
-
|
157
|
-
Metrics/ModuleLength:
|
158
|
-
Enabled: false
|
159
|
-
|
160
|
-
Metrics/CyclomaticComplexity:
|
161
|
-
Enabled: false
|
162
|
-
|
163
|
-
Metrics/LineLength:
|
164
|
-
Enabled: false
|
165
|
-
|
166
|
-
Metrics/MethodLength:
|
167
|
-
Enabled: false
|
168
|
-
|
169
|
-
Metrics/ParameterLists:
|
170
|
-
Enabled: false
|
171
|
-
|
172
|
-
Metrics/PerceivedComplexity:
|
151
|
+
Metrics:
|
173
152
|
Enabled: false
|
174
153
|
|
data/CHANGELOG.md
CHANGED
@@ -5,7 +5,63 @@ All notable changes to this project will be documented in this file.
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project
|
6
6
|
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
7
7
|
|
8
|
-
## [
|
8
|
+
## [1.0.1] - 2020-02-17
|
9
|
+
|
10
|
+
### Fixed
|
11
|
+
|
12
|
+
- Fixed missing factory definitions when using `modify` on Solidus factories
|
13
|
+
|
14
|
+
## [1.0.0] - 2020-02-07
|
15
|
+
|
16
|
+
### Added
|
17
|
+
|
18
|
+
- Added a binstub for `rake` to the extension generator
|
19
|
+
- Added the ability for the generator to reuse existing data for the gemspec
|
20
|
+
|
21
|
+
### Fixed
|
22
|
+
|
23
|
+
- Fixed Dependabot throwing an error because of `eval_gemfile` in the Gemfile
|
24
|
+
|
25
|
+
## [0.6.0] - 2020-01-20
|
26
|
+
|
27
|
+
### Added
|
28
|
+
|
29
|
+
- Added support for a local Gemfile for local development dependencies (e.g. 'pry-debug')
|
30
|
+
- Added a `bin/sandbox` script to all extension for local development with `bin/rails` support.
|
31
|
+
|
32
|
+
### Changed
|
33
|
+
|
34
|
+
- The default rake task no longer re-generates the `test_app` each time it runs.
|
35
|
+
In order to get that behavior back simply call clobber before launching it:
|
36
|
+
`bin/rake clobber default`
|
37
|
+
|
38
|
+
### Fixed
|
39
|
+
|
40
|
+
- Fixed generated extensions isolating the wrong namespace
|
41
|
+
|
42
|
+
## [0.5.0] - 2020-01-16
|
43
|
+
|
44
|
+
### Added
|
45
|
+
|
46
|
+
- Added `--require spec_helper` to the generated `.rspec`
|
47
|
+
|
48
|
+
### Fixed
|
49
|
+
|
50
|
+
- Replaced "Spree" with "Solidus" in the license of generated extensions
|
51
|
+
|
52
|
+
### Changed
|
53
|
+
|
54
|
+
- Updated gem-release to use tags instead of branches for new releases
|
55
|
+
|
56
|
+
## [0.4.1] - 2020-01-15
|
57
|
+
|
58
|
+
### Fixed
|
59
|
+
|
60
|
+
- Fixed the generated RuboCop config inheriting from this gem's dev-only config
|
61
|
+
- Fixed the generated extension not requiring the `version` file
|
62
|
+
- Fixed the generator not properly marking `bin/` files as executable
|
63
|
+
|
64
|
+
## [0.4.0] - 2020-01-10
|
9
65
|
|
10
66
|
### Added
|
11
67
|
|
@@ -29,7 +85,7 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
29
85
|
- Removed the `-v` option from the `solidus` executable
|
30
86
|
- Removed the factory_bot gem from the Gemfile
|
31
87
|
|
32
|
-
## [0.3.0] -
|
88
|
+
## [0.3.0] - 2020-01-10
|
33
89
|
|
34
90
|
### Added
|
35
91
|
|
@@ -80,8 +136,14 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
80
136
|
|
81
137
|
Initial release.
|
82
138
|
|
83
|
-
[Unreleased]: https://github.com/solidusio
|
84
|
-
[0.
|
85
|
-
[0.
|
86
|
-
[0.
|
87
|
-
[0.
|
139
|
+
[Unreleased]: https://github.com/solidusio/solidus_dev_support/compare/v1.0.1...HEAD
|
140
|
+
[1.0.1]: https://github.com/solidusio/solidus_dev_support/compare/v1.0.0...v1.0.1
|
141
|
+
[1.0.0]: https://github.com/solidusio/solidus_dev_support/compare/v0.6.0...v1.0.0
|
142
|
+
[0.6.0]: https://github.com/solidusio/solidus_dev_support/compare/v0.5.0...v0.6.0
|
143
|
+
[0.5.0]: https://github.com/solidusio/solidus_dev_support/compare/v0.4.1...v0.5.0
|
144
|
+
[0.4.1]: https://github.com/solidusio/solidus_dev_support/compare/v0.4.0...v0.4.1
|
145
|
+
[0.4.0]: https://github.com/solidusio/solidus_dev_support/compare/v0.3.0...v0.4.0
|
146
|
+
[0.3.0]: https://github.com/solidusio/solidus_dev_support/compare/v0.2.0...v0.3.0
|
147
|
+
[0.2.0]: https://github.com/solidusio/solidus_dev_support/compare/v0.1.1...v0.2.0
|
148
|
+
[0.1.1]: https://github.com/solidusio/solidus_dev_support/compare/v0.1.0...v0.1.1
|
149
|
+
[0.1.0]: https://github.com/solidusio/solidus_dev_support/releases/tag/v0.1.0
|
data/Gemfile
CHANGED
@@ -21,3 +21,7 @@ group :test do
|
|
21
21
|
gem 'pg'
|
22
22
|
gem 'sqlite3'
|
23
23
|
end
|
24
|
+
|
25
|
+
# Use a local Gemfile to include development dependencies that might not be
|
26
|
+
# relevant for the project or for other contributors, e.g.: `gem 'pry-debug'`.
|
27
|
+
eval_gemfile 'Gemfile-local' if File.exist? 'Gemfile-local'
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# solidus_dev_support
|
2
2
|
|
3
|
-
[![CircleCI](https://circleci.com/gh/solidusio
|
3
|
+
[![CircleCI](https://circleci.com/gh/solidusio/solidus_dev_support.svg?style=svg)](https://circleci.com/gh/solidusio/solidus_dev_support)
|
4
4
|
|
5
5
|
This gem contains common development functionality for Solidus extensions.
|
6
6
|
|
@@ -34,6 +34,42 @@ $ solidus extension my_awesome_extension
|
|
34
34
|
This will generate the basic extension structure, already configured to use all the shiny helpers
|
35
35
|
in solidus_dev_support.
|
36
36
|
|
37
|
+
#### Updating existing extensions
|
38
|
+
|
39
|
+
If you have an existing extension and want to update it to use the latest standards from this gem,
|
40
|
+
you can run the following in the extension's directory:
|
41
|
+
|
42
|
+
```console
|
43
|
+
$ solidus extension .
|
44
|
+
```
|
45
|
+
|
46
|
+
In case of conflicting files, you will be prompted for an action. You can overwrite the files with
|
47
|
+
the new version, keep the current version or view the diff and only apply the adjustments that make
|
48
|
+
sense to you.
|
49
|
+
|
50
|
+
### Sandbox app
|
51
|
+
|
52
|
+
When developing an extension you will surely need to try it out within a Rails app with Solidus
|
53
|
+
installed. Using solidus_dev_support your extension will have a `bin/rails` executable that will
|
54
|
+
operate on a _sandbox_ app (creating it if necessary).
|
55
|
+
|
56
|
+
The path for the sandbox app is `./sandbox` and `bin/rails` will forward any Rails command
|
57
|
+
to `sandbox/bin/rails`.
|
58
|
+
|
59
|
+
Example:
|
60
|
+
|
61
|
+
```bash
|
62
|
+
$ bin/rails server
|
63
|
+
=> Booting Puma
|
64
|
+
=> Rails 6.0.2.1 application starting in development
|
65
|
+
* Listening on tcp://127.0.0.1:3000
|
66
|
+
Use Ctrl-C to stop
|
67
|
+
```
|
68
|
+
|
69
|
+
#### Rebuilding the sandbox app
|
70
|
+
|
71
|
+
To rebuild the sandbox app just remove the `./sandbox` folder or run `bin/sandbox`.
|
72
|
+
|
37
73
|
### RSpec helpers
|
38
74
|
|
39
75
|
This gem provides some useful helpers for RSpec to setup an extension's test environment easily.
|
@@ -123,15 +159,16 @@ releases for your gem.
|
|
123
159
|
For instance, you can run the following to release a new minor version:
|
124
160
|
|
125
161
|
```console
|
126
|
-
$ gem bump
|
162
|
+
$ gem bump -v minor -r
|
127
163
|
```
|
128
164
|
|
129
165
|
The above command will:
|
130
166
|
|
131
|
-
* bump the gem version to the next minor
|
132
|
-
|
167
|
+
* bump the gem version to the next minor (you can also use `patch`, `major` or a specific version
|
168
|
+
number);
|
169
|
+
* commit the change and push it to `origin/master`;
|
133
170
|
* create a Git tag;
|
134
|
-
* push the tag to the `
|
171
|
+
* push the tag to the `origin` remote;
|
135
172
|
* release the new version on RubyGems.
|
136
173
|
|
137
174
|
You can refer to
|
@@ -146,7 +183,7 @@ To install extension-related Rake tasks, add this to your `Rakefile`:
|
|
146
183
|
require 'solidus_dev_support/rake_tasks'
|
147
184
|
SolidusDevSupport::RakeTasks.install
|
148
185
|
|
149
|
-
task default:
|
186
|
+
task default: 'extension:specs'
|
150
187
|
```
|
151
188
|
|
152
189
|
(If your extension used the legacy extension Rakefile, then you should completely replace its
|
@@ -157,7 +194,11 @@ This will provide the following tasks:
|
|
157
194
|
- `extension:test_app`, which generates a dummy app for your extension
|
158
195
|
- `extension:specs` (default), which runs the specs for your extension
|
159
196
|
|
160
|
-
|
197
|
+
If your extension requires the `test_app` to be always recreated you can do so by running:
|
198
|
+
|
199
|
+
```rb
|
200
|
+
bin/rake extension:test_app extension:specs
|
201
|
+
```
|
161
202
|
|
162
203
|
## Development
|
163
204
|
|
@@ -165,8 +206,8 @@ After checking out the repo, run `bin/setup` to install dependencies. Then, run
|
|
165
206
|
the tests. You can also run `bin/console` for an interactive prompt that will allow you to
|
166
207
|
experiment.
|
167
208
|
|
168
|
-
To install this gem onto your local machine, run `
|
169
|
-
version, update the version number in `version.rb`, and then run `
|
209
|
+
To install this gem onto your local machine, run `bin/rake install`. To release a new
|
210
|
+
version, update the version number in `version.rb`, and then run `bin/rake release`, which
|
170
211
|
will create a git tag for the version, push git commits and tags, and push the `.gem` file to
|
171
212
|
[rubygems.org](https://rubygems.org).
|
172
213
|
|
@@ -22,11 +22,11 @@ module SolidusDevSupport
|
|
22
22
|
directory '.circleci', "#{path}/.circleci"
|
23
23
|
directory '.github', "#{path}/.github"
|
24
24
|
|
25
|
-
Dir["#{
|
26
|
-
make_executable
|
25
|
+
Dir["#{path}/bin/*"].each do |bin|
|
26
|
+
make_executable bin
|
27
27
|
end
|
28
28
|
|
29
|
-
template 'extension.gemspec
|
29
|
+
template 'extension.gemspec', "#{path}/#{file_name}.gemspec"
|
30
30
|
template 'Gemfile', "#{path}/Gemfile"
|
31
31
|
template 'gitignore', "#{path}/.gitignore"
|
32
32
|
template 'gem_release.yml.tt', "#{path}/.gem_release.yml"
|
@@ -51,6 +51,56 @@ module SolidusDevSupport
|
|
51
51
|
|
52
52
|
@root = File.dirname(path)
|
53
53
|
@path = File.join(@root, @file_name)
|
54
|
+
|
55
|
+
@gemspec = existing_gemspec || default_gemspec
|
56
|
+
end
|
57
|
+
|
58
|
+
def gemspec_path
|
59
|
+
@gemspec_path ||= File.join(path, "#{file_name}.gemspec")
|
60
|
+
end
|
61
|
+
|
62
|
+
def default_gemspec
|
63
|
+
@default_gemspec ||= Gem::Specification.new(@file_name, '0.0.1') do |gem|
|
64
|
+
gem.author = git('config user.name', 'TODO: Write your name')
|
65
|
+
gem.description = 'TODO: Write a longer description or delete this line.'
|
66
|
+
gem.email = git('config user.email', 'TODO: Write your email address')
|
67
|
+
gem.homepage = default_homepage
|
68
|
+
gem.license = 'BSD-3-Clause'
|
69
|
+
gem.metadata['changelog_uri'] = default_homepage + '/releases'
|
70
|
+
gem.summary = 'TODO: Write a short summary, because RubyGems requires one.'
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
def existing_gemspec
|
75
|
+
return unless File.exist?(gemspec_path)
|
76
|
+
|
77
|
+
@existing_gemspec ||= Gem::Specification.load(gemspec_path).tap do |spec|
|
78
|
+
spec.author ||= default_gemspec.author
|
79
|
+
spec.email ||= default_gemspec.email
|
80
|
+
spec.homepage ||= default_gemspec.homepage
|
81
|
+
spec.license ||= default_gemspec.license
|
82
|
+
spec.metadata['changelog_uri'] ||= default_gemspec.metadata[:changelog_uri]
|
83
|
+
spec.summary ||= default_gemspec.summary
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
def default_homepage
|
88
|
+
@default_homepage ||= git(
|
89
|
+
'remote get-url origin',
|
90
|
+
"git@github.com:#{github_user}/#{file_name}.git"
|
91
|
+
).sub(
|
92
|
+
%r{^.*github\.com.([^/]+)/([^/\.]+).*$},
|
93
|
+
'https://github.com/\1/\2'
|
94
|
+
)
|
95
|
+
end
|
96
|
+
|
97
|
+
def github_user
|
98
|
+
@github_user ||= git('config github.user', '[USERNAME]')
|
99
|
+
end
|
100
|
+
|
101
|
+
def git(command, default)
|
102
|
+
result = `git #{command} 2> /dev/null`.strip
|
103
|
+
result.empty? ? default : result
|
54
104
|
end
|
55
105
|
|
56
106
|
def make_executable(path)
|
@@ -59,7 +109,7 @@ module SolidusDevSupport
|
|
59
109
|
path.chmod(executable)
|
60
110
|
end
|
61
111
|
|
62
|
-
attr_reader :root, :path, :file_name, :class_name
|
112
|
+
attr_reader :root, :path, :file_name, :class_name, :gemspec
|
63
113
|
end
|
64
114
|
|
65
115
|
def self.source_root
|
@@ -21,6 +21,7 @@ module SolidusDevSupport
|
|
21
21
|
|
22
22
|
def install
|
23
23
|
install_test_app_task
|
24
|
+
install_dev_app_task
|
24
25
|
install_rspec_task
|
25
26
|
end
|
26
27
|
|
@@ -34,10 +35,24 @@ module SolidusDevSupport
|
|
34
35
|
::CLOBBER.include test_app_path
|
35
36
|
|
36
37
|
namespace :extension do
|
38
|
+
# We need to go back to the gem root since the upstream
|
39
|
+
# extension:test_app changes the working directory to be the dummy app.
|
37
40
|
task :test_app do
|
38
41
|
Rake::Task['extension:test_app'].invoke
|
39
42
|
cd root
|
40
43
|
end
|
44
|
+
|
45
|
+
directory ENV['DUMMY_PATH'] do
|
46
|
+
Rake::Task['extension:test_app'].invoke
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def install_dev_app_task
|
52
|
+
desc "Creates a sandbox application for simulating the Extension code in a deployed Rails app"
|
53
|
+
task :sandbox do
|
54
|
+
warn "DEPRECATED TASK: This task is here just for parity with solidus, please use bin/sandbox directly."
|
55
|
+
exec("bin/sandbox", gemspec.name)
|
41
56
|
end
|
42
57
|
end
|
43
58
|
|
@@ -12,7 +12,7 @@ require 'solidus_dev_support'
|
|
12
12
|
|
13
13
|
require 'rspec/rails'
|
14
14
|
require 'database_cleaner'
|
15
|
-
require '
|
15
|
+
require 'factory_bot'
|
16
16
|
require 'ffaker'
|
17
17
|
|
18
18
|
require 'spree/testing_support/authorization_helpers'
|
@@ -22,6 +22,8 @@ require 'spree/testing_support/preferences'
|
|
22
22
|
require 'spree/testing_support/controller_requests'
|
23
23
|
require 'solidus_dev_support/testing_support/preferences'
|
24
24
|
|
25
|
+
FactoryBot.find_definitions
|
26
|
+
|
25
27
|
RSpec.configure do |config|
|
26
28
|
config.infer_spec_type_from_file_location!
|
27
29
|
|
@@ -24,3 +24,10 @@ else
|
|
24
24
|
end
|
25
25
|
|
26
26
|
gemspec
|
27
|
+
|
28
|
+
# Use a local Gemfile to include development dependencies that might not be
|
29
|
+
# relevant for the project or for other contributors, e.g. pry-byebug.
|
30
|
+
#
|
31
|
+
# We use `send` instead of calling `eval_gemfile` to work around an issue with
|
32
|
+
# how Dependabot parses projects: https://github.com/dependabot/dependabot-core/issues/1658.
|
33
|
+
send(:eval_gemfile, 'Gemfile-local') if File.exist? 'Gemfile-local'
|
@@ -9,7 +9,7 @@ are permitted provided that the following conditions are met:
|
|
9
9
|
* Redistributions in binary form must reproduce the above copyright notice,
|
10
10
|
this list of conditions and the following disclaimer in the documentation
|
11
11
|
and/or other materials provided with the distribution.
|
12
|
-
* Neither the name
|
12
|
+
* Neither the name Solidus nor the names of its contributors may be used to
|
13
13
|
endorse or promote products derived from this software without specific
|
14
14
|
prior written permission.
|
15
15
|
|
@@ -2,12 +2,15 @@
|
|
2
2
|
|
3
3
|
# frozen_string_literal: true
|
4
4
|
|
5
|
-
app_root = '
|
5
|
+
app_root = 'sandbox'
|
6
6
|
|
7
7
|
unless File.exist? "#{app_root}/bin/rails"
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
warn 'Creating the sandbox app...'
|
9
|
+
Dir.chdir "#{__dir__}/.." do
|
10
|
+
system "#{__dir__}/sandbox" or begin # rubocop:disable Style/AndOr
|
11
|
+
warn 'Automatic creation of the sandbox app failed'
|
12
|
+
exit 1
|
13
|
+
end
|
11
14
|
end
|
12
15
|
end
|
13
16
|
|
@@ -0,0 +1,72 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
set -e
|
4
|
+
|
5
|
+
case "$DB" in
|
6
|
+
postgres|postgresql)
|
7
|
+
RAILSDB="postgresql"
|
8
|
+
;;
|
9
|
+
mysql)
|
10
|
+
RAILSDB="mysql"
|
11
|
+
;;
|
12
|
+
sqlite|'')
|
13
|
+
RAILSDB="sqlite3"
|
14
|
+
;;
|
15
|
+
*)
|
16
|
+
echo "Invalid DB specified: $DB"
|
17
|
+
exit 1
|
18
|
+
;;
|
19
|
+
esac
|
20
|
+
|
21
|
+
extension_name="<%= file_name %>"
|
22
|
+
|
23
|
+
# Stay away from the bundler env of the containing extension.
|
24
|
+
function unbundled {
|
25
|
+
ruby -rbundler -e'b = proc {system *ARGV}; Bundler.respond_to?(:with_unbundled_env) ? Bundler.with_unbundled_env(&b) : Bundler.with_clean_env(&b)' -- $@
|
26
|
+
}
|
27
|
+
|
28
|
+
rm -rf ./sandbox
|
29
|
+
unbundled bundle exec rails new sandbox --database="$RAILSDB" \
|
30
|
+
--skip-bundle \
|
31
|
+
--skip-git \
|
32
|
+
--skip-keeps \
|
33
|
+
--skip-rc \
|
34
|
+
--skip-spring \
|
35
|
+
--skip-test \
|
36
|
+
--skip-javascript
|
37
|
+
|
38
|
+
if [ ! -d "sandbox" ]; then
|
39
|
+
echo 'sandbox rails application failed'
|
40
|
+
exit 1
|
41
|
+
fi
|
42
|
+
|
43
|
+
cd ./sandbox
|
44
|
+
cat <<RUBY >> Gemfile
|
45
|
+
|
46
|
+
gem '$extension_name', path: '..'
|
47
|
+
gem 'solidus_auth_devise', '>= 2.1.0'
|
48
|
+
gem 'rails-i18n'
|
49
|
+
gem 'solidus_i18n'
|
50
|
+
|
51
|
+
group :test, :development do
|
52
|
+
platforms :mri do
|
53
|
+
gem 'pry-byebug'
|
54
|
+
end
|
55
|
+
end
|
56
|
+
RUBY
|
57
|
+
|
58
|
+
unbundled bundle install --gemfile Gemfile
|
59
|
+
|
60
|
+
unbundled bundle exec rake db:drop db:create
|
61
|
+
|
62
|
+
unbundled bundle exec rails generate spree:install \
|
63
|
+
--auto-accept \
|
64
|
+
--user_class=Spree::User \
|
65
|
+
--enforce_available_locales=true \
|
66
|
+
$@
|
67
|
+
|
68
|
+
unbundled bundle exec rails generate solidus:auth:install
|
69
|
+
|
70
|
+
echo
|
71
|
+
echo "🚀 Sandbox app successfully created for $extension_name!"
|
72
|
+
echo "🚀 This app is intended for test purposes."
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'lib/<%= file_name %>/version'
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = '<%= file_name %>'
|
7
|
+
spec.version = <%= class_name %>::VERSION
|
8
|
+
spec.authors = <%= gemspec.authors.inspect.gsub('"', "'") %>
|
9
|
+
spec.email = '<%= gemspec.email %>'
|
10
|
+
|
11
|
+
spec.summary = '<%= gemspec.summary %>'
|
12
|
+
spec.description = '<%= gemspec.description %>'
|
13
|
+
spec.homepage = '<%= gemspec.homepage %>'
|
14
|
+
spec.license = '<%= gemspec.license %>'
|
15
|
+
|
16
|
+
spec.metadata['homepage_uri'] = spec.homepage
|
17
|
+
spec.metadata['source_code_uri'] = '<%= gemspec.homepage %>'
|
18
|
+
spec.metadata['changelog_uri'] = '<%= gemspec.metadata["changelog_uri"] %>'
|
19
|
+
|
20
|
+
spec.required_ruby_version = Gem::Requirement.new('~> 2.4')
|
21
|
+
|
22
|
+
# Specify which files should be added to the gem when it is released.
|
23
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
24
|
+
files = Dir.chdir(__dir__) { `git ls-files -z`.split("\x0") }
|
25
|
+
|
26
|
+
spec.files = files.grep_v(%r{^(test|spec|features)/})
|
27
|
+
spec.test_files = files.grep(%r{^(test|spec|features)/})
|
28
|
+
spec.bindir = "exe"
|
29
|
+
spec.executables = files.grep(%r{^exe/}) { |f| File.basename(f) }
|
30
|
+
spec.require_paths = ["lib"]
|
31
|
+
|
32
|
+
spec.add_dependency 'solidus_core', ['>= 2.0.0', '< 3']
|
33
|
+
spec.add_dependency 'solidus_support', '~> 0.4.0'
|
34
|
+
|
35
|
+
spec.add_development_dependency 'solidus_dev_support'
|
36
|
+
end
|
@@ -16,15 +16,15 @@ module <%= class_name %>
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def add_migrations
|
19
|
-
run '
|
19
|
+
run 'bin/rails railties:install:migrations FROM=<%= file_name %>'
|
20
20
|
end
|
21
21
|
|
22
22
|
def run_migrations
|
23
23
|
run_migrations = options[:auto_run_migrations] || ['', 'y', 'Y'].include?(ask('Would you like to run the migrations now? [Y/n]'))
|
24
24
|
if run_migrations
|
25
|
-
run '
|
25
|
+
run 'bin/rails db:migrate'
|
26
26
|
else
|
27
|
-
puts 'Skipping
|
27
|
+
puts 'Skipping bin/rails db:migrate, don\'t forget to run it!' # rubocop:disable Rails/Output
|
28
28
|
end
|
29
29
|
end
|
30
30
|
end
|
@@ -1 +1,2 @@
|
|
1
|
-
--color
|
1
|
+
--color
|
2
|
+
--require spec_helper
|
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: 0.
|
4
|
+
version: 1.0.1
|
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-02-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: apparition
|
@@ -291,6 +291,7 @@ extensions: []
|
|
291
291
|
extra_rdoc_files: []
|
292
292
|
files:
|
293
293
|
- ".circleci/config.yml"
|
294
|
+
- ".gem_release.yml"
|
294
295
|
- ".github/PULL_REQUEST_TEMPLATE.md"
|
295
296
|
- ".github/stale.yml"
|
296
297
|
- ".gitignore"
|
@@ -330,10 +331,12 @@ files:
|
|
330
331
|
- lib/solidus_dev_support/templates/extension/app/assets/stylesheets/spree/frontend/%file_name%.css
|
331
332
|
- lib/solidus_dev_support/templates/extension/bin/console.tt
|
332
333
|
- lib/solidus_dev_support/templates/extension/bin/rails
|
334
|
+
- lib/solidus_dev_support/templates/extension/bin/rake
|
335
|
+
- lib/solidus_dev_support/templates/extension/bin/sandbox.tt
|
333
336
|
- lib/solidus_dev_support/templates/extension/bin/setup
|
334
337
|
- lib/solidus_dev_support/templates/extension/config/locales/en.yml
|
335
338
|
- lib/solidus_dev_support/templates/extension/config/routes.rb
|
336
|
-
- lib/solidus_dev_support/templates/extension/extension.gemspec.
|
339
|
+
- lib/solidus_dev_support/templates/extension/extension.gemspec.tt
|
337
340
|
- lib/solidus_dev_support/templates/extension/gem_release.yml.tt
|
338
341
|
- lib/solidus_dev_support/templates/extension/gitignore
|
339
342
|
- lib/solidus_dev_support/templates/extension/lib/%file_name%.rb.tt
|
@@ -1,37 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
$:.push File.expand_path('lib', __dir__)
|
4
|
-
require '<%= file_name %>/version'
|
5
|
-
|
6
|
-
Gem::Specification.new do |s|
|
7
|
-
s.name = '<%= file_name %>'
|
8
|
-
s.version = <%= class_name %>::VERSION
|
9
|
-
s.summary = 'TODO'
|
10
|
-
s.description = 'TODO'
|
11
|
-
s.license = 'BSD-3-Clause'
|
12
|
-
|
13
|
-
# s.author = 'You'
|
14
|
-
# s.email = 'you@example.com'
|
15
|
-
# s.homepage = 'http://www.example.com'
|
16
|
-
|
17
|
-
if s.respond_to?(:metadata)
|
18
|
-
s.metadata["homepage_uri"] = s.homepage if s.homepage
|
19
|
-
s.metadata["source_code_uri"] = s.homepage if s.homepage
|
20
|
-
s.metadata["changelog_uri"] = 'TODO'
|
21
|
-
end
|
22
|
-
|
23
|
-
s.required_ruby_version = '~> 2.4'
|
24
|
-
|
25
|
-
s.files = Dir.chdir(File.expand_path(__dir__)) do
|
26
|
-
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
27
|
-
end
|
28
|
-
s.test_files = Dir['spec/**/*']
|
29
|
-
s.bindir = "exe"
|
30
|
-
s.executables = s.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
31
|
-
s.require_paths = ["lib"]
|
32
|
-
|
33
|
-
s.add_dependency 'solidus_core', ['>= 2.0.0', '< 3']
|
34
|
-
s.add_dependency 'solidus_support', '~> 0.4.0'
|
35
|
-
|
36
|
-
s.add_development_dependency 'solidus_dev_support'
|
37
|
-
end
|