rails_app_generator 0.0.3 → 0.0.4
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/lib/rails_app_generator/options/base_map_option.rb +10 -0
- data/lib/rails_app_generator/options/build_option.rb +4 -2
- data/lib/rails_app_generator/options/map_option_boolean_flag.rb +3 -3
- data/lib/rails_app_generator/options/{map_option_pass_through.rb → map_option_ignore.rb} +3 -3
- data/lib/rails_app_generator/options/map_option_string.rb +12 -0
- data/lib/rails_app_generator/options/{build_options.rb → options_builder.rb} +13 -2
- data/lib/rails_app_generator/options/rails_options.rb +54 -0
- data/lib/rails_app_generator/starter.rb +1 -1
- data/lib/rails_app_generator/version.rb +1 -1
- data/lib/rails_app_generator.rb +5 -2
- data/package-lock.json +2 -2
- data/package.json +1 -1
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 36f0ee4d5e320c70147846a8027fd7c746914d87dd34366d9f1e8ce48f169623
|
4
|
+
data.tar.gz: acaf4240b30348911d75621ea66227c96ca789826422e8e97c0a73e96b4c88f5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4a4f3c1774c6a0a0fff82e4e82426ad69b3243f56efa4439b3af1f6c6a314ba9b788176613e1d1763149e8ea5e4733af73d43e473dcf45ef8d57dbf2c7a816b0
|
7
|
+
data.tar.gz: f9e78e1b2de8972af6f01cb0000738a234856dacc790683f96068712e901b600718c20dd20472f8ea7b2d64d58fe9178a00edc721aa3fcf83b67ff808addf11c
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
## [0.0.3](https://github.com/klueless-io/rails_app_generator/compare/v0.0.2...v0.0.3) (2022-07-19)
|
2
|
+
|
3
|
+
|
4
|
+
### Bug Fixes
|
5
|
+
|
6
|
+
* add builder option command line mapping ([5cc16b5](https://github.com/klueless-io/rails_app_generator/commit/5cc16b53f3ea2821e226a51dedfa10513307860f))
|
7
|
+
|
1
8
|
## [0.0.2](https://github.com/klueless-io/rails_app_generator/compare/v0.0.1...v0.0.2) (2022-07-19)
|
2
9
|
|
3
10
|
|
@@ -47,9 +47,11 @@ module RailsAppGenerator
|
|
47
47
|
def sane_mapper
|
48
48
|
case type
|
49
49
|
when :boolean
|
50
|
-
RailsAppGenerator::MapOptionBooleanFlag
|
50
|
+
RailsAppGenerator::MapOptionBooleanFlag.new
|
51
|
+
when :string
|
52
|
+
RailsAppGenerator::MapOptionString.new
|
51
53
|
else
|
52
|
-
RailsAppGenerator::
|
54
|
+
RailsAppGenerator::MapOptionIgnore.new
|
53
55
|
end
|
54
56
|
end
|
55
57
|
end
|
@@ -3,9 +3,9 @@
|
|
3
3
|
module RailsAppGenerator
|
4
4
|
# Map a boolean true to a command line flag in the format "--flag-name"
|
5
5
|
# false is ignored
|
6
|
-
class MapOptionBooleanFlag
|
7
|
-
def
|
8
|
-
value == true ?
|
6
|
+
class MapOptionBooleanFlag < BaseMapOption
|
7
|
+
def map(name, value)
|
8
|
+
value == true ? option_name(name) : ''
|
9
9
|
end
|
10
10
|
end
|
11
11
|
end
|
@@ -2,9 +2,9 @@
|
|
2
2
|
|
3
3
|
module RailsAppGenerator
|
4
4
|
# Simple pass through mapper for options that do not yet have a mapper defined
|
5
|
-
class
|
6
|
-
def
|
7
|
-
|
5
|
+
class MapOptionIgnore < BaseMapOption
|
6
|
+
def map(_name, _value)
|
7
|
+
nil
|
8
8
|
end
|
9
9
|
end
|
10
10
|
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RailsAppGenerator
|
4
|
+
# Simple pass through mapper for options that do not yet have a mapper defined
|
5
|
+
class MapOptionString < BaseMapOption
|
6
|
+
def map(name, value)
|
7
|
+
value = value.to_s
|
8
|
+
value = "\"#{value}\"" if value.include?(' ')
|
9
|
+
"#{option_name(name)}=#{value}"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -1,8 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module RailsAppGenerator
|
4
|
-
#
|
5
|
-
|
4
|
+
# OptionBuilder can work standalone or as the base class
|
5
|
+
# for application generator options used by RailsAppGenerator::Starter
|
6
|
+
class OptionsBuilder
|
6
7
|
attr_reader :options
|
7
8
|
|
8
9
|
def initialize(opts)
|
@@ -20,6 +21,9 @@ module RailsAppGenerator
|
|
20
21
|
@registered_options_lookup ||= {}
|
21
22
|
end
|
22
23
|
|
24
|
+
# Future options are placeholders for options that are not yet implemented
|
25
|
+
def future_option(name, **args); end
|
26
|
+
|
23
27
|
def register_option(name, **args)
|
24
28
|
return if registered_options_lookup.key?(name)
|
25
29
|
|
@@ -43,6 +47,13 @@ module RailsAppGenerator
|
|
43
47
|
end.reject(&:blank?)
|
44
48
|
end
|
45
49
|
|
50
|
+
def debug
|
51
|
+
puts '[ Options JSON ]----------------------------------------------------'
|
52
|
+
puts JSON.pretty_generate(options)
|
53
|
+
puts '[ Options Command Line ]--------------------------------------------'
|
54
|
+
puts cmd_line_options
|
55
|
+
end
|
56
|
+
|
46
57
|
private
|
47
58
|
|
48
59
|
def default_options
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RailsAppGenerator
|
4
|
+
class RailsOptions < OptionsBuilder
|
5
|
+
future_option :template , type: :string # , desc: "Path to some #{name} template (can be a filesystem path or URL)"
|
6
|
+
future_option :database , type: :string , default: 'sqlite3' # , desc: "Preconfigure for selected database (options: #{DATABASES.join('/')})"
|
7
|
+
register_option :skip_git , type: :boolean, default: false # , desc: "Skip .gitignore file"
|
8
|
+
future_option :skip_keeps , type: :boolean, default: false # , desc: "Skip source control .keep files"
|
9
|
+
future_option :skip_action_mailer , type: :boolean, default: false # , desc: "Skip Action Mailer files"
|
10
|
+
future_option :skip_action_mailbox , type: :boolean, default: false # , desc: "Skip Action Mailbox gem"
|
11
|
+
future_option :skip_action_text , type: :boolean, default: false # , desc: "Skip Action Text gem"
|
12
|
+
future_option :skip_active_record , type: :boolean, default: false # , desc: "Skip Active Record files"
|
13
|
+
future_option :skip_active_job , type: :boolean, default: false # , desc: "Skip Active Job"
|
14
|
+
future_option :skip_active_storage , type: :boolean, default: false # , desc: "Skip Active Storage files"
|
15
|
+
future_option :skip_action_cable , type: :boolean, default: false # , desc: "Skip Action Cable files"
|
16
|
+
future_option :skip_asset_pipeline , type: :boolean, default: false #
|
17
|
+
future_option :asset_pipeline , type: :string , default: 'sprockets' # , desc: "Choose your asset pipeline [options: sprockets (default), propshaft]"
|
18
|
+
future_option :skip_javascript , type: :boolean, default: false # name == 'plugin' # , desc: "Skip JavaScript files"
|
19
|
+
future_option :skip_hotwire , type: :boolean, default: false # , desc: "Skip Hotwire integration"
|
20
|
+
future_option :skip_jbuilder , type: :boolean, default: false # , desc: "Skip jbuilder gem"
|
21
|
+
register_option :skip_test , type: :boolean, default: false # , desc: "Skip test files"
|
22
|
+
register_option :test , type: :string , default: 'rspec' # , desc: "minitest or rspec (default: rspec)"
|
23
|
+
future_option :skip_system_test , type: :boolean, default: false # , desc: "Skip system test files"
|
24
|
+
future_option :skip_bootsnap , type: :boolean, default: false # , desc: "Skip bootsnap gem"
|
25
|
+
future_option :dev , type: :boolean, default: false # , desc: "Set up the #{name} with Gemfile pointing to your Rails checkout"
|
26
|
+
future_option :edge , type: :boolean, default: false # , desc: "Set up the #{name} with Gemfile pointing to Rails repository"
|
27
|
+
future_option :main , type: :boolean, default: false # , desc: "Set up the #{name} with Gemfile pointing to Rails repository main branch"
|
28
|
+
future_option :rc , type: :string , default: nil # , desc: "Path to file containing extra configuration options for rails command"
|
29
|
+
future_option :no_rc , type: :boolean, default: false # , desc: "Skip loading of extra configuration options from .railsrc file"
|
30
|
+
future_option :help , type: :boolean # , group: :rails # , desc: "Show this help message and quit"
|
31
|
+
future_option :version , type: :boolean # , group: :rails, desc: "Show Rails version number and quit"
|
32
|
+
future_option :api , type: :boolean # , desc: "Preconfigure smaller stack for API only apps"
|
33
|
+
future_option :minimal , type: :boolean # , desc: "Preconfigure a minimal rails app"
|
34
|
+
future_option :javascript , type: :string , default: 'importmap' # , desc: "Choose JavaScript approach [options: importmap (default), webpack, esbuild, rollup]"
|
35
|
+
future_option :css , type: :string # , desc: "Choose CSS processor [options: tailwind, bootstrap, bulma, postcss, sass... check https://github.com/rails/cssbundling-rails]"
|
36
|
+
register_option :skip_bundle , type: :boolean, default: false # , desc: "Don't run bundle install"
|
37
|
+
|
38
|
+
# if options[:minimal]
|
39
|
+
# self.options = options.merge(
|
40
|
+
# skip_action_cable: true,
|
41
|
+
# skip_action_mailer: true,
|
42
|
+
# skip_action_mailbox: true,
|
43
|
+
# skip_action_text: true,
|
44
|
+
# skip_active_job: true,
|
45
|
+
# skip_active_storage: true,
|
46
|
+
# skip_bootsnap: true,
|
47
|
+
# skip_dev_gems: true,
|
48
|
+
# skip_javascript: true,
|
49
|
+
# skip_jbuilder: true,
|
50
|
+
# skip_system_test: true,
|
51
|
+
# skip_hotwire: true).freeze
|
52
|
+
# end
|
53
|
+
end
|
54
|
+
end
|
data/lib/rails_app_generator.rb
CHANGED
@@ -10,10 +10,13 @@ require 'rails/generators/rails/app/app_generator'
|
|
10
10
|
require 'bundler'
|
11
11
|
|
12
12
|
require 'rails_app_generator/version'
|
13
|
-
require 'rails_app_generator/options/
|
13
|
+
require 'rails_app_generator/options/base_map_option'
|
14
|
+
require 'rails_app_generator/options/map_option_ignore'
|
15
|
+
require 'rails_app_generator/options/map_option_string'
|
14
16
|
require 'rails_app_generator/options/map_option_boolean_flag'
|
15
17
|
require 'rails_app_generator/options/build_option'
|
16
|
-
require 'rails_app_generator/options/
|
18
|
+
require 'rails_app_generator/options/options_builder'
|
19
|
+
require 'rails_app_generator/options/rails_options'
|
17
20
|
require 'rails_app_generator/starter'
|
18
21
|
require 'rails_app_generator/app_builder'
|
19
22
|
require 'rails_app_generator/app_generator'
|
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.4",
|
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.4",
|
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.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Cruwys
|
@@ -59,10 +59,13 @@ files:
|
|
59
59
|
- lib/rails_app_generator/notes/register-options.txt
|
60
60
|
- lib/rails_app_generator/notes/usage-gem.txt
|
61
61
|
- lib/rails_app_generator/notes/usage-rails.txt
|
62
|
+
- lib/rails_app_generator/options/base_map_option.rb
|
62
63
|
- lib/rails_app_generator/options/build_option.rb
|
63
|
-
- lib/rails_app_generator/options/build_options.rb
|
64
64
|
- lib/rails_app_generator/options/map_option_boolean_flag.rb
|
65
|
-
- lib/rails_app_generator/options/
|
65
|
+
- lib/rails_app_generator/options/map_option_ignore.rb
|
66
|
+
- lib/rails_app_generator/options/map_option_string.rb
|
67
|
+
- lib/rails_app_generator/options/options_builder.rb
|
68
|
+
- lib/rails_app_generator/options/rails_options.rb
|
66
69
|
- lib/rails_app_generator/starter.rb
|
67
70
|
- lib/rails_app_generator/version.rb
|
68
71
|
- package-lock.json
|