rails_app_generator 0.1.24 → 0.1.27
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +22 -0
- data/after_templates/addons/httparty/_.rb +41 -0
- data/after_templates/addons/httparty/app/controllers/home_controller.rb +37 -0
- data/after_templates/addons/httparty/app/views/home/index.html.erb +11 -0
- data/after_templates/addons/httparty/app/views/home/questions.html.erb +7 -0
- data/after_templates/addons/httparty/app/views/home/users.html.erb +7 -0
- data/after_templates/addons/httparty/app/views/layouts/_alerts.html.erb +2 -0
- data/after_templates/addons/httparty/app/views/layouts/_footer.html.erb +3 -0
- data/after_templates/addons/httparty/app/views/layouts/_navbar.html.erb +6 -0
- data/after_templates/addons/httparty/app/views/layouts/application.html.erb +28 -0
- data/after_templates/addons/mini_magick/_.rb +28 -0
- data/after_templates/addons/mini_magick/app/assets/images/cat1.jpg +0 -0
- data/after_templates/addons/mini_magick/app/assets/images/cat2.jpg +0 -0
- data/after_templates/addons/mini_magick/app/assets/images/cat3.jpg +0 -0
- data/after_templates/addons/mini_magick/app/controllers/home_controller.rb +43 -0
- data/after_templates/addons/mini_magick/app/views/home/index.html.erb +25 -0
- data/after_templates/addons/mini_magick/app/views/layouts/_alerts.html.erb +2 -0
- data/after_templates/addons/mini_magick/app/views/layouts/_footer.html.erb +3 -0
- data/after_templates/addons/mini_magick/app/views/layouts/_navbar.html.erb +2 -0
- data/after_templates/addons/mini_magick/app/views/layouts/application.html.erb +28 -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 +13 -0
- 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 +11 -9
- data/lib/rails_app_generator/context.rb +1 -1
- data/lib/rails_app_generator/dependencies.rb +2 -2
- data/lib/rails_app_generator/options/rails_options.rb +1 -0
- 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/profiles/addons/httparty.json +12 -0
- data/profiles/addons/mini_magick.json +12 -0
- data/tasks/addon.thor +4 -4
- data/templates/thor_task/addon/addon.tt +1 -1
- data/templates/thor_task/profile/app/views/layouts/_navbar.html.erb +1 -0
- metadata +25 -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,25 @@
|
|
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
|
+
|
9
|
+
## [0.1.25](https://github.com/klueless-io/rails_app_generator/compare/v0.1.24...v0.1.25) (2022-08-06)
|
10
|
+
|
11
|
+
|
12
|
+
### Bug Fixes
|
13
|
+
|
14
|
+
* addon mini_magick ([7897e60](https://github.com/klueless-io/rails_app_generator/commit/7897e60e6aaa63813135251f7337b0dab23525a5))
|
15
|
+
|
16
|
+
## [0.1.24](https://github.com/klueless-io/rails_app_generator/compare/v0.1.23...v0.1.24) (2022-08-06)
|
17
|
+
|
18
|
+
|
19
|
+
### Bug Fixes
|
20
|
+
|
21
|
+
* remove addon rest-client ([28ff657](https://github.com/klueless-io/rails_app_generator/commit/28ff65783e9d80c436bd291a9f1578e62e99f08c))
|
22
|
+
|
1
23
|
## [0.1.23](https://github.com/klueless-io/rails_app_generator/compare/v0.1.22...v0.1.23) (2022-08-06)
|
2
24
|
|
3
25
|
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# require 'pry'
|
4
|
+
|
5
|
+
# Makes http fun! Also, makes consuming restful web services dead easy.
|
6
|
+
#
|
7
|
+
# exe/rag addons/httparty
|
8
|
+
|
9
|
+
self.local_template_path = File.dirname(__FILE__)
|
10
|
+
|
11
|
+
gac 'base rails 7 image created'
|
12
|
+
|
13
|
+
add_controller('home', 'index', 'questions', 'users')
|
14
|
+
route("root 'home#index'")
|
15
|
+
# route("get 'home/stack_overflow'")
|
16
|
+
|
17
|
+
force_copy
|
18
|
+
|
19
|
+
copy_file 'app/controllers/home_controller.rb' , 'app/controllers/home_controller.rb'
|
20
|
+
copy_file 'app/views/home/index.html.erb' , 'app/views/home/index.html.erb'
|
21
|
+
copy_file 'app/views/home/questions.html.erb' , 'app/views/home/questions.html.erb'
|
22
|
+
copy_file 'app/views/home/users.html.erb' , 'app/views/home/users.html.erb'
|
23
|
+
|
24
|
+
copy_file 'app/views/layouts/_alerts.html.erb' , 'app/views/layouts/_alerts.html.erb'
|
25
|
+
copy_file 'app/views/layouts/_navbar.html.erb' , 'app/views/layouts/_navbar.html.erb'
|
26
|
+
copy_file 'app/views/layouts/_footer.html.erb' , 'app/views/layouts/_footer.html.erb'
|
27
|
+
template 'app/views/layouts/application.html.erb' , 'app/views/layouts/application.html.erb'
|
28
|
+
|
29
|
+
# Other template command examples
|
30
|
+
# css_install('tailwind')
|
31
|
+
# rails_command('db:migrate')
|
32
|
+
# bundle_add('hotwire-rails')
|
33
|
+
# rails_command('hotwire:install')
|
34
|
+
# run('bin/importmap pin sortablejs')
|
35
|
+
# run('npm install daisyui')
|
36
|
+
# create_file 'app/assets/stylesheets/custom-bootstrap-import.scss' , read_template('custom-bootstrap-import.scss')
|
37
|
+
# append_to_file 'app/assets/config/manifest.js' , read_template('manifest.js')
|
38
|
+
# insert_into_file 'app/views/layouts/application.html.erb', read_template('application.html.erb'),
|
39
|
+
# before: %( <%= javascript_include_tag "application", "data-turbo-track": "reload", defer: true %>)
|
40
|
+
# gsub_file 'app/views/layouts/application.html.erb', %(container mx-auto mt-28 px-5 flex), 'container mx-auto px-5'
|
41
|
+
# template 'home.css', 'app/assets/stylesheets/home.css'
|
@@ -0,0 +1,37 @@
|
|
1
|
+
class HomeController < ApplicationController
|
2
|
+
def index
|
3
|
+
end
|
4
|
+
|
5
|
+
def questions
|
6
|
+
@questions = StackExchange.new("stackoverflow", 1).questions
|
7
|
+
@questions = clean_data(@questions)
|
8
|
+
end
|
9
|
+
|
10
|
+
def users
|
11
|
+
@users = StackExchange.new("stackoverflow", 1).users
|
12
|
+
@users = clean_data(@users)
|
13
|
+
end
|
14
|
+
|
15
|
+
def clean_data(data)
|
16
|
+
encode_utf8 = data.to_json.encode('UTF-8', invalid: :replace, undef: :replace)
|
17
|
+
JSON.parse(encode_utf8)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
class StackExchange
|
22
|
+
include HTTParty
|
23
|
+
base_uri 'api.stackexchange.com'
|
24
|
+
|
25
|
+
def initialize(service, page)
|
26
|
+
@options = { query: { site: service, page: page } }
|
27
|
+
end
|
28
|
+
|
29
|
+
def questions
|
30
|
+
self.class.get("/2.2/questions", @options)
|
31
|
+
end
|
32
|
+
|
33
|
+
def users
|
34
|
+
self.class.get("/2.2/users", @options)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<style>
|
2
|
+
.alert { color: red; }
|
3
|
+
.notice { color: green; }
|
4
|
+
</style>
|
5
|
+
|
6
|
+
<% flash.each do |type, msg| %><div class="<%= type %>"><%= msg %></div><% end %>
|
7
|
+
<% if flash.any? %><hr /><% end %>
|
8
|
+
|
9
|
+
<h1>Httparty</h1>
|
10
|
+
|
11
|
+
<h2>Makes http fun! Also, makes consuming restful web services dead easy.</h2>
|
@@ -0,0 +1,28 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title><%= camelized %></title>
|
5
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
6
|
+
<%%= csrf_meta_tags %>
|
7
|
+
<%%= csp_meta_tag %>
|
8
|
+
|
9
|
+
<%- if options[:skip_hotwire] || options[:skip_javascript] -%>
|
10
|
+
<%%= stylesheet_link_tag "application" %>
|
11
|
+
<%- else -%>
|
12
|
+
<%%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
|
13
|
+
<%- end -%>
|
14
|
+
<style>
|
15
|
+
.alert { color: red; }
|
16
|
+
.notice { color: green; }
|
17
|
+
</style>
|
18
|
+
</head>
|
19
|
+
|
20
|
+
<body>
|
21
|
+
<%%= render 'layouts/navbar' %>
|
22
|
+
<main>
|
23
|
+
<%%= render 'layouts/alerts' %>
|
24
|
+
<%%= yield %>
|
25
|
+
</main>
|
26
|
+
<%%= render 'layouts/footer' %>
|
27
|
+
</body>
|
28
|
+
</html>
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# require 'pry'
|
4
|
+
|
5
|
+
# Manipulate images with minimal use of memory via ImageMagick / GraphicsMagick
|
6
|
+
#
|
7
|
+
# exe/rag addons/mini_magick
|
8
|
+
|
9
|
+
self.local_template_path = File.dirname(__FILE__)
|
10
|
+
|
11
|
+
gac 'base rails 7 image created'
|
12
|
+
|
13
|
+
add_controller('home', 'index')
|
14
|
+
route("root 'home#index'")
|
15
|
+
|
16
|
+
force_copy
|
17
|
+
|
18
|
+
copy_file 'app/controllers/home_controller.rb' , 'app/controllers/home_controller.rb'
|
19
|
+
copy_file 'app/views/home/index.html.erb' , 'app/views/home/index.html.erb'
|
20
|
+
|
21
|
+
copy_file 'app/views/layouts/_alerts.html.erb' , 'app/views/layouts/_alerts.html.erb'
|
22
|
+
copy_file 'app/views/layouts/_navbar.html.erb' , 'app/views/layouts/_navbar.html.erb'
|
23
|
+
copy_file 'app/views/layouts/_footer.html.erb' , 'app/views/layouts/_footer.html.erb'
|
24
|
+
template 'app/views/layouts/application.html.erb' , 'app/views/layouts/application.html.erb'
|
25
|
+
|
26
|
+
copy_file 'app/assets/images/cat1.jpg' , 'app/assets/images/cat1.jpg'
|
27
|
+
copy_file 'app/assets/images/cat2.jpg' , 'app/assets/images/cat2.jpg'
|
28
|
+
copy_file 'app/assets/images/cat3.jpg' , 'app/assets/images/cat3.jpg'
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,43 @@
|
|
1
|
+
class HomeController < ApplicationController
|
2
|
+
def index
|
3
|
+
@img = get_image
|
4
|
+
|
5
|
+
@img_rotate = get_image do |options|
|
6
|
+
options.resize("300x300")
|
7
|
+
options.rotate "-45"
|
8
|
+
end
|
9
|
+
|
10
|
+
@img_negate = get_image do |options|
|
11
|
+
options.resize("300x300")
|
12
|
+
options.negate
|
13
|
+
end
|
14
|
+
|
15
|
+
@img_distort = get_image do |options|
|
16
|
+
options.resize("300x300")
|
17
|
+
options.distort("Perspective", "0,0,0,0 0,45,0,45 69,0,60,10 69,45,60,35")
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def image_name
|
24
|
+
@variable ||= begin
|
25
|
+
image_names = [
|
26
|
+
'cat1.jpg',
|
27
|
+
'cat2.jpg',
|
28
|
+
'cat3.jpg'
|
29
|
+
]
|
30
|
+
|
31
|
+
"app/assets/images/#{image_names.sample}"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def get_image(&block)
|
36
|
+
puts image_name
|
37
|
+
image = MiniMagick::Image.open(image_name)
|
38
|
+
image.combine_options(&block)
|
39
|
+
|
40
|
+
Base64.encode64(image.to_blob)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<h1>Mini magick</h1>
|
2
|
+
|
3
|
+
<h2>Manipulate images with minimal use of memory via ImageMagick / GraphicsMagick</h2>
|
4
|
+
|
5
|
+
<table>
|
6
|
+
<tr>
|
7
|
+
<td>
|
8
|
+
<h3>Plain</h3>
|
9
|
+
<%= image_tag "data://image/png;base64,#{@img}" %>
|
10
|
+
</td>
|
11
|
+
<td>
|
12
|
+
<h3>Rotate</h3>
|
13
|
+
<%= image_tag "data://image/png;base64,#{@img_rotate}" %>
|
14
|
+
</td>
|
15
|
+
<td>
|
16
|
+
<h3>Negate</h3>
|
17
|
+
<%= image_tag "data://image/png;base64,#{@img_negate}" %>
|
18
|
+
</td>
|
19
|
+
<td>
|
20
|
+
<h3>Distort</h3>
|
21
|
+
<%= image_tag "data://image/png;base64,#{@img_distort}" %>
|
22
|
+
</td>
|
23
|
+
</tr>
|
24
|
+
</table>
|
25
|
+
|
@@ -0,0 +1,28 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title><%= camelized %></title>
|
5
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
6
|
+
<%%= csrf_meta_tags %>
|
7
|
+
<%%= csp_meta_tag %>
|
8
|
+
|
9
|
+
<%- if options[:skip_hotwire] || options[:skip_javascript] -%>
|
10
|
+
<%%= stylesheet_link_tag "application" %>
|
11
|
+
<%- else -%>
|
12
|
+
<%%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
|
13
|
+
<%- end -%>
|
14
|
+
<style>
|
15
|
+
.alert { color: red; }
|
16
|
+
.notice { color: green; }
|
17
|
+
</style>
|
18
|
+
</head>
|
19
|
+
|
20
|
+
<body>
|
21
|
+
<%%= render 'layouts/navbar' %>
|
22
|
+
<main>
|
23
|
+
<%%= render 'layouts/alerts' %>
|
24
|
+
<%%= yield %>
|
25
|
+
</main>
|
26
|
+
<%%= render 'layouts/footer' %>
|
27
|
+
</body>
|
28
|
+
</html>
|
@@ -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
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RailsAppGenerator
|
4
|
+
# Custom add-ons for RailsAppGenerator
|
5
|
+
module AddOns
|
6
|
+
# Add MiniMagick to rails application
|
7
|
+
class MiniMagick < RailsAppGenerator::Addon
|
8
|
+
required_gem gem.version('mini_magick', '4.11.0', 'Manipulate images with minimal use of memory via ImageMagick / GraphicsMagick')
|
9
|
+
|
10
|
+
def apply; end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
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')
|
@@ -148,12 +148,13 @@ module RailsAppGenerator
|
|
148
148
|
class_option :add_acts_as_list , type: :boolean, default: false
|
149
149
|
class_option :add_browser , type: :boolean, default: false
|
150
150
|
class_option :add_chartkick , type: :boolean, default: false
|
151
|
-
class_option :add_groupdate , type: :boolean, default: false
|
152
151
|
class_option :add_faker , type: :boolean, default: false
|
152
|
+
class_option :add_groupdate , type: :boolean, default: false
|
153
153
|
class_option :add_hexapdf , type: :boolean, default: false
|
154
|
+
class_option :add_httparty , type: :boolean, default: false
|
154
155
|
class_option :add_honeybadger , type: :boolean, default: false
|
156
|
+
class_option :add_mini_magick , type: :boolean, default: false
|
155
157
|
class_option :add_rails_html_sanitizer , type: :boolean, default: false
|
156
|
-
class_option :add_httparty , type: :boolean, default: false
|
157
158
|
class_option :add_twilio_ruby , type: :boolean, default: false
|
158
159
|
|
159
160
|
class << self
|
@@ -309,6 +310,7 @@ module RailsAppGenerator
|
|
309
310
|
add_if(:high_voltage)
|
310
311
|
add_if(:honeybadger)
|
311
312
|
add_if(:lograge)
|
313
|
+
add_if(:mini_magick)
|
312
314
|
add_if(:pundit)
|
313
315
|
add_if(:rails_app_generator)
|
314
316
|
add_if(:services)
|
@@ -485,7 +487,7 @@ module RailsAppGenerator
|
|
485
487
|
|
486
488
|
if addon_instance.uses?
|
487
489
|
addon_instance.apply
|
488
|
-
@addon_instances <<
|
490
|
+
@addon_instances << RailsAppGenerator::Addon_instance
|
489
491
|
end
|
490
492
|
end
|
491
493
|
end
|
@@ -524,7 +526,7 @@ module RailsAppGenerator
|
|
524
526
|
def uses?(addon)
|
525
527
|
return false unless active?(addon)
|
526
528
|
|
527
|
-
addon =
|
529
|
+
addon = AddonUtil.get(addon)
|
528
530
|
Dependencies.new(addon, context).satisfied?
|
529
531
|
end
|
530
532
|
|
@@ -536,11 +538,11 @@ module RailsAppGenerator
|
|
536
538
|
end
|
537
539
|
end
|
538
540
|
|
539
|
-
def addon_classes
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
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
|
544
546
|
|
545
547
|
def active_addon_classes
|
546
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
|
@@ -67,6 +67,7 @@ module RailsAppGenerator
|
|
67
67
|
register_option :add_hexapdf , type: :boolean, default: false
|
68
68
|
register_option :add_httparty , type: :boolean, default: false
|
69
69
|
register_option :add_honeybadger , type: :boolean, default: false
|
70
|
+
register_option :add_mini_magick , type: :boolean, default: false
|
70
71
|
register_option :add_rails_html_sanitizer , type: :boolean, default: false
|
71
72
|
register_option :add_twilio_ruby , type: :boolean, default: false
|
72
73
|
|
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
@@ -0,0 +1,12 @@
|
|
1
|
+
{
|
2
|
+
"args": {
|
3
|
+
"app_path": "httparty",
|
4
|
+
"destination_root": "/Users/davidcruwys/dev/kgems/rails_app_generator/a/addons"
|
5
|
+
},
|
6
|
+
"opts": {
|
7
|
+
"skip_git": true,
|
8
|
+
"skip_test": true,
|
9
|
+
"template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/httparty/_.rb",
|
10
|
+
"add_httparty": true
|
11
|
+
}
|
12
|
+
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
{
|
2
|
+
"args": {
|
3
|
+
"app_path": "mini_magick",
|
4
|
+
"destination_root": "/Users/davidcruwys/dev/kgems/rails_app_generator/a/addons"
|
5
|
+
},
|
6
|
+
"opts": {
|
7
|
+
"skip_git": true,
|
8
|
+
"skip_test": true,
|
9
|
+
"template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/mini_magick/_.rb",
|
10
|
+
"add_mini_magick": true
|
11
|
+
}
|
12
|
+
}
|
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
|
@@ -209,6 +209,25 @@ files:
|
|
209
209
|
- after_templates/addons/honeybadger/app/views/home/index.html.erb
|
210
210
|
- after_templates/addons/honeybadger/public/404.html
|
211
211
|
- after_templates/addons/honeybadger/public/500.html
|
212
|
+
- after_templates/addons/httparty/_.rb
|
213
|
+
- after_templates/addons/httparty/app/controllers/home_controller.rb
|
214
|
+
- after_templates/addons/httparty/app/views/home/index.html.erb
|
215
|
+
- after_templates/addons/httparty/app/views/home/questions.html.erb
|
216
|
+
- after_templates/addons/httparty/app/views/home/users.html.erb
|
217
|
+
- after_templates/addons/httparty/app/views/layouts/_alerts.html.erb
|
218
|
+
- after_templates/addons/httparty/app/views/layouts/_footer.html.erb
|
219
|
+
- after_templates/addons/httparty/app/views/layouts/_navbar.html.erb
|
220
|
+
- after_templates/addons/httparty/app/views/layouts/application.html.erb
|
221
|
+
- after_templates/addons/mini_magick/_.rb
|
222
|
+
- after_templates/addons/mini_magick/app/assets/images/cat1.jpg
|
223
|
+
- after_templates/addons/mini_magick/app/assets/images/cat2.jpg
|
224
|
+
- after_templates/addons/mini_magick/app/assets/images/cat3.jpg
|
225
|
+
- after_templates/addons/mini_magick/app/controllers/home_controller.rb
|
226
|
+
- after_templates/addons/mini_magick/app/views/home/index.html.erb
|
227
|
+
- after_templates/addons/mini_magick/app/views/layouts/_alerts.html.erb
|
228
|
+
- after_templates/addons/mini_magick/app/views/layouts/_footer.html.erb
|
229
|
+
- after_templates/addons/mini_magick/app/views/layouts/_navbar.html.erb
|
230
|
+
- after_templates/addons/mini_magick/app/views/layouts/application.html.erb
|
212
231
|
- after_templates/addons/rails_html_sanitizer/_.rb
|
213
232
|
- after_templates/addons/rails_html_sanitizer/home/index.html.erb
|
214
233
|
- after_templates/addons/twilio_ruby/_.rb
|
@@ -346,7 +365,8 @@ files:
|
|
346
365
|
- docs/videos.md
|
347
366
|
- exe/rag
|
348
367
|
- lib/rails_app_generator.rb
|
349
|
-
- lib/rails_app_generator/
|
368
|
+
- lib/rails_app_generator/addon.rb
|
369
|
+
- lib/rails_app_generator/addon_util.rb
|
350
370
|
- lib/rails_app_generator/addons/acts_as_list.rb
|
351
371
|
- lib/rails_app_generator/addons/annotate.rb
|
352
372
|
- lib/rails_app_generator/addons/browser.rb
|
@@ -368,6 +388,7 @@ files:
|
|
368
388
|
- lib/rails_app_generator/addons/inline_svg.rb
|
369
389
|
- lib/rails_app_generator/addons/irbrc.rb
|
370
390
|
- lib/rails_app_generator/addons/lograge.rb
|
391
|
+
- lib/rails_app_generator/addons/mini_magick.rb
|
371
392
|
- lib/rails_app_generator/addons/pundit.rb
|
372
393
|
- lib/rails_app_generator/addons/rails_html_sanitizer.rb
|
373
394
|
- lib/rails_app_generator/addons/rspec.rb
|
@@ -379,7 +400,6 @@ files:
|
|
379
400
|
- lib/rails_app_generator/addons/stimulus_components.rb
|
380
401
|
- lib/rails_app_generator/addons/tailwind.rb
|
381
402
|
- lib/rails_app_generator/addons/views.rb
|
382
|
-
- lib/rails_app_generator/addons/xmen.rb
|
383
403
|
- lib/rails_app_generator/app_builder.rb
|
384
404
|
- lib/rails_app_generator/app_generator.rb
|
385
405
|
- lib/rails_app_generator/cli/diff.rb
|
@@ -392,9 +412,6 @@ files:
|
|
392
412
|
- lib/rails_app_generator/diff/processor.rb
|
393
413
|
- lib/rails_app_generator/diff/report.rb
|
394
414
|
- lib/rails_app_generator/formatted_gem_entry.rb
|
395
|
-
- lib/rails_app_generator/generators/advisories_generator.rb
|
396
|
-
- lib/rails_app_generator/generators/base.rb
|
397
|
-
- lib/rails_app_generator/generators/foo_generator.rb
|
398
415
|
- lib/rails_app_generator/notes/commands-list.txt
|
399
416
|
- lib/rails_app_generator/notes/methods-class.txt
|
400
417
|
- lib/rails_app_generator/notes/methods-instance.txt
|
@@ -420,6 +437,8 @@ files:
|
|
420
437
|
- profiles/addons/faker.json
|
421
438
|
- profiles/addons/hexapdf.json
|
422
439
|
- profiles/addons/honeybadger.json
|
440
|
+
- profiles/addons/httparty.json
|
441
|
+
- profiles/addons/mini_magick.json
|
423
442
|
- profiles/addons/rails-html-sanitizer.json
|
424
443
|
- profiles/addons/twilio_ruby.json
|
425
444
|
- profiles/rag-add-some-pages.json
|
@@ -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
|