aws-record 2.4.0 → 2.4.1
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
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: d017802e3f3023427a79e39fe59468a66f1fe138ef3a6bd173bdcc4d4a15c05c
|
4
|
+
data.tar.gz: c9efe98e3226977a5c381d16cf0dd9ffcd77e6c99d7d4407d58c2e20908c5be2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0fd56a56605143708ee9f70074317452105860f86835f59653e484c0b1f700b9a7e587383fb9a9278c1eb3c0585cb6fde1024d07bf3d6bcefc1497fcd9ab5984
|
7
|
+
data.tar.gz: ba3f5889ca0954c294ca77b752ab45cb7151067c81369b3b303c86f72e32bc2f0eb7496ca6ccdfbfbf515ef6d04c1809cf32f839cc3574d35ff1f965646505a9
|
@@ -48,12 +48,14 @@ module Aws
|
|
48
48
|
# item is nil or not set at persistence time.
|
49
49
|
def initialize(name, options = {})
|
50
50
|
@name = name
|
51
|
-
@database_name = options[:database_attribute_name]
|
51
|
+
@database_name = (options[:database_attribute_name] || name).to_s
|
52
52
|
@dynamodb_type = options[:dynamodb_type]
|
53
53
|
@marshaler = options[:marshaler] || DefaultMarshaler
|
54
54
|
@persist_nil = options[:persist_nil]
|
55
55
|
dv = options[:default_value]
|
56
|
-
|
56
|
+
unless dv.nil?
|
57
|
+
@default_value_or_lambda = _is_lambda?(dv) ? dv : type_cast(dv)
|
58
|
+
end
|
57
59
|
end
|
58
60
|
|
59
61
|
# Attempts to type cast a raw value into the attribute's type. This call
|
@@ -92,8 +94,8 @@ module Aws
|
|
92
94
|
|
93
95
|
# @api private
|
94
96
|
def default_value
|
95
|
-
if @default_value_or_lambda
|
96
|
-
@default_value_or_lambda.call
|
97
|
+
if _is_lambda?(@default_value_or_lambda)
|
98
|
+
type_cast(@default_value_or_lambda.call)
|
97
99
|
else
|
98
100
|
_deep_copy(@default_value_or_lambda)
|
99
101
|
end
|
@@ -104,6 +106,10 @@ module Aws
|
|
104
106
|
Marshal.load(Marshal.dump(obj))
|
105
107
|
end
|
106
108
|
|
109
|
+
def _is_lambda?(obj)
|
110
|
+
obj.respond_to?(:call)
|
111
|
+
end
|
112
|
+
|
107
113
|
end
|
108
114
|
|
109
115
|
# This is an identity marshaler, which performs no changes for type casting
|
@@ -122,9 +122,9 @@ module Aws
|
|
122
122
|
|
123
123
|
def populate_default_values
|
124
124
|
@model_attributes.attributes.each do |name, attribute|
|
125
|
-
unless attribute.default_value.nil?
|
125
|
+
unless (default_value = attribute.default_value).nil?
|
126
126
|
if @data[name].nil? && @data[name].nil?
|
127
|
-
@data[name] =
|
127
|
+
@data[name] = default_value
|
128
128
|
end
|
129
129
|
end
|
130
130
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aws-record
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.4.
|
4
|
+
version: 2.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Amazon Web Services
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-05-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-dynamodb
|
@@ -80,8 +80,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
80
80
|
- !ruby/object:Gem::Version
|
81
81
|
version: '0'
|
82
82
|
requirements: []
|
83
|
-
|
84
|
-
rubygems_version: 2.5.2
|
83
|
+
rubygems_version: 3.0.3
|
85
84
|
signing_key:
|
86
85
|
specification_version: 4
|
87
86
|
summary: AWS Record library for Amazon DynamoDB
|