rails_app_generator 0.2.31 → 0.2.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -0
  3. data/after_templates/addons/brakeman/_.rb +1 -32
  4. data/after_templates/addons/bundler_audit/_.rb +31 -0
  5. data/after_templates/addons/bundler_audit/app/assets/images/brakeman.png +0 -0
  6. data/after_templates/addons/bundler_audit/app/assets/images/curl.png +0 -0
  7. data/after_templates/addons/bundler_audit/app/assets/images/output.png +0 -0
  8. data/after_templates/addons/bundler_audit/app/controllers/home_controller.rb +4 -0
  9. data/after_templates/addons/bundler_audit/app/views/home/advisories.html.erb +10 -0
  10. data/after_templates/addons/bundler_audit/app/views/home/index.html.erb +20 -0
  11. data/after_templates/addons/bundler_audit/app/views/layouts/_footer.html.erb +0 -0
  12. data/after_templates/addons/bundler_audit/app/views/layouts/_navbar.html.erb +3 -0
  13. data/after_templates/addons/bundler_audit/app/views/layouts/application.html.erb +29 -0
  14. data/after_templates/addons/kaminari/_.rb +70 -0
  15. data/after_templates/addons/kaminari/app/assets/images/kaminari-custom-views-detailed.png +0 -0
  16. data/after_templates/addons/kaminari/app/assets/images/kaminari-custom-views.png +0 -0
  17. data/after_templates/addons/kaminari/app/controllers/home_controller.rb +4 -0
  18. data/after_templates/addons/kaminari/app/controllers/posts_controller.rb +70 -0
  19. data/after_templates/addons/kaminari/app/views/home/index.html.erb +21 -0
  20. data/after_templates/addons/kaminari/app/views/layouts/_footer.html.erb +0 -0
  21. data/after_templates/addons/kaminari/app/views/layouts/_navbar.html.erb +3 -0
  22. data/after_templates/addons/kaminari/app/views/layouts/application.html.erb +34 -0
  23. data/after_templates/addons/kaminari/app/views/posts/index.html.erb +32 -0
  24. data/after_templates/addons/kaminari/db/seeds.rb +3 -0
  25. data/docs/last_run/app_generator_class.json +16 -0
  26. data/docs/last_run/app_generator_data.json +5 -3
  27. data/docs/last_run/rails_options_class.json +16 -0
  28. data/docs/last_run/rails_options_data.json +5 -3
  29. data/lib/rails_app_generator/addons/brakeman.rb +1 -0
  30. data/lib/rails_app_generator/addons/bundler_audit.rb +13 -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/bundler_audit.json +13 -0
  38. data/profiles/addons/kaminari.json +14 -0
  39. data/templates/thor_task/profile/app/views/layouts/_footer.html.erb.tt +0 -1
  40. metadata +26 -2
  41. 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: 15c23f59cc83f0c3dd3ff9cabeef80af80d2a14bd18d8d890dbb100640bab22a
4
- data.tar.gz: 8acba70cf8a79185c8395f96762caa575968fb3521967ca4d1e80f282014d816
3
+ metadata.gz: 7b3d7a66cf0c689a6ae83cdf1bf1222b0027b26b71099970c1e1025d04abb86e
4
+ data.tar.gz: 51a7736f7d181418b5385f72922d53ea4762e445f18946ca467e40ab9b41ae96
5
5
  SHA512:
6
- metadata.gz: 137bc8d24086e7914baf7f332c7a1ff6bf7db9845771b007e545e9882895c886a1379da9f97fd5156a07902bf849ca2bac720cc981843cabba032107e8588714
7
- data.tar.gz: 8856d3e93f801687e6c9f3ec5a7581387c1109cfa224b3db479587527ec209ca09c2220b54a960ab29108c5fc6372aaad0c7eda71eed6761eaf876e51150f47d
6
+ metadata.gz: d354a5e6692cab7168c879df4c44824b171c97a5699e3a5416f067ed0a40ee2910ad2cbf0e74a25ac94ac229d859a01dcf92f4689023405a352260cc2bf3258c
7
+ data.tar.gz: 9c65703baf6aef3a6c224c936a29847e5ba960ab9a0e7a86aa5620f9910801d7b8f6c1a69df9d8411555e274a597b181dd257bf485cb73b174be3a6a345a4e20
data/CHANGELOG.md CHANGED
@@ -1,3 +1,25 @@
1
+ ## [0.2.33](https://github.com/klueless-io/rails_app_generator/compare/v0.2.32...v0.2.33) (2022-08-19)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * add kaminari addon ([b57fd5b](https://github.com/klueless-io/rails_app_generator/commit/b57fd5bdda219852b659404660187cbd0d8ec5dc))
7
+ * add kaminari addon ([d5774ed](https://github.com/klueless-io/rails_app_generator/commit/d5774ed173b0d594e2228278c2d34edce3a80ac9))
8
+
9
+ ## [0.2.32](https://github.com/klueless-io/rails_app_generator/compare/v0.2.31...v0.2.32) (2022-08-19)
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+ * add bundler-audit addon ([bb8c2bc](https://github.com/klueless-io/rails_app_generator/commit/bb8c2bce5b1925ffe0b4c745894d7cebfc25498d))
15
+
16
+ ## [0.2.31](https://github.com/klueless-io/rails_app_generator/compare/v0.2.30...v0.2.31) (2022-08-19)
17
+
18
+
19
+ ### Bug Fixes
20
+
21
+ * add brakeman profile ([5cb8166](https://github.com/klueless-io/rails_app_generator/commit/5cb8166a4a1630edd07b7fcb70ca5eff6d2e7136))
22
+
1
23
  ## [0.2.30](https://github.com/klueless-io/rails_app_generator/compare/v0.2.29...v0.2.30) (2022-08-19)
2
24
 
3
25
 
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # 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",
@@ -35,17 +35,19 @@
35
35
  "add_annotate": false,
36
36
  "add_avo": false,
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
42
  "add_devise": false,
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": true,
49
51
  "add_lograge": false,
50
52
  "add_minimal_css": true,
51
53
  "minimal_css_library": "water.css",
@@ -59,6 +61,6 @@
59
61
  "add_rolify": false,
60
62
  "add_rubocop": false,
61
63
  "add_twilio_ruby": false,
62
- "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/brakeman/_.rb"
64
+ "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/kaminari/_.rb"
63
65
  }
64
66
  }
@@ -47,6 +47,7 @@
47
47
  "add_bcrypt",
48
48
  "add_brakeman",
49
49
  "add_browser",
50
+ "add_bundler_audit",
50
51
  "add_chartkick",
51
52
  "add_devise",
52
53
  "add_devise_masquerade",
@@ -56,6 +57,7 @@
56
57
  "add_hexapdf",
57
58
  "add_httparty",
58
59
  "add_honeybadger",
60
+ "add_kaminari",
59
61
  "add_lograge",
60
62
  "add_minimal_css",
61
63
  "minimal_css_library",
@@ -400,6 +402,13 @@
400
402
  "default": false,
401
403
  "required": false
402
404
  },
405
+ {
406
+ "name": "add_bundler_audit",
407
+ "description": "",
408
+ "type": "boolean",
409
+ "default": false,
410
+ "required": false
411
+ },
403
412
  {
404
413
  "name": "add_chartkick",
405
414
  "description": "",
@@ -463,6 +472,13 @@
463
472
  "default": false,
464
473
  "required": false
465
474
  },
475
+ {
476
+ "name": "add_kaminari",
477
+ "description": "",
478
+ "type": "boolean",
479
+ "default": false,
480
+ "required": false
481
+ },
466
482
  {
467
483
  "name": "add_lograge",
468
484
  "description": "",
@@ -7,7 +7,7 @@
7
7
  "quiet": false,
8
8
  "skip": false,
9
9
  "ruby": "/Users/davidcruwys/.asdf/installs/ruby/2.7.6/bin/ruby",
10
- "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/brakeman/_.rb",
10
+ "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/kaminari/_.rb",
11
11
  "database": "sqlite3",
12
12
  "skip_git": true,
13
13
  "skip_keeps": false,
@@ -45,17 +45,19 @@
45
45
  "add_annotate": false,
46
46
  "add_avo": false,
47
47
  "add_bcrypt": false,
48
- "add_brakeman": true,
48
+ "add_brakeman": false,
49
49
  "add_browser": false,
50
+ "add_bundler_audit": false,
50
51
  "add_chartkick": false,
51
52
  "add_devise": false,
52
53
  "add_devise_masquerade": false,
53
54
  "add_dotenv": false,
54
- "add_faker": 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": true,
59
61
  "add_lograge": false,
60
62
  "add_minimal_css": true,
61
63
  "minimal_css_library": "water.css",
@@ -5,6 +5,7 @@ module RailsAppGenerator
5
5
  module AddOns
6
6
  # Add Brakeman to rails application
7
7
  class Brakeman < RailsAppGenerator::Addon
8
+ # TODO: This needs to go into the development group
8
9
  required_gem gem.version('brakeman', '5.3.1', 'Brakeman is a static analysis security vulnerability scanner for Ruby on Rails applications')
9
10
 
10
11
  def apply; end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RailsAppGenerator
4
+ # Custom add-ons for RailsAppGenerator
5
+ module AddOns
6
+ # Add BundlerAudit to rails application
7
+ class BundlerAudit < RailsAppGenerator::Addon
8
+ required_gem gem.version('bundler-audit', '0.9.1', 'Patch-level verification for Bundler')
9
+
10
+ def apply; end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RailsAppGenerator
4
+ # Custom add-ons for RailsAppGenerator
5
+ module AddOns
6
+ # Add Kaminari to rails application
7
+ class Kaminari < RailsAppGenerator::Addon
8
+ required_gem gem.version('kaminari', '1.2.2', 'Easily add pagination to your Ruby web apps')
9
+
10
+ def apply
11
+ generate('kaminari:config')
12
+ end
13
+ end
14
+ end
15
+ end
@@ -174,6 +174,7 @@ module RailsAppGenerator
174
174
  add_if(:bcrypt) # tested
175
175
  add_if(:brakeman) # tested
176
176
  add_if(:browser) # tested
177
+ add_if(:bundler_audit) # tested
177
178
  add_if(:chartkick) # tested
178
179
  add_if(:continuous_integration) # TODO: needs work
179
180
  add_if(:devise) # tested
@@ -189,6 +190,7 @@ module RailsAppGenerator
189
190
  add_if(:httparty) # tested
190
191
  add_if(:high_voltage) # TODO: needs testing
191
192
  add_if(:honeybadger) # tested
193
+ add_if(:kaminari) # tested
192
194
  add_if(:lograge) # tested
193
195
  add_if(:minimal_css) # tested (this is NOT a GEM)
194
196
  add_if(:mini_magick) # tested
@@ -109,6 +109,7 @@ KConfig.configure do |config|
109
109
  rag.add_option :add_bcrypt , type: :boolean, default: false
110
110
  rag.add_option :add_brakeman , type: :boolean, default: false
111
111
  rag.add_option :add_browser , type: :boolean, default: false
112
+ rag.add_option :add_bundler_audit , type: :boolean, default: false
112
113
  rag.add_option :add_chartkick , type: :boolean, default: false
113
114
  # continuous_integration
114
115
  rag.add_option :add_devise , type: :boolean, default: false
@@ -124,6 +125,7 @@ KConfig.configure do |config|
124
125
  rag.add_option :add_httparty , type: :boolean, default: false
125
126
  # high_voltage
126
127
  rag.add_option :add_honeybadger , type: :boolean, default: false
128
+ rag.add_option :add_kaminari , type: :boolean, default: false
127
129
  rag.add_option :add_lograge , type: :boolean, default: false
128
130
  rag.add_option :add_minimal_css , type: :boolean, default: false
129
131
  rag.add_option :minimal_css_library , type: :string, default: 'water.css', description: "Minimal CSS library to get you started. [options: water.css (default)]"
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsAppGenerator
4
- VERSION = '0.2.31'
4
+ VERSION = '0.2.34'
5
5
  end
data/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "rails_app_generator",
3
- "version": "0.2.31",
3
+ "version": "0.2.34",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "rails_app_generator",
9
- "version": "0.2.31",
9
+ "version": "0.2.34",
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.31",
3
+ "version": "0.2.34",
4
4
  "description": "Create new Rails Application with custom opinions",
5
5
  "scripts": {
6
6
  "release": "semantic-release"
@@ -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,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_app_generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.31
4
+ version: 0.2.34
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Cruwys
@@ -232,10 +232,19 @@ files:
232
232
  - after_templates/addons/brakeman/app/views/layouts/_footer.html.erb
233
233
  - after_templates/addons/brakeman/app/views/layouts/_navbar.html.erb
234
234
  - after_templates/addons/brakeman/app/views/layouts/application.html.erb
235
- - after_templates/addons/brakeman/db/seeds.rb
236
235
  - after_templates/addons/browser/_.rb
237
236
  - after_templates/addons/browser/app/controllers/home_controller.rb
238
237
  - after_templates/addons/browser/app/views/home/index.html.erb
238
+ - after_templates/addons/bundler_audit/_.rb
239
+ - after_templates/addons/bundler_audit/app/assets/images/brakeman.png
240
+ - after_templates/addons/bundler_audit/app/assets/images/curl.png
241
+ - after_templates/addons/bundler_audit/app/assets/images/output.png
242
+ - after_templates/addons/bundler_audit/app/controllers/home_controller.rb
243
+ - after_templates/addons/bundler_audit/app/views/home/advisories.html.erb
244
+ - after_templates/addons/bundler_audit/app/views/home/index.html.erb
245
+ - after_templates/addons/bundler_audit/app/views/layouts/_footer.html.erb
246
+ - after_templates/addons/bundler_audit/app/views/layouts/_navbar.html.erb
247
+ - after_templates/addons/bundler_audit/app/views/layouts/application.html.erb
239
248
  - after_templates/addons/chartkick/_.rb
240
249
  - after_templates/addons/chartkick/app/controllers/home_controller.rb
241
250
  - after_templates/addons/chartkick/app/views/home/index.html.erb
@@ -304,6 +313,17 @@ files:
304
313
  - after_templates/addons/httparty/app/views/layouts/_footer.html.erb
305
314
  - after_templates/addons/httparty/app/views/layouts/_navbar.html.erb
306
315
  - after_templates/addons/httparty/app/views/layouts/application.html.erb
316
+ - after_templates/addons/kaminari/_.rb
317
+ - after_templates/addons/kaminari/app/assets/images/kaminari-custom-views-detailed.png
318
+ - after_templates/addons/kaminari/app/assets/images/kaminari-custom-views.png
319
+ - after_templates/addons/kaminari/app/controllers/home_controller.rb
320
+ - after_templates/addons/kaminari/app/controllers/posts_controller.rb
321
+ - after_templates/addons/kaminari/app/views/home/index.html.erb
322
+ - after_templates/addons/kaminari/app/views/layouts/_footer.html.erb
323
+ - after_templates/addons/kaminari/app/views/layouts/_navbar.html.erb
324
+ - after_templates/addons/kaminari/app/views/layouts/application.html.erb
325
+ - after_templates/addons/kaminari/app/views/posts/index.html.erb
326
+ - after_templates/addons/kaminari/db/seeds.rb
307
327
  - after_templates/addons/lograge/_.rb
308
328
  - after_templates/addons/lograge/app/controllers/home_controller.rb
309
329
  - after_templates/addons/lograge/app/views/home/index.html.erb
@@ -606,6 +626,7 @@ files:
606
626
  - lib/rails_app_generator/addons/bcrypt.rb
607
627
  - lib/rails_app_generator/addons/brakeman.rb
608
628
  - lib/rails_app_generator/addons/browser.rb
629
+ - lib/rails_app_generator/addons/bundler_audit.rb
609
630
  - lib/rails_app_generator/addons/chartkick.rb
610
631
  - lib/rails_app_generator/addons/continuous_integration.rb
611
632
  - lib/rails_app_generator/addons/devise.rb
@@ -624,6 +645,7 @@ files:
624
645
  - lib/rails_app_generator/addons/httparty.rb
625
646
  - lib/rails_app_generator/addons/inline_svg.rb
626
647
  - lib/rails_app_generator/addons/irbrc.rb
648
+ - lib/rails_app_generator/addons/kaminari.rb
627
649
  - lib/rails_app_generator/addons/lograge.rb
628
650
  - lib/rails_app_generator/addons/mini_magick.rb
629
651
  - lib/rails_app_generator/addons/minimal_css.rb
@@ -687,6 +709,7 @@ files:
687
709
  - profiles/addons/bcrypt.json
688
710
  - profiles/addons/brakeman.json
689
711
  - profiles/addons/browser.json
712
+ - profiles/addons/bundler_audit.json
690
713
  - profiles/addons/chartkick.json
691
714
  - profiles/addons/devise.json
692
715
  - profiles/addons/devise_masquerade.json
@@ -695,6 +718,7 @@ files:
695
718
  - profiles/addons/hexapdf.json
696
719
  - profiles/addons/honeybadger.json
697
720
  - profiles/addons/httparty.json
721
+ - profiles/addons/kaminari.json
698
722
  - profiles/addons/lograge.json
699
723
  - profiles/addons/mini_magick.json
700
724
  - profiles/addons/minimal_css.json
@@ -1,7 +0,0 @@
1
- # david = User.create(email: 'david@site.com', name: 'david', password: 'password')
2
- # james = User.create(email: 'james@site.com', name: 'james', password: 'password')
3
- # sally = User.create(email: 'sally@site.com', name: 'sally', password: 'password')
4
-
5
- # 10.times do |i|
6
- # Post.create(title: "Post #{i}", body: "This is the body of post #{i}", user: User.all.sample)
7
- # end