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.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -0
  3. data/after_templates/addons/avo/_.rb +5 -1
  4. data/after_templates/addons/brakeman/_.rb +1 -32
  5. data/after_templates/addons/bundler_audit/_.rb +31 -0
  6. data/after_templates/addons/bundler_audit/app/assets/images/brakeman.png +0 -0
  7. data/after_templates/addons/bundler_audit/app/assets/images/curl.png +0 -0
  8. data/after_templates/addons/bundler_audit/app/assets/images/output.png +0 -0
  9. data/after_templates/addons/bundler_audit/app/controllers/home_controller.rb +4 -0
  10. data/after_templates/addons/bundler_audit/app/views/home/advisories.html.erb +10 -0
  11. data/after_templates/addons/bundler_audit/app/views/home/index.html.erb +20 -0
  12. data/after_templates/addons/bundler_audit/app/views/layouts/_footer.html.erb +0 -0
  13. data/after_templates/addons/bundler_audit/app/views/layouts/_navbar.html.erb +3 -0
  14. data/after_templates/addons/bundler_audit/app/views/layouts/application.html.erb +29 -0
  15. data/after_templates/addons/kaminari/_.rb +70 -0
  16. data/after_templates/addons/kaminari/app/assets/images/kaminari-custom-views-detailed.png +0 -0
  17. data/after_templates/addons/kaminari/app/assets/images/kaminari-custom-views.png +0 -0
  18. data/after_templates/addons/kaminari/app/controllers/home_controller.rb +4 -0
  19. data/after_templates/addons/kaminari/app/controllers/posts_controller.rb +70 -0
  20. data/after_templates/addons/kaminari/app/views/home/index.html.erb +21 -0
  21. data/after_templates/addons/kaminari/app/views/layouts/_footer.html.erb +0 -0
  22. data/after_templates/addons/kaminari/app/views/layouts/_navbar.html.erb +3 -0
  23. data/after_templates/addons/kaminari/app/views/layouts/application.html.erb +34 -0
  24. data/after_templates/addons/kaminari/app/views/posts/index.html.erb +32 -0
  25. data/after_templates/addons/kaminari/db/seeds.rb +3 -0
  26. data/docs/last_run/app_generator_class.json +16 -0
  27. data/docs/last_run/app_generator_data.json +9 -7
  28. data/docs/last_run/rails_options_class.json +16 -0
  29. data/docs/last_run/rails_options_data.json +9 -7
  30. data/lib/rails_app_generator/addons/image_processing.rb +21 -0
  31. data/lib/rails_app_generator/addons/kaminari.rb +15 -0
  32. data/lib/rails_app_generator/app_generator.rb +2 -0
  33. data/lib/rails_app_generator/rag_initializer.rb +2 -0
  34. data/lib/rails_app_generator/version.rb +1 -1
  35. data/package-lock.json +2 -2
  36. data/package.json +1 -1
  37. data/profiles/addons/avo.json +2 -1
  38. data/profiles/addons/bundler_audit.json +13 -0
  39. data/profiles/addons/kaminari.json +14 -0
  40. data/templates/thor_task/profile/app/views/layouts/_footer.html.erb.tt +0 -1
  41. metadata +27 -3
  42. 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: 0bee2510cd2b930ae2584b92ebf9cbf8b450326500ead81c2cf1203bbcc69d6e
4
- data.tar.gz: 595eaef4ba1b7cb5619ac9610da23fc32cf0b9c24903dce5ca98a1b81ab4ec57
3
+ metadata.gz: fbf16a835761fc7ad807353e6c4cc4fcd9fee78f67897f5c9b22110d43bc4167
4
+ data.tar.gz: abb73230ba63f0d63a5056cf05c6bd4f0c0a6bbffe402a178751543ca6f57aa7
5
5
  SHA512:
6
- metadata.gz: da91ccb4e0a4da8ab26fcb9ad013c78453c5f9052d1ac24ff48b7143e9ef9b425a7ca41c1b541419e0f956a7dbc31472cac594e040db6a271bf1373acd44cdde
7
- data.tar.gz: 6cf0b06000288eccfcc0b4e1b7e30c6878290ab6a802deb679e2bd54e4b8a0f7bf8eb1c956c44c2573ce69da3838223b21afc405a294f52c3914440d757df416
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://www.youtube.com/watch?v=WgNK-oINFww
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
- # Description goes here
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
@@ -0,0 +1,4 @@
1
+ class HomeController < ApplicationController
2
+ def index
3
+ end
4
+ end
@@ -0,0 +1,10 @@
1
+ <h1>Example Advisories from <b>ruby-advisory-db</b></h1>
2
+
3
+ <h2>Brakeman</h2>
4
+
5
+ <%= image_tag("brakeman.png") %>
6
+
7
+
8
+ <h2>Curl</h2>
9
+
10
+ <%= image_tag("curl.png") %>
@@ -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") %>
@@ -0,0 +1,3 @@
1
+ <%= link_to 'Home', root_path %>
2
+ | <%= link_to 'Sample Advisories', home_advisories_path %>
3
+ <hr />
@@ -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
@@ -0,0 +1,4 @@
1
+ class HomeController < ApplicationController
2
+ def index
3
+ end
4
+ end
@@ -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") %>
@@ -0,0 +1,3 @@
1
+ <%= link_to 'Home', root_path %>
2
+ | <%= link_to 'Posts', posts_path %>
3
+ <hr />
@@ -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
+
@@ -0,0 +1,3 @@
1
+ 105.times do |i|
2
+ Post.create(title: "Post #{i}", body: Faker::Lorem.words(number: 5).join(' '), order: i)
3
+ end
@@ -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": false,
36
- "add_avo": false,
35
+ "add_annotate": true,
36
+ "add_avo": true,
37
37
  "add_bcrypt": false,
38
- "add_brakeman": true,
38
+ "add_brakeman": false,
39
39
  "add_browser": false,
40
+ "add_bundler_audit": false,
40
41
  "add_chartkick": false,
41
- "add_devise": false,
42
+ "add_devise": true,
42
43
  "add_devise_masquerade": false,
43
44
  "add_dotenv": false,
44
- "add_faker": false,
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": false,
62
+ "add_rubocop": true,
61
63
  "add_twilio_ruby": false,
62
- "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/brakeman/_.rb"
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/brakeman/_.rb",
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": false,
46
- "add_avo": false,
45
+ "add_annotate": true,
46
+ "add_avo": true,
47
47
  "add_bcrypt": false,
48
- "add_brakeman": true,
48
+ "add_brakeman": false,
49
49
  "add_browser": false,
50
+ "add_bundler_audit": false,
50
51
  "add_chartkick": false,
51
- "add_devise": false,
52
+ "add_devise": true,
52
53
  "add_devise_masquerade": false,
53
54
  "add_dotenv": false,
54
- "add_faker": false,
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": false,
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)]"
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsAppGenerator
4
- VERSION = '0.2.32'
4
+ VERSION = '0.2.35'
5
5
  end
data/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "rails_app_generator",
3
- "version": "0.2.32",
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.32",
9
+ "version": "0.2.35",
10
10
  "dependencies": {
11
11
  "daisyui": "^2.20.0"
12
12
  },
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rails_app_generator",
3
- "version": "0.2.32",
3
+ "version": "0.2.35",
4
4
  "description": "Create new Rails Application with custom opinions",
5
5
  "scripts": {
6
6
  "release": "semantic-release"
@@ -11,6 +11,7 @@
11
11
  "add_avo": true,
12
12
  "add_devise": true,
13
13
  "add_faker": true,
14
- "add_rubocop": true
14
+ "add_rubocop": true,
15
+ "add_minimal_css": true
15
16
  }
16
17
  }
@@ -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
+ }
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.32
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-19 00:00:00.000000000 Z
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