rails_app_generator 0.1.26 → 0.1.27

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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/lib/rails_app_generator/{add_on.rb → addon.rb} +2 -25
  4. data/lib/rails_app_generator/addon_util.rb +21 -0
  5. data/lib/rails_app_generator/addons/acts_as_list.rb +1 -1
  6. data/lib/rails_app_generator/addons/annotate.rb +1 -1
  7. data/lib/rails_app_generator/addons/browser.rb +1 -1
  8. data/lib/rails_app_generator/addons/chartkick.rb +1 -1
  9. data/lib/rails_app_generator/addons/continuous_integration.rb +1 -1
  10. data/lib/rails_app_generator/addons/devise.rb +1 -1
  11. data/lib/rails_app_generator/addons/docker.rb +1 -1
  12. data/lib/rails_app_generator/addons/docker_compose.rb +1 -1
  13. data/lib/rails_app_generator/addons/dotenv.rb +1 -1
  14. data/lib/rails_app_generator/addons/factory_bot.rb +1 -1
  15. data/lib/rails_app_generator/addons/faker.rb +1 -1
  16. data/lib/rails_app_generator/addons/foreman.rb +1 -1
  17. data/lib/rails_app_generator/addons/generators.rb +1 -1
  18. data/lib/rails_app_generator/addons/groupdate.rb +1 -1
  19. data/lib/rails_app_generator/addons/hexapdf.rb +1 -1
  20. data/lib/rails_app_generator/addons/high_voltage.rb +1 -1
  21. data/lib/rails_app_generator/addons/honeybadger.rb +1 -1
  22. data/lib/rails_app_generator/addons/httparty.rb +1 -1
  23. data/lib/rails_app_generator/addons/inline_svg.rb +1 -1
  24. data/lib/rails_app_generator/addons/irbrc.rb +1 -1
  25. data/lib/rails_app_generator/addons/lograge.rb +1 -1
  26. data/lib/rails_app_generator/addons/mini_magick.rb +1 -1
  27. data/lib/rails_app_generator/addons/pundit.rb +1 -1
  28. data/lib/rails_app_generator/addons/rails_html_sanitizer.rb +1 -1
  29. data/lib/rails_app_generator/addons/rspec.rb +1 -1
  30. data/lib/rails_app_generator/addons/rubocop.rb +1 -1
  31. data/lib/rails_app_generator/addons/scaffold.rb +1 -1
  32. data/lib/rails_app_generator/addons/services.rb +1 -1
  33. data/lib/rails_app_generator/addons/sidekiq.rb +2 -2
  34. data/lib/rails_app_generator/addons/stimulus.rb +1 -1
  35. data/lib/rails_app_generator/addons/stimulus_components.rb +1 -1
  36. data/lib/rails_app_generator/addons/tailwind.rb +1 -1
  37. data/lib/rails_app_generator/addons/views.rb +1 -1
  38. data/lib/rails_app_generator/app_generator.rb +7 -7
  39. data/lib/rails_app_generator/context.rb +1 -1
  40. data/lib/rails_app_generator/dependencies.rb +2 -2
  41. data/lib/rails_app_generator/version.rb +1 -1
  42. data/lib/rails_app_generator.rb +4 -2
  43. data/package-lock.json +2 -2
  44. data/package.json +1 -1
  45. data/tasks/addon.thor +4 -4
  46. data/templates/thor_task/addon/addon.tt +1 -1
  47. metadata +3 -6
  48. data/lib/rails_app_generator/addons/xmen.rb +0 -17
  49. data/lib/rails_app_generator/generators/advisories_generator.rb +0 -18
  50. data/lib/rails_app_generator/generators/base.rb +0 -60
  51. data/lib/rails_app_generator/generators/foo_generator.rb +0 -17
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a5ea77384e055a075b31754caf54c6b789f30916bc54f5c0e60404c946acce4b
4
- data.tar.gz: a92a88e1257e65b9b01cde3133728deb9ac5a8b006d9664ebbe2930f3fe3101f
3
+ metadata.gz: 5d949364a1e7bec61487eee0f93938ae622bb0af2e1ddf34ef019e799d1b1d20
4
+ data.tar.gz: a77a8801d4135ae83828cfec7efadc38a0c22004d76a2880745f53a25a79fd95
5
5
  SHA512:
6
- metadata.gz: a5e1d349250ecec2990a02f2630eaad82f78ef849f528f85fd5dcd97f3d05ab7662912729b7e53093db01b876b1260b43e9ea38ed63e23daabb48acd8ee894f7
7
- data.tar.gz: b4053c0e0ade318de4a5f5d87fcb09e950565ee377d76859db23f4efe2112b1588968e975f1c220aefab6f2f10e76f64fbe8859db6420d4580e031af3958bf29
6
+ metadata.gz: 18933bff9eb17b70ef4f48f6a027a031df83756ad816d429882776b7ac3ab985f88dd0103da0f75076cefe0c9b4c8427137904aa466a510f3ceb0501483d62fb
7
+ data.tar.gz: 03c14b34b59781d67ab10cb15ae9d4a9ce8b023ba89f85c99b7505643fd32b9ac303b39e9f53bccb75770d092669309ae81344ea12ab6cd5929b04f0711c4b2b
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## [0.1.26](https://github.com/klueless-io/rails_app_generator/compare/v0.1.25...v0.1.26) (2022-08-06)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * profile mini_magick ([f44b932](https://github.com/klueless-io/rails_app_generator/commit/f44b932df8fa7d817e2064d74af49476f82710d3))
7
+ * profile mini_magick ([6935964](https://github.com/klueless-io/rails_app_generator/commit/69359640e7791691052aac1496b43aa1a5fd99c0))
8
+
1
9
  ## [0.1.25](https://github.com/klueless-io/rails_app_generator/compare/v0.1.24...v0.1.25) (2022-08-06)
2
10
 
3
11
 
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsAppGenerator
4
- # XXXX
5
- class AddOn < Rails::Generators::Base
4
+ # Base class for all add-ons
5
+ class Addon < Rails::Generators::Base
6
6
  include Thor::Actions
7
7
  include Rails::Generators::Actions
8
8
  include Rails::Generators::AppName
@@ -82,29 +82,6 @@ module RailsAppGenerator
82
82
  # rubocop:enable Metrics/BlockLength
83
83
 
84
84
  class << self
85
- # attr_reader :before_bundle_callback
86
- # attr_reader :after_bundle_callback
87
-
88
- # def before_bundle(&block)
89
- # @before_bundle_callback = block
90
- # end
91
-
92
- # def after_bundle(&block)
93
- # @after_bundle_callback = block
94
- # end
95
-
96
- # def apply(context = Context.new({}))
97
- # instance = new(context)
98
- # return unless instance.uses?
99
-
100
- # instance.apply
101
- # end
102
-
103
- def get(addon)
104
- addon = addon.to_s.capitalize.camelize
105
- "RailsAppGenerator::AddOns::#{addon}".constantize
106
- end
107
-
108
85
  def addon_name
109
86
  name.demodulize.underscore.to_sym
110
87
  end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RailsAppGenerator
4
+ # Utility methods for accessing Addons
5
+ class AddonUtil
6
+ class << self
7
+ # Get the Addon classes that are stored in the RailsAppGenerator::Addons::* namespace
8
+ def classes
9
+ AddOns.constants
10
+ .map { |addon_klass_name| AddOns.const_get(addon_klass_name) }
11
+ .select { |klass| klass.ancestors.include?(RailsAppGenerator::Addon) }
12
+ end
13
+
14
+ # Convert a string to a symbol to a fully qualified class constant
15
+ def get(addon)
16
+ addon = addon.to_s.capitalize.camelize
17
+ "RailsAppGenerator::AddOns::#{addon}".constantize
18
+ end
19
+ end
20
+ end
21
+ end
@@ -4,7 +4,7 @@ module RailsAppGenerator
4
4
  # Custom add-ons for RailsAppGenerator
5
5
  module AddOns
6
6
  # Add ActsAsList to rails application
7
- class ActsAsList < AddOn
7
+ class ActsAsList < RailsAppGenerator::Addon
8
8
  depends_on :active_record
9
9
  required_gem gem.version('acts_as_list', '1.0.4', <<~COMMENT)
10
10
  This "acts_as" extension provides the capabilities for sorting and reordering a number of objects in a list.
@@ -4,7 +4,7 @@ module RailsAppGenerator
4
4
  # Custom add-ons for RailsAppGenerator
5
5
  module AddOns
6
6
  # Add Annotate for ActiveRecord models to rails application
7
- class Annotate < AddOn
7
+ class Annotate < RailsAppGenerator::Addon
8
8
  depends_on :active_record
9
9
 
10
10
  required_gem gem.version('annotate', '3.2.0', 'Annotates Rails/ActiveRecord Models, routes, fixtures, and others based on the database schema.')
@@ -4,7 +4,7 @@ module RailsAppGenerator
4
4
  # Custom add-ons for RailsAppGenerator
5
5
  module AddOns
6
6
  # Add Browser to rails application
7
- class Browser < AddOn
7
+ class Browser < RailsAppGenerator::Addon
8
8
  required_gem gem.version('browser', '5.3.1', 'Do some browser detection with Ruby.')
9
9
 
10
10
  def apply; end
@@ -4,7 +4,7 @@ module RailsAppGenerator
4
4
  # Custom add-ons for RailsAppGenerator
5
5
  module AddOns
6
6
  # Add Chartkick to rails application
7
- class Chartkick < AddOn
7
+ class Chartkick < RailsAppGenerator::Addon
8
8
  required_gem gem.version('chartkick', '4.2.1', 'Create beautiful JavaScript charts with one line of Ruby')
9
9
 
10
10
  def apply; end
@@ -4,7 +4,7 @@ module RailsAppGenerator
4
4
  # Custom add-ons for RailsAppGenerator
5
5
  module AddOns
6
6
  # Add GitHub Actions continuous integration
7
- class ContinuousIntegration < AddOn
7
+ class ContinuousIntegration < RailsAppGenerator::Addon
8
8
  def apply
9
9
  say 'continuous integration - Setup GitHub Actions'
10
10
  template('github/workflows/build.yml.erb', '.github/workflows/build.yml')
@@ -4,7 +4,7 @@ module RailsAppGenerator
4
4
  # Custom add-ons for RailsAppGenerator
5
5
  module AddOns
6
6
  # Add Devise authentication to rails application
7
- class Devise < AddOn
7
+ class Devise < RailsAppGenerator::Addon
8
8
  depends_on :active_record
9
9
 
10
10
  required_gem gem.version('devise', '4.8.1', 'Flexible authentication solution for Rails with Warden')
@@ -4,7 +4,7 @@ module RailsAppGenerator
4
4
  # Custom add-ons for RailsAppGenerator
5
5
  module AddOns
6
6
  # Add Docker to rails application
7
- class Docker < AddOn
7
+ class Docker < RailsAppGenerator::Addon
8
8
  def apply
9
9
  template 'Dockerfile.erb', 'Dockerfile'
10
10
  template '.dockerignore.erb', '.dockerignore'
@@ -4,7 +4,7 @@ module RailsAppGenerator
4
4
  # Custom add-ons for RailsAppGenerator
5
5
  module AddOns
6
6
  # Add Docker Compose to rails application
7
- class DockerCompose < AddOn
7
+ class DockerCompose < RailsAppGenerator::Addon
8
8
  def apply
9
9
  template 'docker-compose.yml.erb', 'docker-compose.yml'
10
10
  end
@@ -4,7 +4,7 @@ module RailsAppGenerator
4
4
  # Custom add-ons for RailsAppGenerator
5
5
  module AddOns
6
6
  # Add DotEnv to rails application
7
- class Dotenv < AddOn
7
+ class Dotenv < RailsAppGenerator::Addon
8
8
  def apply
9
9
  template '.env.development.erb', '.env.development'
10
10
  end
@@ -4,7 +4,7 @@ module RailsAppGenerator
4
4
  # Custom add-ons for RailsAppGenerator
5
5
  module AddOns
6
6
  # Add FactoryBot to rails application
7
- class FactoryBot < AddOn
7
+ class FactoryBot < RailsAppGenerator::Addon
8
8
  depends_on :active_record, :test
9
9
 
10
10
  def apply
@@ -7,7 +7,7 @@ module RailsAppGenerator
7
7
  # Custom add-ons for RailsAppGenerator
8
8
  module AddOns
9
9
  # Add Faker to rails application
10
- class Faker < AddOn
10
+ class Faker < RailsAppGenerator::Addon
11
11
  required_gem gem.version('faker', '2.22.0', 'Faker, a port of Data::Faker from Perl, is used to easily generate fake data: names, addresses, phone numbers, etc.')
12
12
 
13
13
  def apply; end
@@ -4,7 +4,7 @@ module RailsAppGenerator
4
4
  # Custom add-ons for RailsAppGenerator
5
5
  module AddOns
6
6
  # Add Foreman process management for applications with multiple components
7
- class Foreman < AddOn
7
+ class Foreman < RailsAppGenerator::Addon
8
8
  def apply
9
9
  template '.foreman.erb', '.foreman'
10
10
  template 'Procfile.erb', 'Procfile'
@@ -4,7 +4,7 @@ module RailsAppGenerator
4
4
  # Custom add-ons for RailsAppGenerator
5
5
  module AddOns
6
6
  # Add Rails Generator configuration to rails application
7
- class Generators < AddOn
7
+ class Generators < RailsAppGenerator::Addon
8
8
  def apply
9
9
  directory('lib/generators/rails/navigation', 'lib/generators/rails/navigation') if uses?(:views)
10
10
 
@@ -4,7 +4,7 @@ module RailsAppGenerator
4
4
  # Custom add-ons for RailsAppGenerator
5
5
  module AddOns
6
6
  # Add Groupdate to rails application
7
- class Groupdate < AddOn
7
+ class Groupdate < RailsAppGenerator::Addon
8
8
  required_gem gem.version('groupdate', '6.1.0', 'The simplest way to group temporal data')
9
9
 
10
10
  # NOTE: in the examples, the Groupdate gem is used in conjunction with Chartkick.
@@ -4,7 +4,7 @@ module RailsAppGenerator
4
4
  # Custom add-ons for RailsAppGenerator
5
5
  module AddOns
6
6
  # Add Hexapdf to rails application
7
- class Hexapdf < AddOn
7
+ class Hexapdf < RailsAppGenerator::Addon
8
8
  required_gem gem.version('hexapdf', '0.24.0', 'HexaPDF is a pure Ruby library with an accompanying application for working with PDF files.')
9
9
 
10
10
  def apply; end
@@ -4,7 +4,7 @@ module RailsAppGenerator
4
4
  # Custom add-ons for RailsAppGenerator
5
5
  module AddOns
6
6
  # Add High Voltage rails engine for static pages.
7
- class HighVoltage < AddOn
7
+ class HighVoltage < RailsAppGenerator::Addon
8
8
  depends_on :views
9
9
 
10
10
  def apply
@@ -4,7 +4,7 @@ module RailsAppGenerator
4
4
  # Custom add-ons for RailsAppGenerator
5
5
  module AddOns
6
6
  # Add Honeybadger to rails application
7
- class Honeybadger < AddOn
7
+ class Honeybadger < RailsAppGenerator::Addon
8
8
  required_gem gem.version('honeybadger', '4.12.1', 'Make managing application errors a more pleasant experience.')
9
9
 
10
10
  def apply
@@ -4,7 +4,7 @@ module RailsAppGenerator
4
4
  # Custom add-ons for RailsAppGenerator
5
5
  module AddOns
6
6
  # Add Httparty to rails application
7
- class Httparty < AddOn
7
+ class Httparty < RailsAppGenerator::Addon
8
8
  required_gem gem.version('httparty', '0.20.0', 'Makes http fun! Also, makes consuming restful web services dead easy.')
9
9
 
10
10
  def apply; end
@@ -4,7 +4,7 @@ module RailsAppGenerator
4
4
  # Custom add-ons for RailsAppGenerator
5
5
  module AddOns
6
6
  # Add InlineSvg support to rails application
7
- class InlineSvg < AddOn
7
+ class InlineSvg < RailsAppGenerator::Addon
8
8
  depends_on :views
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module RailsAppGenerator
4
4
  # Custom add-ons for RailsAppGenerator
5
5
  module AddOns
6
6
  # Add IrbRc to rails application
7
- class Irbrc < RailsAppGenerator::AddOn
7
+ class Irbrc < RailsAppGenerator::Addon
8
8
  def apply
9
9
  template '.irbrc.erb', '.irbrc'
10
10
  end
@@ -4,7 +4,7 @@ module RailsAppGenerator
4
4
  # Custom add-ons for RailsAppGenerator
5
5
  module AddOns
6
6
  # Add LogRage - Tame Rails' multi-line logging into a single line per request
7
- class Lograge < AddOn
7
+ class Lograge < RailsAppGenerator::Addon
8
8
  def apply
9
9
  template 'config/initializers/lograge.rb'
10
10
  end
@@ -4,7 +4,7 @@ module RailsAppGenerator
4
4
  # Custom add-ons for RailsAppGenerator
5
5
  module AddOns
6
6
  # Add MiniMagick to rails application
7
- class MiniMagick < AddOn
7
+ class MiniMagick < RailsAppGenerator::Addon
8
8
  required_gem gem.version('mini_magick', '4.11.0', 'Manipulate images with minimal use of memory via ImageMagick / GraphicsMagick')
9
9
 
10
10
  def apply; end
@@ -6,7 +6,7 @@ module RailsAppGenerator
6
6
  # Add Pundit - Pundit provides a set of helpers which guide you in
7
7
  # leveraging regular Ruby classes and object oriented design patterns
8
8
  # to build a simple, robust and scalable authorization system.
9
- class Pundit < AddOn
9
+ class Pundit < RailsAppGenerator::Addon
10
10
  def apply
11
11
  directory 'app/policies', 'app/policies'
12
12
  template 'app/controllers/authorized_controller.rb.erb', 'app/controllers/authorized_controller.rb'
@@ -4,7 +4,7 @@ module RailsAppGenerator
4
4
  # Custom add-ons for RailsAppGenerator
5
5
  module AddOns
6
6
  # Add Rails HTML Sanitizer
7
- class RailsHtmlSanitizer < AddOn
7
+ class RailsHtmlSanitizer < RailsAppGenerator::Addon
8
8
  required_gem gem.version('rails-html-sanitizer', '1.4.3',
9
9
  'Rails Html Sanitizers are responsible for sanitizing HTML fragments in Rails applications, i.e. in the sanitize, sanitize_css, strip_tags and strip_links methods')
10
10
 
@@ -4,7 +4,7 @@ module RailsAppGenerator
4
4
  # Custom add-ons for RailsAppGenerator
5
5
  module AddOns
6
6
  # Add RSpec unit testing support to rails application
7
- class Rspec < AddOn
7
+ class Rspec < RailsAppGenerator::Addon
8
8
  depends_on :test
9
9
 
10
10
  def apply
@@ -4,7 +4,7 @@ module RailsAppGenerator
4
4
  # Custom add-ons for RailsAppGenerator
5
5
  module AddOns
6
6
  # Add Rubocop to rails application
7
- class Rubocop < AddOn
7
+ class Rubocop < RailsAppGenerator::Addon
8
8
  def apply
9
9
  template '.rubocop.yml.erb', '.rubocop.yml'
10
10
  end
@@ -4,7 +4,7 @@ module RailsAppGenerator
4
4
  # Custom add-ons for RailsAppGenerator
5
5
  module AddOns
6
6
  # Add Tailwind CSS support to rails application
7
- class Scaffold < AddOn
7
+ class Scaffold < RailsAppGenerator::Addon
8
8
  depends_on :tailwind
9
9
 
10
10
  def apply
@@ -4,7 +4,7 @@ module RailsAppGenerator
4
4
  # Custom add-ons for RailsAppGenerator
5
5
  module AddOns
6
6
  # Add DotEnv to rails application
7
- class Services < AddOn
7
+ class Services < RailsAppGenerator::Addon
8
8
  def apply
9
9
  directory 'app/services', 'app/services'
10
10
  end
@@ -6,9 +6,9 @@ module RailsAppGenerator
6
6
  # Add Sidekiq to rails application
7
7
  #
8
8
  # Sidekiq is a job server that can be used to process jobs in the background.
9
- # `Sidekiq` is a subclass of `AddOn` that adds a `apply` method that says "setup sidekiq" and
9
+ # `Sidekiq` is a subclass of `Addon` that adds a `apply` method that says "setup sidekiq" and
10
10
  # copies the `app/workers` directory from the `templates` directory to the `app` directory
11
- class Sidekiq < AddOn
11
+ class Sidekiq < RailsAppGenerator::Addon
12
12
  def apply
13
13
  say 'setup sidekiq'
14
14
  directory('app/workers', 'app/workers')
@@ -4,7 +4,7 @@ module RailsAppGenerator
4
4
  # Custom add-ons for RailsAppGenerator
5
5
  module AddOns
6
6
  # Stimulus components
7
- class Stimulus < AddOn
7
+ class Stimulus < RailsAppGenerator::Addon
8
8
  depends_on :javascript
9
9
 
10
10
  def apply
@@ -4,7 +4,7 @@ module RailsAppGenerator
4
4
  # Custom add-ons for RailsAppGenerator
5
5
  module AddOns
6
6
  # Stimulus components
7
- class StimulusComponents < AddOn
7
+ class StimulusComponents < RailsAppGenerator::Addon
8
8
  depends_on :stimulus
9
9
 
10
10
  def apply
@@ -4,7 +4,7 @@ module RailsAppGenerator
4
4
  # Custom add-ons for RailsAppGenerator
5
5
  module AddOns
6
6
  # Add Tailwind CSS support to rails application
7
- class Tailwind < AddOn
7
+ class Tailwind < RailsAppGenerator::Addon
8
8
  depends_on :javascript
9
9
 
10
10
  def apply
@@ -4,7 +4,7 @@ module RailsAppGenerator
4
4
  # Custom add-ons for RailsAppGenerator
5
5
  module AddOns
6
6
  # Add default rails views
7
- class Views < AddOn
7
+ class Views < RailsAppGenerator::Addon
8
8
  depends_on :tailwind
9
9
 
10
10
  def apply
@@ -487,7 +487,7 @@ module RailsAppGenerator
487
487
 
488
488
  if addon_instance.uses?
489
489
  addon_instance.apply
490
- @addon_instances << addon_instance
490
+ @addon_instances << RailsAppGenerator::Addon_instance
491
491
  end
492
492
  end
493
493
  end
@@ -526,7 +526,7 @@ module RailsAppGenerator
526
526
  def uses?(addon)
527
527
  return false unless active?(addon)
528
528
 
529
- addon = AddOn.get(addon)
529
+ addon = AddonUtil.get(addon)
530
530
  Dependencies.new(addon, context).satisfied?
531
531
  end
532
532
 
@@ -538,11 +538,11 @@ module RailsAppGenerator
538
538
  end
539
539
  end
540
540
 
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
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
546
 
547
547
  def active_addon_classes
548
548
  addon_classes.select { |klass| active?(klass.addon_name) }
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsAppGenerator
4
- # Context passes
4
+ # Context stores the template folder and options
5
5
  class Context
6
6
  attr_reader :rails_template_path
7
7
  attr_reader :rails_override_template_path
@@ -24,8 +24,8 @@ module RailsAppGenerator
24
24
 
25
25
  return true if @context.default_addons.include?(addon)
26
26
 
27
- visited << addon
28
- dependencies = AddOn.get(addon).dependencies - visited
27
+ visited << RailsAppGenerator::Addon
28
+ dependencies = AddonUtil.get(addon).dependencies - visited
29
29
  dependencies.each do |dependency|
30
30
  return false unless dependencies_satisfied?(dependency, visited)
31
31
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsAppGenerator
4
- VERSION = '0.1.26'
4
+ VERSION = '0.1.27'
5
5
  end
@@ -25,13 +25,15 @@ require 'rails_app_generator/options/options_builder'
25
25
  require 'rails_app_generator/options/rails_options'
26
26
  require 'rails_app_generator/context'
27
27
  require 'rails_app_generator/dependencies'
28
- require 'rails_app_generator/add_on'
29
- Dir[File.join(__dir__, 'rails_app_generator', 'addons', '*.rb')].sort.each { |file| require file }
28
+ require 'rails_app_generator/addon'
29
+ require 'rails_app_generator/addon_util'
30
30
  require 'rails_app_generator/formatted_gem_entry'
31
31
  require 'rails_app_generator/app_builder'
32
32
  require 'rails_app_generator/app_generator'
33
33
  require 'rails_app_generator/starter'
34
34
 
35
+ Dir[File.join(__dir__, 'rails_app_generator', 'addons', '*.rb')].sort.each { |file| require file }
36
+
35
37
  module RailsAppGenerator
36
38
  # raise RailsAppGenerator::Error, 'Sample message'
37
39
  Error = Class.new(StandardError)
data/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "rails_app_generator",
3
- "version": "0.1.26",
3
+ "version": "0.1.27",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "rails_app_generator",
9
- "version": "0.1.26",
9
+ "version": "0.1.27",
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.26",
3
+ "version": "0.1.27",
4
4
  "description": "Create new Rails Application with custom opinions",
5
5
  "scripts": {
6
6
  "release": "semantic-release"
data/tasks/addon.thor CHANGED
@@ -6,8 +6,8 @@ require 'net/http'
6
6
  require 'json'
7
7
  require_relative 'gem_info'
8
8
 
9
- # Thor task to create a new AddOn for Rails App Generator
10
- class AddOn < Thor
9
+ # Thor task to create a new Addon for Rails App Generator
10
+ class Addon < Thor
11
11
  include Thor::Actions
12
12
 
13
13
  source_root(File.expand_path('../templates/thor_task', File.dirname(__FILE__)))
@@ -27,9 +27,9 @@ class AddOn < Thor
27
27
 
28
28
  # method_option :from, :required => true
29
29
  desc 'new', 'Create a new Addon for Rails App Generator'
30
- method_option :gem , type: :string, default: nil, desc: 'Add required_gem helper to the AddOn. Gem name is looked up to find version and description'
30
+ method_option :gem , type: :string, default: nil, desc: 'Add required_gem helper to the Addon. Gem name is looked up to find version and description'
31
31
  method_option :force, type: :boolean, default: false, desc: 'Overwrite existing files'
32
- method_option :depends_on, type: :string, desc: 'This AddOn depends on another AddOn/Gem. active_record is a common dependency'
32
+ method_option :depends_on, type: :string, desc: 'This Addon depends on another Addon/Gem. active_record is a common dependency'
33
33
  def new(name)
34
34
  self.name = snake(name)
35
35
  self.data = build_data
@@ -11,7 +11,7 @@ module RailsAppGenerator
11
11
  # Custom add-ons for RailsAppGenerator
12
12
  module AddOns
13
13
  # Add <%= data.name_camel %> to rails application
14
- class <%= data.name_camel %> < AddOn
14
+ class <%= data.name_camel %> < RailsAppGenerator::Addon
15
15
  <%= data.addon_config_code %>
16
16
  def apply
17
17
  say 'Setting up <%= data.name_camel %>'
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.26
4
+ version: 0.1.27
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Cruwys
@@ -365,7 +365,8 @@ files:
365
365
  - docs/videos.md
366
366
  - exe/rag
367
367
  - lib/rails_app_generator.rb
368
- - lib/rails_app_generator/add_on.rb
368
+ - lib/rails_app_generator/addon.rb
369
+ - lib/rails_app_generator/addon_util.rb
369
370
  - lib/rails_app_generator/addons/acts_as_list.rb
370
371
  - lib/rails_app_generator/addons/annotate.rb
371
372
  - lib/rails_app_generator/addons/browser.rb
@@ -399,7 +400,6 @@ files:
399
400
  - lib/rails_app_generator/addons/stimulus_components.rb
400
401
  - lib/rails_app_generator/addons/tailwind.rb
401
402
  - lib/rails_app_generator/addons/views.rb
402
- - lib/rails_app_generator/addons/xmen.rb
403
403
  - lib/rails_app_generator/app_builder.rb
404
404
  - lib/rails_app_generator/app_generator.rb
405
405
  - lib/rails_app_generator/cli/diff.rb
@@ -412,9 +412,6 @@ files:
412
412
  - lib/rails_app_generator/diff/processor.rb
413
413
  - lib/rails_app_generator/diff/report.rb
414
414
  - lib/rails_app_generator/formatted_gem_entry.rb
415
- - lib/rails_app_generator/generators/advisories_generator.rb
416
- - lib/rails_app_generator/generators/base.rb
417
- - lib/rails_app_generator/generators/foo_generator.rb
418
415
  - lib/rails_app_generator/notes/commands-list.txt
419
416
  - lib/rails_app_generator/notes/methods-class.txt
420
417
  - lib/rails_app_generator/notes/methods-instance.txt
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module RailsAppGenerator
4
- # Custom add-ons for RailsAppGenerator
5
- module AddOns
6
- # Add Xmen to rails application
7
- class Xmen < AddOn
8
- # depends_on :active_record
9
-
10
- # required_gem gem.version('annotate', '3.2.0', 'Annotates Rails/ActiveRecord Models, routes, fixtures, and others based on the database schema.')
11
-
12
- def apply
13
- template('auto_annotate_models.rake', 'lib/tasks/auto_annotate_models.rake', force: true)
14
- end
15
- end
16
- end
17
- end
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative 'base'
4
-
5
- module RailsAppGenerator
6
- # xxxx
7
- class AdvisoriesGenerator < Generators::Base
8
- def bundler_audit_gem
9
- gem 'bundler-audit', '>= 0.7.0', require: false, group: %i[development test]
10
- Bundler.with_unbundled_env { run 'bundle install' }
11
- end
12
-
13
- def rake_task
14
- copy_file 'bundler_audit.rake', 'lib/tasks/bundler_audit.rake'
15
- append_file 'Rakefile', %(\ntask default: "bundle:audit"\n)
16
- end
17
- end
18
- end
@@ -1,60 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # require "rails/generators"
4
- # require_relative "../actions"
5
-
6
- module RailsAppGenerator
7
- module Generators
8
- class Base < Rails::Generators::Base
9
- # include Suspenders::Actions
10
- # include ExitOnFailure
11
-
12
- # def self.default_source_root
13
- # File.expand_path(File.join("..", "..", "..", "templates"), __dir__)
14
- # end
15
-
16
- # def self.inherited(subclass)
17
- # super
18
-
19
- # description_file = File.expand_path(
20
- # File.join(
21
- # default_source_root,
22
- # "descriptions",
23
- # "#{subclass.generator_name}.md"
24
- # )
25
- # )
26
-
27
- # subclass.desc File.read(description_file)
28
- # rescue Errno::ENOENT
29
- # end
30
-
31
- # def app_name
32
- # Rails.app_class.module_parent_name.demodulize.underscore.dasherize
33
- # end
34
-
35
- # def empty_directory_with_keep_file(destination)
36
- # empty_directory(destination, {})
37
- # keep_file(destination)
38
- # end
39
-
40
- # def keep_file(destination)
41
- # create_file(File.join(destination, ".keep"))
42
- # end
43
-
44
- # def append_template_to_file(destination, source, *args)
45
- # partial = File.expand_path(find_in_source_paths(source))
46
- # append_to_file(destination, File.read(partial, *args))
47
- # end
48
-
49
- # def prepend_template_to_file(destination, source, *args)
50
- # partial = File.expand_path(find_in_source_paths(source))
51
- # prepend_to_file(destination, File.read(partial, *args))
52
- # end
53
-
54
- # def inject_template_into_file(destination, source, *args)
55
- # partial = File.expand_path(find_in_source_paths(source))
56
- # inject_into_file(destination, File.read(partial), *args)
57
- # end
58
- end
59
- end
60
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative 'base'
4
-
5
- # Some comment
6
- module RailsAppGenerator
7
- # xxx
8
- class FooGenerator < Generators::Base
9
- def bundler_audit_gem
10
- puts '11111111111'
11
- end
12
-
13
- def rake_task
14
- puts '22222222222'
15
- end
16
- end
17
- end