traitr 0.0.2 → 0.0.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3ed989bf89f57b2646ce63d1e3bf8622adb9b174
4
- data.tar.gz: fe0731743fb6c9c74bbc4a831dcf768d8a7302b6
3
+ metadata.gz: 2667be9e06efe6618b73bf825373f9e1ca3cd561
4
+ data.tar.gz: 0c9c033c9115dbf6663131abd6d335842c8d5644
5
5
  SHA512:
6
- metadata.gz: 496b42da0b8f2b876302e6f039b2e42ef137ab193fceb5671cfb08f825ad1c7f4c5b25682388689fcf710dc2637a5a3d8b16b7cc42af1470eb911d87966e5548
7
- data.tar.gz: f4adb687f50cd4c6820274244ee3aec07a5a476698968aa543c99d68f72275213369d5077b9448939803207a99ba23882039eac15c8b76645b564cb1421e1336
6
+ metadata.gz: 7ca5c6aa856de36fe96434b2058fd70bad92135c1bf625e10dec39d06d650d3c8adaa961f26be4c8723bf64d8451078a1963b04ce7c3472d7ab637f6cccdbabe
7
+ data.tar.gz: 777b4865d18b62936e968a96795acc51d319b68e0a4300aafa365a209dccbf7aaaa12d83a9b1be4fc0ed57ff25dc10751065737ef21a1954e307c121a8ba6e47
@@ -3,26 +3,30 @@ module Traitor
3
3
  @save_method = nil
4
4
  @save_kwargs = {}
5
5
  @build_kwargs = {}
6
+ @build_with_list = false # use (**attributes.merge(build_kwargs)) instead of (attributes, **build_kwargs)
6
7
 
7
8
  class << self
8
- attr_accessor :save_method, :save_kwargs, :build_kwargs
9
+ attr_accessor :save_method, :save_kwargs, :build_kwargs, :build_with_list
9
10
 
10
11
  def configure_for_rails!
11
12
  @save_method = :save
12
13
  @save_kwargs = { validate: false }
13
- @build_kwargs = { without_validation: true }
14
+ @build_kwargs = { without_protection: true }
15
+ @build_with_list = false
14
16
  end
15
17
 
16
18
  def configure_safe_for_rails!
17
19
  @save_method = :save
18
20
  @save_kwargs = {}
19
21
  @build_kwargs = {}
22
+ @build_with_list = false
20
23
  end
21
24
 
22
25
  def reset!
23
26
  @save_method = nil
24
27
  @save_kwargs = {}
25
28
  @build_kwargs = {}
29
+ @build_with_list = false
26
30
  end
27
31
  end
28
32
  end
data/lib/traitor.rb CHANGED
@@ -63,8 +63,11 @@ module Traitor
63
63
  ##
64
64
  def self.build(klass, *traits, **attributes)
65
65
  attributes = get_attributes_from_traits(klass, traits).merge(attributes)
66
+ build_kwargs = Traitor::Config.build_kwargs
66
67
 
67
- record = if (build_kwargs = Traitor::Config.build_kwargs).any? # assignment intentional
68
+ record = if Traitor::Config.build_with_list
69
+ convert_to_class(klass).new(**attributes.merge(build_kwargs))
70
+ elsif build_kwargs.any?
68
71
  convert_to_class(klass).new(attributes, **build_kwargs)
69
72
  else
70
73
  convert_to_class(klass).new(attributes)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: traitr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zach Lome