hot-glue 0.2.3 → 0.2.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +15 -0
- data/Gemfile +8 -2
- data/Gemfile.lock +34 -3
- data/README.md +62 -14
- data/Rakefile +34 -24
- data/app/helpers/hot_glue_helper.rb +4 -0
- data/lib/generators/hot_glue/install_generator.rb +5 -0
- data/lib/generators/hot_glue/markup_templates/erb.rb +15 -1
- data/lib/generators/hot_glue/scaffold_generator.rb +3 -1
- data/lib/generators/hot_glue/templates/confirmable.js +14 -0
- data/lib/generators/hot_glue/templates/erb/_show.erb +1 -1
- data/lib/hotglue/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 51ed0488e72bcd508f979de89c9f9d11ee1284c702c22066e72311d9cee03894
|
4
|
+
data.tar.gz: f30e2325ec4a08af8df44fa54e955b103aed04b650e2b165bcded589d2f8faa6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8eb5cf4982698c4b51ac9caa4c223885ea9f8c2eac423c45e11ff2c7ccbb6c8aaad0e5f43d00cdf4ef3376a04bdc5ea3477813302a1fec8cc3d82e22463a5b51
|
7
|
+
data.tar.gz: 94af84f2f7e66846e593e8ab7ac5c441fbd4b8814c1fc390823a97350fe00854f6c91868094820ca3461e28b10a671cc892430b5d86621a88ef8700376b81a87
|
data/.travis.yml
ADDED
data/Gemfile
CHANGED
@@ -3,8 +3,14 @@ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
|
3
3
|
|
4
4
|
gemspec
|
5
5
|
|
6
|
+
# not required for your app
|
6
7
|
gem 'sqlite3'
|
7
8
|
gem 'byebug'
|
8
|
-
|
9
9
|
gem 'rails', '6.1'
|
10
|
-
gem 'devise', require: true
|
10
|
+
gem 'devise', require: true
|
11
|
+
|
12
|
+
|
13
|
+
# for testing
|
14
|
+
gem "rails-controller-testing", group: [:test]
|
15
|
+
gem "database_cleaner", group: [:test]
|
16
|
+
gem "rspec-rails", group: [:test]
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
hot-glue (0.2.
|
4
|
+
hot-glue (0.2.3)
|
5
5
|
ffaker (~> 2.16)
|
6
6
|
haml-rails (~> 2.0)
|
7
7
|
kaminari (~> 1.2)
|
@@ -76,12 +76,19 @@ GEM
|
|
76
76
|
byebug (11.1.3)
|
77
77
|
concurrent-ruby (1.1.9)
|
78
78
|
crass (1.0.6)
|
79
|
+
database_cleaner (2.0.1)
|
80
|
+
database_cleaner-active_record (~> 2.0.0)
|
81
|
+
database_cleaner-active_record (2.0.1)
|
82
|
+
activerecord (>= 5.a)
|
83
|
+
database_cleaner-core (~> 2.0.0)
|
84
|
+
database_cleaner-core (2.0.1)
|
79
85
|
devise (4.8.0)
|
80
86
|
bcrypt (~> 3.0)
|
81
87
|
orm_adapter (~> 0.1)
|
82
88
|
railties (>= 4.1.0)
|
83
89
|
responders
|
84
90
|
warden (~> 1.2.3)
|
91
|
+
diff-lcs (1.4.4)
|
85
92
|
erubi (1.10.0)
|
86
93
|
erubis (2.7.0)
|
87
94
|
ffaker (2.19.0)
|
@@ -154,6 +161,10 @@ GEM
|
|
154
161
|
bundler (>= 1.15.0)
|
155
162
|
railties (= 6.1.0)
|
156
163
|
sprockets-rails (>= 2.0.0)
|
164
|
+
rails-controller-testing (1.0.5)
|
165
|
+
actionpack (>= 5.0.1.rc1)
|
166
|
+
actionview (>= 5.0.1.rc1)
|
167
|
+
activesupport (>= 5.0.1.rc1)
|
157
168
|
rails-dom-testing (2.0.3)
|
158
169
|
activesupport (>= 4.2.0)
|
159
170
|
nokogiri (>= 1.6)
|
@@ -169,6 +180,23 @@ GEM
|
|
169
180
|
responders (3.0.1)
|
170
181
|
actionpack (>= 5.0)
|
171
182
|
railties (>= 5.0)
|
183
|
+
rspec-core (3.10.1)
|
184
|
+
rspec-support (~> 3.10.0)
|
185
|
+
rspec-expectations (3.10.1)
|
186
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
187
|
+
rspec-support (~> 3.10.0)
|
188
|
+
rspec-mocks (3.10.2)
|
189
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
190
|
+
rspec-support (~> 3.10.0)
|
191
|
+
rspec-rails (5.0.2)
|
192
|
+
actionpack (>= 5.2)
|
193
|
+
activesupport (>= 5.2)
|
194
|
+
railties (>= 5.2)
|
195
|
+
rspec-core (~> 3.10)
|
196
|
+
rspec-expectations (~> 3.10)
|
197
|
+
rspec-mocks (~> 3.10)
|
198
|
+
rspec-support (~> 3.10)
|
199
|
+
rspec-support (3.10.2)
|
172
200
|
ruby_parser (3.17.0)
|
173
201
|
sexp_processor (~> 4.15, >= 4.15.1)
|
174
202
|
sass-rails (6.0.0)
|
@@ -193,7 +221,7 @@ GEM
|
|
193
221
|
temple (0.8.2)
|
194
222
|
thor (1.1.0)
|
195
223
|
tilt (2.0.10)
|
196
|
-
turbo-rails (0.
|
224
|
+
turbo-rails (0.8.1)
|
197
225
|
rails (>= 6.0.0)
|
198
226
|
tzinfo (2.0.4)
|
199
227
|
concurrent-ruby (~> 1.0)
|
@@ -210,10 +238,13 @@ PLATFORMS
|
|
210
238
|
|
211
239
|
DEPENDENCIES
|
212
240
|
byebug
|
241
|
+
database_cleaner
|
213
242
|
devise
|
214
243
|
hot-glue!
|
215
244
|
rails (= 6.1)
|
245
|
+
rails-controller-testing
|
246
|
+
rspec-rails
|
216
247
|
sqlite3
|
217
248
|
|
218
249
|
BUNDLED WITH
|
219
|
-
2.
|
250
|
+
2.1.4
|
data/README.md
CHANGED
@@ -1,7 +1,17 @@
|
|
1
1
|
|
2
|
+
[![Build Status](https://app.travis-ci.com/jasonfb/hot-glue.svg?branch=main)](https://travis-ci.com/jasonfb/hot-glue)
|
3
|
+
|
4
|
+
|
2
5
|
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)).
|
3
6
|
|
4
|
-
|
7
|
+
|
8
|
+
Using Turbo-Rails and Hotwire (default in Rails 7) you get a lightning-fast out-of-the-box CRUD building experience.
|
9
|
+
|
10
|
+
Every page displays only a list view: new and edit operations happen as 'edit-in-place', so the user never leaves the page.
|
11
|
+
|
12
|
+
Because all page navigation is Turbo's responsibilty, everything plugs & plays nicely into a Turbo-backed Rails app.
|
13
|
+
|
14
|
+
Alternatively, you can use this tool to create a Turbo-backed *section* of your Rails app-- like an admin interface -- while still treating the rest of the Rails app as an API or building out other features by hand.
|
5
15
|
|
6
16
|
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.
|
7
17
|
|
@@ -15,7 +25,7 @@ Hot Glue generates functionality that's quick and dirty. It let's you be crafty.
|
|
15
25
|
* Automatically reads your ActiveRecord models and relationships (make them before building your scaffolding!)
|
16
26
|
* Create-read-update-delete (CRUD) with pagination (one day: sorting & searching)
|
17
27
|
* Excellent tool for prototyping and hackathons, but a knowledge of Rails is needed.
|
18
|
-
* Nest your routes model-by-model for built-in poor man's
|
28
|
+
* Nest your routes model-by-model for built-in poor man's access control. (Customers have_many :invoices; Invoices have_many :line_items; etc)
|
19
29
|
* Plays nicely with Devise, but you can implement your own current_user object instead.
|
20
30
|
* Kaminari for pagination.
|
21
31
|
* Create specs automatically along with the controllers.
|
@@ -48,14 +58,19 @@ Instantly get a simple CRUD interface
|
|
48
58
|
|
49
59
|
- Install Turbo `rails turbo:install` (?)
|
50
60
|
|
51
|
-
- Add `gem 'hot-glue'` to your Gemfile
|
52
|
-
|
61
|
+
- Add `gem 'hot-glue'` to your Gemfile
|
62
|
+
- `bundle install`
|
63
|
+
- `rails generate hot_glue:install --markup=erb` for ERB
|
64
|
+
- or `rails generate hot_glue:install --markup=haml` for HAML
|
53
65
|
|
54
66
|
- Add to your `application.html.erb`
|
55
67
|
```
|
56
68
|
<%= render partial: 'layouts/flash_notices' %>
|
57
69
|
```
|
58
|
-
|
70
|
+
- Or for Haml add to your `application.haml`
|
71
|
+
```
|
72
|
+
= render partial: 'layouts/flash_notices'
|
73
|
+
```
|
59
74
|
|
60
75
|
## TO INSTALL (RAILS 6)
|
61
76
|
|
@@ -114,10 +129,10 @@ FOR HAML:
|
|
114
129
|
```
|
115
130
|
|
116
131
|
## Install Bootstrap using Sprockets (IMPORTANT: YOU DO NOT NEED JQUERY*)
|
117
|
-
|
132
|
+
Bootstrap with Sprockets for Rails 5 or 7 default — Rails 6 custom
|
118
133
|
- use twbs/bootstrap-rubygem gem
|
119
134
|
- see README for bootstrap-rubygem to install
|
120
|
-
|
135
|
+
Bootstrap with Webpack for FOR RAILS 7 :
|
121
136
|
|
122
137
|
- add to Gemfile
|
123
138
|
- gem 'bootstrap', '~> 5.1.0'
|
@@ -229,7 +244,7 @@ Then, finally the @charge will be loaded
|
|
229
244
|
|
230
245
|
`@charge = @line.charges.find(params[:id])`
|
231
246
|
|
232
|
-
It's called "poor man's
|
247
|
+
It's called "poor man's access control" because if a user attempts to hack the URL by passing ids for objects they don't own--- which Rails makes relatively easy with its default URL pattern-- they will hit ActiveRecord not found errors (the objects they don't own won't be found in the associated relationship).
|
233
248
|
|
234
249
|
It works, but it isn't granular. As well, it isn't appropriate for a large app with any level of intricacy to access control (that is, having roles).
|
235
250
|
|
@@ -242,7 +257,7 @@ By default, it will be assumed you have a `current_user` for your user authentic
|
|
242
257
|
|
243
258
|
The poor man's auth presumes that object graphs have only one natural way to traverse them (that is, one primary way to traverse them), and that all relationships infer that a set of things or their descendants are granted access to me for reading, writing, updating, and deleting.
|
244
259
|
|
245
|
-
Of course this is a sloppy way to do
|
260
|
+
Of course this is a sloppy way to do access control, and can easily leave open endpoints your real users shouldn't have access to.
|
246
261
|
|
247
262
|
When you display anything built with the scaffolding, we assume the `current_user` will have `has_many` association that matches the pluralized name of the scaffold. In the case of nesting, we will automatically find the nested objects first, then continue down the nest chain to find the target object. In this way, we know that all object are 'anchored' to the logged-in user.
|
248
263
|
|
@@ -344,9 +359,18 @@ IMPORTANT: By default, all fields that begin with an underscore (`_`) are automa
|
|
344
359
|
|
345
360
|
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.
|
346
361
|
|
347
|
-
###
|
362
|
+
### `--stimulus_syntax=true` or `--stimulus_syntax=false`
|
363
|
+
(for Rails <=6, default is false. For Rails 7, default is true.)
|
364
|
+
|
365
|
+
Stimulus is only used for the delete button's confirmation dialog.
|
366
|
+
|
367
|
+
If you don't have stimulus syntax enabled, your delete buttons have this. This will confirm the delete with a simple alert if you have UJS enabled.
|
348
368
|
|
349
|
-
|
369
|
+
```
|
370
|
+
{confirm: 'Are you sure?'}
|
371
|
+
```
|
372
|
+
|
373
|
+
If you do have Stimulus syntax enabled, your delete buttons will look like so:
|
350
374
|
```
|
351
375
|
<%= button_to "Delete <i class='fa fa-1x fa-remove'></i>".html_safe,
|
352
376
|
thing_path(branch), method: :delete,
|
@@ -356,8 +380,6 @@ Your delete buttons will look like so:
|
|
356
380
|
'action': 'confirmation#confirm'
|
357
381
|
},
|
358
382
|
disable_with: "Loading...", class: "delete-branch-button btn btn-primary " %>
|
359
|
-
|
360
|
-
|
361
383
|
```
|
362
384
|
|
363
385
|
Your install script will output an additional stimulus controller:
|
@@ -416,13 +438,39 @@ Omits delete action.
|
|
416
438
|
|
417
439
|
### `--big-edit`
|
418
440
|
|
419
|
-
If you do not want inline editing of your list items but instead to fall back to
|
441
|
+
If you do not want inline editing of your list items but instead to fall back to full page style behavior for your edit views, use `--big-edit`. Turbo still handles the page interactions, but the user is taken to a full-screen edit page instead of an edit-in-place interaction.
|
442
|
+
|
420
443
|
|
444
|
+
## Automatic Base Controller
|
421
445
|
|
446
|
+
HotGlue will copy a file named base_controller.rb to the same folder where it tries to create any controller, unless such a file exists there already.
|
447
|
+
|
448
|
+
Obviously, the created controller will always have this base controller as its subclass. In this way, you are encouraged to implement functionality common to the *namespace* (shared between the controllers in the namespace), using this technique.
|
449
|
+
|
450
|
+
## Field Types Supported
|
451
|
+
|
452
|
+
- Integers that don't end with `_id`, they will be displayed as text fields.
|
453
|
+
- Integers that do end with `_id` will be treated automatically as associations. You should have a Rails association defined. (Hot Glue will warn you if it can't find one.)
|
454
|
+
- String*
|
455
|
+
- Text*
|
456
|
+
- Float*
|
457
|
+
- Datetime
|
458
|
+
- Date (TOOD: implement this)
|
459
|
+
- Time (TOOD: implement this)
|
460
|
+
- Boolean
|
461
|
+
- Enum - will be magically displayed as a value list populated from the enum list defined on your model. see https://jasonfleetwoodboldt.com/courses/stepping-up-rails/enumerated-types-in-rails-and-postgres/
|
462
|
+
|
463
|
+
* shows in a size-aware container, i.e. in a bigger box if the field allows for more content
|
422
464
|
|
423
465
|
|
424
466
|
|
425
467
|
# VERSION HISTORY
|
468
|
+
|
469
|
+
#### 2021-10-07 - v0.2.4 - removes erroneous icons display in delete buttos (these don't work inside of button_to);
|
470
|
+
- adds support for ENUM types direclty on your field types
|
471
|
+
- you must use activerecord-pgenum
|
472
|
+
- see my blog post at https://jasonfleetwoodboldt.com/courses/stepping-up-rails/enumerated-types-in-rails-and-postgres/
|
473
|
+
|
426
474
|
#### 2021-09-30 - v0.2.3 - fixes ERB output for show-only fields; fixes flash_notices for erb or haml; adds @stimulus_syntax flag for delete confirmations with stimulus
|
427
475
|
|
428
476
|
#### 2021-09-27 - v0.2.2 - Fixes some issues with related fields; unlocks Rails 7 in Gemspec file
|
data/Rakefile
CHANGED
@@ -1,32 +1,42 @@
|
|
1
|
+
|
1
2
|
begin
|
2
3
|
require 'bundler/setup'
|
3
4
|
rescue LoadError
|
4
5
|
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
5
6
|
end
|
6
7
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
rdoc.rdoc_files.include('README.md')
|
14
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
15
|
-
end
|
16
|
-
|
17
|
-
APP_RAKEFILE = File.expand_path("spec/dummy/Rakefile", __dir__)
|
18
|
-
load 'rails/tasks/engine.rake'
|
19
|
-
|
20
|
-
load 'rails/tasks/statistics.rake'
|
21
|
-
|
22
|
-
require 'bundler/gem_tasks'
|
23
|
-
|
24
|
-
require 'rake/testtask'
|
25
|
-
|
26
|
-
Rake::TestTask.new(:test) do |t|
|
27
|
-
t.libs << 'test'
|
28
|
-
t.pattern = 'test/**/*_test.rb'
|
29
|
-
t.verbose = false
|
8
|
+
begin
|
9
|
+
require 'rspec/core/rake_task'
|
10
|
+
RSpec::Core::RakeTask.new(:spec)
|
11
|
+
task :default => :spec
|
12
|
+
rescue LoadError
|
13
|
+
puts 'FAILED: unable to load rspec/core/rake_task in Rakefile'
|
30
14
|
end
|
31
15
|
|
32
|
-
|
16
|
+
#
|
17
|
+
# require 'rdoc/task'
|
18
|
+
#
|
19
|
+
# RDoc::Task.new(:rdoc) do |rdoc|
|
20
|
+
# rdoc.rdoc_dir = 'rdoc'
|
21
|
+
# rdoc.title = 'HotGlue'
|
22
|
+
# rdoc.options << '--line-numbers'
|
23
|
+
# rdoc.rdoc_files.include('README.md')
|
24
|
+
# rdoc.rdoc_files.include('lib/**/*.rb')
|
25
|
+
# end
|
26
|
+
#
|
27
|
+
# APP_RAKEFILE = File.expand_path("spec/dummy/Rakefile", __dir__)
|
28
|
+
# load 'rails/tasks/engine.rake'
|
29
|
+
#
|
30
|
+
# load 'rails/tasks/statistics.rake'
|
31
|
+
#
|
32
|
+
# require 'bundler/gem_tasks'
|
33
|
+
|
34
|
+
# require 'rake/testtask'
|
35
|
+
#
|
36
|
+
# Rake::TestTask.new(:test) do |t|
|
37
|
+
# t.libs << 'test'
|
38
|
+
# t.pattern = 'test/**/*_test.rb'
|
39
|
+
# t.verbose = false
|
40
|
+
# end
|
41
|
+
#
|
42
|
+
# task default: :test
|
@@ -18,6 +18,11 @@ module HotGlue
|
|
18
18
|
copy_file "erb/_flash_notices.erb", "#{'spec/dummy/' if Rails.env.test?}app/views/layouts/_flash_notices.erb"
|
19
19
|
|
20
20
|
end
|
21
|
+
|
22
|
+
if Rails.version.split(".")[0].to_i >= 7
|
23
|
+
copy_file "confirmable.js", "#{'spec/dummy/' if Rails.env.test?}app/javascript/controllers/confirmable.js"
|
24
|
+
|
25
|
+
end
|
21
26
|
end
|
22
27
|
end
|
23
28
|
end
|
@@ -19,7 +19,6 @@ module HotGlue
|
|
19
19
|
|
20
20
|
|
21
21
|
def all_form_fields(*args)
|
22
|
-
|
23
22
|
columns = args[0][:columns]
|
24
23
|
show_only = args[0][:show_only]
|
25
24
|
singular_class = args[0][:singular_class]
|
@@ -113,7 +112,14 @@ module HotGlue
|
|
113
112
|
" <%= f.radio_button(:#{col.to_s}, '1', checked: #{singular}.#{col.to_s} ? 'checked' : '') %>\n" +
|
114
113
|
" <%= f.label(:#{col.to_s}, value: 'Yes', for: '#{singular}_#{col.to_s}_1') %>\n" +
|
115
114
|
"</div>"
|
115
|
+
when :enum
|
116
|
+
enum_name ="enum_name"
|
117
|
+
"<div class='#{col_identifier} form-group <%= 'alert-danger' if #{singular}.errors.details.keys.include?(:#{col.to_s}) %>' >
|
118
|
+
<%= f.collection_select(:#{col.to_s}, enum_to_collection_select( #{singular_class}.defined_enums['#{col.to_s}']), :key, :value, {prompt: true, selected: @#{singular}.#{col.to_s} }, class: 'form-control') %>
|
119
|
+
<label class='small form-text text-muted'>#{col.to_s.humanize}</label></div>"
|
120
|
+
|
116
121
|
end
|
122
|
+
|
117
123
|
end
|
118
124
|
}.join("\n")
|
119
125
|
return res
|
@@ -216,6 +222,14 @@ module HotGlue
|
|
216
222
|
NO
|
217
223
|
<% end %>
|
218
224
|
</div>
|
225
|
+
" when :enum
|
226
|
+
"<div class='#{col_identifer}'>
|
227
|
+
<% if #{singular}.#{col}.nil? %>
|
228
|
+
<span class='alert-danger'>MISSING</span>
|
229
|
+
<% else %>
|
230
|
+
<%= #{singular}.#{col} %>
|
231
|
+
<% end %>
|
232
|
+
</div>
|
219
233
|
"
|
220
234
|
end #end of switch
|
221
235
|
}.join("\n")
|
@@ -286,6 +286,8 @@ module HotGlue
|
|
286
286
|
nil
|
287
287
|
end
|
288
288
|
|
289
|
+
|
290
|
+
|
289
291
|
def copy_controller_and_spec_files
|
290
292
|
@default_colspan = @columns.size
|
291
293
|
unless @specs_only
|
@@ -662,7 +664,7 @@ module HotGlue
|
|
662
664
|
if !@stimulus_syntax
|
663
665
|
"{confirm: 'Are you sure?'}"
|
664
666
|
else
|
665
|
-
"{controller: 'confirmable', 'confirm-message': \"Are you sure you want to delete \#{
|
667
|
+
"{controller: 'confirmable', 'confirm-message': \"Are you sure you want to delete \#{ #{@singular}.#{ display_class } } \", 'action': 'confirmation#confirm'}"
|
666
668
|
end
|
667
669
|
end
|
668
670
|
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import { Controller } from "@hotwired/stimulus"
|
2
|
+
|
3
|
+
console.log("defining Confirmable....")
|
4
|
+
export default class extends Controller {
|
5
|
+
static values = { message: String }
|
6
|
+
|
7
|
+
confirm(event) {
|
8
|
+
|
9
|
+
if(!window.confirm(this.message)) {
|
10
|
+
event.preventDefault();
|
11
|
+
event.stopPropagation()
|
12
|
+
}
|
13
|
+
}
|
14
|
+
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<%= all_line_fields %>
|
2
2
|
<div class="col">
|
3
3
|
<% if destroy_action %>
|
4
|
-
<\%= button_to "Delete
|
4
|
+
<\%= button_to "Delete".html_safe, <%= path_helper_singular %>(<%= path_helper_args %>), method: :delete, data: <%= delete_confirmation_syntax %>, disable_with: "Loading...", class: "delete-<%= singular %>-button btn btn-primary " %>
|
5
5
|
<% end %>
|
6
6
|
|
7
7
|
<\%= link_to "Edit <i class='fa fa-1x fa-list-alt'></i>".html_safe, edit_<%= path_helper_singular %>(<%= path_helper_args %>), <% if @big_edit %>'data-turbo' => 'false', <% end %>disable_with: "Loading...", class: "edit-<%= singular %>-button btn btn-primary " %>
|
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.2.
|
4
|
+
version: 0.2.4
|
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-
|
11
|
+
date: 2021-10-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -109,6 +109,7 @@ extra_rdoc_files: []
|
|
109
109
|
files:
|
110
110
|
- ".github/FUNDING.yml"
|
111
111
|
- ".gitignore"
|
112
|
+
- ".travis.yml"
|
112
113
|
- Gemfile
|
113
114
|
- Gemfile.lock
|
114
115
|
- LICENCE
|
@@ -133,6 +134,7 @@ files:
|
|
133
134
|
- lib/generators/hot_glue/markup_templates/slim.rb
|
134
135
|
- lib/generators/hot_glue/scaffold_generator.rb
|
135
136
|
- lib/generators/hot_glue/templates/base_controller.rb.erb
|
137
|
+
- lib/generators/hot_glue/templates/confirmable.js
|
136
138
|
- lib/generators/hot_glue/templates/controller.rb.erb
|
137
139
|
- lib/generators/hot_glue/templates/erb/_errors.erb
|
138
140
|
- lib/generators/hot_glue/templates/erb/_flash_notices.erb
|