rails_app_generator 0.0.4 → 0.0.5
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/CHANGELOG.md +7 -0
- data/README.md +0 -1
- data/lib/rails_app_generator/app_generator.rb +15 -0
- data/lib/rails_app_generator/notes/a1.txt +86 -0
- data/lib/rails_app_generator/notes/a2.txt +86 -0
- data/lib/rails_app_generator/options/rails_options.rb +3 -0
- data/lib/rails_app_generator/starter.rb +35 -28
- data/lib/rails_app_generator/version.rb +1 -1
- data/package-lock.json +2 -2
- data/package.json +1 -1
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: af4adc7a1c56e1146ad7c09a5de8e937a9dcf9c6dbe9c44b5792e498c5432050
|
4
|
+
data.tar.gz: bfb7e1727d74d4090ad8ee9f5bad62091abfce6631e22164483527ae9cafa486
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c3e0485f02a267715227db3fd75c9e7b8f02d031661e40d3880edcc07a95f1351f7b94c5456456407d623b0ed3b2d8457e689a4f94cb6d9b5fc57f1ab0d11e68
|
7
|
+
data.tar.gz: 7f7ec8819fb75ba55e0b4e20f5532382e8bca334ea6ee895e2eb73001b34423538ff8876c1e54370c394bc9cac4a2b45e909954cfb9e3d5292092f187619dfcb
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
## [0.0.4](https://github.com/klueless-io/rails_app_generator/compare/v0.0.3...v0.0.4) (2022-07-19)
|
2
|
+
|
3
|
+
|
4
|
+
### Bug Fixes
|
5
|
+
|
6
|
+
* add map string options ([50a22ba](https://github.com/klueless-io/rails_app_generator/commit/50a22ba1bdefc7726e687d072009d73bbfd21b83))
|
7
|
+
|
1
8
|
## [0.0.3](https://github.com/klueless-io/rails_app_generator/compare/v0.0.2...v0.0.3) (2022-07-19)
|
2
9
|
|
3
10
|
|
data/README.md
CHANGED
@@ -5,10 +5,14 @@
|
|
5
5
|
module RailsAppGenerator
|
6
6
|
# AppGenerator is a wrapper for Rails::AppGenerator
|
7
7
|
class AppGenerator < Rails::Generators::AppGenerator
|
8
|
+
class_option :test, type: :string, default: 'rspec'
|
9
|
+
|
8
10
|
def initialize(*args)
|
9
11
|
super
|
10
12
|
|
13
|
+
puts '----------------------------------------------------'
|
11
14
|
puts options
|
15
|
+
puts '----------------------------------------------------'
|
12
16
|
|
13
17
|
# return unless options[:api]
|
14
18
|
|
@@ -30,6 +34,17 @@ module RailsAppGenerator
|
|
30
34
|
# add(:rspec) if options[:testing_framework] == 'rspec'
|
31
35
|
end
|
32
36
|
|
37
|
+
# def create_root_files
|
38
|
+
# super
|
39
|
+
|
40
|
+
# # add(:irbrc)
|
41
|
+
# # add(:foreman)
|
42
|
+
# # add(:dotenv)
|
43
|
+
# # add(:docker)
|
44
|
+
# # add(:docker_compose)
|
45
|
+
# # add(:rubocop)
|
46
|
+
# end
|
47
|
+
|
33
48
|
# include KLog::Logging
|
34
49
|
|
35
50
|
# def finish_template
|
@@ -0,0 +1,86 @@
|
|
1
|
+
create
|
2
|
+
create README.md
|
3
|
+
create Rakefile
|
4
|
+
create .ruby-version
|
5
|
+
create config.ru
|
6
|
+
create Gemfile
|
7
|
+
create app
|
8
|
+
create app/assets/config/manifest.js
|
9
|
+
create app/assets/stylesheets/application.css
|
10
|
+
create app/channels/application_cable/channel.rb
|
11
|
+
create app/channels/application_cable/connection.rb
|
12
|
+
create app/controllers/application_controller.rb
|
13
|
+
create app/helpers/application_helper.rb
|
14
|
+
create app/jobs/application_job.rb
|
15
|
+
create app/mailers/application_mailer.rb
|
16
|
+
create app/models/application_record.rb
|
17
|
+
create app/views/layouts/application.html.erb
|
18
|
+
create app/views/layouts/mailer.html.erb
|
19
|
+
create app/views/layouts/mailer.text.erb
|
20
|
+
create app/assets/images
|
21
|
+
create app/assets/images/.keep
|
22
|
+
create app/controllers/concerns/.keep
|
23
|
+
create app/models/concerns/.keep
|
24
|
+
create bin
|
25
|
+
create bin/rails
|
26
|
+
create bin/rake
|
27
|
+
create bin/setup
|
28
|
+
create config
|
29
|
+
create config/routes.rb
|
30
|
+
create config/application.rb
|
31
|
+
create config/environment.rb
|
32
|
+
create config/cable.yml
|
33
|
+
create config/puma.rb
|
34
|
+
create config/storage.yml
|
35
|
+
create config/environments
|
36
|
+
create config/environments/development.rb
|
37
|
+
create config/environments/production.rb
|
38
|
+
create config/environments/test.rb
|
39
|
+
create config/initializers
|
40
|
+
create config/initializers/assets.rb
|
41
|
+
create config/initializers/content_security_policy.rb
|
42
|
+
create config/initializers/cors.rb
|
43
|
+
create config/initializers/filter_parameter_logging.rb
|
44
|
+
create config/initializers/inflections.rb
|
45
|
+
create config/initializers/new_framework_defaults_7_0.rb
|
46
|
+
create config/initializers/permissions_policy.rb
|
47
|
+
create config/locales
|
48
|
+
create config/locales/en.yml
|
49
|
+
create config/master.key
|
50
|
+
create config/boot.rb
|
51
|
+
create config/database.yml
|
52
|
+
create db
|
53
|
+
create db/seeds.rb
|
54
|
+
create lib
|
55
|
+
create lib/tasks
|
56
|
+
create lib/tasks/.keep
|
57
|
+
create lib/assets
|
58
|
+
create lib/assets/.keep
|
59
|
+
create log
|
60
|
+
create log/.keep
|
61
|
+
create public
|
62
|
+
create public/404.html
|
63
|
+
create public/422.html
|
64
|
+
create public/500.html
|
65
|
+
create public/apple-touch-icon-precomposed.png
|
66
|
+
create public/apple-touch-icon.png
|
67
|
+
create public/favicon.ico
|
68
|
+
create public/robots.txt
|
69
|
+
create tmp
|
70
|
+
create tmp/.keep
|
71
|
+
create tmp/pids
|
72
|
+
create tmp/pids/.keep
|
73
|
+
create tmp/cache
|
74
|
+
create tmp/cache/assets
|
75
|
+
create vendor
|
76
|
+
create vendor/.keep
|
77
|
+
create test/system
|
78
|
+
create test/system/.keep
|
79
|
+
create test/application_system_test_case.rb
|
80
|
+
create storage
|
81
|
+
create storage/.keep
|
82
|
+
create tmp/storage
|
83
|
+
create tmp/storage/.keep
|
84
|
+
remove config/initializers/cors.rb
|
85
|
+
remove config/initializers/new_framework_defaults_7_0.rb
|
86
|
+
example at ./spec/lib/rails_app_generator/starter_spec.rb:110
|
@@ -0,0 +1,86 @@
|
|
1
|
+
create
|
2
|
+
create README.md
|
3
|
+
create Rakefile
|
4
|
+
create .ruby-version
|
5
|
+
create config.ru
|
6
|
+
create Gemfile
|
7
|
+
create app
|
8
|
+
create app/assets/config/manifest.js
|
9
|
+
create app/assets/stylesheets/application.css
|
10
|
+
create app/channels/application_cable/channel.rb
|
11
|
+
create app/channels/application_cable/connection.rb
|
12
|
+
create app/controllers/application_controller.rb
|
13
|
+
create app/helpers/application_helper.rb
|
14
|
+
create app/jobs/application_job.rb
|
15
|
+
create app/mailers/application_mailer.rb
|
16
|
+
create app/models/application_record.rb
|
17
|
+
create app/views/layouts/application.html.erb
|
18
|
+
create app/views/layouts/mailer.html.erb
|
19
|
+
create app/views/layouts/mailer.text.erb
|
20
|
+
create app/assets/images
|
21
|
+
create app/assets/images/.keep
|
22
|
+
create app/controllers/concerns/.keep
|
23
|
+
create app/models/concerns/.keep
|
24
|
+
create bin
|
25
|
+
create bin/rails
|
26
|
+
create bin/rake
|
27
|
+
create bin/setup
|
28
|
+
create config
|
29
|
+
create config/routes.rb
|
30
|
+
create config/application.rb
|
31
|
+
create config/environment.rb
|
32
|
+
create config/cable.yml
|
33
|
+
create config/puma.rb
|
34
|
+
create config/storage.yml
|
35
|
+
create config/environments
|
36
|
+
create config/environments/development.rb
|
37
|
+
create config/environments/production.rb
|
38
|
+
create config/environments/test.rb
|
39
|
+
create config/initializers
|
40
|
+
create config/initializers/assets.rb
|
41
|
+
create config/initializers/content_security_policy.rb
|
42
|
+
create config/initializers/cors.rb
|
43
|
+
create config/initializers/filter_parameter_logging.rb
|
44
|
+
create config/initializers/inflections.rb
|
45
|
+
create config/initializers/new_framework_defaults_7_0.rb
|
46
|
+
create config/initializers/permissions_policy.rb
|
47
|
+
create config/locales
|
48
|
+
create config/locales/en.yml
|
49
|
+
create config/master.key
|
50
|
+
create config/boot.rb
|
51
|
+
create config/database.yml
|
52
|
+
create db
|
53
|
+
create db/seeds.rb
|
54
|
+
create lib
|
55
|
+
create lib/tasks
|
56
|
+
create lib/tasks/.keep
|
57
|
+
create lib/assets
|
58
|
+
create lib/assets/.keep
|
59
|
+
create log
|
60
|
+
create log/.keep
|
61
|
+
create public
|
62
|
+
create public/404.html
|
63
|
+
create public/422.html
|
64
|
+
create public/500.html
|
65
|
+
create public/apple-touch-icon-precomposed.png
|
66
|
+
create public/apple-touch-icon.png
|
67
|
+
create public/favicon.ico
|
68
|
+
create public/robots.txt
|
69
|
+
create tmp
|
70
|
+
create tmp/.keep
|
71
|
+
create tmp/pids
|
72
|
+
create tmp/pids/.keep
|
73
|
+
create tmp/cache
|
74
|
+
create tmp/cache/assets
|
75
|
+
create vendor
|
76
|
+
create vendor/.keep
|
77
|
+
create test/system
|
78
|
+
create test/system/.keep
|
79
|
+
create test/application_system_test_case.rb
|
80
|
+
create storage
|
81
|
+
create storage/.keep
|
82
|
+
create tmp/storage
|
83
|
+
create tmp/storage/.keep
|
84
|
+
remove config/initializers/cors.rb
|
85
|
+
remove config/initializers/new_framework_defaults_7_0.rb
|
86
|
+
example at ./spec/lib/rails_app_generator/starter_spec.rb:110
|
@@ -2,6 +2,9 @@
|
|
2
2
|
|
3
3
|
module RailsAppGenerator
|
4
4
|
class RailsOptions < OptionsBuilder
|
5
|
+
# NOTE: Currently you need to register new options in two places
|
6
|
+
# here and in lib/rails_app_generator/app_generator.rb
|
7
|
+
|
5
8
|
future_option :template , type: :string # , desc: "Path to some #{name} template (can be a filesystem path or URL)"
|
6
9
|
future_option :database , type: :string , default: 'sqlite3' # , desc: "Preconfigure for selected database (options: #{DATABASES.join('/')})"
|
7
10
|
register_option :skip_git , type: :boolean, default: false # , desc: "Skip .gitignore file"
|
@@ -31,6 +31,7 @@ module RailsAppGenerator
|
|
31
31
|
attr_reader :destination_root
|
32
32
|
attr_reader :rails_template_path
|
33
33
|
attr_reader :custom_template_path
|
34
|
+
attr_reader :console_output
|
34
35
|
|
35
36
|
def initialize(**args)
|
36
37
|
@app_path = args[:app_path] || '.'
|
@@ -43,42 +44,48 @@ module RailsAppGenerator
|
|
43
44
|
File.expand_path(File.join(destination_root, app_path))
|
44
45
|
end
|
45
46
|
|
46
|
-
def start(
|
47
|
+
def start(options = [])
|
47
48
|
puts "Target path: #{target_path}"
|
48
49
|
|
49
50
|
RailsAppGenerator::AppGenerator.source_root(rails_template_path)
|
50
51
|
RailsAppGenerator::AppGenerator.source_paths << rails_template_path
|
51
52
|
RailsAppGenerator::AppGenerator.source_paths << custom_template_path
|
52
53
|
|
53
|
-
|
54
|
-
# '--skip-namespace',
|
55
|
-
# '--skip-collision-check',
|
56
|
-
# '--skip-git',
|
57
|
-
# '--skip-keeps',
|
58
|
-
# '--skip-action-mailer',
|
59
|
-
# '--skip-action-mailbox',
|
60
|
-
# '--skip-action-text',
|
61
|
-
# '--skip-active-record',
|
62
|
-
# '--skip-active-job',
|
63
|
-
# '--skip-active-storage',
|
64
|
-
# '--skip-action-cable',
|
65
|
-
# '--skip-asset-pipeline',
|
66
|
-
# '--skip-javascript',
|
67
|
-
# '--skip-hotwire',
|
68
|
-
# '--skip-jbuilder',
|
69
|
-
# '--skip-test',
|
70
|
-
# '--skip-system-test',
|
71
|
-
# '--skip-bootsnap',
|
72
|
-
# '--skip-bundle'
|
73
|
-
# ]
|
54
|
+
opts = extract_rails_options(app_path, options)
|
74
55
|
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
56
|
+
@console_output = capture_console do
|
57
|
+
RailsAppGenerator::AppGenerator.start(opts, destination_root: destination_root)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
private
|
62
|
+
|
63
|
+
def capture_console
|
64
|
+
$stdout = StringIO.new
|
65
|
+
yield
|
66
|
+
output = $stdout.string
|
67
|
+
$stdout.close
|
68
|
+
output
|
69
|
+
ensure
|
70
|
+
$stdout = STDOUT
|
71
|
+
$stdout.puts output
|
72
|
+
end
|
73
|
+
|
74
|
+
# Rails options returns a flat array of options
|
75
|
+
#
|
76
|
+
# It can work accept a flat array of options or a
|
77
|
+
# an object that implements cmd_line_options such as OptionsBuilder
|
78
|
+
#
|
79
|
+
# @param [Array<String>, OptionsBuilder] options
|
80
|
+
# @return [Array<String>]
|
81
|
+
def extract_rails_options(app_path, options)
|
82
|
+
opts = nil
|
83
|
+
opts = options.cmd_line_options if options.respond_to?(:cmd_line_options)
|
84
|
+
opts = options if options.is_a?(Array)
|
85
|
+
|
86
|
+
raise ArgumentError, 'options is required' unless opts
|
80
87
|
|
81
|
-
|
88
|
+
[app_path] + opts
|
82
89
|
end
|
83
90
|
end
|
84
91
|
end
|
data/package-lock.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "rails_app_generator",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.5",
|
4
4
|
"lockfileVersion": 2,
|
5
5
|
"requires": true,
|
6
6
|
"packages": {
|
7
7
|
"": {
|
8
8
|
"name": "rails_app_generator",
|
9
|
-
"version": "0.0.
|
9
|
+
"version": "0.0.5",
|
10
10
|
"devDependencies": {
|
11
11
|
"@klueless-js/semantic-release-rubygem": "github:klueless-js/semantic-release-rubygem",
|
12
12
|
"@semantic-release/changelog": "^6.0.1",
|
data/package.json
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_app_generator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Cruwys
|
@@ -52,6 +52,8 @@ files:
|
|
52
52
|
- lib/rails_app_generator/generators/advisories_generator.rb
|
53
53
|
- lib/rails_app_generator/generators/base.rb
|
54
54
|
- lib/rails_app_generator/generators/foo_generator.rb
|
55
|
+
- lib/rails_app_generator/notes/a1.txt
|
56
|
+
- lib/rails_app_generator/notes/a2.txt
|
55
57
|
- lib/rails_app_generator/notes/commands-list.txt
|
56
58
|
- lib/rails_app_generator/notes/methods-class.txt
|
57
59
|
- lib/rails_app_generator/notes/methods-instance.txt
|