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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 36f0ee4d5e320c70147846a8027fd7c746914d87dd34366d9f1e8ce48f169623
4
- data.tar.gz: acaf4240b30348911d75621ea66227c96ca789826422e8e97c0a73e96b4c88f5
3
+ metadata.gz: af4adc7a1c56e1146ad7c09a5de8e937a9dcf9c6dbe9c44b5792e498c5432050
4
+ data.tar.gz: bfb7e1727d74d4090ad8ee9f5bad62091abfce6631e22164483527ae9cafa486
5
5
  SHA512:
6
- metadata.gz: 4a4f3c1774c6a0a0fff82e4e82426ad69b3243f56efa4439b3af1f6c6a314ba9b788176613e1d1763149e8ea5e4733af73d43e473dcf45ef8d57dbf2c7a816b0
7
- data.tar.gz: f9e78e1b2de8972af6f01cb0000738a234856dacc790683f96068712e901b600718c20dd20472f8ea7b2d64d58fe9178a00edc721aa3fcf83b67ff808addf11c
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
@@ -32,7 +32,6 @@ See all [stories](./STORIES.md)
32
32
 
33
33
 
34
34
  ## Usage
35
- xxxxxxxxxxxxxxxx <help name="blah blah" />
36
35
  See all [usage examples](./USAGE.md)
37
36
 
38
37
 
@@ -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(_options)
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
- # opts = [
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
- opts = [
76
- '--skip-git',
77
- '--skip-test',
78
- '--skip-bundle'
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
- RailsAppGenerator::AppGenerator.start ['.'] + opts, destination_root: destination_root
88
+ [app_path] + opts
82
89
  end
83
90
  end
84
91
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsAppGenerator
4
- VERSION = '0.0.4'
4
+ VERSION = '0.0.5'
5
5
  end
data/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "rails_app_generator",
3
- "version": "0.0.4",
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.4",
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rails_app_generator",
3
- "version": "0.0.4",
3
+ "version": "0.0.5",
4
4
  "description": "Create new Rails Application with custom opinions",
5
5
  "scripts": {
6
6
  "release": "semantic-release"
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
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