rails_app_generator 0.2.31 → 0.2.34
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 +22 -0
- data/after_templates/addons/brakeman/_.rb +1 -32
- data/after_templates/addons/bundler_audit/_.rb +31 -0
- data/after_templates/addons/bundler_audit/app/assets/images/brakeman.png +0 -0
- data/after_templates/addons/bundler_audit/app/assets/images/curl.png +0 -0
- data/after_templates/addons/bundler_audit/app/assets/images/output.png +0 -0
- data/after_templates/addons/bundler_audit/app/controllers/home_controller.rb +4 -0
- data/after_templates/addons/bundler_audit/app/views/home/advisories.html.erb +10 -0
- data/after_templates/addons/bundler_audit/app/views/home/index.html.erb +20 -0
- data/after_templates/addons/bundler_audit/app/views/layouts/_footer.html.erb +0 -0
- data/after_templates/addons/bundler_audit/app/views/layouts/_navbar.html.erb +3 -0
- data/after_templates/addons/bundler_audit/app/views/layouts/application.html.erb +29 -0
- data/after_templates/addons/kaminari/_.rb +70 -0
- data/after_templates/addons/kaminari/app/assets/images/kaminari-custom-views-detailed.png +0 -0
- data/after_templates/addons/kaminari/app/assets/images/kaminari-custom-views.png +0 -0
- data/after_templates/addons/kaminari/app/controllers/home_controller.rb +4 -0
- data/after_templates/addons/kaminari/app/controllers/posts_controller.rb +70 -0
- data/after_templates/addons/kaminari/app/views/home/index.html.erb +21 -0
- data/after_templates/addons/kaminari/app/views/layouts/_footer.html.erb +0 -0
- data/after_templates/addons/kaminari/app/views/layouts/_navbar.html.erb +3 -0
- data/after_templates/addons/kaminari/app/views/layouts/application.html.erb +34 -0
- data/after_templates/addons/kaminari/app/views/posts/index.html.erb +32 -0
- data/after_templates/addons/kaminari/db/seeds.rb +3 -0
- data/docs/last_run/app_generator_class.json +16 -0
- data/docs/last_run/app_generator_data.json +5 -3
- data/docs/last_run/rails_options_class.json +16 -0
- data/docs/last_run/rails_options_data.json +5 -3
- data/lib/rails_app_generator/addons/brakeman.rb +1 -0
- data/lib/rails_app_generator/addons/bundler_audit.rb +13 -0
- data/lib/rails_app_generator/addons/kaminari.rb +15 -0
- data/lib/rails_app_generator/app_generator.rb +2 -0
- data/lib/rails_app_generator/rag_initializer.rb +2 -0
- data/lib/rails_app_generator/version.rb +1 -1
- data/package-lock.json +2 -2
- data/package.json +1 -1
- data/profiles/addons/bundler_audit.json +13 -0
- data/profiles/addons/kaminari.json +14 -0
- data/templates/thor_task/profile/app/views/layouts/_footer.html.erb.tt +0 -1
- metadata +26 -2
- data/after_templates/addons/brakeman/db/seeds.rb +0 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7b3d7a66cf0c689a6ae83cdf1bf1222b0027b26b71099970c1e1025d04abb86e
|
|
4
|
+
data.tar.gz: 51a7736f7d181418b5385f72922d53ea4762e445f18946ca467e40ab9b41ae96
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d354a5e6692cab7168c879df4c44824b171c97a5699e3a5416f067ed0a40ee2910ad2cbf0e74a25ac94ac229d859a01dcf92f4689023405a352260cc2bf3258c
|
|
7
|
+
data.tar.gz: 9c65703baf6aef3a6c224c936a29847e5ba960ab9a0e7a86aa5620f9910801d7b8f6c1a69df9d8411555e274a597b181dd257bf485cb73b174be3a6a345a4e20
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
## [0.2.33](https://github.com/klueless-io/rails_app_generator/compare/v0.2.32...v0.2.33) (2022-08-19)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* add kaminari addon ([b57fd5b](https://github.com/klueless-io/rails_app_generator/commit/b57fd5bdda219852b659404660187cbd0d8ec5dc))
|
|
7
|
+
* add kaminari addon ([d5774ed](https://github.com/klueless-io/rails_app_generator/commit/d5774ed173b0d594e2228278c2d34edce3a80ac9))
|
|
8
|
+
|
|
9
|
+
## [0.2.32](https://github.com/klueless-io/rails_app_generator/compare/v0.2.31...v0.2.32) (2022-08-19)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
* add bundler-audit addon ([bb8c2bc](https://github.com/klueless-io/rails_app_generator/commit/bb8c2bce5b1925ffe0b4c745894d7cebfc25498d))
|
|
15
|
+
|
|
16
|
+
## [0.2.31](https://github.com/klueless-io/rails_app_generator/compare/v0.2.30...v0.2.31) (2022-08-19)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Bug Fixes
|
|
20
|
+
|
|
21
|
+
* add brakeman profile ([5cb8166](https://github.com/klueless-io/rails_app_generator/commit/5cb8166a4a1630edd07b7fcb70ca5eff6d2e7136))
|
|
22
|
+
|
|
1
23
|
## [0.2.30](https://github.com/klueless-io/rails_app_generator/compare/v0.2.29...v0.2.30) (2022-08-19)
|
|
2
24
|
|
|
3
25
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
#
|
|
3
|
+
# Brakeman is a static analysis security vulnerability scanner for Ruby on Rails applications
|
|
4
4
|
#
|
|
5
5
|
# exe/rag addons/brakeman
|
|
6
6
|
|
|
@@ -18,8 +18,6 @@ end
|
|
|
18
18
|
|
|
19
19
|
def scaffolds
|
|
20
20
|
add_scaffold('post', 'title', 'body:text')
|
|
21
|
-
# add_scaffold('people', 'first_name', 'last_name', 'age:integer', 'address:text')
|
|
22
|
-
# add_scaffold('product', 'name', 'price:integer')
|
|
23
21
|
end
|
|
24
22
|
|
|
25
23
|
def setup_customizations
|
|
@@ -36,35 +34,6 @@ def setup_customizations
|
|
|
36
34
|
end
|
|
37
35
|
|
|
38
36
|
def setup_db
|
|
39
|
-
template 'db/seeds.rb' , 'db/seeds.rb'
|
|
40
|
-
|
|
41
37
|
db_migrate
|
|
42
38
|
db_seed
|
|
43
39
|
end
|
|
44
|
-
|
|
45
|
-
# Other template command examples
|
|
46
|
-
# prepare_environment
|
|
47
|
-
# bundle_install
|
|
48
|
-
# css_install('tailwind')
|
|
49
|
-
# rails_command('db:migrate')
|
|
50
|
-
# rails_command('db:migrate')
|
|
51
|
-
# bundle_add('hotwire-rails')
|
|
52
|
-
# rails_command('hotwire:install')
|
|
53
|
-
# run('bin/importmap pin sortablejs')
|
|
54
|
-
# run('npm install daisyui')
|
|
55
|
-
# rubocop
|
|
56
|
-
#
|
|
57
|
-
# directory 'app/assets/images'
|
|
58
|
-
# create_file 'app/assets/stylesheets/custom-bootstrap-import.scss' , read_template('custom-bootstrap-import.scss')
|
|
59
|
-
# append_to_file 'app/assets/config/manifest.js' , read_template('manifest.js')
|
|
60
|
-
# insert_into_file 'app/views/layouts/application.html.erb', read_template('application.html.erb'),
|
|
61
|
-
# before: %( <%= javascript_include_tag "application", "data-turbo-track": "reload", defer: true %>)
|
|
62
|
-
# gsub_file 'app/views/layouts/application.html.erb', %(container mx-auto mt-28 px-5 flex), 'container mx-auto px-5'
|
|
63
|
-
# template 'home.css', 'app/assets/stylesheets/home.css'
|
|
64
|
-
#
|
|
65
|
-
# add_controller('page', 'benefits', 'faq', 'terms', 'privacy', '--skip-routes')
|
|
66
|
-
# route(<<-'RUBY')
|
|
67
|
-
# PageController.action_methods.each do |action|
|
|
68
|
-
# get "/#{action}", to: "page##{action}", as: "page_#{action}"
|
|
69
|
-
# end
|
|
70
|
-
# RUBY
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Patch-level verification for Bundler
|
|
4
|
+
#
|
|
5
|
+
# exe/rag addons/bundler_audit
|
|
6
|
+
|
|
7
|
+
self.local_template_path = File.dirname(__FILE__)
|
|
8
|
+
|
|
9
|
+
gac 'base rails 7 image created'
|
|
10
|
+
|
|
11
|
+
prepare_environment
|
|
12
|
+
|
|
13
|
+
gem "brakeman", "4.5.0"
|
|
14
|
+
gem "curl"
|
|
15
|
+
|
|
16
|
+
after_bundle do
|
|
17
|
+
setup_customizations
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def setup_customizations
|
|
21
|
+
route("root 'home#index'")
|
|
22
|
+
|
|
23
|
+
force_copy
|
|
24
|
+
|
|
25
|
+
add_controller('home', 'index', 'advisories')
|
|
26
|
+
|
|
27
|
+
directory "app/controllers"
|
|
28
|
+
directory "app/assets"
|
|
29
|
+
directory "app/views"
|
|
30
|
+
template 'app/views/layouts/application.html.erb' , 'app/views/layouts/application.html.erb'
|
|
31
|
+
end
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<h1>Bundler audit</h1>
|
|
2
|
+
|
|
3
|
+
<p>Provides patch-level verification for Bundler</p>
|
|
4
|
+
|
|
5
|
+
<p>The following two GEMs have vulnerabilities listed in the <b>ruby-advisory-db</b></p>
|
|
6
|
+
|
|
7
|
+
<p>If you add the following to your Gemfile</p>
|
|
8
|
+
|
|
9
|
+
<pre><code>gem "brakeman", "4.5.0"
|
|
10
|
+
gem "curl"</code></pre>
|
|
11
|
+
|
|
12
|
+
<p>And then run the following command</p>
|
|
13
|
+
|
|
14
|
+
<pre><code>rm -rf Gemfile.lock
|
|
15
|
+
bundle install
|
|
16
|
+
bundler-audit</code></pre>
|
|
17
|
+
|
|
18
|
+
<p>You will see this output</p>
|
|
19
|
+
|
|
20
|
+
<%= image_tag("output.png") %>
|
|
File without changes
|
|
@@ -0,0 +1,29 @@
|
|
|
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
|
+
</head>
|
|
15
|
+
|
|
16
|
+
<body>
|
|
17
|
+
<header>
|
|
18
|
+
<%%= render 'layouts/navbar' %>
|
|
19
|
+
<hr />
|
|
20
|
+
</header>
|
|
21
|
+
<main>
|
|
22
|
+
<%%= yield %>
|
|
23
|
+
</main>
|
|
24
|
+
<footer>
|
|
25
|
+
<%%= render 'layouts/footer' %>
|
|
26
|
+
</footer>
|
|
27
|
+
</body>
|
|
28
|
+
</html>
|
|
29
|
+
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Description goes here
|
|
4
|
+
#
|
|
5
|
+
# exe/rag addons/kaminari
|
|
6
|
+
|
|
7
|
+
self.local_template_path = File.dirname(__FILE__)
|
|
8
|
+
|
|
9
|
+
gac 'base rails 7 image created'
|
|
10
|
+
|
|
11
|
+
prepare_environment
|
|
12
|
+
|
|
13
|
+
after_bundle do
|
|
14
|
+
scaffolds
|
|
15
|
+
setup_customizations
|
|
16
|
+
setup_db
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def scaffolds
|
|
20
|
+
add_scaffold('post', 'title', 'body:text', 'order:integer')
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def setup_customizations
|
|
24
|
+
route("root 'home#index'")
|
|
25
|
+
|
|
26
|
+
force_copy
|
|
27
|
+
|
|
28
|
+
add_controller('home', 'index')
|
|
29
|
+
|
|
30
|
+
directory "app/controllers"
|
|
31
|
+
directory "app/assets"
|
|
32
|
+
directory "app/views"
|
|
33
|
+
template 'app/views/layouts/application.html.erb' , 'app/views/layouts/application.html.erb'
|
|
34
|
+
|
|
35
|
+
gsub_file 'config/initializers/kaminari_config.rb', '# config.default_per_page = 25', 'config.default_per_page = 10'
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def setup_db
|
|
39
|
+
template 'db/seeds.rb' , 'db/seeds.rb'
|
|
40
|
+
|
|
41
|
+
db_migrate
|
|
42
|
+
db_seed
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Other template command examples
|
|
46
|
+
# prepare_environment
|
|
47
|
+
# bundle_install
|
|
48
|
+
# css_install('tailwind')
|
|
49
|
+
# rails_command('db:migrate')
|
|
50
|
+
# rails_command('db:migrate')
|
|
51
|
+
# bundle_add('hotwire-rails')
|
|
52
|
+
# rails_command('hotwire:install')
|
|
53
|
+
# run('bin/importmap pin sortablejs')
|
|
54
|
+
# run('npm install daisyui')
|
|
55
|
+
# rubocop
|
|
56
|
+
#
|
|
57
|
+
# directory 'app/assets/images'
|
|
58
|
+
# create_file 'app/assets/stylesheets/custom-bootstrap-import.scss' , read_template('custom-bootstrap-import.scss')
|
|
59
|
+
# append_to_file 'app/assets/config/manifest.js' , read_template('manifest.js')
|
|
60
|
+
# insert_into_file 'app/views/layouts/application.html.erb', read_template('application.html.erb'),
|
|
61
|
+
# before: %( <%= javascript_include_tag "application", "data-turbo-track": "reload", defer: true %>)
|
|
62
|
+
# gsub_file 'app/views/layouts/application.html.erb', %(container mx-auto mt-28 px-5 flex), 'container mx-auto px-5'
|
|
63
|
+
# template 'home.css', 'app/assets/stylesheets/home.css'
|
|
64
|
+
#
|
|
65
|
+
# add_controller('page', 'benefits', 'faq', 'terms', 'privacy', '--skip-routes')
|
|
66
|
+
# route(<<-'RUBY')
|
|
67
|
+
# PageController.action_methods.each do |action|
|
|
68
|
+
# get "/#{action}", to: "page##{action}", as: "page_#{action}"
|
|
69
|
+
# end
|
|
70
|
+
# RUBY
|
|
Binary file
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
class PostsController < ApplicationController
|
|
2
|
+
before_action :set_post, only: %i[ show edit update destroy ]
|
|
3
|
+
|
|
4
|
+
# GET /posts or /posts.json
|
|
5
|
+
def index
|
|
6
|
+
@posts = Post.page(params[:page])
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
# GET /posts/1 or /posts/1.json
|
|
10
|
+
def show
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# GET /posts/new
|
|
14
|
+
def new
|
|
15
|
+
@post = Post.new
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# GET /posts/1/edit
|
|
19
|
+
def edit
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# POST /posts or /posts.json
|
|
23
|
+
def create
|
|
24
|
+
@post = Post.new(post_params)
|
|
25
|
+
|
|
26
|
+
respond_to do |format|
|
|
27
|
+
if @post.save
|
|
28
|
+
format.html { redirect_to post_url(@post), notice: "Post was successfully created." }
|
|
29
|
+
format.json { render :show, status: :created, location: @post }
|
|
30
|
+
else
|
|
31
|
+
format.html { render :new, status: :unprocessable_entity }
|
|
32
|
+
format.json { render json: @post.errors, status: :unprocessable_entity }
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# PATCH/PUT /posts/1 or /posts/1.json
|
|
38
|
+
def update
|
|
39
|
+
respond_to do |format|
|
|
40
|
+
if @post.update(post_params)
|
|
41
|
+
format.html { redirect_to post_url(@post), notice: "Post was successfully updated." }
|
|
42
|
+
format.json { render :show, status: :ok, location: @post }
|
|
43
|
+
else
|
|
44
|
+
format.html { render :edit, status: :unprocessable_entity }
|
|
45
|
+
format.json { render json: @post.errors, status: :unprocessable_entity }
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# DELETE /posts/1 or /posts/1.json
|
|
51
|
+
def destroy
|
|
52
|
+
@post.destroy
|
|
53
|
+
|
|
54
|
+
respond_to do |format|
|
|
55
|
+
format.html { redirect_to posts_url, notice: "Post was successfully destroyed." }
|
|
56
|
+
format.json { head :no_content }
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
private
|
|
61
|
+
# Use callbacks to share common setup or constraints between actions.
|
|
62
|
+
def set_post
|
|
63
|
+
@post = Post.find(params[:id])
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# Only allow a list of trusted parameters through.
|
|
67
|
+
def post_params
|
|
68
|
+
params.require(:post).permit(:title, :body, :order)
|
|
69
|
+
end
|
|
70
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<h1>Kaminari</h1>
|
|
2
|
+
|
|
3
|
+
<p>Easily add pagination to your Ruby web apps</p>
|
|
4
|
+
|
|
5
|
+
<h2>Configuration for this example is located at</h2>
|
|
6
|
+
|
|
7
|
+
<pre><code>config/initializers/kaminari_config.rb</code></pre>
|
|
8
|
+
|
|
9
|
+
<pre><code><%= File.read("config/initializers/kaminari_config.rb") %></code></pre>
|
|
10
|
+
|
|
11
|
+
<h2>Run this template generator if you need to customize the pagination views</h2>
|
|
12
|
+
|
|
13
|
+
<pre><code>rails g kaminari:views default</code></pre>
|
|
14
|
+
|
|
15
|
+
<h3>List of files</h3>
|
|
16
|
+
|
|
17
|
+
<%= image_tag("kaminari-custom-views.png") %>
|
|
18
|
+
|
|
19
|
+
<h3>File details</h3>
|
|
20
|
+
|
|
21
|
+
<%= image_tag("kaminari-custom-views-detailed.png") %>
|
|
File without changes
|
|
@@ -0,0 +1,34 @@
|
|
|
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
|
+
table {
|
|
16
|
+
table-layout: auto;
|
|
17
|
+
}
|
|
18
|
+
</style>
|
|
19
|
+
</head>
|
|
20
|
+
|
|
21
|
+
<body>
|
|
22
|
+
<header>
|
|
23
|
+
<%%= render 'layouts/navbar' %>
|
|
24
|
+
<hr />
|
|
25
|
+
</header>
|
|
26
|
+
<main>
|
|
27
|
+
<%%= yield %>
|
|
28
|
+
</main>
|
|
29
|
+
<footer>
|
|
30
|
+
<%%= render 'layouts/footer' %>
|
|
31
|
+
</footer>
|
|
32
|
+
</body>
|
|
33
|
+
</html>
|
|
34
|
+
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<p style="color: green"><%= notice %></p>
|
|
2
|
+
|
|
3
|
+
<h1>Posts</h1>
|
|
4
|
+
|
|
5
|
+
<%= link_to "New post", new_post_path %>
|
|
6
|
+
|
|
7
|
+
<hr>
|
|
8
|
+
<%= paginate @posts %>
|
|
9
|
+
<hr>
|
|
10
|
+
|
|
11
|
+
<div id="posts">
|
|
12
|
+
<h1>Players List</h1>
|
|
13
|
+
<table>
|
|
14
|
+
<tr>
|
|
15
|
+
<th>Title</th>
|
|
16
|
+
<th>Body</th>
|
|
17
|
+
<th>Order</th>
|
|
18
|
+
<th></th>
|
|
19
|
+
</tr>
|
|
20
|
+
<% @posts.each do |post| %>
|
|
21
|
+
<tr>
|
|
22
|
+
<td><%=post.title %></td>
|
|
23
|
+
<td><%=post.body %></td><td>
|
|
24
|
+
<td><%=post.order %></td>
|
|
25
|
+
<td><%= link_to 'Show', post %></td>
|
|
26
|
+
</tr>
|
|
27
|
+
<% end %>
|
|
28
|
+
</table>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
<%= page_entries_info @posts %>
|
|
32
|
+
|
|
@@ -47,6 +47,7 @@
|
|
|
47
47
|
"add_bcrypt",
|
|
48
48
|
"add_brakeman",
|
|
49
49
|
"add_browser",
|
|
50
|
+
"add_bundler_audit",
|
|
50
51
|
"add_chartkick",
|
|
51
52
|
"add_devise",
|
|
52
53
|
"add_devise_masquerade",
|
|
@@ -56,6 +57,7 @@
|
|
|
56
57
|
"add_hexapdf",
|
|
57
58
|
"add_httparty",
|
|
58
59
|
"add_honeybadger",
|
|
60
|
+
"add_kaminari",
|
|
59
61
|
"add_lograge",
|
|
60
62
|
"add_minimal_css",
|
|
61
63
|
"minimal_css_library",
|
|
@@ -400,6 +402,13 @@
|
|
|
400
402
|
"default": false,
|
|
401
403
|
"required": false
|
|
402
404
|
},
|
|
405
|
+
{
|
|
406
|
+
"name": "add_bundler_audit",
|
|
407
|
+
"description": "Indicates when to generate add bundler audit",
|
|
408
|
+
"type": "boolean",
|
|
409
|
+
"default": false,
|
|
410
|
+
"required": false
|
|
411
|
+
},
|
|
403
412
|
{
|
|
404
413
|
"name": "add_chartkick",
|
|
405
414
|
"description": "Indicates when to generate add chartkick",
|
|
@@ -463,6 +472,13 @@
|
|
|
463
472
|
"default": false,
|
|
464
473
|
"required": false
|
|
465
474
|
},
|
|
475
|
+
{
|
|
476
|
+
"name": "add_kaminari",
|
|
477
|
+
"description": "Indicates when to generate add kaminari",
|
|
478
|
+
"type": "boolean",
|
|
479
|
+
"default": false,
|
|
480
|
+
"required": false
|
|
481
|
+
},
|
|
466
482
|
{
|
|
467
483
|
"name": "add_lograge",
|
|
468
484
|
"description": "Indicates when to generate add lograge",
|
|
@@ -35,17 +35,19 @@
|
|
|
35
35
|
"add_annotate": false,
|
|
36
36
|
"add_avo": false,
|
|
37
37
|
"add_bcrypt": false,
|
|
38
|
-
"add_brakeman":
|
|
38
|
+
"add_brakeman": false,
|
|
39
39
|
"add_browser": false,
|
|
40
|
+
"add_bundler_audit": false,
|
|
40
41
|
"add_chartkick": false,
|
|
41
42
|
"add_devise": false,
|
|
42
43
|
"add_devise_masquerade": false,
|
|
43
44
|
"add_dotenv": false,
|
|
44
|
-
"add_faker":
|
|
45
|
+
"add_faker": true,
|
|
45
46
|
"add_groupdate": false,
|
|
46
47
|
"add_hexapdf": false,
|
|
47
48
|
"add_httparty": false,
|
|
48
49
|
"add_honeybadger": false,
|
|
50
|
+
"add_kaminari": true,
|
|
49
51
|
"add_lograge": false,
|
|
50
52
|
"add_minimal_css": true,
|
|
51
53
|
"minimal_css_library": "water.css",
|
|
@@ -59,6 +61,6 @@
|
|
|
59
61
|
"add_rolify": false,
|
|
60
62
|
"add_rubocop": false,
|
|
61
63
|
"add_twilio_ruby": false,
|
|
62
|
-
"template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/
|
|
64
|
+
"template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/kaminari/_.rb"
|
|
63
65
|
}
|
|
64
66
|
}
|
|
@@ -47,6 +47,7 @@
|
|
|
47
47
|
"add_bcrypt",
|
|
48
48
|
"add_brakeman",
|
|
49
49
|
"add_browser",
|
|
50
|
+
"add_bundler_audit",
|
|
50
51
|
"add_chartkick",
|
|
51
52
|
"add_devise",
|
|
52
53
|
"add_devise_masquerade",
|
|
@@ -56,6 +57,7 @@
|
|
|
56
57
|
"add_hexapdf",
|
|
57
58
|
"add_httparty",
|
|
58
59
|
"add_honeybadger",
|
|
60
|
+
"add_kaminari",
|
|
59
61
|
"add_lograge",
|
|
60
62
|
"add_minimal_css",
|
|
61
63
|
"minimal_css_library",
|
|
@@ -400,6 +402,13 @@
|
|
|
400
402
|
"default": false,
|
|
401
403
|
"required": false
|
|
402
404
|
},
|
|
405
|
+
{
|
|
406
|
+
"name": "add_bundler_audit",
|
|
407
|
+
"description": "",
|
|
408
|
+
"type": "boolean",
|
|
409
|
+
"default": false,
|
|
410
|
+
"required": false
|
|
411
|
+
},
|
|
403
412
|
{
|
|
404
413
|
"name": "add_chartkick",
|
|
405
414
|
"description": "",
|
|
@@ -463,6 +472,13 @@
|
|
|
463
472
|
"default": false,
|
|
464
473
|
"required": false
|
|
465
474
|
},
|
|
475
|
+
{
|
|
476
|
+
"name": "add_kaminari",
|
|
477
|
+
"description": "",
|
|
478
|
+
"type": "boolean",
|
|
479
|
+
"default": false,
|
|
480
|
+
"required": false
|
|
481
|
+
},
|
|
466
482
|
{
|
|
467
483
|
"name": "add_lograge",
|
|
468
484
|
"description": "",
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"quiet": false,
|
|
8
8
|
"skip": false,
|
|
9
9
|
"ruby": "/Users/davidcruwys/.asdf/installs/ruby/2.7.6/bin/ruby",
|
|
10
|
-
"template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/
|
|
10
|
+
"template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/kaminari/_.rb",
|
|
11
11
|
"database": "sqlite3",
|
|
12
12
|
"skip_git": true,
|
|
13
13
|
"skip_keeps": false,
|
|
@@ -45,17 +45,19 @@
|
|
|
45
45
|
"add_annotate": false,
|
|
46
46
|
"add_avo": false,
|
|
47
47
|
"add_bcrypt": false,
|
|
48
|
-
"add_brakeman":
|
|
48
|
+
"add_brakeman": false,
|
|
49
49
|
"add_browser": false,
|
|
50
|
+
"add_bundler_audit": false,
|
|
50
51
|
"add_chartkick": false,
|
|
51
52
|
"add_devise": false,
|
|
52
53
|
"add_devise_masquerade": false,
|
|
53
54
|
"add_dotenv": false,
|
|
54
|
-
"add_faker":
|
|
55
|
+
"add_faker": true,
|
|
55
56
|
"add_groupdate": false,
|
|
56
57
|
"add_hexapdf": false,
|
|
57
58
|
"add_httparty": false,
|
|
58
59
|
"add_honeybadger": false,
|
|
60
|
+
"add_kaminari": true,
|
|
59
61
|
"add_lograge": false,
|
|
60
62
|
"add_minimal_css": true,
|
|
61
63
|
"minimal_css_library": "water.css",
|
|
@@ -5,6 +5,7 @@ module RailsAppGenerator
|
|
|
5
5
|
module AddOns
|
|
6
6
|
# Add Brakeman to rails application
|
|
7
7
|
class Brakeman < RailsAppGenerator::Addon
|
|
8
|
+
# TODO: This needs to go into the development group
|
|
8
9
|
required_gem gem.version('brakeman', '5.3.1', 'Brakeman is a static analysis security vulnerability scanner for Ruby on Rails applications')
|
|
9
10
|
|
|
10
11
|
def apply; 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 BundlerAudit to rails application
|
|
7
|
+
class BundlerAudit < RailsAppGenerator::Addon
|
|
8
|
+
required_gem gem.version('bundler-audit', '0.9.1', 'Patch-level verification for Bundler')
|
|
9
|
+
|
|
10
|
+
def apply; end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module RailsAppGenerator
|
|
4
|
+
# Custom add-ons for RailsAppGenerator
|
|
5
|
+
module AddOns
|
|
6
|
+
# Add Kaminari to rails application
|
|
7
|
+
class Kaminari < RailsAppGenerator::Addon
|
|
8
|
+
required_gem gem.version('kaminari', '1.2.2', 'Easily add pagination to your Ruby web apps')
|
|
9
|
+
|
|
10
|
+
def apply
|
|
11
|
+
generate('kaminari:config')
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -174,6 +174,7 @@ module RailsAppGenerator
|
|
|
174
174
|
add_if(:bcrypt) # tested
|
|
175
175
|
add_if(:brakeman) # tested
|
|
176
176
|
add_if(:browser) # tested
|
|
177
|
+
add_if(:bundler_audit) # tested
|
|
177
178
|
add_if(:chartkick) # tested
|
|
178
179
|
add_if(:continuous_integration) # TODO: needs work
|
|
179
180
|
add_if(:devise) # tested
|
|
@@ -189,6 +190,7 @@ module RailsAppGenerator
|
|
|
189
190
|
add_if(:httparty) # tested
|
|
190
191
|
add_if(:high_voltage) # TODO: needs testing
|
|
191
192
|
add_if(:honeybadger) # tested
|
|
193
|
+
add_if(:kaminari) # tested
|
|
192
194
|
add_if(:lograge) # tested
|
|
193
195
|
add_if(:minimal_css) # tested (this is NOT a GEM)
|
|
194
196
|
add_if(:mini_magick) # tested
|
|
@@ -109,6 +109,7 @@ KConfig.configure do |config|
|
|
|
109
109
|
rag.add_option :add_bcrypt , type: :boolean, default: false
|
|
110
110
|
rag.add_option :add_brakeman , type: :boolean, default: false
|
|
111
111
|
rag.add_option :add_browser , type: :boolean, default: false
|
|
112
|
+
rag.add_option :add_bundler_audit , type: :boolean, default: false
|
|
112
113
|
rag.add_option :add_chartkick , type: :boolean, default: false
|
|
113
114
|
# continuous_integration
|
|
114
115
|
rag.add_option :add_devise , type: :boolean, default: false
|
|
@@ -124,6 +125,7 @@ KConfig.configure do |config|
|
|
|
124
125
|
rag.add_option :add_httparty , type: :boolean, default: false
|
|
125
126
|
# high_voltage
|
|
126
127
|
rag.add_option :add_honeybadger , type: :boolean, default: false
|
|
128
|
+
rag.add_option :add_kaminari , type: :boolean, default: false
|
|
127
129
|
rag.add_option :add_lograge , type: :boolean, default: false
|
|
128
130
|
rag.add_option :add_minimal_css , type: :boolean, default: false
|
|
129
131
|
rag.add_option :minimal_css_library , type: :string, default: 'water.css', description: "Minimal CSS library to get you started. [options: water.css (default)]"
|
data/package-lock.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rails_app_generator",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.34",
|
|
4
4
|
"lockfileVersion": 2,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "rails_app_generator",
|
|
9
|
-
"version": "0.2.
|
|
9
|
+
"version": "0.2.34",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"daisyui": "^2.20.0"
|
|
12
12
|
},
|
data/package.json
CHANGED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"args": {
|
|
3
|
+
"app_path": "r7_bundler_audit",
|
|
4
|
+
"destination_root": "/Users/davidcruwys/dev/kgems/rails_app_generator/a/addons"
|
|
5
|
+
},
|
|
6
|
+
"opts": {
|
|
7
|
+
"skip_git": true,
|
|
8
|
+
"skip_test": true,
|
|
9
|
+
"add_minimal_css": true,
|
|
10
|
+
"template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/bundler_audit/_.rb",
|
|
11
|
+
"add_bundler_audit": true
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"args": {
|
|
3
|
+
"app_path": "r7_kaminari",
|
|
4
|
+
"destination_root": "/Users/davidcruwys/dev/kgems/rails_app_generator/a/addons"
|
|
5
|
+
},
|
|
6
|
+
"opts": {
|
|
7
|
+
"skip_git": true,
|
|
8
|
+
"skip_test": true,
|
|
9
|
+
"add_minimal_css": true,
|
|
10
|
+
"template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/kaminari/_.rb",
|
|
11
|
+
"add_faker": true,
|
|
12
|
+
"add_kaminari": true
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<hr />
|
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.2.
|
|
4
|
+
version: 0.2.34
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- David Cruwys
|
|
@@ -232,10 +232,19 @@ files:
|
|
|
232
232
|
- after_templates/addons/brakeman/app/views/layouts/_footer.html.erb
|
|
233
233
|
- after_templates/addons/brakeman/app/views/layouts/_navbar.html.erb
|
|
234
234
|
- after_templates/addons/brakeman/app/views/layouts/application.html.erb
|
|
235
|
-
- after_templates/addons/brakeman/db/seeds.rb
|
|
236
235
|
- after_templates/addons/browser/_.rb
|
|
237
236
|
- after_templates/addons/browser/app/controllers/home_controller.rb
|
|
238
237
|
- after_templates/addons/browser/app/views/home/index.html.erb
|
|
238
|
+
- after_templates/addons/bundler_audit/_.rb
|
|
239
|
+
- after_templates/addons/bundler_audit/app/assets/images/brakeman.png
|
|
240
|
+
- after_templates/addons/bundler_audit/app/assets/images/curl.png
|
|
241
|
+
- after_templates/addons/bundler_audit/app/assets/images/output.png
|
|
242
|
+
- after_templates/addons/bundler_audit/app/controllers/home_controller.rb
|
|
243
|
+
- after_templates/addons/bundler_audit/app/views/home/advisories.html.erb
|
|
244
|
+
- after_templates/addons/bundler_audit/app/views/home/index.html.erb
|
|
245
|
+
- after_templates/addons/bundler_audit/app/views/layouts/_footer.html.erb
|
|
246
|
+
- after_templates/addons/bundler_audit/app/views/layouts/_navbar.html.erb
|
|
247
|
+
- after_templates/addons/bundler_audit/app/views/layouts/application.html.erb
|
|
239
248
|
- after_templates/addons/chartkick/_.rb
|
|
240
249
|
- after_templates/addons/chartkick/app/controllers/home_controller.rb
|
|
241
250
|
- after_templates/addons/chartkick/app/views/home/index.html.erb
|
|
@@ -304,6 +313,17 @@ files:
|
|
|
304
313
|
- after_templates/addons/httparty/app/views/layouts/_footer.html.erb
|
|
305
314
|
- after_templates/addons/httparty/app/views/layouts/_navbar.html.erb
|
|
306
315
|
- after_templates/addons/httparty/app/views/layouts/application.html.erb
|
|
316
|
+
- after_templates/addons/kaminari/_.rb
|
|
317
|
+
- after_templates/addons/kaminari/app/assets/images/kaminari-custom-views-detailed.png
|
|
318
|
+
- after_templates/addons/kaminari/app/assets/images/kaminari-custom-views.png
|
|
319
|
+
- after_templates/addons/kaminari/app/controllers/home_controller.rb
|
|
320
|
+
- after_templates/addons/kaminari/app/controllers/posts_controller.rb
|
|
321
|
+
- after_templates/addons/kaminari/app/views/home/index.html.erb
|
|
322
|
+
- after_templates/addons/kaminari/app/views/layouts/_footer.html.erb
|
|
323
|
+
- after_templates/addons/kaminari/app/views/layouts/_navbar.html.erb
|
|
324
|
+
- after_templates/addons/kaminari/app/views/layouts/application.html.erb
|
|
325
|
+
- after_templates/addons/kaminari/app/views/posts/index.html.erb
|
|
326
|
+
- after_templates/addons/kaminari/db/seeds.rb
|
|
307
327
|
- after_templates/addons/lograge/_.rb
|
|
308
328
|
- after_templates/addons/lograge/app/controllers/home_controller.rb
|
|
309
329
|
- after_templates/addons/lograge/app/views/home/index.html.erb
|
|
@@ -606,6 +626,7 @@ files:
|
|
|
606
626
|
- lib/rails_app_generator/addons/bcrypt.rb
|
|
607
627
|
- lib/rails_app_generator/addons/brakeman.rb
|
|
608
628
|
- lib/rails_app_generator/addons/browser.rb
|
|
629
|
+
- lib/rails_app_generator/addons/bundler_audit.rb
|
|
609
630
|
- lib/rails_app_generator/addons/chartkick.rb
|
|
610
631
|
- lib/rails_app_generator/addons/continuous_integration.rb
|
|
611
632
|
- lib/rails_app_generator/addons/devise.rb
|
|
@@ -624,6 +645,7 @@ files:
|
|
|
624
645
|
- lib/rails_app_generator/addons/httparty.rb
|
|
625
646
|
- lib/rails_app_generator/addons/inline_svg.rb
|
|
626
647
|
- lib/rails_app_generator/addons/irbrc.rb
|
|
648
|
+
- lib/rails_app_generator/addons/kaminari.rb
|
|
627
649
|
- lib/rails_app_generator/addons/lograge.rb
|
|
628
650
|
- lib/rails_app_generator/addons/mini_magick.rb
|
|
629
651
|
- lib/rails_app_generator/addons/minimal_css.rb
|
|
@@ -687,6 +709,7 @@ files:
|
|
|
687
709
|
- profiles/addons/bcrypt.json
|
|
688
710
|
- profiles/addons/brakeman.json
|
|
689
711
|
- profiles/addons/browser.json
|
|
712
|
+
- profiles/addons/bundler_audit.json
|
|
690
713
|
- profiles/addons/chartkick.json
|
|
691
714
|
- profiles/addons/devise.json
|
|
692
715
|
- profiles/addons/devise_masquerade.json
|
|
@@ -695,6 +718,7 @@ files:
|
|
|
695
718
|
- profiles/addons/hexapdf.json
|
|
696
719
|
- profiles/addons/honeybadger.json
|
|
697
720
|
- profiles/addons/httparty.json
|
|
721
|
+
- profiles/addons/kaminari.json
|
|
698
722
|
- profiles/addons/lograge.json
|
|
699
723
|
- profiles/addons/mini_magick.json
|
|
700
724
|
- profiles/addons/minimal_css.json
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
# david = User.create(email: 'david@site.com', name: 'david', password: 'password')
|
|
2
|
-
# james = User.create(email: 'james@site.com', name: 'james', password: 'password')
|
|
3
|
-
# sally = User.create(email: 'sally@site.com', name: 'sally', password: 'password')
|
|
4
|
-
|
|
5
|
-
# 10.times do |i|
|
|
6
|
-
# Post.create(title: "Post #{i}", body: "This is the body of post #{i}", user: User.all.sample)
|
|
7
|
-
# end
|