seed_reaper 0.0.5 → 0.0.6

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: 1fad4ebc284e6a5e6a30df7e9a3305c70d48060d4d12a4a48f69391149fc975a
4
- data.tar.gz: a66337b1c8749eb67a42b1fb1bb9d601e8f1cc21cf2002cb22044e534007b81f
3
+ metadata.gz: 33aaf207d0c92c6c1c42f679d275cafa0c4cb52537b75bc7b05ab59b8c53beb4
4
+ data.tar.gz: 4d88d55befff9eb3fd5ddcb290325541bb866ee023a5173310700c77100eab74
5
5
  SHA512:
6
- metadata.gz: 9f5756b19dd5aaac7567cfbe78669e96e0c936d9cad7f50f1ecddbc9272581018b4bf1ef27d88bbee83b713c40d5278f36e777956cf473f1b533f480cc49d884
7
- data.tar.gz: f78cedba61282dfe2f36c25b80c637630a39a2051bf35471df3922d9efed6d9d31d4058919ceec443f6b5b66d36ef177c76e9ecf8156593649bf7a1082942bfb
6
+ metadata.gz: 1a13d8c2f213c592b57079b573789a66512290595bbbe8a2f5efb992e69eae30e7219349b8ebe8bb5dbc352e03c42f8eb14c6c57a51c29ab8cf5a6defa3cbaf8
7
+ data.tar.gz: d49d7e67e0c2955b814db386ba23f65abf01b6f67e3c119041050d212677df6217a6c54c1ceadaefb8db05fcc9193b65f3c685561f4183ccea8c67e3001c5e79
@@ -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].each do |meta_field|
43
+ %i[count joins nullify].each do |meta_field|
44
44
  define_method meta_field do
45
45
  meta(meta_field)
46
46
  end
@@ -34,7 +34,7 @@ module SeedReaper
34
34
  evaluated_collection(collection, ce).reduce('') do |str, instance|
35
35
  str +=
36
36
  seedify_associations(instance, ce.belongs_to_schema(instance)) +
37
- serialize(instance) +
37
+ serialize(instance, ce) +
38
38
  seedify_associations(instance, ce.non_belongs_to_schema(instance))
39
39
  end
40
40
  end
@@ -87,8 +87,8 @@ module SeedReaper
87
87
  collection
88
88
  end
89
89
 
90
- def serialize(instance)
91
- seed = "#{instance.class}.new(\n#{serialize_attrs(instance)}\n).save!(validate: false)\n\n"
90
+ def serialize(instance, config_evaluator)
91
+ seed = "#{instance.class}.new(\n#{serialize_attrs(instance, config_evaluator)}\n).save!(validate: false)\n\n"
92
92
  hashed_seed = Digest::SHA2.hexdigest(seed)
93
93
  return '' if @serialized.include?(hashed_seed)
94
94
 
@@ -96,9 +96,10 @@ module SeedReaper
96
96
  seed
97
97
  end
98
98
 
99
- def serialize_attrs(instance)
99
+ def serialize_attrs(instance, config_evaluator)
100
100
  instance.attributes.to_h.reduce('') do |attr_str, (k, v)|
101
- attr_str += "\s\s#{k}: #{ValueSerializer.new(v).serialized},\n"
101
+ nullify = [config_evaluator.nullify].flatten.compact.map(&:to_s).include?(k.to_s)
102
+ attr_str += "\s\s#{k}: #{ValueSerializer.new(v).serialized(nullify: nullify)},\n"
102
103
  end[0...-2]
103
104
  end
104
105
  end
@@ -6,9 +6,9 @@ module SeedReaper
6
6
  @value = value
7
7
  end
8
8
 
9
- def serialized
9
+ def serialized(nullify: false)
10
10
  @serialized ||=
11
- if @value.nil?
11
+ if nullify || @value.nil?
12
12
  "nil"
13
13
  elsif @value.is_a?(Integer)
14
14
  @value
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SeedReaper
4
- VERSION = '0.0.5'
4
+ VERSION = '0.0.6'
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.5
4
+ version: 0.0.6
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-02-23 00:00:00.000000000 Z
11
+ date: 2022-02-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport