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