seed_reaper 0.0.10 → 0.0.11
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/lib/seed_reaper/config_evaluator.rb +1 -1
- data/lib/seed_reaper/seedifier.rb +33 -1
- data/lib/seed_reaper/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: b5280bac77c80e43889017709b2bf0337e3723b16a327f78382d8994d9b0ee40
|
|
4
|
+
data.tar.gz: 36c9cd206f8a10243554268b29233558cb9bd39b9d71a0af51e1c397a98f381b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9dead8ed048863e62f9a0286b486bbf494602970d171671bdbe2eed43ff0eb7454297113e68947f8758db0375f3f297574c60ccdec3e0ccaf9b042d3238df4a8
|
|
7
|
+
data.tar.gz: 11715f9d395c61bd36b12ddccceef6e5d03b15f584b244bf7d32d3a1660bba2fb2598558ed869a921dd65cd39953ffbedecd6a7cde691bc32fa877c3b6fa4e6b
|
|
@@ -40,7 +40,7 @@ module SeedReaper
|
|
|
40
40
|
return schema unless instance._reflections[schema.to_s].belongs_to?
|
|
41
41
|
end
|
|
42
42
|
|
|
43
|
-
%i[count joins nullify class_name].each do |meta_field|
|
|
43
|
+
%i[count joins nullify class_name table_only].each do |meta_field|
|
|
44
44
|
define_method meta_field do
|
|
45
45
|
meta(meta_field)
|
|
46
46
|
end
|
|
@@ -12,7 +12,11 @@ module SeedReaper
|
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
def seedify
|
|
15
|
-
|
|
15
|
+
if base_config_evaluator.table_only
|
|
16
|
+
seedify_table_only(@config.first[0])
|
|
17
|
+
else
|
|
18
|
+
seedify_collection(base_model, base_config)
|
|
19
|
+
end
|
|
16
20
|
end
|
|
17
21
|
|
|
18
22
|
private
|
|
@@ -33,6 +37,28 @@ module SeedReaper
|
|
|
33
37
|
@base_config_evaluator ||= ConfigEvaluator.new(base_config)
|
|
34
38
|
end
|
|
35
39
|
|
|
40
|
+
def seedify_table_only(name)
|
|
41
|
+
<<~UPSERT
|
|
42
|
+
(
|
|
43
|
+
Class.new(ActiveRecord::Base) do
|
|
44
|
+
self.table_name = :#{name}
|
|
45
|
+
end
|
|
46
|
+
).upsert_all([
|
|
47
|
+
#{
|
|
48
|
+
[].tap do |attr_hashes|
|
|
49
|
+
(
|
|
50
|
+
Class.new(ActiveRecord::Base) do
|
|
51
|
+
self.table_name = name
|
|
52
|
+
end
|
|
53
|
+
).find_each do |i|
|
|
54
|
+
attr_hashes << "{ #{serialize_upsert_attrs(i)} }"
|
|
55
|
+
end
|
|
56
|
+
end.join(",\n\s\s")
|
|
57
|
+
}
|
|
58
|
+
])
|
|
59
|
+
UPSERT
|
|
60
|
+
end
|
|
61
|
+
|
|
36
62
|
def seedify_collection(collection, config)
|
|
37
63
|
ce = ConfigEvaluator.new(config)
|
|
38
64
|
evaluated_collection(collection, ce).reduce('') do |str, instance|
|
|
@@ -106,5 +132,11 @@ module SeedReaper
|
|
|
106
132
|
attr_str += "\s\s#{k}: #{ValueSerializer.new(v).serialized(nullify: nullify)},\n"
|
|
107
133
|
end[0...-2]
|
|
108
134
|
end
|
|
135
|
+
|
|
136
|
+
def serialize_upsert_attrs(instance)
|
|
137
|
+
instance.attributes.to_h.map do |(k, v)|
|
|
138
|
+
"#{k}: #{ValueSerializer.new(v).serialized}"
|
|
139
|
+
end.join(', ')
|
|
140
|
+
end
|
|
109
141
|
end
|
|
110
142
|
end
|
data/lib/seed_reaper/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: seed_reaper
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.11
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- David Butts
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2022-03-
|
|
11
|
+
date: 2022-03-15 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|