hot-glue 0.0.2 → 0.0.3
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/Gemfile.lock +4 -1
- data/README.md +21 -1
- data/lib/generators/hot_glue/scaffold_generator.rb +37 -15
- data/lib/generators/hot_glue/templates/_line.haml +1 -1
- data/lib/generators/hot_glue/templates/_list.haml +4 -2
- data/lib/generators/hot_glue/templates/_new_button.haml +1 -1
- data/lib/generators/hot_glue/templates/index.haml +1 -1
- data/lib/hotglue/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ea5d85ef61b4bdedf3b9b883596d6cb99ce8fe404dcf0d22d6fec74b9389f7fb
|
4
|
+
data.tar.gz: 4d94d90506fd14642672b32e5437ba789e94618d6b91459a7c41b9475df272d8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7bb028acd27535bfaa5c53559418638eb7af6e45456d4e294e903ab1f3077ee14240056188b5f48677c491f9d4a265cc42add3e36d009552331ffa2cce42db43
|
7
|
+
data.tar.gz: 1ae9c5018d520969710f68b85af0522485b5011bdaf39ac0056889a5c341046dc8d744a761426d2dd8bd6ca7969fefdc8e1560a0d481e6e78a8f592ab874e236
|
data/Gemfile.lock
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
hot-glue (0.0.
|
4
|
+
hot-glue (0.0.2)
|
5
5
|
ffaker (~> 2.16)
|
6
6
|
haml-rails (~> 2.0)
|
7
7
|
kaminari (~> 1.2)
|
8
8
|
rails (~> 6.0)
|
9
9
|
sass-rails
|
10
|
+
turbo-rails (~> 0.5)
|
10
11
|
|
11
12
|
GEM
|
12
13
|
remote: https://rubygems.org/
|
@@ -179,6 +180,8 @@ GEM
|
|
179
180
|
temple (0.8.2)
|
180
181
|
thor (1.1.0)
|
181
182
|
tilt (2.0.10)
|
183
|
+
turbo-rails (0.5.9)
|
184
|
+
rails (>= 6.0.0)
|
182
185
|
tzinfo (2.0.4)
|
183
186
|
concurrent-ruby (~> 1.0)
|
184
187
|
websocket-driver (0.7.3)
|
data/README.md
CHANGED
@@ -6,7 +6,7 @@ As well, its premise is a little different than the configuration-heavy admin in
|
|
6
6
|
|
7
7
|
It gives users full control over objects they 'own' and by default it spits out functionality giving access to all fields.
|
8
8
|
|
9
|
-
Hot Glue generates functionality that's quick and dirty. It let's you be crafty.
|
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.
|
10
10
|
|
11
11
|
* Build plug-and-play scaffolding mixing HAML and turbo_stream responses
|
12
12
|
* Automatically Reads Your Models (make them before building your scaffolding!)
|
@@ -221,6 +221,15 @@ Please note that this example would product non-functional code, so you would ne
|
|
221
221
|
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)
|
222
222
|
|
223
223
|
|
224
|
+
### `exclude=`
|
225
|
+
(separate field names by COMMA)
|
226
|
+
|
227
|
+
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.)
|
228
|
+
|
229
|
+
If you specify an exclude list, those fields + id, created_at, and updated_at will be excluded.
|
230
|
+
|
231
|
+
|
232
|
+
|
224
233
|
### `--god`
|
225
234
|
|
226
235
|
Use this flag to create controllers with no root authentication. You can still use an auth_identifier, which can be useful for a meta-leval authentication to the controoler.
|
@@ -247,7 +256,18 @@ Produces ONLY the controller spec file, nothing else.
|
|
247
256
|
Produces all the files except the spec file.
|
248
257
|
|
249
258
|
|
259
|
+
### `--no-paginate`
|
260
|
+
|
261
|
+
Omits pagination. (All list views have pagination by default.)
|
262
|
+
|
263
|
+
|
264
|
+
|
265
|
+
|
250
266
|
# VERSION HISTORY
|
267
|
+
#### 2021-02-27 - v0.0.3 - several fixes for namespaces; adds pagination; adds exclude list to fields
|
268
|
+
|
269
|
+
#### 2021-02-25 - v0.0.2 - bootstrapy
|
270
|
+
|
251
271
|
#### 2021-02-24 - v0.0.1 - first proof of concept release -- basic CRUD works
|
252
272
|
|
253
273
|
#### 2021-02-23 - v0.0.0 - Port of my prior work from github.com/jasonfb/common_core_js
|
@@ -62,6 +62,7 @@ module HotGlue
|
|
62
62
|
|
63
63
|
@auth = "current_user"
|
64
64
|
@auth_identifier = nil
|
65
|
+
@exclude_fields = []
|
65
66
|
|
66
67
|
args[1..-1].each do |a|
|
67
68
|
var_name, var_value = a.split("=")
|
@@ -77,6 +78,8 @@ module HotGlue
|
|
77
78
|
@auth = var_value
|
78
79
|
when "auth_identifier"
|
79
80
|
@auth_identifier = var_value || ""
|
81
|
+
when "exclude"
|
82
|
+
@exclude_fields += var_value.split(",").collect(&:to_sym)
|
80
83
|
end
|
81
84
|
end
|
82
85
|
|
@@ -90,8 +93,6 @@ module HotGlue
|
|
90
93
|
case (f)
|
91
94
|
when "--god"
|
92
95
|
@auth = nil
|
93
|
-
# when "--with-index"
|
94
|
-
# @with_index = true
|
95
96
|
when "--specs-only"
|
96
97
|
@specs_only = true
|
97
98
|
when "--no-specs"
|
@@ -100,6 +101,8 @@ module HotGlue
|
|
100
101
|
@no_delete = true
|
101
102
|
when "--no-create"
|
102
103
|
@no_create = true
|
104
|
+
when "--no-paginate"
|
105
|
+
@no_paginate = true
|
103
106
|
end
|
104
107
|
end
|
105
108
|
|
@@ -162,18 +165,19 @@ module HotGlue
|
|
162
165
|
end
|
163
166
|
end
|
164
167
|
|
165
|
-
exclude_fields
|
166
|
-
:
|
167
|
-
:
|
168
|
-
|
169
|
-
|
170
|
-
exclude_fields << ownership_field.to_sym if !ownership_field.nil?
|
168
|
+
@exclude_fields.push :id, :created_at, :updated_at, :encrypted_password,
|
169
|
+
:reset_password_token,
|
170
|
+
:reset_password_sent_at, :remember_created_at,
|
171
|
+
:confirmation_token, :confirmed_at,
|
172
|
+
:confirmation_sent_at, :unconfirmed_email
|
171
173
|
|
174
|
+
@exclude_fields += auth_assoc_field.to_sym if !auth_assoc_field.nil?
|
175
|
+
@exclude_fields += ownership_field.to_sym if !ownership_field.nil?
|
172
176
|
|
173
177
|
begin
|
174
|
-
@columns = object.columns.map(&:name).map(&:to_sym).reject{|field| exclude_fields.include?(field) }
|
178
|
+
@columns = object.columns.map(&:name).map(&:to_sym).reject{|field| @exclude_fields.include?(field) }
|
175
179
|
rescue StandardError => e
|
176
|
-
puts "Ooops... it looks like is
|
180
|
+
puts "Ooops... #{e} it looks like is no object for #{class_name}. Please create the database table with fields first. "
|
177
181
|
exit
|
178
182
|
end
|
179
183
|
|
@@ -311,6 +315,18 @@ module HotGlue
|
|
311
315
|
"#{@namespace+"/" if @namespace}#{plural}/line"
|
312
316
|
end
|
313
317
|
|
318
|
+
def show_path_partial
|
319
|
+
"#{@namespace+"/" if @namespace}#{plural}/show"
|
320
|
+
end
|
321
|
+
|
322
|
+
def list_path_partial
|
323
|
+
"#{@namespace+"/" if @namespace}#{plural}/list"
|
324
|
+
end
|
325
|
+
|
326
|
+
def new_path_name
|
327
|
+
"new_#{@namespace+"_" if @namespace}#{singular}_path"
|
328
|
+
end
|
329
|
+
|
314
330
|
def nested_assignments
|
315
331
|
@nested_args.map{|a| "#{a}: @#{a}"}.join(", ") #metaprgramming into Ruby hash
|
316
332
|
end
|
@@ -479,14 +495,14 @@ module HotGlue
|
|
479
495
|
|
480
496
|
"#{col_identifier}{class: \"form-group \#{'alert-danger' if #{singular}.errors.details.keys.include?(:#{assoc_name.to_s})}\"}
|
481
497
|
#{col_spaces_prepend}= f.collection_select(:#{col.to_s}, #{assoc_class}.all, :id, :#{display_column}, {prompt: true, selected: @#{singular}.#{col.to_s} }, class: 'form-control')
|
482
|
-
#{col_spaces_prepend}
|
483
|
-
#{col_spaces_prepend}
|
498
|
+
#{col_spaces_prepend}%label.small.form-text.text-muted
|
499
|
+
#{col_spaces_prepend} #{col.to_s.humanize}"
|
484
500
|
|
485
501
|
else
|
486
502
|
"#{col_identifier}{class: \"form-group \#{'alert-danger' if @#{singular}.errors.details.keys.include?(:#{col.to_s})}\"}
|
487
503
|
#{col_spaces_prepend}= f.text_field :#{col.to_s}, value: #{singular}.#{col.to_s}, class: 'form-control', size: 4, type: 'number'
|
488
|
-
#{col_spaces_prepend}
|
489
|
-
#{col_spaces_prepend}
|
504
|
+
#{col_spaces_prepend}%label.form-text
|
505
|
+
#{col_spaces_prepend} #{col.to_s.humanize}\n"
|
490
506
|
end
|
491
507
|
when :string
|
492
508
|
limit ||= 256
|
@@ -660,7 +676,13 @@ module HotGlue
|
|
660
676
|
end
|
661
677
|
end
|
662
678
|
|
663
|
-
|
679
|
+
|
680
|
+
|
681
|
+
def paginate
|
682
|
+
"= paginate #{plural}"
|
683
|
+
end
|
684
|
+
|
685
|
+
private # thor does something fancy like sending the class all of its own methods during some strange run sequence
|
664
686
|
# does not like public methods
|
665
687
|
|
666
688
|
def cc_filename_with_extensions(name, file_format = format)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
= turbo_frame_tag "<%= singular %>__#{<%= singular %>.id}" do
|
2
2
|
.row{'data-id': <%= singular %>.id, 'data-edit': 'false'}
|
3
|
-
= render partial: "
|
3
|
+
= render partial: "<%= show_path_partial %>", locals: {<%= singular %>: <%= singular %>}
|
4
4
|
|
5
5
|
|
6
6
|
|
@@ -1,9 +1,11 @@
|
|
1
1
|
= turbo_frame_tag "<%= plural %>-list" do
|
2
|
-
.container.<%= singular %>-table
|
2
|
+
.container-fluid.<%= singular %>-table
|
3
3
|
.row
|
4
4
|
<%= list_column_headings %>
|
5
|
-
|
5
|
+
.col
|
6
|
+
%div
|
6
7
|
- if <%= plural %>.empty?
|
7
8
|
None
|
8
9
|
- <%= plural %>.each do |<%= singular %>|
|
9
10
|
= render partial: '<%= line_path_partial %>', locals: {<%= singular %>: <%= singular %> <%= nested_assignments_with_leading_comma %> }
|
11
|
+
<%= @no_paginate ? "" : paginate %>
|
@@ -1,2 +1,2 @@
|
|
1
1
|
= turbo_frame_tag "<%= singular %>-new" do
|
2
|
-
= link_to "New <%= singular.
|
2
|
+
= link_to "New <%= singular.titlecase %>", <%= new_path_name %>, disable_with: "Loading...", class: "new-<%= singular %>-button btn btn-primary pull-right"
|
data/lib/hotglue/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hot-glue
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jason Fleetwood-Boldt
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-02-
|
11
|
+
date: 2021-02-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|