bullet_train-super_scaffolding 1.7.16 → 1.7.17
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/bullet_train/super_scaffolding/version.rb +1 -1
- data/lib/scaffolding/attribute.rb +16 -0
- data/lib/scaffolding/transformer.rb +14 -10
- 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: fe1409d374421a05f03e3a685f540ce5dc28d1861aa8037594efbe1210fdc527
|
4
|
+
data.tar.gz: 5e9cc70b508fe1829130471dbc78a06a4058f1c930d17d59007ef9d4c88078cc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 22c6d0f8f599ac0419a29fb6fd92bb7722b6981780552e3d55a84d88982687365cb5c815ee18accc7b6ba4e2679b539b9e09c18c186600af5052a97c3efea8d3
|
7
|
+
data.tar.gz: c8dce7b4508b7c003a3f6aeb67f7dd76b877836d14242293116b23873da5731f3a775bd6d516b7f8ba1b8e1e12acba9f60dba0e71e379e3a8118b48262410c0b
|
@@ -96,6 +96,22 @@ class Scaffolding::Attribute
|
|
96
96
|
original_type == "boolean"
|
97
97
|
end
|
98
98
|
|
99
|
+
def file_field?
|
100
|
+
type == "file_field"
|
101
|
+
end
|
102
|
+
|
103
|
+
def image?
|
104
|
+
type == "image"
|
105
|
+
end
|
106
|
+
|
107
|
+
def cloudinary_image?
|
108
|
+
image? && cloudinary_enabled?
|
109
|
+
end
|
110
|
+
|
111
|
+
def active_storage_image?
|
112
|
+
image? && !cloudinary_enabled?
|
113
|
+
end
|
114
|
+
|
99
115
|
# Sometimes we need all the magic of a `*_id` field, but without the scoping stuff.
|
100
116
|
# Possibly only ever used internally by `join-model`.
|
101
117
|
def is_unscoped?
|
@@ -969,7 +969,7 @@ class Scaffolding::Transformer
|
|
969
969
|
].each do |file|
|
970
970
|
if attribute.is_ids? || attribute.is_multiple?
|
971
971
|
scaffold_add_line_to_file(file, "#{attribute.name}: [],", RUBY_NEW_ARRAYS_HOOK, prepend: true)
|
972
|
-
if attribute.
|
972
|
+
if attribute.file_field? || attribute.active_storage_image?
|
973
973
|
scaffold_add_line_to_file(file, "#{attribute.name}_removal: [],", RUBY_NEW_ARRAYS_HOOK, prepend: true)
|
974
974
|
end
|
975
975
|
elsif attribute.type == "address_field"
|
@@ -988,7 +988,7 @@ class Scaffolding::Transformer
|
|
988
988
|
scaffold_add_line_to_file(file, address_strong_params, RUBY_NEW_ARRAYS_HOOK, prepend: true)
|
989
989
|
else
|
990
990
|
scaffold_add_line_to_file(file, ":#{attribute.name},", RUBY_NEW_FIELDS_HOOK, prepend: true)
|
991
|
-
if attribute.
|
991
|
+
if attribute.file_field? || attribute.active_storage_image?
|
992
992
|
scaffold_add_line_to_file(file, ":#{attribute.name}_removal,", RUBY_NEW_FIELDS_HOOK, prepend: true)
|
993
993
|
end
|
994
994
|
end
|
@@ -1234,7 +1234,7 @@ class Scaffolding::Transformer
|
|
1234
1234
|
end
|
1235
1235
|
|
1236
1236
|
case attribute.type
|
1237
|
-
when "file_field"
|
1237
|
+
when "file_field", "image"
|
1238
1238
|
remove_file_methods = if attribute.is_multiple?
|
1239
1239
|
<<~RUBY
|
1240
1240
|
def #{attribute.name}_removal?
|
@@ -1247,7 +1247,7 @@ class Scaffolding::Transformer
|
|
1247
1247
|
|
1248
1248
|
def #{attribute.name}=(attachables)
|
1249
1249
|
attachables = Array(attachables).compact_blank
|
1250
|
-
|
1250
|
+
|
1251
1251
|
if attachables.any?
|
1252
1252
|
attachment_changes["#{attribute.name}"] =
|
1253
1253
|
ActiveStorage::Attached::Changes::CreateMany.new("#{attribute.name}", self, #{attribute.name}.blobs + attachables)
|
@@ -1264,6 +1264,7 @@ class Scaffolding::Transformer
|
|
1264
1264
|
def remove_#{attribute.name}
|
1265
1265
|
#{attribute.name}.purge
|
1266
1266
|
end
|
1267
|
+
|
1267
1268
|
RUBY
|
1268
1269
|
end
|
1269
1270
|
|
@@ -1280,13 +1281,16 @@ class Scaffolding::Transformer
|
|
1280
1281
|
model_without_attached_hook.each { |line| f.write(line) }
|
1281
1282
|
end
|
1282
1283
|
|
1283
|
-
|
1284
|
-
|
1284
|
+
# Cloudinary images don't need all of the removal boilerplate since that's handled by the cloudinary JS
|
1285
|
+
unless attribute.cloudinary_image?
|
1286
|
+
hook_type = attribute.is_multiple? ? HAS_MANY_HOOK : HAS_ONE_HOOK
|
1287
|
+
scaffold_add_line_to_file("./app/models/scaffolding/completely_concrete/tangible_thing.rb", reflection_declaration, hook_type, prepend: true)
|
1285
1288
|
|
1286
|
-
|
1287
|
-
|
1288
|
-
|
1289
|
-
|
1289
|
+
# TODO: We may need to edit these depending on how we save multiple files.
|
1290
|
+
scaffold_add_line_to_file("./app/models/scaffolding/completely_concrete/tangible_thing.rb", "attr_accessor :#{attribute.name}_removal", ATTR_ACCESSORS_HOOK, prepend: true)
|
1291
|
+
scaffold_add_line_to_file("./app/models/scaffolding/completely_concrete/tangible_thing.rb", remove_file_methods, METHODS_HOOK, prepend: true)
|
1292
|
+
scaffold_add_line_to_file("./app/models/scaffolding/completely_concrete/tangible_thing.rb", "after_validation :remove_#{attribute.name}, if: :#{attribute.name}_removal?", CALLBACKS_HOOK, prepend: true)
|
1293
|
+
end
|
1290
1294
|
when "trix_editor"
|
1291
1295
|
scaffold_add_line_to_file("./app/models/scaffolding/completely_concrete/tangible_thing.rb", "has_rich_text :#{attribute.name}", HAS_ONE_HOOK, prepend: true)
|
1292
1296
|
when "address_field"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bullet_train-super_scaffolding
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.7.
|
4
|
+
version: 1.7.17
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Culver
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-07-
|
11
|
+
date: 2024-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: standard
|