stbaldricks 7.0.1.alpha.1 → 8.0.0.alpha.1
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2c8d55de515a40ab9cba96b243667a0ab969aa75a1c1b3d2514b666fa8a3e368
|
4
|
+
data.tar.gz: f70f5e91783a796cad7d29078e573296c450910b36bc505d97bf6c524cf13409
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 475231650f38a94d84779c0eae763844526f9fc6f642a93599897c29bcac80e46001300c55cdc757411752a20bc8cc73c3b85aba75c169a957617e7547b85577
|
7
|
+
data.tar.gz: a7690725f350cf6d792d6e8c94a24a913ea959d4cd2ff1ed9a8e069810540b4a2fcc24458d1b764199b7cd262e676319ef661173e6a9dad4e15b0e67971db46d
|
@@ -169,11 +169,11 @@ module SBF
|
|
169
169
|
def sanitize(data, entity_class = nil)
|
170
170
|
klass = entity_class || target_class
|
171
171
|
|
172
|
-
return sanitize(data, klass) if klass.
|
172
|
+
return sanitize(data, klass) if klass.defined_attributes.empty?
|
173
173
|
|
174
174
|
{}.tap do |hsh|
|
175
175
|
data.each do |key, value|
|
176
|
-
next unless klass.
|
176
|
+
next unless klass.defined_attributes.include?(key)
|
177
177
|
|
178
178
|
# We need to sanitize the sub objects if the value is a sub-entity
|
179
179
|
if klass.entity_attributes.include?(key)
|
@@ -36,7 +36,7 @@ module SBF
|
|
36
36
|
|
37
37
|
def to_hash
|
38
38
|
{}.tap do |hsh|
|
39
|
-
self.class.
|
39
|
+
self.class.defined_attributes.each { |name| hsh[name] = send(name.to_sym) unless name.to_sym == :year }
|
40
40
|
end
|
41
41
|
end
|
42
42
|
end
|
@@ -23,7 +23,7 @@ module SBF
|
|
23
23
|
ELSE = ->(_) { true }
|
24
24
|
|
25
25
|
# Class level instance variable to keep track of defined attributes
|
26
|
-
@
|
26
|
+
@defined_attributes = nil
|
27
27
|
@optional_attributes = nil
|
28
28
|
@entity_attributes = nil
|
29
29
|
@not_provided_attributes = nil
|
@@ -125,7 +125,7 @@ module SBF
|
|
125
125
|
# For each attribute that may be optional, call mark_attribute_not_provided
|
126
126
|
# if the data set does not contain a key with the optional attribute's name
|
127
127
|
self.class.optional_attributes.each { |name| mark_attribute_not_provided(name) unless data.key?(name) }
|
128
|
-
@
|
128
|
+
@defined_attributes ||= Set.new
|
129
129
|
@optional_attributes ||= Set.new
|
130
130
|
@not_provided_attributes ||= Set.new
|
131
131
|
@entity_attributes ||= Set.new
|
@@ -225,13 +225,13 @@ module SBF
|
|
225
225
|
# Override for the ruby built-in attribute accessors. Creates a list of attributes that can be
|
226
226
|
# accessed at will and adds some helper methods.
|
227
227
|
def self.attr_reader(*vars)
|
228
|
-
|
228
|
+
defined_attributes.merge(vars)
|
229
229
|
super(*vars)
|
230
230
|
add_boolean_methods(vars)
|
231
231
|
end
|
232
232
|
|
233
233
|
def self.attr_writer(*vars)
|
234
|
-
|
234
|
+
defined_attributes.merge(vars)
|
235
235
|
|
236
236
|
vars.each do |attribute|
|
237
237
|
define_attribute_methods attribute
|
@@ -242,7 +242,7 @@ module SBF
|
|
242
242
|
end
|
243
243
|
|
244
244
|
def self.attr_accessor(*vars)
|
245
|
-
|
245
|
+
defined_attributes.merge(vars)
|
246
246
|
super(*vars)
|
247
247
|
|
248
248
|
vars.each do |attribute|
|
@@ -344,8 +344,8 @@ module SBF
|
|
344
344
|
end
|
345
345
|
###########################################################################################
|
346
346
|
|
347
|
-
def self.
|
348
|
-
@
|
347
|
+
def self.defined_attributes
|
348
|
+
@defined_attributes ||= Set.new
|
349
349
|
end
|
350
350
|
|
351
351
|
def self.optional_attributes
|
@@ -405,7 +405,7 @@ module SBF
|
|
405
405
|
raise SBF::Client::Error, "unknown #{attribute} type" if check.nil?
|
406
406
|
|
407
407
|
# If a user specifies exactly the partial fields, then this should be a partial.
|
408
|
-
return partial_class if partial_class && (value.keys - partial_class.
|
408
|
+
return partial_class if partial_class && (value.keys - partial_class.defined_attributes.to_a).empty?
|
409
409
|
|
410
410
|
# Otherwise
|
411
411
|
return full_class if full_class
|
@@ -538,7 +538,7 @@ module SBF
|
|
538
538
|
# Recursively converts an entity into a Hash
|
539
539
|
def to_hash
|
540
540
|
entity_hash = {}
|
541
|
-
self.class.
|
541
|
+
self.class.defined_attributes.each { |key|
|
542
542
|
# If the method was not retrieved, do not include it in the hash
|
543
543
|
next if not_provided_attributes.include?(key)
|
544
544
|
|
@@ -579,7 +579,7 @@ module SBF
|
|
579
579
|
|
580
580
|
def self.inherited(base)
|
581
581
|
# Add all of our attributes to the class that is inheriting us.
|
582
|
-
base.
|
582
|
+
base.defined_attributes.merge(defined_attributes) unless defined_attributes.empty?
|
583
583
|
base.optional_attributes.merge(optional_attributes) unless optional_attributes.empty?
|
584
584
|
base.entity_attributes.merge(entity_attributes) unless entity_attributes.empty?
|
585
585
|
end
|
@@ -27,7 +27,7 @@ module SBF
|
|
27
27
|
def to_hash
|
28
28
|
{}.tap do |hsh|
|
29
29
|
props.each { |k, v| hsh[k] = v }
|
30
|
-
self.class.
|
30
|
+
self.class.defined_attributes.each { |name| hsh[name] = send(name.to_sym) unless hsh.key?(name.to_sym) || name.to_sym == :props }
|
31
31
|
end
|
32
32
|
end
|
33
33
|
end
|
data/lib/stbaldricks/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stbaldricks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 8.0.0.alpha.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Firespring
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-03-
|
11
|
+
date: 2019-03-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|