hot-glue 0.0.5 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/FUNDING.yml +1 -1
- data/.gitignore +12 -7
- data/Gemfile +4 -9
- data/Gemfile.lock +78 -57
- data/README.md +120 -28
- data/Rakefile +1 -1
- data/app/assets/config/manifest.js +0 -0
- data/bin/rails +2 -2
- data/config/database.yml +11 -0
- data/db/migrate/20210306212711_create_abcs.rb +11 -0
- data/db/migrate/20210306223300_create_defs.rb +9 -0
- data/db/migrate/20210306223305_create_ghis.rb +9 -0
- data/db/migrate/20210306223309_create_jkls.rb +9 -0
- data/db/migrate/20210306223701_devise_create_users.rb +44 -0
- data/db/migrate/20210306225506_create_xyzs.rb +9 -0
- data/db/schema.rb +60 -0
- data/lib/generators/hot_glue/install_generator.rb +3 -3
- data/lib/generators/hot_glue/scaffold_generator.rb +193 -100
- data/lib/generators/hot_glue/templates/_new_form.haml +0 -3
- data/lib/generators/hot_glue/templates/_show.haml +2 -2
- data/lib/generators/hot_glue/templates/{base_controller.rb → base_controller.rb.erb} +0 -0
- data/lib/generators/hot_glue/templates/{controller.rb → controller.rb.erb} +13 -10
- data/lib/generators/hot_glue/templates/edit.haml +2 -0
- data/lib/generators/hot_glue/templates/system_spec.rb.erb +148 -0
- data/lib/generators/hot_glue/templates/update.turbo_stream.haml +4 -0
- data/lib/hotglue/version.rb +1 -1
- metadata +21 -12
- data/lib/generators/hot_glue/templates/controller_spec.rb +0 -110
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 88c8ae8859f5a37ed898fb4047ab2a406c5eacbb766bcbf6dc2b43f5d419b751
|
4
|
+
data.tar.gz: 8685951b462a1b9c0f3e5920b193e057a15a2d497d103bf163702dfdbfa4f89f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 54f3cbd725a0ca775b688405d8f00b0aa5611a4bd2d2bbb0566bb72fcf8a1c532e3dc88684e55a0c63dd300c0f0f0f9549f5536b74fba36714f5c97a14467c18
|
7
|
+
data.tar.gz: 269fe5314a3acbc91591efea6b2f43e049244152bfb6e1c803b67c0d4b233a461cf2131fe4825a331e205c830ee7961ba78d7c6b617374291e8c9ebb63952735
|
data/.github/FUNDING.yml
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
github: [jasonfb]
|
2
|
-
custom: ["https://
|
2
|
+
custom: ["https://www.instagram.com/jfbcodes/"]
|
data/.gitignore
CHANGED
@@ -1,16 +1,21 @@
|
|
1
1
|
.bundle/
|
2
2
|
log/*.log
|
3
3
|
pkg/
|
4
|
-
|
5
|
-
test/dummy/db/*.sqlite3-journal
|
6
|
-
test/dummy/db/*.sqlite3-*
|
7
|
-
test/dummy/log/*.log
|
8
|
-
test/dummy/storage/
|
9
|
-
test/dummy/tmp/
|
4
|
+
|
10
5
|
.byebug_history
|
11
6
|
|
12
7
|
.idea/
|
13
8
|
*.gem
|
14
9
|
.DS_Store
|
15
10
|
|
16
|
-
dump.rdb
|
11
|
+
dump.rdb
|
12
|
+
tmp/
|
13
|
+
|
14
|
+
|
15
|
+
db/*.sqlite3
|
16
|
+
|
17
|
+
spec/dummy/app/views/
|
18
|
+
spec/dummy/app/controllers/
|
19
|
+
spec/dummy/specs/
|
20
|
+
|
21
|
+
spec/strawman/
|
data/Gemfile
CHANGED
@@ -1,15 +1,10 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
3
3
|
|
4
|
-
# Declare your gem's dependencies in common_core_js.gemspec.
|
5
|
-
# Bundler will treat runtime dependencies like base dependencies, and
|
6
|
-
# development dependencies will be added by default to the :development group.
|
7
4
|
gemspec
|
8
5
|
|
9
|
-
|
10
|
-
|
11
|
-
# Git. Remember to move these dependencies to your gemspec before releasing
|
12
|
-
# your gem to rubygems.org.
|
6
|
+
gem 'sqlite3'
|
7
|
+
gem 'byebug'
|
13
8
|
|
14
|
-
|
15
|
-
|
9
|
+
gem 'rails', '6.1'
|
10
|
+
gem 'devise', require: true
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
hot-glue (0.0.
|
4
|
+
hot-glue (0.0.9)
|
5
5
|
ffaker (~> 2.16)
|
6
6
|
haml-rails (~> 2.0)
|
7
7
|
kaminari (~> 1.2)
|
@@ -12,72 +12,80 @@ PATH
|
|
12
12
|
GEM
|
13
13
|
remote: https://rubygems.org/
|
14
14
|
specs:
|
15
|
-
actioncable (6.1.
|
16
|
-
actionpack (= 6.1.
|
17
|
-
activesupport (= 6.1.
|
15
|
+
actioncable (6.1.0)
|
16
|
+
actionpack (= 6.1.0)
|
17
|
+
activesupport (= 6.1.0)
|
18
18
|
nio4r (~> 2.0)
|
19
19
|
websocket-driver (>= 0.6.1)
|
20
|
-
actionmailbox (6.1.
|
21
|
-
actionpack (= 6.1.
|
22
|
-
activejob (= 6.1.
|
23
|
-
activerecord (= 6.1.
|
24
|
-
activestorage (= 6.1.
|
25
|
-
activesupport (= 6.1.
|
20
|
+
actionmailbox (6.1.0)
|
21
|
+
actionpack (= 6.1.0)
|
22
|
+
activejob (= 6.1.0)
|
23
|
+
activerecord (= 6.1.0)
|
24
|
+
activestorage (= 6.1.0)
|
25
|
+
activesupport (= 6.1.0)
|
26
26
|
mail (>= 2.7.1)
|
27
|
-
actionmailer (6.1.
|
28
|
-
actionpack (= 6.1.
|
29
|
-
actionview (= 6.1.
|
30
|
-
activejob (= 6.1.
|
31
|
-
activesupport (= 6.1.
|
27
|
+
actionmailer (6.1.0)
|
28
|
+
actionpack (= 6.1.0)
|
29
|
+
actionview (= 6.1.0)
|
30
|
+
activejob (= 6.1.0)
|
31
|
+
activesupport (= 6.1.0)
|
32
32
|
mail (~> 2.5, >= 2.5.4)
|
33
33
|
rails-dom-testing (~> 2.0)
|
34
|
-
actionpack (6.1.
|
35
|
-
actionview (= 6.1.
|
36
|
-
activesupport (= 6.1.
|
34
|
+
actionpack (6.1.0)
|
35
|
+
actionview (= 6.1.0)
|
36
|
+
activesupport (= 6.1.0)
|
37
37
|
rack (~> 2.0, >= 2.0.9)
|
38
38
|
rack-test (>= 0.6.3)
|
39
39
|
rails-dom-testing (~> 2.0)
|
40
40
|
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
41
|
-
actiontext (6.1.
|
42
|
-
actionpack (= 6.1.
|
43
|
-
activerecord (= 6.1.
|
44
|
-
activestorage (= 6.1.
|
45
|
-
activesupport (= 6.1.
|
41
|
+
actiontext (6.1.0)
|
42
|
+
actionpack (= 6.1.0)
|
43
|
+
activerecord (= 6.1.0)
|
44
|
+
activestorage (= 6.1.0)
|
45
|
+
activesupport (= 6.1.0)
|
46
46
|
nokogiri (>= 1.8.5)
|
47
|
-
actionview (6.1.
|
48
|
-
activesupport (= 6.1.
|
47
|
+
actionview (6.1.0)
|
48
|
+
activesupport (= 6.1.0)
|
49
49
|
builder (~> 3.1)
|
50
50
|
erubi (~> 1.4)
|
51
51
|
rails-dom-testing (~> 2.0)
|
52
52
|
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
53
|
-
activejob (6.1.
|
54
|
-
activesupport (= 6.1.
|
53
|
+
activejob (6.1.0)
|
54
|
+
activesupport (= 6.1.0)
|
55
55
|
globalid (>= 0.3.6)
|
56
|
-
activemodel (6.1.
|
57
|
-
activesupport (= 6.1.
|
58
|
-
activerecord (6.1.
|
59
|
-
activemodel (= 6.1.
|
60
|
-
activesupport (= 6.1.
|
61
|
-
activestorage (6.1.
|
62
|
-
actionpack (= 6.1.
|
63
|
-
activejob (= 6.1.
|
64
|
-
activerecord (= 6.1.
|
65
|
-
activesupport (= 6.1.
|
56
|
+
activemodel (6.1.0)
|
57
|
+
activesupport (= 6.1.0)
|
58
|
+
activerecord (6.1.0)
|
59
|
+
activemodel (= 6.1.0)
|
60
|
+
activesupport (= 6.1.0)
|
61
|
+
activestorage (6.1.0)
|
62
|
+
actionpack (= 6.1.0)
|
63
|
+
activejob (= 6.1.0)
|
64
|
+
activerecord (= 6.1.0)
|
65
|
+
activesupport (= 6.1.0)
|
66
66
|
marcel (~> 0.3.1)
|
67
67
|
mimemagic (~> 0.3.2)
|
68
|
-
activesupport (6.1.
|
68
|
+
activesupport (6.1.0)
|
69
69
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
70
70
|
i18n (>= 1.6, < 2)
|
71
71
|
minitest (>= 5.1)
|
72
72
|
tzinfo (~> 2.0)
|
73
73
|
zeitwerk (~> 2.3)
|
74
|
+
bcrypt (3.1.16)
|
74
75
|
builder (3.2.4)
|
76
|
+
byebug (11.1.3)
|
75
77
|
concurrent-ruby (1.1.8)
|
76
78
|
crass (1.0.6)
|
79
|
+
devise (4.7.3)
|
80
|
+
bcrypt (~> 3.0)
|
81
|
+
orm_adapter (~> 0.1)
|
82
|
+
railties (>= 4.1.0)
|
83
|
+
responders
|
84
|
+
warden (~> 1.2.3)
|
77
85
|
erubi (1.10.0)
|
78
86
|
erubis (2.7.0)
|
79
87
|
ffaker (2.18.0)
|
80
|
-
ffi (1.
|
88
|
+
ffi (1.15.0)
|
81
89
|
globalid (0.4.2)
|
82
90
|
activesupport (>= 4.2.0)
|
83
91
|
haml (5.2.1)
|
@@ -118,41 +126,47 @@ GEM
|
|
118
126
|
method_source (1.0.0)
|
119
127
|
mimemagic (0.3.5)
|
120
128
|
mini_mime (1.0.2)
|
129
|
+
mini_portile2 (2.5.0)
|
121
130
|
minitest (5.14.4)
|
122
|
-
nio4r (2.5.
|
123
|
-
nokogiri (1.11.1
|
131
|
+
nio4r (2.5.7)
|
132
|
+
nokogiri (1.11.1)
|
133
|
+
mini_portile2 (~> 2.5.0)
|
124
134
|
racc (~> 1.4)
|
135
|
+
orm_adapter (0.5.0)
|
125
136
|
racc (1.5.2)
|
126
137
|
rack (2.2.3)
|
127
138
|
rack-test (1.1.0)
|
128
139
|
rack (>= 1.0, < 3)
|
129
|
-
rails (6.1.
|
130
|
-
actioncable (= 6.1.
|
131
|
-
actionmailbox (= 6.1.
|
132
|
-
actionmailer (= 6.1.
|
133
|
-
actionpack (= 6.1.
|
134
|
-
actiontext (= 6.1.
|
135
|
-
actionview (= 6.1.
|
136
|
-
activejob (= 6.1.
|
137
|
-
activemodel (= 6.1.
|
138
|
-
activerecord (= 6.1.
|
139
|
-
activestorage (= 6.1.
|
140
|
-
activesupport (= 6.1.
|
140
|
+
rails (6.1.0)
|
141
|
+
actioncable (= 6.1.0)
|
142
|
+
actionmailbox (= 6.1.0)
|
143
|
+
actionmailer (= 6.1.0)
|
144
|
+
actionpack (= 6.1.0)
|
145
|
+
actiontext (= 6.1.0)
|
146
|
+
actionview (= 6.1.0)
|
147
|
+
activejob (= 6.1.0)
|
148
|
+
activemodel (= 6.1.0)
|
149
|
+
activerecord (= 6.1.0)
|
150
|
+
activestorage (= 6.1.0)
|
151
|
+
activesupport (= 6.1.0)
|
141
152
|
bundler (>= 1.15.0)
|
142
|
-
railties (= 6.1.
|
153
|
+
railties (= 6.1.0)
|
143
154
|
sprockets-rails (>= 2.0.0)
|
144
155
|
rails-dom-testing (2.0.3)
|
145
156
|
activesupport (>= 4.2.0)
|
146
157
|
nokogiri (>= 1.6)
|
147
158
|
rails-html-sanitizer (1.3.0)
|
148
159
|
loofah (~> 2.3)
|
149
|
-
railties (6.1.
|
150
|
-
actionpack (= 6.1.
|
151
|
-
activesupport (= 6.1.
|
160
|
+
railties (6.1.0)
|
161
|
+
actionpack (= 6.1.0)
|
162
|
+
activesupport (= 6.1.0)
|
152
163
|
method_source
|
153
164
|
rake (>= 0.8.7)
|
154
165
|
thor (~> 1.0)
|
155
166
|
rake (13.0.3)
|
167
|
+
responders (3.0.1)
|
168
|
+
actionpack (>= 5.0)
|
169
|
+
railties (>= 5.0)
|
156
170
|
ruby_parser (3.15.1)
|
157
171
|
sexp_processor (~> 4.9)
|
158
172
|
sass-rails (6.0.0)
|
@@ -173,6 +187,7 @@ GEM
|
|
173
187
|
actionpack (>= 4.0)
|
174
188
|
activesupport (>= 4.0)
|
175
189
|
sprockets (>= 3.0.0)
|
190
|
+
sqlite3 (1.4.2)
|
176
191
|
temple (0.8.2)
|
177
192
|
thor (1.1.0)
|
178
193
|
tilt (2.0.10)
|
@@ -180,6 +195,8 @@ GEM
|
|
180
195
|
rails (>= 6.0.0)
|
181
196
|
tzinfo (2.0.4)
|
182
197
|
concurrent-ruby (~> 1.0)
|
198
|
+
warden (1.2.9)
|
199
|
+
rack (>= 2.0.9)
|
183
200
|
websocket-driver (0.7.3)
|
184
201
|
websocket-extensions (>= 0.1.0)
|
185
202
|
websocket-extensions (0.1.5)
|
@@ -189,7 +206,11 @@ PLATFORMS
|
|
189
206
|
ruby
|
190
207
|
|
191
208
|
DEPENDENCIES
|
209
|
+
byebug
|
210
|
+
devise
|
192
211
|
hot-glue!
|
212
|
+
rails (= 6.1)
|
213
|
+
sqlite3
|
193
214
|
|
194
215
|
BUNDLED WITH
|
195
216
|
2.1.4
|
data/README.md
CHANGED
@@ -1,72 +1,118 @@
|
|
1
1
|
# Hot Glue
|
2
2
|
|
3
|
-
Hot Glue is
|
3
|
+
Hot Glue is a Rails scaffold builder for the Turbo era. It is an evolution of the admin-interface style scaffolding systems of the 2010s ([activeadmin](https://github.com/activeadmin/activeadmin), [rails_admin](https://github.com/sferik/rails_admin), and [active_scaffold](https://github.com/activescaffold/active_scaffold)).
|
4
4
|
|
5
|
-
|
5
|
+
Using Turbo-Rails and Hotwire you get a lightning-fast out-of-the-box CRUD building experience. Every page displays only a list view: new and edit operations happen as 'edit-in-place', so the user never leaves the page.
|
6
6
|
|
7
|
-
It
|
7
|
+
It will read your relationships and field types to generate your code for you, leaving you with a 'sourdough starter' to work from. If you modify the generated code, you're on your own if you want to preserve your changes and also re-generate scaffold after adding fields.
|
8
8
|
|
9
|
-
|
9
|
+
By default, it generates code that gives users full control over objects they 'own' and by default it spits out functionality giving access to all fields.
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
*
|
14
|
-
*
|
15
|
-
*
|
11
|
+
Hot Glue generates functionality that's quick and dirty. It let's you be crafty. As with a real hot glue gun, use with caution.
|
12
|
+
|
13
|
+
* Build plug-and-play scaffolding for any CRUD on any object
|
14
|
+
* mixes HAML and turbo_stream responses
|
15
|
+
* Everything edits-in-place (unless you use --big-edit, then it won't)
|
16
|
+
* Automatically reads your ActiveRecord models and relationships (make them before building your scaffolding!)
|
17
|
+
* Create-read-update-delete (CRUD) with pagination (one day: sorting & searching)
|
18
|
+
* Excellent tool for prototyping and hackathons, but a knowledge of Rails is needed.
|
19
|
+
* Nest your routes model-by-model for built-in poor man's authentication. (Customers have_many :invoices; Invoices have_many :line_items; etc)
|
16
20
|
* Plays nicely with Devise, but you can implement your own current_user object instead.
|
17
|
-
*
|
18
|
-
* Create specs automatically along with the controllers
|
21
|
+
* Kaminari for pagination.
|
22
|
+
* Create specs automatically along with the controllers.
|
19
23
|
* Throw the scaffolding away when your app is ready to graduate to its next phase (or don't if you like it).
|
20
24
|
|
21
|
-
## QUICK START
|
25
|
+
## QUICK START
|
22
26
|
|
23
27
|
It's really easy to get started by following along with this blog post that creates three simple tables (User, Event, and Format).
|
24
28
|
|
25
29
|
Feel free to build your own tables when you get to the sections for building the 'Event' scaffold:
|
26
30
|
|
27
|
-
https://
|
31
|
+
https://jasonfleetwoodboldt.com/hot-glue
|
28
32
|
|
29
33
|
## HOW EASY?
|
30
34
|
|
31
|
-
|
32
35
|
```
|
33
36
|
rails generate hot_glue:scaffold Thing
|
34
37
|
```
|
35
38
|
|
39
|
+
Generate a quick scaffold to manage a table called `pronouns`
|
40
|
+
![hot-glue-3](https://user-images.githubusercontent.com/59002/116405509-bdee2f00-a7fd-11eb-9723-4c6e22f81bd3.gif)
|
41
|
+
|
42
|
+
|
43
|
+
|
44
|
+
Instantly get a simple CRUD interface
|
45
|
+
|
46
|
+
![hot-glue-4](https://user-images.githubusercontent.com/59002/116405517-c2b2e300-a7fd-11eb-8423-d43e3afc9fa6.gif)
|
47
|
+
|
48
|
+
|
36
49
|
## TO INSTALL
|
37
50
|
|
38
|
-
- Add
|
51
|
+
- Add `gem 'turbo-rails'` to your Gemfile & `bundle install`
|
52
|
+
|
53
|
+
- Then install it with `rails turbo:install`
|
39
54
|
|
40
55
|
- The Turbo install has switched your action cable settings from 'async' to Redis, so be sure to start a redis server
|
41
56
|
|
42
|
-
- Add
|
57
|
+
- Add `gem 'hot-glue'` to your Gemfile & `bundle install`
|
58
|
+
|
59
|
+
- Run the hot-glue installation with `rails generate hot_glue:install`
|
43
60
|
|
44
61
|
- Add to your `application.html.erb`
|
45
62
|
```
|
46
63
|
<%= render partial: 'layouts/flash_notices' %>
|
47
64
|
```
|
48
65
|
|
66
|
+
- Rspec setup
|
67
|
+
add `gem 'rspec-rails'` to your gemfile inside :development and :test
|
68
|
+
add `gem 'factory_bot_rails'` to your gemfile inside :development and :test
|
69
|
+
run `rails generate rspec:install`
|
70
|
+
configure Rspec to work with Factory Bot inside of `rails_helper.rb`
|
71
|
+
```
|
72
|
+
RSpec.configure do |config|
|
73
|
+
// ... more rspec configuration (not shown)
|
74
|
+
config.include FactoryBot::Syntax::Methods
|
75
|
+
end
|
76
|
+
```
|
77
|
+
|
78
|
+
https://github.com/thoughtbot/factory_bot/blob/master/GETTING_STARTED.md#rspec
|
79
|
+
|
80
|
+
- for a quick Capybara login, create a support helper in `spec/support/` and log-in as your user
|
81
|
+
```
|
82
|
+
def login_as(account)
|
83
|
+
visit '/accounts/sign_in'
|
84
|
+
within("#new_account") do
|
85
|
+
fill_in 'Email', with: account.email
|
86
|
+
fill_in 'Password', with: 'password'
|
87
|
+
end
|
88
|
+
click_button 'Log in'
|
89
|
+
end
|
90
|
+
```
|
91
|
+
|
49
92
|
- Install Bootstrap (optional)
|
50
93
|
|
51
94
|
Bootstrap with Webpack:
|
52
95
|
- change `stylesheet_link_tag` to `stylesheet_pack_tag` in your application layout
|
53
|
-
- `yarn add bootstrap`
|
54
|
-
- create a new file at `app/javascript/
|
96
|
+
- run `yarn add bootstrap`
|
97
|
+
- create a new file at `app/javascript/require_bootstrap.scss` with this content
|
55
98
|
```
|
56
99
|
@import "~bootstrap/scss/bootstrap.scss";
|
57
100
|
```
|
58
101
|
|
59
102
|
- add to `app/javascript/packs/application.js`
|
60
103
|
```
|
61
|
-
import '
|
104
|
+
import 'require_bootstrap'
|
62
105
|
```
|
63
106
|
|
64
107
|
Bootstrap with Sprockets:
|
65
|
-
- use bootstrap-
|
66
|
-
|
108
|
+
- use bootstrap-rubygem gem
|
109
|
+
- see README for bootstrap-rubygem to install
|
110
|
+
|
67
111
|
|
68
112
|
- Install Devise or implement your own authentication
|
113
|
+
(or only use --gd mode, see below)
|
69
114
|
|
115
|
+
- font-awesome
|
70
116
|
|
71
117
|
|
72
118
|
### First Argument
|
@@ -225,7 +271,7 @@ Please note that this example would product non-functional code, so you would ne
|
|
225
271
|
|
226
272
|
### `--plural=`
|
227
273
|
|
228
|
-
You don't need this if the pluralized version is just + "s" of the singular version. Only use for non-standard plurlizations, and be sure to pass it as TitleCase (as if
|
274
|
+
You don't need this if the pluralized version is just + "s" of the singular version. Only use for non-standard plurlizations, and be sure to pass it as TitleCase (as if you pluralized the model name which is non-standard for Rails)
|
229
275
|
|
230
276
|
|
231
277
|
### `--exclude=`
|
@@ -233,9 +279,30 @@ You don't need this if the pluralized version is just + "s" of the singular vers
|
|
233
279
|
|
234
280
|
By default, all fields are included unless they are on the exclude list. (The default for the exclude list is `id`, `created_at`, and `updated_at` so you don't need to exclude those-- they are added.)
|
235
281
|
|
236
|
-
If you specify an exclude list, those
|
282
|
+
If you specify an exclude list, those and the default excluded list will be excluded.
|
283
|
+
|
284
|
+
|
285
|
+
`rails generate hot_glue:scaffold Account --exclude=password`
|
286
|
+
|
287
|
+
(The default excluded list is: :id, :created_at, :updated_at, :encrypted_password, :reset_password_token, :reset_password_sent_at, :remember_created_at, :confirmation_token, :confirmed_at, :confirmation_sent_at, :unconfirmed_email. If you want to edit any fields with the same name, you must use the include flag instead.)
|
237
288
|
|
238
289
|
|
290
|
+
### `--include=`
|
291
|
+
(separate field names by COMMA)
|
292
|
+
|
293
|
+
You may not specify both include and exclude. If you specify an include list, it will be treated as a whitelist: no fields will be included unless specified on the include list.
|
294
|
+
|
295
|
+
`rails generate hot_glue:scaffold Account --include=first_name,last_name,company_name,created_at,kyc_verified_at`
|
296
|
+
|
297
|
+
|
298
|
+
### `--show-only=`
|
299
|
+
(separate field names by COMMA)
|
300
|
+
|
301
|
+
Any fields only the 'show-only' list will appear as non-editable on the generate form. (visible only)
|
302
|
+
|
303
|
+
IMPORTANT: By default, all fields that begin with an underscore (`_`) are automatically show-only.
|
304
|
+
|
305
|
+
I would recommend this for fields you want globally non-editable by users in your app. For example, a counter cache or other field set only by a backend mechanism.
|
239
306
|
|
240
307
|
### `--god` or `--gd`
|
241
308
|
|
@@ -243,7 +310,7 @@ Use this flag to create controllers with no root authentication. You can still u
|
|
243
310
|
|
244
311
|
For example, FOR ADMIN CONTROLLERS ONLY, supply a auth_identifier and use `--god` flag.
|
245
312
|
|
246
|
-
In
|
313
|
+
In Gd mode, the objects are loaded directly from the base class (these controllers have full access)
|
247
314
|
```
|
248
315
|
def load_thing
|
249
316
|
@thing = Thing.find(params[:id])
|
@@ -277,12 +344,29 @@ Omits create action.
|
|
277
344
|
|
278
345
|
Omits delete action.
|
279
346
|
|
347
|
+
### `--big-edit`
|
348
|
+
|
349
|
+
If you do not want inline editing of your list items but instead to fall back to old fashioned new page behavior for your edit views, use `--big-edit`.
|
350
|
+
|
351
|
+
|
280
352
|
|
281
353
|
|
282
354
|
|
283
355
|
# VERSION HISTORY
|
284
356
|
|
285
|
-
#### 2021-
|
357
|
+
#### 2021-04-28 - v0.1.0 - Very please to introduce full behavior specs, found in specs/system/, generated by default on all build code; also many fixes involving nesting and authentication"
|
358
|
+
|
359
|
+
#### 2021-03-24 - v0.0.9 - fixes in the automatic field label detection; cleans up junk in spec output
|
360
|
+
|
361
|
+
#### 2021-03-21 - v0.0.8 - show only flag; more specific spec coverage in generator spec
|
362
|
+
|
363
|
+
#### 2021-03-20 - v0.0.7 - adds lots of spec coverage; cleans up generated cruft code on each run; adds no-delete, no-create; a working --big-edit with basic data-turbo false to disable inline editing
|
364
|
+
|
365
|
+
#### 2021-03-06 - v0.0.6 - internal specs test the error catches and cover basic code generation (dummy testing only)
|
366
|
+
|
367
|
+
#### 2021-03-01 - v0.0.5 - Validation magic; refactors the options to the correct Rails::Generators syntax
|
368
|
+
|
369
|
+
#### (yanked) - v0.0.4
|
286
370
|
|
287
371
|
#### 2021-02-27 - v0.0.3 - several fixes for namespaces; adds pagination; adds exclude list to fields
|
288
372
|
|
@@ -293,10 +377,18 @@ Omits delete action.
|
|
293
377
|
#### 2021-02-23 - v0.0.0 - Port of my prior work from github.com/jasonfb/common_core_js
|
294
378
|
|
295
379
|
|
296
|
-
# ACKNOWLEDGEMENTS
|
297
380
|
|
298
|
-
### "POOR MAN"
|
299
381
|
|
300
|
-
I hope one day I will leave this Earth a poor man (like my code) owning only the most simple structure for the simple form of my existence. Thanks for having educated me in this wisdom goes to my former mentor [@trak3r](https://github.com/trak3r)!
|
301
382
|
|
383
|
+
# HOW THIS GEM IS TESTED
|
384
|
+
|
385
|
+
We have one kind of "sandboxes": a DUMMY sandbox
|
386
|
+
|
387
|
+
The dummy sandbox is found at `spec/dummy`
|
388
|
+
|
389
|
+
The dummy lives as mostly checked- into the repository, except the folders where the generated code goes (`spec/dummy/app/views/`, `spec/dummy/app/controllers/`, `spec/dummy/specs/` are excluded from Git)
|
390
|
+
|
391
|
+
When you run the **internal specs**, which you can do **at the root of this repo** using the command `rspec`, a set of specs will run to assert the generators are erroring when they are supposed to and producing code when they are supposed to.
|
392
|
+
|
393
|
+
The DUMMY testing DOES NOT test the actual functionality of the output code (it just tests the functionality of the generation process).
|
302
394
|
|