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 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