rails_app_generator 0.2.25 → 0.2.28

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 (32) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -0
  3. data/after_templates/addons/devise_masquerade/_.rb +7 -7
  4. data/after_templates/addons/devise_masquerade/app/views/home/index.html.erb +2 -6
  5. data/after_templates/addons/pretender/_.rb +36 -0
  6. data/after_templates/addons/pretender/app/controllers/application_controller.rb +3 -0
  7. data/after_templates/addons/pretender/app/controllers/home_controller.rb +4 -0
  8. data/after_templates/addons/pretender/app/models/user.rb +15 -0
  9. data/after_templates/addons/pretender/app/views/home/index.html.erb +67 -0
  10. data/after_templates/addons/pretender/app/views/layouts/_footer.html.erb +1 -0
  11. data/after_templates/addons/pretender/app/views/layouts/_navbar.html.erb +8 -0
  12. data/after_templates/addons/pretender/app/views/layouts/application.html.erb +58 -0
  13. data/after_templates/addons/pretender/db/seeds.rb +3 -0
  14. data/docs/last_run/app_generator_class.json +13 -5
  15. data/docs/last_run/app_generator_data.json +4 -3
  16. data/docs/last_run/rails_options_class.json +11 -3
  17. data/docs/last_run/rails_options_data.json +5 -5
  18. data/lib/rails_app_generator/addon.rb +6 -0
  19. data/lib/rails_app_generator/addons/devise.rb +9 -2
  20. data/lib/rails_app_generator/addons/devise_masquerade.rb +0 -6
  21. data/lib/rails_app_generator/addons/pretender.rb +18 -0
  22. data/lib/rails_app_generator/addons/rolify.rb +37 -0
  23. data/lib/rails_app_generator/app_generator.rb +3 -1
  24. data/lib/rails_app_generator/rag_initializer.rb +3 -1
  25. data/lib/rails_app_generator/version.rb +1 -1
  26. data/package-lock.json +2 -2
  27. data/package.json +1 -1
  28. data/profiles/addons/pretender.json +16 -0
  29. data/templates/addons/pretender/app/controllers/pretender_controller.rb +14 -0
  30. data/templates/thor_task/profile/after_template.rb +22 -16
  31. data/templates/thor_task/profile/profile.json.tt +1 -1
  32. metadata +14 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f540e53519b46581a9bc18d4db37766d6ac38a27a7493732058aa83254caf62e
4
- data.tar.gz: da9ecf9716c196663b3d8be4d18e070fadf5f8f3ef4c6c501fbc213f2130a9db
3
+ metadata.gz: 99e66536aa70b641a6bd5186f7aaf1416befa8790c29a6112c858471ae733c4b
4
+ data.tar.gz: b820d4051f8ff1ad8560520d52b4e5d9cf7303278b2bae4e9ed624b3dfb1efc1
5
5
  SHA512:
6
- metadata.gz: 7b16806642e285948098aa32af0454f86288a466db8decd5fda79ceb9a2cdbf4d63fa439631d42fc4cf5d45b7b8bc23fc05c2472c781870dd5306cb65940e3dd
7
- data.tar.gz: dd0a91e5039ae9f3b450f62624f40651a3fc7e036c3a52a8d9a4d2b582958f95b32fc6d51f57742bf4e9e156714bd5ecb5784fa1030a1de4f5e8c6d16199ff7b
6
+ metadata.gz: 4461f08a275460d565a8ec5fc22e7e8e806bd42d09dfd9ee5e6291927ce4db23b1056a12146a51c218714340d87a6fcd9ddf968a7cb027539fcbe5766268435b
7
+ data.tar.gz: e7a7977c103c67bb38b512c8f6bfbd3384bd3b4100cca4c2f14a0c0743f261c0e7a2b6b89f47f93eb59c3475bb1cc72b975b644de3794b44f293b02a793261cb
data/CHANGELOG.md CHANGED
@@ -1,3 +1,25 @@
1
+ ## [0.2.27](https://github.com/klueless-io/rails_app_generator/compare/v0.2.26...v0.2.27) (2022-08-17)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * add pretender profile ([25abb2b](https://github.com/klueless-io/rails_app_generator/commit/25abb2b5b4a187db13d62d9747b7a8e283298a88))
7
+ * add pretender profile ([5d24dfc](https://github.com/klueless-io/rails_app_generator/commit/5d24dfcd5f0420e7e1004a30de33e9003f1e9d5c))
8
+
9
+ ## [0.2.26](https://github.com/klueless-io/rails_app_generator/compare/v0.2.25...v0.2.26) (2022-08-17)
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+ * add pretender addon ([e0bda54](https://github.com/klueless-io/rails_app_generator/commit/e0bda54cc74da230a579ff1219b9b2f2172936d1))
15
+
16
+ ## [0.2.25](https://github.com/klueless-io/rails_app_generator/compare/v0.2.24...v0.2.25) (2022-08-17)
17
+
18
+
19
+ ### Bug Fixes
20
+
21
+ * add devise_masquerade profile ([d34668c](https://github.com/klueless-io/rails_app_generator/commit/d34668cf2af1103ebee888ef3c78498e8323b1a5))
22
+
1
23
  ## [0.2.24](https://github.com/klueless-io/rails_app_generator/compare/v0.2.23...v0.2.24) (2022-08-16)
2
24
 
3
25
 
@@ -15,13 +15,6 @@ after_bundle do
15
15
  setup_db
16
16
  end
17
17
 
18
- def setup_db
19
- template 'db/seeds.rb' , 'db/seeds.rb'
20
-
21
- db_migrate
22
- db_seed
23
- end
24
-
25
18
  def setup_customizations
26
19
  route("root 'home#index'")
27
20
 
@@ -34,3 +27,10 @@ def setup_customizations
34
27
  directory "app/views"
35
28
  template 'app/views/layouts/application.html.erb' , 'app/views/layouts/application.html.erb'
36
29
  end
30
+
31
+ def setup_db
32
+ template 'db/seeds.rb' , 'db/seeds.rb'
33
+
34
+ db_migrate
35
+ db_seed
36
+ end
@@ -4,7 +4,7 @@
4
4
 
5
5
  <p><b class='alert'>Warning!</b> If <code>masquerade?</code> is never returning <code>true</code> then ensure you have turned on caching in development using <code>rails dev:cache</code> </p>
6
6
 
7
- <pre><code>user_masquerade? => <%= user_masquerade? %></code></pre>
7
+ <pre><code>true_user => <%= current_user ? true_user.name : 'NOT SIGNED IN' %></code></pre>
8
8
 
9
9
  <p>Sign in with an <b>Admin</b> user and then impersonate other users</p>
10
10
 
@@ -46,7 +46,7 @@
46
46
  <% if current_user.user? %>
47
47
  Cannot masquerade
48
48
  <% elsif user.user? %>
49
- <%= link_to user.name.capitalize, masquerade_path(user) %>
49
+ <%= link_to user.name.capitalize, masquerade_path(user), data: { turbo_method: :post } %>
50
50
  <% else %>
51
51
 
52
52
  <% end %>
@@ -60,7 +60,3 @@
60
60
  </tr>
61
61
  <% end %>
62
62
  </table>
63
-
64
- <% if current_user&.user? && !user_masquerade? %>
65
- <p class='alert'>Sign in as an admin user</p>
66
- <% end %>
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Log in as another user in Rails
4
+ #
5
+ # exe/rag addons/pretender
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
+ setup_customizations
15
+ setup_db
16
+ end
17
+
18
+ def setup_customizations
19
+ route("root 'home#index'")
20
+
21
+ force_copy
22
+
23
+ add_controller('home', 'index')
24
+
25
+ directory "app/controllers"
26
+ directory "app/models"
27
+ directory "app/views"
28
+ template 'app/views/layouts/application.html.erb' , 'app/views/layouts/application.html.erb'
29
+ end
30
+
31
+ def setup_db
32
+ template 'db/seeds.rb' , 'db/seeds.rb'
33
+
34
+ db_migrate
35
+ db_seed
36
+ end
@@ -0,0 +1,3 @@
1
+ class ApplicationController < ActionController::Base
2
+ impersonates :user
3
+ end
@@ -0,0 +1,4 @@
1
+ class HomeController < ApplicationController
2
+ def index
3
+ end
4
+ end
@@ -0,0 +1,15 @@
1
+ class User < ApplicationRecord
2
+ after_initialize :set_default_role, if: :new_record?
3
+
4
+ devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable
5
+
6
+ has_many :posts
7
+
8
+ enum role: { user: 0, moderator: 1, admin: 9 }
9
+
10
+ private
11
+
12
+ def set_default_role
13
+ self.role ||= :user
14
+ end
15
+ end
@@ -0,0 +1,67 @@
1
+ <h1>Pretender</h1>
2
+
3
+ <h4>Log in as another user in Rails</h4>
4
+
5
+ <pre><code>true_user => <%= current_user ? true_user.name : 'NOT SIGNED IN' %></code></pre>
6
+
7
+ <p>Sign in with an <b>Admin</b> user and then impersonate other users</p>
8
+
9
+ <h3>Sample users and passwords</h3>
10
+
11
+ <% if current_user %>
12
+ <% if current_user.admin? %>
13
+ <h1 class='admin'><%= current_user.name.capitalize %> - Admininstrator</h1>
14
+ <% elsif current_user.user? %>
15
+ <h1 class='user'><%= current_user.name.capitalize %> - User</h1>
16
+ <% end %>
17
+ <% else %>
18
+ <h1 class='not-signed-in'>Not currently signed in</h1>
19
+ <% end %>
20
+
21
+ <table style='width: 600px;'>
22
+ <tr>
23
+ <th>Name</th>
24
+ <th>Email</th>
25
+ <th>Role</th>
26
+ <% if current_user %>
27
+ <th>Impersonate</th>
28
+ <% else %>
29
+ <th>Password</th>
30
+ <% end %>
31
+ </tr>
32
+
33
+ <% if current_user != true_user %>
34
+ You (<%= true_user.name %>) are signed in as <%= current_user.name %>
35
+ <% end %>
36
+
37
+ <% User.all.each do |user| %>
38
+ <tr>
39
+ <td><%= user.name %></td>
40
+ <td><%= user.email %></td>
41
+ <td><%= user.role %></td>
42
+ <td>
43
+ <% if current_user %>
44
+ <% if current_user.admin? %>
45
+ <% if user.admin? && current_user != true_user %>
46
+ <%= link_to "Back to #{user.name.capitalize}", stop_impersonating_user_path, data: { turbo_method: :post } %>
47
+ <% elsif user.user? %>
48
+ <%= link_to user.name.capitalize, impersonate_user_path(user), data: { turbo_method: :post } %>
49
+ <% end %>
50
+ <% else %>
51
+ <% if user.admin? && current_user != true_user %>
52
+ <%= link_to "Back to #{user.name.capitalize}", stop_impersonating_user_path, data: { turbo_method: :post } %>
53
+ <% elsif current_user == true_user %>
54
+ N/A
55
+ <% else %>
56
+
57
+ <% end %>
58
+ <% end %>
59
+ <% else %>
60
+ password
61
+ <% end %>
62
+
63
+ </td>
64
+ </td>
65
+ </tr>
66
+ <% end %>
67
+ </table>
@@ -0,0 +1,8 @@
1
+ <%= link_to 'Home', root_path %>
2
+ <% if current_user %>
3
+ | <%= link_to 'Sign Out', destroy_user_session_path, data: { turbo_method: :delete } %>
4
+ | Current User: <b><%= current_user.name.capitalize %></b>
5
+ | True User: <b><%= true_user.name.capitalize %></b>
6
+ <% else %>
7
+ | <%= link_to 'Sign In', new_user_session_path %>
8
+ <% end%>
@@ -0,0 +1,58 @@
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
+ <%%= javascript_include_tag "application", "data-turbo-track": "reload", defer: true %>
15
+ <style>
16
+ .notice {
17
+ color: green;
18
+ }
19
+ .alert {
20
+ color: red;
21
+ }
22
+ table {
23
+ border-collapse: collapse;
24
+ }
25
+ th, td {
26
+ border: 1px solid #ccc;
27
+ padding: 5px;
28
+ }
29
+ .admin {
30
+ background-color: pink;
31
+ }
32
+ .user {
33
+ background-color: lightgreen;
34
+ }
35
+ .not-signed-in {
36
+ background-color: lightgrey;
37
+ }
38
+ .admin, .user, .not-signed-in {
39
+ text-align: center;
40
+ }
41
+ </style>
42
+ </head>
43
+
44
+ <body>
45
+ <header>
46
+ <%%= render 'layouts/navbar' %>
47
+ <hr />
48
+ <%%= render 'layouts/alerts' %>
49
+ </header>
50
+ <main>
51
+ <%%= yield %>
52
+ </main>
53
+ <footer>
54
+ <%%= render 'layouts/footer' %>
55
+ </footer>
56
+ </body>
57
+ </html>
58
+
@@ -0,0 +1,3 @@
1
+ User.create(email: 'david@site.com', name: 'david', password: 'password', password_confirmation: 'password', role: :admin)
2
+ User.create(email: 'james@site.com', name: 'james', password: 'password', password_confirmation: 'password')
3
+ User.create(email: 'sally@site.com', name: 'sally', password: 'password', password_confirmation: 'password')
@@ -60,8 +60,9 @@
60
60
  "minimal_css_library",
61
61
  "add_mini_magick",
62
62
  "add_motor_admin",
63
- "add_public_suffix",
64
63
  "add_phony_rails",
64
+ "add_pretender",
65
+ "add_public_suffix",
65
66
  "add_rails_html_sanitizer",
66
67
  "add_redcarpet",
67
68
  "add_rubocop",
@@ -489,15 +490,22 @@
489
490
  "required": false
490
491
  },
491
492
  {
492
- "name": "add_public_suffix",
493
- "description": "Indicates when to generate add public suffix",
493
+ "name": "add_phony_rails",
494
+ "description": "Indicates when to generate add phony rails",
494
495
  "type": "boolean",
495
496
  "default": false,
496
497
  "required": false
497
498
  },
498
499
  {
499
- "name": "add_phony_rails",
500
- "description": "Indicates when to generate add phony rails",
500
+ "name": "add_pretender",
501
+ "description": "Indicates when to generate add pretender",
502
+ "type": "boolean",
503
+ "default": false,
504
+ "required": false
505
+ },
506
+ {
507
+ "name": "add_public_suffix",
508
+ "description": "Indicates when to generate add public suffix",
501
509
  "type": "boolean",
502
510
  "default": false,
503
511
  "required": false
@@ -38,7 +38,7 @@
38
38
  "add_browser": false,
39
39
  "add_chartkick": false,
40
40
  "add_devise": true,
41
- "add_devise_masquerade": true,
41
+ "add_devise_masquerade": false,
42
42
  "add_dotenv": false,
43
43
  "add_faker": false,
44
44
  "add_groupdate": false,
@@ -50,12 +50,13 @@
50
50
  "minimal_css_library": "water.css",
51
51
  "add_mini_magick": false,
52
52
  "add_motor_admin": false,
53
- "add_public_suffix": false,
54
53
  "add_phony_rails": false,
54
+ "add_pretender": true,
55
+ "add_public_suffix": false,
55
56
  "add_rails_html_sanitizer": false,
56
57
  "add_redcarpet": false,
57
58
  "add_rubocop": false,
58
59
  "add_twilio_ruby": false,
59
- "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/devise_masquerade/_.rb"
60
+ "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/pretender/_.rb"
60
61
  }
61
62
  }
@@ -60,8 +60,9 @@
60
60
  "minimal_css_library",
61
61
  "add_mini_magick",
62
62
  "add_motor_admin",
63
- "add_public_suffix",
64
63
  "add_phony_rails",
64
+ "add_pretender",
65
+ "add_public_suffix",
65
66
  "add_rails_html_sanitizer",
66
67
  "add_redcarpet",
67
68
  "add_rubocop",
@@ -489,14 +490,21 @@
489
490
  "required": false
490
491
  },
491
492
  {
492
- "name": "add_public_suffix",
493
+ "name": "add_phony_rails",
493
494
  "description": "",
494
495
  "type": "boolean",
495
496
  "default": false,
496
497
  "required": false
497
498
  },
498
499
  {
499
- "name": "add_phony_rails",
500
+ "name": "add_pretender",
501
+ "description": "",
502
+ "type": "boolean",
503
+ "default": false,
504
+ "required": false
505
+ },
506
+ {
507
+ "name": "add_public_suffix",
500
508
  "description": "",
501
509
  "type": "boolean",
502
510
  "default": false,
@@ -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/devise_masquerade/_.rb",
10
+ "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/pretender/_.rb",
11
11
  "database": "sqlite3",
12
12
  "skip_git": true,
13
13
  "skip_keeps": false,
@@ -48,7 +48,7 @@
48
48
  "add_browser": false,
49
49
  "add_chartkick": false,
50
50
  "add_devise": true,
51
- "add_devise_masquerade": true,
51
+ "add_devise_masquerade": false,
52
52
  "add_dotenv": false,
53
53
  "add_faker": false,
54
54
  "add_groupdate": false,
@@ -60,12 +60,12 @@
60
60
  "minimal_css_library": "water.css",
61
61
  "add_mini_magick": false,
62
62
  "add_motor_admin": false,
63
- "add_public_suffix": false,
64
63
  "add_phony_rails": false,
64
+ "add_pretender": true,
65
+ "add_public_suffix": false,
65
66
  "add_rails_html_sanitizer": false,
66
67
  "add_redcarpet": false,
67
68
  "add_rubocop": false,
68
- "add_twilio_ruby": false,
69
- "notes": "there is a name conflict if the rails application has the same name as the gem and so devise_masquerade has been renamed to devise_masquerade_sample"
69
+ "add_twilio_ruby": false
70
70
  }
71
71
  }
@@ -94,6 +94,12 @@ module RailsAppGenerator
94
94
  ::FileUtils.mv(source, target)
95
95
  end
96
96
  # rubocop:enable Metrics/AbcSize
97
+
98
+ def bundle_install
99
+ Util.bundler_environment(environment_style: :unbundled_env) do
100
+ run('bundle install')
101
+ end
102
+ end
97
103
  end
98
104
  # rubocop:enable Metrics/BlockLength
99
105
 
@@ -10,10 +10,11 @@ module RailsAppGenerator
10
10
  required_gem gem.version('devise', '4.8.1', 'Flexible authentication solution for Rails with Warden')
11
11
 
12
12
  def apply
13
+ bundle_install
14
+
13
15
  generate('devise:install', capture: true)
14
- generate(:devise, 'User', 'name', 'role:integer', capture: true)
15
16
 
16
- update_migration
17
+ setup_db
17
18
 
18
19
  add_trackable if option?(:devise_has_trackable)
19
20
  add_confirmable if option?(:devise_has_confirmable)
@@ -39,6 +40,12 @@ module RailsAppGenerator
39
40
 
40
41
  private
41
42
 
43
+ def setup_db
44
+ generate(:devise, 'User', 'name', 'role:integer', capture: true)
45
+
46
+ update_migration
47
+ end
48
+
42
49
  def update_migration
43
50
  in_root do
44
51
  migration = Dir.glob('db/migrate/*').max_by { |f| File.mtime(f) }
@@ -12,12 +12,6 @@ module RailsAppGenerator
12
12
  def apply
13
13
  # NOTE: update_routes_with_devise_controllers is being handled in devise.rb addon
14
14
  end
15
-
16
- # def update_routes_with_devise_controllers
17
- # in_root do
18
- # gsub_file 'config/routes.rb', /registrations: "users\/registrations"/, 'registrations: "users/registrations", masquerades: "users/masquerades"'
19
- # end
20
- # end
21
15
  end
22
16
  end
23
17
  end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RailsAppGenerator
4
+ # Custom add-ons for RailsAppGenerator
5
+ module AddOns
6
+ # Add Pretender to rails application
7
+ class Pretender < RailsAppGenerator::Addon
8
+ required_gem gem.version('pretender', '0.4.0', 'Log in as another user in Rails')
9
+
10
+ def apply
11
+ copy_file('app/controllers/pretender_controller.rb', 'app/controllers/pretender_controller.rb')
12
+
13
+ route("post 'pretender/:user_id/impersonate' , to: 'pretender#impersonate' , :as => :impersonate_user")
14
+ route("post 'pretender/stop_impersonating' , to: 'pretender#stop_impersonating' , :as => :stop_impersonating_user")
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RailsAppGenerator
4
+ # Custom add-ons for RailsAppGenerator
5
+ module AddOns
6
+ # Add Rolify to rails application
7
+ class Rolify < RailsAppGenerator::Addon
8
+ required_gem gem.version('rolify', '6.0.0', 'Role management library with resource scoping.')
9
+
10
+ def apply
11
+ # bundle_install
12
+ generate('rolify', 'role', 'user')
13
+
14
+ say 'Setting up Rolify'
15
+ # template('rolify_template.rb', 'target/rolify.rb', force: true)
16
+ # template('app/javascript/stylesheets/components.scss')
17
+ # create_file('target/rolify.rb', 'put your content here')
18
+ # directory 'app/template', 'app/target', force: true
19
+ # empty_directory 'app/target'
20
+ # inject_into_file('app/application.js', "some content")
21
+ # rails_command('tailwindcss:install')
22
+ end
23
+
24
+ def before_template
25
+ say 'Setting up Rolify - before custom template'
26
+ end
27
+
28
+ def before_bundle
29
+ say 'Setting up Rolify - before bundle install'
30
+ end
31
+
32
+ def after_bundle
33
+ say 'Setting up Rolify - after bundle install'
34
+ end
35
+ end
36
+ end
37
+ end
@@ -192,12 +192,14 @@ module RailsAppGenerator
192
192
  add_if(:minimal_css) # tested (this is NOT a GEM)
193
193
  add_if(:mini_magick) # tested
194
194
  add_if(:motor_magick) # tested
195
- add_if(:public_suffix) # tested
196
195
  add_if(:phony_rails) # tested
196
+ add_if(:pretender) # tested
197
+ add_if(:public_suffix) # tested
197
198
  add_if(:pundit) # TODO: needs testing
198
199
  add_if(:rails_html_sanitizer) # tested
199
200
  add_if(:rails_app_generator) # TODO: needs testing
200
201
  add_if(:redcarpet) # tested
202
+ add_if(:rolify) # tested
201
203
  add_if(:services) # TODO: needs testing
202
204
  add_if(:shoulda) # TODO: needs testing
203
205
  add_if(:sidekiq) # TODO: needs testing
@@ -128,13 +128,15 @@ KConfig.configure do |config|
128
128
  rag.add_option :minimal_css_library , type: :string, default: 'water.css', description: "Minimal CSS library to get you started. [options: water.css (default)]"
129
129
  rag.add_option :add_mini_magick , type: :boolean, default: false
130
130
  rag.add_option :add_motor_admin , type: :boolean, default: false
131
- rag.add_option :add_public_suffix , type: :boolean, default: false
132
131
  rag.add_option :add_phony_rails , type: :boolean, default: false
132
+ rag.add_option :add_pretender , type: :boolean, default: false
133
+ rag.add_option :add_public_suffix , type: :boolean, default: false
133
134
  # pundit
134
135
  rag.add_option :add_rails_html_sanitizer , type: :boolean, default: false
135
136
  # rails_app_generator
136
137
  # RANSACK
137
138
  rag.add_option :add_redcarpet , type: :boolean, default: false
139
+ rag.add_option :add_rolify , type: :boolean, default: false
138
140
  # services
139
141
  # shoulda
140
142
  # sidekiq
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsAppGenerator
4
- VERSION = '0.2.25'
4
+ VERSION = '0.2.28'
5
5
  end
data/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "rails_app_generator",
3
- "version": "0.2.25",
3
+ "version": "0.2.28",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "rails_app_generator",
9
- "version": "0.2.25",
9
+ "version": "0.2.28",
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.25",
3
+ "version": "0.2.28",
4
4
  "description": "Create new Rails Application with custom opinions",
5
5
  "scripts": {
6
6
  "release": "semantic-release"
@@ -0,0 +1,16 @@
1
+ {
2
+ "args": {
3
+ "app_path": "r7_pretender",
4
+ "destination_root": "/Users/davidcruwys/dev/kgems/rails_app_generator/a/addons"
5
+ },
6
+ "opts": {
7
+ "skip_git": true,
8
+ "skip_test": true,
9
+ "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/pretender/_.rb",
10
+ "javascript": "esbuild",
11
+ "add_annotate": true,
12
+ "add_devise": true,
13
+ "add_pretender": true,
14
+ "add_minimal_css": true
15
+ }
16
+ }
@@ -0,0 +1,14 @@
1
+ class PretenderController < ApplicationController
2
+ before_action :authenticate_user!
3
+
4
+ def impersonate
5
+ user = User.find(params[:user_id])
6
+ impersonate_user(user)
7
+ redirect_to root_path
8
+ end
9
+
10
+ def stop_impersonating
11
+ stop_impersonating_user
12
+ redirect_to root_path
13
+ end
14
+ end
@@ -10,30 +10,36 @@ gac 'base rails 7 image created'
10
10
 
11
11
  prepare_environment
12
12
 
13
- add_controller('home', 'index')
14
-
15
- route("root 'home#index'")
16
-
17
- force_copy
18
-
19
- directory "app/controllers"
20
- directory "app/views/home"
21
- directory "app/views/layouts"
22
- template 'app/views/layouts/application.html.erb' , 'app/views/layouts/application.html.erb'
23
-
24
- template 'db/seeds.rb' , 'db/seeds.rb'
25
-
26
13
  after_bundle do
14
+ scaffolds
15
+ setup_customizations
27
16
  setup_db
28
17
  end
29
18
 
30
- def setup_db
19
+ def scaffolds
31
20
  # add_scaffold('post', 'title', 'body:text', 'user:references')
32
21
  # add_scaffold('people', 'first_name', 'last_name', 'age:integer', 'address:text')
33
22
  # add_scaffold('product', 'name', 'price:integer')
23
+ end
24
+
25
+ def setup_customizations
26
+ route("root 'home#index'")
27
+
28
+ force_copy
29
+
30
+ add_controller('home', 'index')
31
+
32
+ directory "app/controllers"
33
+ directory "app/models"
34
+ directory "app/views"
35
+ template 'app/views/layouts/application.html.erb' , 'app/views/layouts/application.html.erb'
36
+ end
37
+
38
+ def setup_db
39
+ template 'db/seeds.rb' , 'db/seeds.rb'
34
40
 
35
- # db_migrate
36
- # db_seed
41
+ db_migrate
42
+ db_seed
37
43
  end
38
44
 
39
45
  # Other template command examples
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "args": {
3
- "app_path": "<%= data.name_snake %>",
3
+ "app_path": "r7_<%= data.name_snake %>",
4
4
  "destination_root": "<%= data.destination_root %>"
5
5
  },
6
6
  "opts": {
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.25
4
+ version: 0.2.28
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Cruwys
@@ -327,6 +327,15 @@ files:
327
327
  - after_templates/addons/phony_rails/app/controllers/home_controller.rb
328
328
  - after_templates/addons/phony_rails/app/views/home/index.html.erb
329
329
  - after_templates/addons/phony_rails/app/views/layouts/application.html.erb
330
+ - after_templates/addons/pretender/_.rb
331
+ - after_templates/addons/pretender/app/controllers/application_controller.rb
332
+ - after_templates/addons/pretender/app/controllers/home_controller.rb
333
+ - after_templates/addons/pretender/app/models/user.rb
334
+ - after_templates/addons/pretender/app/views/home/index.html.erb
335
+ - after_templates/addons/pretender/app/views/layouts/_footer.html.erb
336
+ - after_templates/addons/pretender/app/views/layouts/_navbar.html.erb
337
+ - after_templates/addons/pretender/app/views/layouts/application.html.erb
338
+ - after_templates/addons/pretender/db/seeds.rb
330
339
  - after_templates/addons/public_suffix/_.rb
331
340
  - after_templates/addons/public_suffix/app/controllers/home_controller.rb
332
341
  - after_templates/addons/public_suffix/app/views/home/index.html.erb
@@ -592,10 +601,12 @@ files:
592
601
  - lib/rails_app_generator/addons/minimal_css.rb
593
602
  - lib/rails_app_generator/addons/motor_admin.rb
594
603
  - lib/rails_app_generator/addons/phony_rails.rb
604
+ - lib/rails_app_generator/addons/pretender.rb
595
605
  - lib/rails_app_generator/addons/public_suffix.rb
596
606
  - lib/rails_app_generator/addons/pundit.rb
597
607
  - lib/rails_app_generator/addons/rails_html_sanitizer.rb
598
608
  - lib/rails_app_generator/addons/redcarpet.rb
609
+ - lib/rails_app_generator/addons/rolify.rb
599
610
  - lib/rails_app_generator/addons/rspec.rb
600
611
  - lib/rails_app_generator/addons/rubocop.rb
601
612
  - lib/rails_app_generator/addons/scaffold.rb
@@ -660,6 +671,7 @@ files:
660
671
  - profiles/addons/minimal_css.json
661
672
  - profiles/addons/motor_admin.json
662
673
  - profiles/addons/phony_rails.json
674
+ - profiles/addons/pretender.json
663
675
  - profiles/addons/public_suffix.json
664
676
  - profiles/addons/rails_html_sanitizer.json
665
677
  - profiles/addons/redcarpet.json
@@ -709,6 +721,7 @@ files:
709
721
  - templates/addons/honeybadger/honeybadger.sample.yml
710
722
  - templates/addons/irbrc/.irbrc.erb
711
723
  - templates/addons/lograge/config/initializers/lograge.rb
724
+ - templates/addons/pretender/app/controllers/pretender_controller.rb
712
725
  - templates/addons/pundit/app/controllers/authorized_controller.rb.erb
713
726
  - templates/addons/pundit/app/policies/application_policy.rb
714
727
  - templates/addons/rspec/spec/rails_helper.rb