rails_app_generator 0.2.32 → 0.2.35

Sign up to get free protection for your applications and to get access to all the features.
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