traitr 0.0.2 → 0.0.3

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
  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