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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5d949364a1e7bec61487eee0f93938ae622bb0af2e1ddf34ef019e799d1b1d20
4
- data.tar.gz: a77a8801d4135ae83828cfec7efadc38a0c22004d76a2880745f53a25a79fd95
3
+ metadata.gz: b5005b34988e8bf214b22d0f09e109ec5df50c29dfac7c677586ecf7b53c112d
4
+ data.tar.gz: 1a2e5b7f16bb4f98d401ed8d475373925b4f72c50e67f38c51d53272989ab74c
5
5
  SHA512:
6
- metadata.gz: 18933bff9eb17b70ef4f48f6a027a031df83756ad816d429882776b7ac3ab985f88dd0103da0f75076cefe0c9b4c8427137904aa466a510f3ceb0501483d62fb
7
- data.tar.gz: 03c14b34b59781d67ab10cb15ae9d4a9ce8b023ba89f85c99b7505643fd32b9ac303b39e9f53bccb75770d092669309ae81344ea12ab6cd5929b04f0711c4b2b
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 : self.class.get(addon_name)
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 << RailsAppGenerator::Addon_instance
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
- addon_classes.select { |klass| active?(klass.addon_name) }
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 registered_options
17
- @registered_options ||= []
16
+ def class_options
17
+ @class_options ||= []
18
18
  end
19
19
 
20
- def registered_options_lookup
21
- @registered_options_lookup ||= {}
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
- def register_option(name, **args)
28
- return if registered_options_lookup.key?(name)
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
- registered_options_lookup[name] = option
33
- registered_options << option
35
+ class_options_lookup[name] = option
36
+ class_options << option
34
37
  end
35
38
 
36
39
  def reset
37
- @registered_options = nil
38
- @registered_options_lookup = nil
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.registered_options.map do |option|
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.registered_options.to_h { |option| [option.name, option.default] }
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
- register_option :template , type: :string # , desc: "Path to some #{name} template (can be a filesystem path or URL)"
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
- register_option :skip_git , type: :boolean, default: false # , desc: "Skip .gitignore file"
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
- register_option :skip_test , type: :boolean, default: false # , desc: "Skip test files"
24
- register_option :test , type: :string , default: 'rspec' # , desc: "minitest or rspec (default: rspec)"
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
- register_option :css , type: :string # , desc: "Choose CSS processor [options: tailwind, bootstrap, bulma, postcss, sass... check https://github.com/rails/cssbundling-rails]"
38
- register_option :skip_bundle , type: :boolean, default: false # , desc: "Don't run bundle install"
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
- register_option :add_irbrc , type: :boolean, default: false
41
- register_option :add_foreman , type: :boolean, default: false
42
- register_option :add_devise , type: :boolean, default: false
43
- register_option :add_dotenv , type: :boolean, default: false
44
- register_option :add_docker , type: :boolean, default: false
45
- register_option :add_docker_compose , type: :boolean, default: false
46
- register_option :add_rubocop , type: :boolean, default: false
47
- register_option :add_annotate , type: :boolean, default: false
48
- register_option :add_continuous_integration , type: :boolean, default: false
49
- register_option :add_high_voltage , type: :boolean, default: false
50
- register_option :add_generators , type: :boolean, default: false
51
- register_option :add_lograge , type: :boolean, default: false
52
- register_option :add_pundit , type: :boolean, default: false
53
- register_option :add_services , type: :boolean, default: false
54
- register_option :add_sidekiq , type: :boolean, default: false
55
- register_option :add_views , type: :boolean, default: false
56
- register_option :add_errors , type: :boolean, default: false
57
- register_option :add_scaffold , type: :boolean, default: false
58
- register_option :add_factory_bot , type: :boolean, default: false
59
- register_option :add_shoulda , type: :boolean, default: false
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
- register_option :add_acts_as_list , type: :boolean, default: false
63
- register_option :add_browser , type: :boolean, default: false
64
- register_option :add_chartkick , type: :boolean, default: false
65
- register_option :add_faker , type: :boolean, default: false
66
- register_option :add_groupdate , type: :boolean, default: false
67
- register_option :add_hexapdf , type: :boolean, default: false
68
- register_option :add_httparty , type: :boolean, default: false
69
- register_option :add_honeybadger , type: :boolean, default: false
70
- register_option :add_mini_magick , type: :boolean, default: false
71
- register_option :add_rails_html_sanitizer , type: :boolean, default: false
72
- register_option :add_twilio_ruby , type: :boolean, default: false
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(
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsAppGenerator
4
- VERSION = '0.1.27'
4
+ VERSION = '0.1.28'
5
5
  end
data/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "rails_app_generator",
3
- "version": "0.1.27",
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.27",
9
+ "version": "0.1.28",
10
10
  "dependencies": {
11
11
  "daisyui": "^2.20.0"
12
12
  },
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rails_app_generator",
3
- "version": "0.1.27",
3
+ "version": "0.1.28",
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.1.27
4
+ version: 0.1.28
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Cruwys