rails_app_generator 0.1.27 → 0.1.28
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 +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