solidus_dev_support 0.4.0 → 1.0.1
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/.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
|
-
[](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
|