rails_app_generator 0.2.38 → 0.2.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/after_templates/addons/avo/_.rb +11 -3
- data/after_templates/addons/avo/app/avo/resources/post_resource.rb +3 -0
- data/after_templates/addons/avo/app/avo/resources/user_resource.rb +1 -0
- data/after_templates/addons/avo/app/controllers/home_controller.rb +4 -0
- data/after_templates/addons/avo/app/models/post.rb +3 -2
- data/after_templates/addons/avo/app/models/user.rb +6 -0
- data/after_templates/addons/avo/app/services/seed_service.rb +9 -0
- data/after_templates/addons/avo/app/views/home/index.html.erb +4 -2
- data/after_templates/addons/avo/app/views/layouts/_navbar.html.erb +7 -1
- data/after_templates/addons/avo/db/seeds.rb +1 -1
- data/after_templates/addons/friendly_id/app/views/posts/_form.html.erb +32 -0
- data/after_templates/addons/friendly_id/app/views/posts/_post.html.erb +17 -0
- data/after_templates/addons/friendly_id/app/views/posts/_post.json.jbuilder +2 -0
- data/after_templates/addons/friendly_id/app/views/posts/edit.html.erb +10 -0
- data/after_templates/addons/friendly_id/app/views/posts/index.html.erb +14 -0
- data/after_templates/addons/friendly_id/app/views/posts/index.json.jbuilder +1 -0
- data/after_templates/addons/friendly_id/app/views/posts/new.html.erb +9 -0
- data/after_templates/addons/friendly_id/app/views/posts/show.json.jbuilder +1 -0
- data/docs/last_run/app_generator_data.json +8 -8
- data/docs/last_run/rails_options_data.json +8 -8
- data/lib/rails_app_generator/addons/factory_bot_rails.rb +15 -0
- data/lib/rails_app_generator/app_generator.rb +9 -0
- data/lib/rails_app_generator/rag_initializer.rb +1 -0
- data/lib/rails_app_generator/version.rb +1 -1
- data/package-lock.json +2 -2
- data/package.json +1 -1
- data/profiles/addons/avo.json +1 -1
- metadata +13 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: be981683729c562f221e7f00120145d345ea0111fbe80aa5f4cf9f2d03eaff03
|
4
|
+
data.tar.gz: 4a1a65620ae0fcecd12f0c27cd88fe0cb51da1c57843fc7afced0508cf31dfb1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d1fe4dfc123fb768fde98d6e40ed82e51955f3612751afa0241a05868d31d7fe7e209036bac26f42573cd7b7ef2f099415ab4e6e8177cd00322c59746f11e486
|
7
|
+
data.tar.gz: f79cefc7816b714aac7717d35b7a6d64ccc3302d5b90c31e7747e4e0897bd0c1a2820f87017ca86de4221ca9c593735e34eb8d52bd55a85906e08fcef5652fb9
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
## [0.2.38](https://github.com/klueless-io/rails_app_generator/compare/v0.2.37...v0.2.38) (2022-08-22)
|
2
|
+
|
3
|
+
|
4
|
+
### Bug Fixes
|
5
|
+
|
6
|
+
* add friendly_id addon ([5c34df5](https://github.com/klueless-io/rails_app_generator/commit/5c34df5fdbca8bc6810bd3cc9343d8b799d63ac3))
|
7
|
+
|
1
8
|
## [0.2.37](https://github.com/klueless-io/rails_app_generator/compare/v0.2.36...v0.2.37) (2022-08-22)
|
2
9
|
|
3
10
|
|
@@ -18,13 +18,19 @@ after_bundle do
|
|
18
18
|
setup_customizations
|
19
19
|
setup_db
|
20
20
|
setup_avo
|
21
|
+
|
22
|
+
swap1 = ' resources :users'
|
23
|
+
swap2 = " devise_for :users, controllers: { sessions: 'users/sessions', registrations: 'users/registrations' }"
|
24
|
+
|
25
|
+
swap_lines('config/routes.rb', swap1, swap2)
|
21
26
|
end
|
22
27
|
|
23
28
|
def scaffolds
|
24
29
|
add_scaffold_controller('users', 'name', 'email')
|
25
|
-
# add_scaffold('author', 'name', 'email', 'bio:text')
|
26
30
|
add_scaffold('category', 'title', 'description:text')
|
27
|
-
add_scaffold('post', 'title content:text', 'published:boolean', 'user:references', 'category:references')
|
31
|
+
add_scaffold('post', 'title', 'content:text', 'published:boolean', 'user:references', 'category:references')
|
32
|
+
add_scaffold('comment', 'body:text', 'commentable:references{polymorphic}', 'user:references')
|
33
|
+
|
28
34
|
add_scaffold('location', 'name', 'description:text') #, 'photo:file')
|
29
35
|
add_scaffold('room', 'name', 'description:text', 'location:references') #, 'photo:file'
|
30
36
|
add_scaffold('booking', 'user:references', 'room:references', 'booked_at:datetime', 'booked_for:integer')
|
@@ -35,11 +41,12 @@ def setup_customizations
|
|
35
41
|
|
36
42
|
force_copy
|
37
43
|
|
38
|
-
add_controller('home', 'index', 'quick_signin')
|
44
|
+
add_controller('home', 'index', 'quick_signin', 'reseed')
|
39
45
|
|
40
46
|
directory "app/controllers"
|
41
47
|
directory "app/models"
|
42
48
|
directory "app/views"
|
49
|
+
directory "app/services"
|
43
50
|
template 'app/views/layouts/application.html.erb' , 'app/views/layouts/application.html.erb'
|
44
51
|
end
|
45
52
|
|
@@ -55,6 +62,7 @@ def setup_avo
|
|
55
62
|
|
56
63
|
generate('avo:resource Category')
|
57
64
|
generate('avo:resource Post')
|
65
|
+
generate('avo:resource Comment')
|
58
66
|
generate('avo:resource Location')
|
59
67
|
generate('avo:resource Room')
|
60
68
|
generate('avo:resource Booking')
|
@@ -22,4 +22,7 @@ class PostResource < Avo::BaseResource
|
|
22
22
|
|
23
23
|
# tutorial (related category): https://youtu.be/WgNK-oINFww?t=328
|
24
24
|
field :category, as: :belongs_to
|
25
|
+
|
26
|
+
# tutorial (related category with custom name): https://youtu.be/WgNK-oINFww?t=722
|
27
|
+
field :user, name: "Author", as: :belongs_to
|
25
28
|
end
|
@@ -1,9 +1,10 @@
|
|
1
1
|
class Post < ApplicationRecord
|
2
|
-
belongs_to :author, class_name: 'User', foreign_key: :user_id
|
2
|
+
# belongs_to :author, class_name: 'User', foreign_key: :user_id
|
3
|
+
belongs_to :user
|
3
4
|
belongs_to :category
|
4
5
|
|
5
6
|
# tutorial: https://youtu.be/WgNK-oINFww?t=209
|
6
7
|
def excerpt
|
7
|
-
ActionView::Base.full_sanitizer.sanitize(content).truncate(
|
8
|
+
ActionView::Base.full_sanitizer.sanitize(content).truncate(50)
|
8
9
|
end
|
9
10
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
-
<h1
|
1
|
+
<h1><%= I18n.t('application_name') %></h1>
|
2
2
|
|
3
|
-
<p>Avo abstracts away the common parts of building apps, letting your engineers work on your app's essential components
|
3
|
+
<p>Avo abstracts away the common parts of building apps, letting your engineers work on your app's essential components.</p>
|
4
|
+
|
5
|
+
<p>The result is a full-featured admin panel that works out of the box, ready to give to your end-users.</p>
|
@@ -1,13 +1,19 @@
|
|
1
1
|
<%= link_to 'Home', root_path %> |
|
2
|
+
<%= link_to 'Re-Seed', home_reseed_path %> |
|
2
3
|
<%= link_to 'Quick Sign In', home_quick_signin_path %> |
|
3
4
|
<%= link_to 'AVO', avo_path %>
|
5
|
+
<% if current_user %>
|
6
|
+
<br>
|
4
7
|
(
|
5
|
-
<%= link_to 'Posts', posts_path, class: 'simple_scaffold' %> |
|
6
8
|
<%= link_to 'Categories', categories_path, class: 'simple_scaffold' %> |
|
9
|
+
<%= link_to 'Posts', posts_path, class: 'simple_scaffold' %> |
|
10
|
+
<%= link_to 'Comments', comments_path, class: 'simple_scaffold' %> |
|
7
11
|
<%= link_to 'Authors', users_path, class: 'simple_scaffold' %>
|
8
12
|
)
|
9
13
|
(
|
10
14
|
<%= link_to 'Locations', locations_path, class: 'simple_scaffold' %> |
|
11
15
|
<%= link_to 'Rooms', rooms_path, class: 'simple_scaffold' %> |
|
16
|
+
<%= link_to 'Comments', comments_path, class: 'simple_scaffold' %> |
|
12
17
|
<%= link_to 'Bookings', bookings_path, class: 'simple_scaffold' %>
|
13
18
|
)
|
19
|
+
<% end %>
|
@@ -0,0 +1,32 @@
|
|
1
|
+
<%= form_with(model: post) do |form| %>
|
2
|
+
<% if post.errors.any? %>
|
3
|
+
<div style="color: red">
|
4
|
+
<h2><%= pluralize(post.errors.count, "error") %> prohibited this post from being saved:</h2>
|
5
|
+
|
6
|
+
<ul>
|
7
|
+
<% post.errors.each do |error| %>
|
8
|
+
<li><%= error.full_message %></li>
|
9
|
+
<% end %>
|
10
|
+
</ul>
|
11
|
+
</div>
|
12
|
+
<% end %>
|
13
|
+
|
14
|
+
<div>
|
15
|
+
<%= form.label :title, style: "display: block" %>
|
16
|
+
<%= form.text_field :title %>
|
17
|
+
</div>
|
18
|
+
|
19
|
+
<div>
|
20
|
+
<%= form.label :body, style: "display: block" %>
|
21
|
+
<%= form.text_area :body %>
|
22
|
+
</div>
|
23
|
+
|
24
|
+
<div>
|
25
|
+
<%= form.label :slug, style: "display: block" %>
|
26
|
+
<%= form.text_field :slug %>
|
27
|
+
</div>
|
28
|
+
|
29
|
+
<div>
|
30
|
+
<%= form.submit %>
|
31
|
+
</div>
|
32
|
+
<% end %>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<p style="color: green"><%= notice %></p>
|
2
|
+
|
3
|
+
<h1>Posts</h1>
|
4
|
+
|
5
|
+
<div id="posts">
|
6
|
+
<% @posts.each do |post| %>
|
7
|
+
<%= render post %>
|
8
|
+
<p>
|
9
|
+
<%= link_to "Show this post", post %>
|
10
|
+
</p>
|
11
|
+
<% end %>
|
12
|
+
</div>
|
13
|
+
|
14
|
+
<%= link_to "New post", new_post_path %>
|
@@ -0,0 +1 @@
|
|
1
|
+
json.array! @posts, partial: "posts/post", as: :post
|
@@ -0,0 +1 @@
|
|
1
|
+
json.partial! "posts/post", post: @post
|
@@ -32,23 +32,23 @@
|
|
32
32
|
"test": "rspec",
|
33
33
|
"add_acts_as_list": false,
|
34
34
|
"add_administrate": false,
|
35
|
-
"add_annotate":
|
36
|
-
"add_avo":
|
35
|
+
"add_annotate": true,
|
36
|
+
"add_avo": true,
|
37
37
|
"add_bcrypt": false,
|
38
38
|
"add_brakeman": false,
|
39
39
|
"add_browser": false,
|
40
40
|
"add_bundler_audit": false,
|
41
41
|
"add_chartkick": false,
|
42
|
-
"add_devise":
|
42
|
+
"add_devise": true,
|
43
43
|
"add_devise_masquerade": false,
|
44
44
|
"add_dotenv": false,
|
45
45
|
"add_faker": true,
|
46
|
-
"add_friendly_id":
|
46
|
+
"add_friendly_id": false,
|
47
47
|
"add_groupdate": false,
|
48
48
|
"add_hexapdf": false,
|
49
49
|
"add_httparty": false,
|
50
50
|
"add_honeybadger": false,
|
51
|
-
"add_image_processing":
|
51
|
+
"add_image_processing": true,
|
52
52
|
"add_kaminari": false,
|
53
53
|
"add_lograge": false,
|
54
54
|
"add_minimal_css": true,
|
@@ -59,11 +59,11 @@
|
|
59
59
|
"add_pretender": false,
|
60
60
|
"add_public_suffix": false,
|
61
61
|
"add_rails_html_sanitizer": false,
|
62
|
-
"add_ransack":
|
62
|
+
"add_ransack": true,
|
63
63
|
"add_redcarpet": false,
|
64
64
|
"add_rolify": false,
|
65
|
-
"add_rubocop":
|
65
|
+
"add_rubocop": true,
|
66
66
|
"add_twilio_ruby": false,
|
67
|
-
"template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/
|
67
|
+
"template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/avo/_.rb"
|
68
68
|
}
|
69
69
|
}
|
@@ -7,7 +7,7 @@
|
|
7
7
|
"quiet": false,
|
8
8
|
"skip": false,
|
9
9
|
"ruby": "/Users/davidcruwys/.asdf/installs/ruby/3.1.1/bin/ruby",
|
10
|
-
"template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/
|
10
|
+
"template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/avo/_.rb",
|
11
11
|
"database": "sqlite3",
|
12
12
|
"skip_git": true,
|
13
13
|
"skip_keeps": false,
|
@@ -42,23 +42,23 @@
|
|
42
42
|
"test": "rspec",
|
43
43
|
"add_acts_as_list": false,
|
44
44
|
"add_administrate": false,
|
45
|
-
"add_annotate":
|
46
|
-
"add_avo":
|
45
|
+
"add_annotate": true,
|
46
|
+
"add_avo": true,
|
47
47
|
"add_bcrypt": false,
|
48
48
|
"add_brakeman": false,
|
49
49
|
"add_browser": false,
|
50
50
|
"add_bundler_audit": false,
|
51
51
|
"add_chartkick": false,
|
52
|
-
"add_devise":
|
52
|
+
"add_devise": true,
|
53
53
|
"add_devise_masquerade": false,
|
54
54
|
"add_dotenv": false,
|
55
55
|
"add_faker": true,
|
56
|
-
"add_friendly_id":
|
56
|
+
"add_friendly_id": false,
|
57
57
|
"add_groupdate": false,
|
58
58
|
"add_hexapdf": false,
|
59
59
|
"add_httparty": false,
|
60
60
|
"add_honeybadger": false,
|
61
|
-
"add_image_processing":
|
61
|
+
"add_image_processing": true,
|
62
62
|
"add_kaminari": false,
|
63
63
|
"add_lograge": false,
|
64
64
|
"add_minimal_css": true,
|
@@ -69,10 +69,10 @@
|
|
69
69
|
"add_pretender": false,
|
70
70
|
"add_public_suffix": false,
|
71
71
|
"add_rails_html_sanitizer": false,
|
72
|
-
"add_ransack":
|
72
|
+
"add_ransack": true,
|
73
73
|
"add_redcarpet": false,
|
74
74
|
"add_rolify": false,
|
75
|
-
"add_rubocop":
|
75
|
+
"add_rubocop": true,
|
76
76
|
"add_twilio_ruby": false
|
77
77
|
}
|
78
78
|
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RailsAppGenerator
|
4
|
+
# Custom add-ons for RailsAppGenerator
|
5
|
+
module AddOns
|
6
|
+
# Add FactoryBotRails to rails application
|
7
|
+
class FactoryBotRails < RailsAppGenerator::Addon
|
8
|
+
required_gem gem.version('factory_bot_rails', '6.2.0', 'Provides Rails integration for factory_bot.')
|
9
|
+
|
10
|
+
def apply
|
11
|
+
say 'Setting up FactoryBotRails'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -184,6 +184,7 @@ module RailsAppGenerator
|
|
184
184
|
# docker
|
185
185
|
add_if(:dotenv) # tested
|
186
186
|
add_if(:factory_bot) # TODO: needs testing
|
187
|
+
add_if(:factory_bot_rails) # tested
|
187
188
|
add_if(:faker) # tested
|
188
189
|
add_if(:friendly_id) # tested
|
189
190
|
add_if(:generators) # TODO: needs testing
|
@@ -365,6 +366,14 @@ module RailsAppGenerator
|
|
365
366
|
template_files.map { |template_file| read_template(template_file) }.join(join)
|
366
367
|
end
|
367
368
|
|
369
|
+
# swap two lines using the gsub_file
|
370
|
+
def swap_lines(file, swap1, swap2)
|
371
|
+
swap_temp = '##SWAP_IT##'
|
372
|
+
gsub_file(file, swap1, swap_temp)
|
373
|
+
gsub_file(file, swap2, swap1)
|
374
|
+
gsub_file(file, swap_temp, swap2)
|
375
|
+
end
|
376
|
+
|
368
377
|
# Moves a file at given location, to another location. Both files are relative to the destination_root
|
369
378
|
#
|
370
379
|
# ==== Parameters
|
@@ -118,6 +118,7 @@ KConfig.configure do |config|
|
|
118
118
|
# docker
|
119
119
|
rag.add_option :add_dotenv , type: :boolean, default: false
|
120
120
|
# factory_bot
|
121
|
+
rag.add_option :add_factory_bot_rails , type: :boolean, default: false
|
121
122
|
rag.add_option :add_faker , type: :boolean, default: false
|
122
123
|
rag.add_option :add_friendly_id , type: :boolean, default: false
|
123
124
|
# generators
|
data/package-lock.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "rails_app_generator",
|
3
|
-
"version": "0.2.
|
3
|
+
"version": "0.2.39",
|
4
4
|
"lockfileVersion": 2,
|
5
5
|
"requires": true,
|
6
6
|
"packages": {
|
7
7
|
"": {
|
8
8
|
"name": "rails_app_generator",
|
9
|
-
"version": "0.2.
|
9
|
+
"version": "0.2.39",
|
10
10
|
"dependencies": {
|
11
11
|
"daisyui": "^2.20.0"
|
12
12
|
},
|
data/package.json
CHANGED
data/profiles/addons/avo.json
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_app_generator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.39
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Cruwys
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-08-
|
11
|
+
date: 2022-08-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bootsnap
|
@@ -214,6 +214,8 @@ files:
|
|
214
214
|
- after_templates/addons/avo/app/controllers/home_controller.rb
|
215
215
|
- after_templates/addons/avo/app/models/category.rb
|
216
216
|
- after_templates/addons/avo/app/models/post.rb
|
217
|
+
- after_templates/addons/avo/app/models/user.rb
|
218
|
+
- after_templates/addons/avo/app/services/seed_service.rb
|
217
219
|
- after_templates/addons/avo/app/views/home/index.html.erb
|
218
220
|
- after_templates/addons/avo/app/views/home/quick_signin.html.erb
|
219
221
|
- after_templates/addons/avo/app/views/layouts/_footer.html.erb
|
@@ -307,7 +309,15 @@ files:
|
|
307
309
|
- after_templates/addons/friendly_id/app/views/layouts/_footer.html.erb
|
308
310
|
- after_templates/addons/friendly_id/app/views/layouts/_navbar.html.erb
|
309
311
|
- after_templates/addons/friendly_id/app/views/layouts/application.html.erb
|
312
|
+
- after_templates/addons/friendly_id/app/views/posts/_form.html.erb
|
313
|
+
- after_templates/addons/friendly_id/app/views/posts/_post.html.erb
|
314
|
+
- after_templates/addons/friendly_id/app/views/posts/_post.json.jbuilder
|
315
|
+
- after_templates/addons/friendly_id/app/views/posts/edit.html.erb
|
316
|
+
- after_templates/addons/friendly_id/app/views/posts/index.html.erb
|
317
|
+
- after_templates/addons/friendly_id/app/views/posts/index.json.jbuilder
|
318
|
+
- after_templates/addons/friendly_id/app/views/posts/new.html.erb
|
310
319
|
- after_templates/addons/friendly_id/app/views/posts/show.html.erb
|
320
|
+
- after_templates/addons/friendly_id/app/views/posts/show.json.jbuilder
|
311
321
|
- after_templates/addons/friendly_id/db/seeds.rb
|
312
322
|
- after_templates/addons/hexapdf/_.rb
|
313
323
|
- after_templates/addons/hexapdf/app/controllers/home_controller.rb
|
@@ -654,6 +664,7 @@ files:
|
|
654
664
|
- lib/rails_app_generator/addons/docker_compose.rb
|
655
665
|
- lib/rails_app_generator/addons/dotenv.rb
|
656
666
|
- lib/rails_app_generator/addons/factory_bot.rb
|
667
|
+
- lib/rails_app_generator/addons/factory_bot_rails.rb
|
657
668
|
- lib/rails_app_generator/addons/faker.rb
|
658
669
|
- lib/rails_app_generator/addons/foreman.rb
|
659
670
|
- lib/rails_app_generator/addons/friendly_id.rb
|