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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/lib/rails_app_generator/{add_on.rb → addon.rb} +2 -25
- data/lib/rails_app_generator/addon_util.rb +21 -0
- data/lib/rails_app_generator/addons/acts_as_list.rb +1 -1
- data/lib/rails_app_generator/addons/annotate.rb +1 -1
- data/lib/rails_app_generator/addons/browser.rb +1 -1
- data/lib/rails_app_generator/addons/chartkick.rb +1 -1
- data/lib/rails_app_generator/addons/continuous_integration.rb +1 -1
- data/lib/rails_app_generator/addons/devise.rb +1 -1
- data/lib/rails_app_generator/addons/docker.rb +1 -1
- data/lib/rails_app_generator/addons/docker_compose.rb +1 -1
- data/lib/rails_app_generator/addons/dotenv.rb +1 -1
- data/lib/rails_app_generator/addons/factory_bot.rb +1 -1
- data/lib/rails_app_generator/addons/faker.rb +1 -1
- data/lib/rails_app_generator/addons/foreman.rb +1 -1
- data/lib/rails_app_generator/addons/generators.rb +1 -1
- data/lib/rails_app_generator/addons/groupdate.rb +1 -1
- data/lib/rails_app_generator/addons/hexapdf.rb +1 -1
- data/lib/rails_app_generator/addons/high_voltage.rb +1 -1
- data/lib/rails_app_generator/addons/honeybadger.rb +1 -1
- data/lib/rails_app_generator/addons/httparty.rb +1 -1
- data/lib/rails_app_generator/addons/inline_svg.rb +1 -1
- data/lib/rails_app_generator/addons/irbrc.rb +1 -1
- data/lib/rails_app_generator/addons/lograge.rb +1 -1
- data/lib/rails_app_generator/addons/mini_magick.rb +1 -1
- data/lib/rails_app_generator/addons/pundit.rb +1 -1
- data/lib/rails_app_generator/addons/rails_html_sanitizer.rb +1 -1
- data/lib/rails_app_generator/addons/rspec.rb +1 -1
- data/lib/rails_app_generator/addons/rubocop.rb +1 -1
- data/lib/rails_app_generator/addons/scaffold.rb +1 -1
- data/lib/rails_app_generator/addons/services.rb +1 -1
- data/lib/rails_app_generator/addons/sidekiq.rb +2 -2
- data/lib/rails_app_generator/addons/stimulus.rb +1 -1
- data/lib/rails_app_generator/addons/stimulus_components.rb +1 -1
- data/lib/rails_app_generator/addons/tailwind.rb +1 -1
- data/lib/rails_app_generator/addons/views.rb +1 -1
- data/lib/rails_app_generator/app_generator.rb +7 -7
- data/lib/rails_app_generator/context.rb +1 -1
- data/lib/rails_app_generator/dependencies.rb +2 -2
- data/lib/rails_app_generator/version.rb +1 -1
- data/lib/rails_app_generator.rb +4 -2
- data/package-lock.json +2 -2
- data/package.json +1 -1
- data/tasks/addon.thor +4 -4
- data/templates/thor_task/addon/addon.tt +1 -1
- metadata +3 -6
- data/lib/rails_app_generator/addons/xmen.rb +0 -17
- data/lib/rails_app_generator/generators/advisories_generator.rb +0 -18
- data/lib/rails_app_generator/generators/base.rb +0 -60
- 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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5d949364a1e7bec61487eee0f93938ae622bb0af2e1ddf34ef019e799d1b1d20
|
|
4
|
+
data.tar.gz: a77a8801d4135ae83828cfec7efadc38a0c22004d76a2880745f53a25a79fd95
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
-
#
|
|
5
|
-
class
|
|
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 <
|
|
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 <
|
|
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 <
|
|
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 <
|
|
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 <
|
|
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 <
|
|
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 <
|
|
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 <
|
|
7
|
+
class DockerCompose < RailsAppGenerator::Addon
|
|
8
8
|
def apply
|
|
9
9
|
template 'docker-compose.yml.erb', 'docker-compose.yml'
|
|
10
10
|
end
|
|
@@ -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 <
|
|
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 <
|
|
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 <
|
|
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 <
|
|
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 <
|
|
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 Honeybadger to rails application
|
|
7
|
-
class Honeybadger <
|
|
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 <
|
|
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 LogRage - Tame Rails' multi-line logging into a single line per request
|
|
7
|
-
class Lograge <
|
|
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 <
|
|
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 <
|
|
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 <
|
|
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
|
|
|
@@ -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 `
|
|
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 <
|
|
11
|
+
class Sidekiq < RailsAppGenerator::Addon
|
|
12
12
|
def apply
|
|
13
13
|
say 'setup sidekiq'
|
|
14
14
|
directory('app/workers', 'app/workers')
|
|
@@ -487,7 +487,7 @@ module RailsAppGenerator
|
|
|
487
487
|
|
|
488
488
|
if addon_instance.uses?
|
|
489
489
|
addon_instance.apply
|
|
490
|
-
@addon_instances <<
|
|
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 =
|
|
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
|
-
|
|
543
|
-
|
|
544
|
-
|
|
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) }
|
|
@@ -24,8 +24,8 @@ module RailsAppGenerator
|
|
|
24
24
|
|
|
25
25
|
return true if @context.default_addons.include?(addon)
|
|
26
26
|
|
|
27
|
-
visited <<
|
|
28
|
-
dependencies =
|
|
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
|
data/lib/rails_app_generator.rb
CHANGED
|
@@ -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/
|
|
29
|
-
|
|
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.
|
|
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.
|
|
9
|
+
"version": "0.1.27",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"daisyui": "^2.20.0"
|
|
12
12
|
},
|
data/package.json
CHANGED
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
|
|
10
|
-
class
|
|
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
|
|
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
|
|
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 %> <
|
|
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.
|
|
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/
|
|
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
|