rails_app_generator 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|