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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2ddd0fff6e983cefb9f4705ecfa218553412a78d6b02e70f246427562b0991e4
4
- data.tar.gz: 12971b62efd73dc85db9a48b7d9874f8ba9e81615f1f981af6d00cd2d58a57d7
3
+ metadata.gz: 88c8ae8859f5a37ed898fb4047ab2a406c5eacbb766bcbf6dc2b43f5d419b751
4
+ data.tar.gz: 8685951b462a1b9c0f3e5920b193e057a15a2d497d103bf163702dfdbfa4f89f
5
5
  SHA512:
6
- metadata.gz: 3f436af0a80f4228e2f17f290d9be67aa1ffc7e48379d92a6739889906bf1a148df922db4af8f5989567bc6306336541de7685dbf41a89de4d7c6caa26235d55
7
- data.tar.gz: 566393c43f57c2ec3e5e09b2ddd1e3684f643f10fa76468e7343cac20ccd0a015bc6c71f417181cecc60c2e97d10dfecbf36b735c7e2db8dd25556dee5669db0
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://jfb.teachable.com"]
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
- test/dummy/db/*.sqlite3
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
- # Declare any dependencies that are still in development here instead of in
10
- # your gemspec. These might include edge Rails or gems from your path or
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
- # To use a debugger
15
- # gem 'byebug', group: [:development, :test]
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)
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.3)
16
- actionpack (= 6.1.3)
17
- activesupport (= 6.1.3)
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.3)
21
- actionpack (= 6.1.3)
22
- activejob (= 6.1.3)
23
- activerecord (= 6.1.3)
24
- activestorage (= 6.1.3)
25
- activesupport (= 6.1.3)
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.3)
28
- actionpack (= 6.1.3)
29
- actionview (= 6.1.3)
30
- activejob (= 6.1.3)
31
- activesupport (= 6.1.3)
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.3)
35
- actionview (= 6.1.3)
36
- activesupport (= 6.1.3)
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.3)
42
- actionpack (= 6.1.3)
43
- activerecord (= 6.1.3)
44
- activestorage (= 6.1.3)
45
- activesupport (= 6.1.3)
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.3)
48
- activesupport (= 6.1.3)
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.3)
54
- activesupport (= 6.1.3)
53
+ activejob (6.1.0)
54
+ activesupport (= 6.1.0)
55
55
  globalid (>= 0.3.6)
56
- activemodel (6.1.3)
57
- activesupport (= 6.1.3)
58
- activerecord (6.1.3)
59
- activemodel (= 6.1.3)
60
- activesupport (= 6.1.3)
61
- activestorage (6.1.3)
62
- actionpack (= 6.1.3)
63
- activejob (= 6.1.3)
64
- activerecord (= 6.1.3)
65
- activesupport (= 6.1.3)
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.3)
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.14.2)
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.5)
123
- nokogiri (1.11.1-x86_64-darwin)
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.3)
130
- actioncable (= 6.1.3)
131
- actionmailbox (= 6.1.3)
132
- actionmailer (= 6.1.3)
133
- actionpack (= 6.1.3)
134
- actiontext (= 6.1.3)
135
- actionview (= 6.1.3)
136
- activejob (= 6.1.3)
137
- activemodel (= 6.1.3)
138
- activerecord (= 6.1.3)
139
- activestorage (= 6.1.3)
140
- activesupport (= 6.1.3)
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.3)
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.3)
150
- actionpack (= 6.1.3)
151
- activesupport (= 6.1.3)
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 an evolution of the best of the admin-style scaffold builders 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) being the most popular of those). It harnesses the power of Rails 6, Turbo-Rails, and Hotwire to deliver a lightning fast experience.
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
- As well, its premise is a little different than the configuration-heavy admin interface toolkits. 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.
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 gives users full control over objects they 'own' and by default it spits out functionality giving access to all fields.
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
- Hot Glue generates functionality that's quick and dirty. It let's you be crafty. As with a real glue gun, take care not to burn yourself while using it.
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
- * Build plug-and-play scaffolding mixing HAML and turbo_stream responses
12
- * Automatically Reads Your Models (make them before building your scaffolding!)
13
- * CRUD, lists with pagination, (coming soon: sorting & searching)
14
- * Wonderful for prototyping.
15
- * Nest your routes model-by-model for built-in poor man's authentication.
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
- * Requires & uses Kaminari for pagination.
18
- * Create specs automatically along with the controllers (* rspec only for now).
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 (COMING SOON)
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://blog.jasonfleetwoodboldt.com/hot-glue
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 Turbo-Rails to your Gemfile & bundle install, then install it with `rails turbo:install`
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 hot_glue to your Gemfile & bundle install, then install it with `rails generate hot_glue:install`
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/css/site.scss` with this content
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 'css/site'
104
+ import 'require_bootstrap'
62
105
  ```
63
106
 
64
107
  Bootstrap with Sprockets:
65
- - use bootstrap-rails gem
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 you pluralized the model name)
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 fields + id, created_at, and updated_at will be excluded.
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 God mode, the objects are loaded directly from the base class (these controllers have full access)
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-03-01 - v0.0.4 - Validation magic; refactors the options to the correct Rails::Generators syntax
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