seed_reaper 0.0.10 → 0.0.11

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: 3aada863ada1f6e625b402b9c792f0e6c4f5ea72e616e67cecab82d2abb32584
4
- data.tar.gz: 71da1d3ed76246f00a0993ddf190a3c66d9286b885ab704356e15c27b59182a9
3
+ metadata.gz: b5280bac77c80e43889017709b2bf0337e3723b16a327f78382d8994d9b0ee40
4
+ data.tar.gz: 36c9cd206f8a10243554268b29233558cb9bd39b9d71a0af51e1c397a98f381b
5
5
  SHA512:
6
- metadata.gz: b9c7b7134ffde3ad24efce00c50824c8db2c1f5faa84e9ae86499db92fb55a867cb76c168d4f4bb965f5899ddaf1cadd597e41d2206c92b753b164f792fff7fb
7
- data.tar.gz: d68847de1e51073d9a4ce5375ded37b4153b54dac818a1a7cea642c15e837d88db9e05865e6eb821c587bca021ae199ef6fb6e8dff671a1eb0bbb9379b698d8e
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
- seedify_collection(base_model, base_config)
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SeedReaper
4
- VERSION = '0.0.10'
4
+ VERSION = '0.0.11'
5
5
  end
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.10
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 00:00:00.000000000 Z
11
+ date: 2022-03-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport