rails_app_generator 0.2.32 → 0.2.35
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/avo/_.rb +5 -1
- 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 +9 -7
- data/docs/last_run/rails_options_class.json +16 -0
- data/docs/last_run/rails_options_data.json +9 -7
- data/lib/rails_app_generator/addons/image_processing.rb +21 -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/avo.json +2 -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 +27 -3
- 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: fbf16a835761fc7ad807353e6c4cc4fcd9fee78f67897f5c9b22110d43bc4167
|
|
4
|
+
data.tar.gz: abb73230ba63f0d63a5056cf05c6bd4f0c0a6bbffe402a178751543ca6f57aa7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8be0848339b684174be11a6690ac20721e6605431b4e89cb38837db13c714754c0767c60525d8b102d28c334223905a3a1d636092f1412b557346fe8cbc93837
|
|
7
|
+
data.tar.gz: 61402434c5669869a6003ab1d69b2ce17d915ea225705768c7bd60e4b2178478a0b15c5c9a4be789fcfe6ba616f4638fbec629befb9b81e5ac47cb630f89873c
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
## [0.2.34](https://github.com/klueless-io/rails_app_generator/compare/v0.2.33...v0.2.34) (2022-08-19)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* add kaminari profile ([f9b044b](https://github.com/klueless-io/rails_app_generator/commit/f9b044b6e718fdfa851562ea7d4ddab39066d0de))
|
|
7
|
+
|
|
8
|
+
## [0.2.33](https://github.com/klueless-io/rails_app_generator/compare/v0.2.32...v0.2.33) (2022-08-19)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* add kaminari addon ([b57fd5b](https://github.com/klueless-io/rails_app_generator/commit/b57fd5bdda219852b659404660187cbd0d8ec5dc))
|
|
14
|
+
* add kaminari addon ([d5774ed](https://github.com/klueless-io/rails_app_generator/commit/d5774ed173b0d594e2228278c2d34edce3a80ac9))
|
|
15
|
+
|
|
16
|
+
## [0.2.32](https://github.com/klueless-io/rails_app_generator/compare/v0.2.31...v0.2.32) (2022-08-19)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Bug Fixes
|
|
20
|
+
|
|
21
|
+
* add bundler-audit addon ([bb8c2bc](https://github.com/klueless-io/rails_app_generator/commit/bb8c2bce5b1925ffe0b4c745894d7cebfc25498d))
|
|
22
|
+
|
|
1
23
|
## [0.2.31](https://github.com/klueless-io/rails_app_generator/compare/v0.2.30...v0.2.31) (2022-08-19)
|
|
2
24
|
|
|
3
25
|
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
#
|
|
5
5
|
# exe/rag addons/avo
|
|
6
6
|
#
|
|
7
|
-
# based on: https://
|
|
7
|
+
# based on: https://youtu.be/WgNK-oINFww
|
|
8
|
+
# https://youtu.be/BK47E7TMXn0
|
|
8
9
|
|
|
9
10
|
self.local_template_path = File.dirname(__FILE__)
|
|
10
11
|
|
|
@@ -35,6 +36,9 @@ def setup_db
|
|
|
35
36
|
add_scaffold('category', 'title:string', 'description:text')
|
|
36
37
|
add_scaffold('post', 'title:string content:text', 'published:boolean', 'author:references', 'category:references')
|
|
37
38
|
add_scaffold('product', 'name', 'quantity:integer', 'price:decimal', 'author:references')
|
|
39
|
+
add_scaffold('location', 'name', 'description:text', 'photo:file')
|
|
40
|
+
add_scaffold('room', 'name', 'description:text', 'photo:file', 'location:references')
|
|
41
|
+
add_scaffold('booking', 'user:references', 'room:references', 'booked_at:timestamp', 'booked_for:number')
|
|
38
42
|
|
|
39
43
|
db_migrate
|
|
40
44
|
db_seed
|
|
@@ -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",
|
|
@@ -32,20 +32,22 @@
|
|
|
32
32
|
"test": "rspec",
|
|
33
33
|
"add_acts_as_list": false,
|
|
34
34
|
"add_administrate": false,
|
|
35
|
-
"add_annotate":
|
|
36
|
-
"add_avo":
|
|
35
|
+
"add_annotate": true,
|
|
36
|
+
"add_avo": true,
|
|
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
|
-
"add_devise":
|
|
42
|
+
"add_devise": true,
|
|
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": false,
|
|
49
51
|
"add_lograge": false,
|
|
50
52
|
"add_minimal_css": true,
|
|
51
53
|
"minimal_css_library": "water.css",
|
|
@@ -57,8 +59,8 @@
|
|
|
57
59
|
"add_rails_html_sanitizer": false,
|
|
58
60
|
"add_redcarpet": false,
|
|
59
61
|
"add_rolify": false,
|
|
60
|
-
"add_rubocop":
|
|
62
|
+
"add_rubocop": true,
|
|
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/avo/_.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/avo/_.rb",
|
|
11
11
|
"database": "sqlite3",
|
|
12
12
|
"skip_git": true,
|
|
13
13
|
"skip_keeps": false,
|
|
@@ -42,20 +42,22 @@
|
|
|
42
42
|
"test": "rspec",
|
|
43
43
|
"add_acts_as_list": false,
|
|
44
44
|
"add_administrate": false,
|
|
45
|
-
"add_annotate":
|
|
46
|
-
"add_avo":
|
|
45
|
+
"add_annotate": true,
|
|
46
|
+
"add_avo": true,
|
|
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
|
-
"add_devise":
|
|
52
|
+
"add_devise": true,
|
|
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": false,
|
|
59
61
|
"add_lograge": false,
|
|
60
62
|
"add_minimal_css": true,
|
|
61
63
|
"minimal_css_library": "water.css",
|
|
@@ -67,7 +69,7 @@
|
|
|
67
69
|
"add_rails_html_sanitizer": false,
|
|
68
70
|
"add_redcarpet": false,
|
|
69
71
|
"add_rolify": false,
|
|
70
|
-
"add_rubocop":
|
|
72
|
+
"add_rubocop": true,
|
|
71
73
|
"add_twilio_ruby": false
|
|
72
74
|
}
|
|
73
75
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module RailsAppGenerator
|
|
4
|
+
# Custom add-ons for RailsAppGenerator
|
|
5
|
+
module AddOns
|
|
6
|
+
# Add ImageProcessing to rails application
|
|
7
|
+
class ImageProcessing < RailsAppGenerator::Addon
|
|
8
|
+
required_gem gem.version('image_processing', '1.12.2', '')
|
|
9
|
+
|
|
10
|
+
def apply
|
|
11
|
+
say 'Setting up ImageProcessing'
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def before_template; end
|
|
15
|
+
|
|
16
|
+
def before_bundle; end
|
|
17
|
+
|
|
18
|
+
def after_bundle; end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
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
|
|
@@ -190,6 +190,8 @@ module RailsAppGenerator
|
|
|
190
190
|
add_if(:httparty) # tested
|
|
191
191
|
add_if(:high_voltage) # TODO: needs testing
|
|
192
192
|
add_if(:honeybadger) # tested
|
|
193
|
+
add_if(:image_processing) # tested
|
|
194
|
+
add_if(:kaminari) # tested
|
|
193
195
|
add_if(:lograge) # tested
|
|
194
196
|
add_if(:minimal_css) # tested (this is NOT a GEM)
|
|
195
197
|
add_if(:mini_magick) # tested
|
|
@@ -125,6 +125,8 @@ KConfig.configure do |config|
|
|
|
125
125
|
rag.add_option :add_httparty , type: :boolean, default: false
|
|
126
126
|
# high_voltage
|
|
127
127
|
rag.add_option :add_honeybadger , type: :boolean, default: false
|
|
128
|
+
rag.add_option :add_image_processing , type: :boolean, default: false
|
|
129
|
+
rag.add_option :add_kaminari , type: :boolean, default: false
|
|
128
130
|
rag.add_option :add_lograge , type: :boolean, default: false
|
|
129
131
|
rag.add_option :add_minimal_css , type: :boolean, default: false
|
|
130
132
|
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.35",
|
|
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.35",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"daisyui": "^2.20.0"
|
|
12
12
|
},
|
data/package.json
CHANGED
data/profiles/addons/avo.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,14 +1,14 @@
|
|
|
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.35
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- David Cruwys
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2022-08-
|
|
11
|
+
date: 2022-08-20 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bootsnap
|
|
@@ -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
|
|
@@ -623,8 +643,10 @@ files:
|
|
|
623
643
|
- lib/rails_app_generator/addons/high_voltage.rb
|
|
624
644
|
- lib/rails_app_generator/addons/honeybadger.rb
|
|
625
645
|
- lib/rails_app_generator/addons/httparty.rb
|
|
646
|
+
- lib/rails_app_generator/addons/image_processing.rb
|
|
626
647
|
- lib/rails_app_generator/addons/inline_svg.rb
|
|
627
648
|
- lib/rails_app_generator/addons/irbrc.rb
|
|
649
|
+
- lib/rails_app_generator/addons/kaminari.rb
|
|
628
650
|
- lib/rails_app_generator/addons/lograge.rb
|
|
629
651
|
- lib/rails_app_generator/addons/mini_magick.rb
|
|
630
652
|
- lib/rails_app_generator/addons/minimal_css.rb
|
|
@@ -688,6 +710,7 @@ files:
|
|
|
688
710
|
- profiles/addons/bcrypt.json
|
|
689
711
|
- profiles/addons/brakeman.json
|
|
690
712
|
- profiles/addons/browser.json
|
|
713
|
+
- profiles/addons/bundler_audit.json
|
|
691
714
|
- profiles/addons/chartkick.json
|
|
692
715
|
- profiles/addons/devise.json
|
|
693
716
|
- profiles/addons/devise_masquerade.json
|
|
@@ -696,6 +719,7 @@ files:
|
|
|
696
719
|
- profiles/addons/hexapdf.json
|
|
697
720
|
- profiles/addons/honeybadger.json
|
|
698
721
|
- profiles/addons/httparty.json
|
|
722
|
+
- profiles/addons/kaminari.json
|
|
699
723
|
- profiles/addons/lograge.json
|
|
700
724
|
- profiles/addons/mini_magick.json
|
|
701
725
|
- 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
|