rails_app_generator 0.1.27 → 0.1.28
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/addon.rb +1 -1
- data/lib/rails_app_generator/app_generator.rb +2 -15
- data/lib/rails_app_generator/options/options_builder.rb +15 -40
- data/lib/rails_app_generator/options/rails_options.rb +37 -37
- data/lib/rails_app_generator/version.rb +1 -1
- data/package-lock.json +2 -2
- data/package.json +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b5005b34988e8bf214b22d0f09e109ec5df50c29dfac7c677586ecf7b53c112d
|
4
|
+
data.tar.gz: 1a2e5b7f16bb4f98d401ed8d475373925b4f72c50e67f38c51d53272989ab74c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 587960fc7b519882bc63ae213a0af9309597b2a367ce8f556ca1f0216748f5f963b65167f4b71e30ab517074adeaaf709a9eee4d4adee80b1d934d6cf7816f17
|
7
|
+
data.tar.gz: beba122ba762ab6dfa425ad3ccf30c25de6da726ea9caf49e7c68c4552f23b7ba6e2a52ab655629d30aa1707bb7b2d7e1e8c54f13c19e18947dc962137328f96
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
## [0.1.27](https://github.com/klueless-io/rails_app_generator/compare/v0.1.26...v0.1.27) (2022-08-06)
|
2
|
+
|
3
|
+
|
4
|
+
### Bug Fixes
|
5
|
+
|
6
|
+
* add addon_util and specs ([55e96be](https://github.com/klueless-io/rails_app_generator/commit/55e96bef66e05f33c7c1c1347fd04ff70166d352))
|
7
|
+
|
1
8
|
## [0.1.26](https://github.com/klueless-io/rails_app_generator/compare/v0.1.25...v0.1.26) (2022-08-06)
|
2
9
|
|
3
10
|
|
@@ -41,7 +41,7 @@ module RailsAppGenerator
|
|
41
41
|
return false if options["skip_#{addon_name}".to_sym]
|
42
42
|
return true if context.default_addons.include?(addon_name)
|
43
43
|
|
44
|
-
klass = addon_name.nil? ? self.class :
|
44
|
+
klass = addon_name.nil? ? self.class : AddonUtil.get(addon_name)
|
45
45
|
Dependencies.new(klass, context).satisfied?
|
46
46
|
end
|
47
47
|
|
@@ -487,18 +487,11 @@ module RailsAppGenerator
|
|
487
487
|
|
488
488
|
if addon_instance.uses?
|
489
489
|
addon_instance.apply
|
490
|
-
@addon_instances <<
|
490
|
+
@addon_instances << addon_instance
|
491
491
|
end
|
492
492
|
end
|
493
493
|
end
|
494
494
|
|
495
|
-
# def apply(context = Context.new({}))
|
496
|
-
# instance = new(context)
|
497
|
-
# return unless instance.uses?
|
498
|
-
|
499
|
-
# instance.apply
|
500
|
-
# end
|
501
|
-
|
502
495
|
def add_if(addon)
|
503
496
|
add(addon) if active?(addon)
|
504
497
|
end
|
@@ -538,14 +531,8 @@ module RailsAppGenerator
|
|
538
531
|
end
|
539
532
|
end
|
540
533
|
|
541
|
-
# def addon_classes
|
542
|
-
# AddOns.constants
|
543
|
-
# .map { |addon_klass_name| AddOns.const_get(addon_klass_name) }
|
544
|
-
# .select { |klass| klass.is_a?(Class) && klass.respond_to?(:addon_name) }
|
545
|
-
# end
|
546
|
-
|
547
534
|
def active_addon_classes
|
548
|
-
|
535
|
+
AddonUtil.classes.select { |klass| active?(klass.addon_name) }
|
549
536
|
end
|
550
537
|
|
551
538
|
def addon_gemfile_entries
|
@@ -13,34 +13,37 @@ module RailsAppGenerator
|
|
13
13
|
end
|
14
14
|
|
15
15
|
class << self
|
16
|
-
def
|
17
|
-
@
|
16
|
+
def class_options
|
17
|
+
@class_options ||= []
|
18
18
|
end
|
19
19
|
|
20
|
-
def
|
21
|
-
@
|
20
|
+
def class_options_lookup
|
21
|
+
@class_options_lookup ||= {}
|
22
22
|
end
|
23
23
|
|
24
24
|
# Future options are placeholders for options that are not yet implemented
|
25
25
|
def future_option(name, **args); end
|
26
26
|
|
27
|
-
|
28
|
-
|
27
|
+
# Register an option with the builder, this method has the same signature as Thor.
|
28
|
+
#
|
29
|
+
# This is so options can be used interchangeably between OptionsBuilder and Thor.
|
30
|
+
def class_option(name, **args)
|
31
|
+
return if class_options_lookup.key?(name)
|
29
32
|
|
30
33
|
option = BuildOption.new(**{ name: name }.merge(args))
|
31
34
|
|
32
|
-
|
33
|
-
|
35
|
+
class_options_lookup[name] = option
|
36
|
+
class_options << option
|
34
37
|
end
|
35
38
|
|
36
39
|
def reset
|
37
|
-
@
|
38
|
-
@
|
40
|
+
@class_options = nil
|
41
|
+
@class_options_lookup = nil
|
39
42
|
end
|
40
43
|
end
|
41
44
|
|
42
45
|
def cmd_line_options
|
43
|
-
self.class.
|
46
|
+
self.class.class_options.map do |option|
|
44
47
|
mapper = option.mapper
|
45
48
|
value = options[option.name]
|
46
49
|
mapper.map(option.name, value)
|
@@ -57,35 +60,7 @@ module RailsAppGenerator
|
|
57
60
|
private
|
58
61
|
|
59
62
|
def default_options
|
60
|
-
self.class.
|
63
|
+
self.class.class_options.to_h { |option| [option.name, option.default] }
|
61
64
|
end
|
62
65
|
end
|
63
|
-
|
64
|
-
# opts = [
|
65
|
-
# "--skip-namespace",
|
66
|
-
# "--skip-collision-check",
|
67
|
-
# "--skip-git",
|
68
|
-
# "--skip-keeps",
|
69
|
-
# "--skip-action-mailer",
|
70
|
-
# "--skip-action-mailbox",
|
71
|
-
# "--skip-action-text",
|
72
|
-
# "--skip-active-record",
|
73
|
-
# "--skip-active-job",
|
74
|
-
# "--skip-active-storage",
|
75
|
-
# "--skip-action-cable",
|
76
|
-
# "--skip-asset-pipeline",
|
77
|
-
# "--skip-javascript",
|
78
|
-
# "--skip-hotwire",
|
79
|
-
# "--skip-jbuilder",
|
80
|
-
# "--skip-test",
|
81
|
-
# "--skip-system-test",
|
82
|
-
# "--skip-bootsnap",
|
83
|
-
# "--skip-bundle"
|
84
|
-
# ]
|
85
|
-
|
86
|
-
# opts = [
|
87
|
-
# "--skip-git",
|
88
|
-
# "--skip-test",
|
89
|
-
# "--skip-bundle"
|
90
|
-
# ]
|
91
66
|
end
|
@@ -4,9 +4,9 @@ module RailsAppGenerator
|
|
4
4
|
class RailsOptions < OptionsBuilder
|
5
5
|
# NOTE: Currently you need to register new options in two places
|
6
6
|
# here and in lib/rails_app_generator/app_generator.rb
|
7
|
-
|
7
|
+
class_option :template , type: :string # , desc: "Path to some #{name} template (can be a filesystem path or URL)"
|
8
8
|
future_option :database , type: :string , default: 'sqlite3' # , desc: "Preconfigure for selected database (options: #{DATABASES.join('/')})"
|
9
|
-
|
9
|
+
class_option :skip_git , type: :boolean, default: false # , desc: "Skip .gitignore file"
|
10
10
|
future_option :skip_keeps , type: :boolean, default: false # , desc: "Skip source control .keep files"
|
11
11
|
future_option :skip_action_mailer , type: :boolean, default: false # , desc: "Skip Action Mailer files"
|
12
12
|
future_option :skip_action_mailbox , type: :boolean, default: false # , desc: "Skip Action Mailbox gem"
|
@@ -20,8 +20,8 @@ module RailsAppGenerator
|
|
20
20
|
future_option :skip_javascript , type: :boolean, default: false # name == 'plugin' # , desc: "Skip JavaScript files"
|
21
21
|
future_option :skip_hotwire , type: :boolean, default: false # , desc: "Skip Hotwire integration"
|
22
22
|
future_option :skip_jbuilder , type: :boolean, default: false # , desc: "Skip jbuilder gem"
|
23
|
-
|
24
|
-
|
23
|
+
class_option :skip_test , type: :boolean, default: false # , desc: "Skip test files"
|
24
|
+
class_option :test , type: :string , default: 'rspec' # , desc: "minitest or rspec (default: rspec)"
|
25
25
|
future_option :skip_system_test , type: :boolean, default: false # , desc: "Skip system test files"
|
26
26
|
future_option :skip_bootsnap , type: :boolean, default: false # , desc: "Skip bootsnap gem"
|
27
27
|
future_option :dev , type: :boolean, default: false # , desc: "Set up the #{name} with Gemfile pointing to your Rails checkout"
|
@@ -34,42 +34,42 @@ module RailsAppGenerator
|
|
34
34
|
future_option :api , type: :boolean # , desc: "Preconfigure smaller stack for API only apps"
|
35
35
|
future_option :minimal , type: :boolean # , desc: "Preconfigure a minimal rails app"
|
36
36
|
future_option :javascript , type: :string , default: 'importmap' # , desc: "Choose JavaScript approach [options: importmap (default), webpack, esbuild, rollup]"
|
37
|
-
|
38
|
-
|
37
|
+
class_option :css , type: :string # , desc: "Choose CSS processor [options: tailwind, bootstrap, bulma, postcss, sass... check https://github.com/rails/cssbundling-rails]"
|
38
|
+
class_option :skip_bundle , type: :boolean, default: false # , desc: "Don't run bundle install"
|
39
39
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
40
|
+
class_option :add_irbrc , type: :boolean, default: false
|
41
|
+
class_option :add_foreman , type: :boolean, default: false
|
42
|
+
class_option :add_devise , type: :boolean, default: false
|
43
|
+
class_option :add_dotenv , type: :boolean, default: false
|
44
|
+
class_option :add_docker , type: :boolean, default: false
|
45
|
+
class_option :add_docker_compose , type: :boolean, default: false
|
46
|
+
class_option :add_rubocop , type: :boolean, default: false
|
47
|
+
class_option :add_annotate , type: :boolean, default: false
|
48
|
+
class_option :add_continuous_integration , type: :boolean, default: false
|
49
|
+
class_option :add_high_voltage , type: :boolean, default: false
|
50
|
+
class_option :add_generators , type: :boolean, default: false
|
51
|
+
class_option :add_lograge , type: :boolean, default: false
|
52
|
+
class_option :add_pundit , type: :boolean, default: false
|
53
|
+
class_option :add_services , type: :boolean, default: false
|
54
|
+
class_option :add_sidekiq , type: :boolean, default: false
|
55
|
+
class_option :add_views , type: :boolean, default: false
|
56
|
+
class_option :add_errors , type: :boolean, default: false
|
57
|
+
class_option :add_scaffold , type: :boolean, default: false
|
58
|
+
class_option :add_factory_bot , type: :boolean, default: false
|
59
|
+
class_option :add_shoulda , type: :boolean, default: false
|
60
60
|
|
61
61
|
# NEW GEM ADDONS
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
62
|
+
class_option :add_acts_as_list , type: :boolean, default: false
|
63
|
+
class_option :add_browser , type: :boolean, default: false
|
64
|
+
class_option :add_chartkick , type: :boolean, default: false
|
65
|
+
class_option :add_faker , type: :boolean, default: false
|
66
|
+
class_option :add_groupdate , type: :boolean, default: false
|
67
|
+
class_option :add_hexapdf , type: :boolean, default: false
|
68
|
+
class_option :add_httparty , type: :boolean, default: false
|
69
|
+
class_option :add_honeybadger , type: :boolean, default: false
|
70
|
+
class_option :add_mini_magick , type: :boolean, default: false
|
71
|
+
class_option :add_rails_html_sanitizer , type: :boolean, default: false
|
72
|
+
class_option :add_twilio_ruby , type: :boolean, default: false
|
73
73
|
|
74
74
|
# if options[:minimal]
|
75
75
|
# self.options = options.merge(
|
data/package-lock.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "rails_app_generator",
|
3
|
-
"version": "0.1.
|
3
|
+
"version": "0.1.28",
|
4
4
|
"lockfileVersion": 2,
|
5
5
|
"requires": true,
|
6
6
|
"packages": {
|
7
7
|
"": {
|
8
8
|
"name": "rails_app_generator",
|
9
|
-
"version": "0.1.
|
9
|
+
"version": "0.1.28",
|
10
10
|
"dependencies": {
|
11
11
|
"daisyui": "^2.20.0"
|
12
12
|
},
|
data/package.json
CHANGED