aws-record 2.10.0 → 2.11.0

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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +335 -0
  3. data/LICENSE +202 -0
  4. data/VERSION +1 -0
  5. data/lib/aws-record/record/attribute.rb +9 -21
  6. data/lib/aws-record/record/attributes.rb +68 -78
  7. data/lib/aws-record/record/batch.rb +13 -12
  8. data/lib/aws-record/record/batch_read.rb +5 -2
  9. data/lib/aws-record/record/batch_write.rb +1 -12
  10. data/lib/aws-record/record/buildable_search.rb +33 -28
  11. data/lib/aws-record/record/client_configuration.rb +10 -21
  12. data/lib/aws-record/record/dirty_tracking.rb +30 -44
  13. data/lib/aws-record/record/errors.rb +1 -13
  14. data/lib/aws-record/record/item_collection.rb +5 -16
  15. data/lib/aws-record/record/item_data.rb +4 -18
  16. data/lib/aws-record/record/item_operations.rb +86 -93
  17. data/lib/aws-record/record/key_attributes.rb +1 -14
  18. data/lib/aws-record/record/marshalers/boolean_marshaler.rb +2 -16
  19. data/lib/aws-record/record/marshalers/date_marshaler.rb +1 -15
  20. data/lib/aws-record/record/marshalers/date_time_marshaler.rb +2 -14
  21. data/lib/aws-record/record/marshalers/epoch_time_marshaler.rb +1 -14
  22. data/lib/aws-record/record/marshalers/float_marshaler.rb +3 -19
  23. data/lib/aws-record/record/marshalers/integer_marshaler.rb +3 -19
  24. data/lib/aws-record/record/marshalers/list_marshaler.rb +2 -16
  25. data/lib/aws-record/record/marshalers/map_marshaler.rb +2 -16
  26. data/lib/aws-record/record/marshalers/numeric_set_marshaler.rb +3 -16
  27. data/lib/aws-record/record/marshalers/string_marshaler.rb +2 -16
  28. data/lib/aws-record/record/marshalers/string_set_marshaler.rb +3 -16
  29. data/lib/aws-record/record/marshalers/time_marshaler.rb +1 -14
  30. data/lib/aws-record/record/model_attributes.rb +14 -35
  31. data/lib/aws-record/record/query.rb +7 -21
  32. data/lib/aws-record/record/secondary_indexes.rb +23 -42
  33. data/lib/aws-record/record/table_config.rb +52 -74
  34. data/lib/aws-record/record/table_migration.rb +43 -66
  35. data/lib/aws-record/record/transactions.rb +67 -38
  36. data/lib/aws-record/record/version.rb +2 -13
  37. data/lib/aws-record/record.rb +30 -49
  38. metadata +14 -5
@@ -3,7 +3,6 @@
3
3
  module Aws
4
4
  module Record
5
5
  module ItemOperations
6
-
7
6
  # @api private
8
7
  def self.included(sub_class)
9
8
  sub_class.extend(ItemOperationsClassMethods)
@@ -12,12 +11,12 @@ module Aws
12
11
  # Saves this instance of an item to Amazon DynamoDB. If this item is "new"
13
12
  # as defined by having new or altered key attributes, will attempt a
14
13
  # conditional
15
- # {http://docs.aws.amazon.com/sdkforruby/api/Aws/DynamoDB/Client.html#put_item-instance_method Aws::DynamoDB::Client#put_item}
16
- # call, which will not overwrite an existing item. If the item only has
17
- # altered non-key attributes, will perform an
18
- # {http://docs.aws.amazon.com/sdkforruby/api/Aws/DynamoDB/Client.html#update_item-instance_method Aws::DynamoDB::Client#update_item}
19
- # call. Uses this item instance's attributes in order to build the
20
- # request on your behalf.
14
+ # {http://docs.aws.amazon.com/sdkforruby/api/Aws/DynamoDB/Client.html#put_item-instance_method
15
+ # Aws::DynamoDB::Client#put_item} call, which will not overwrite an existing
16
+ # item. If the item only has altered non-key attributes, will perform an
17
+ # {http://docs.aws.amazon.com/sdkforruby/api/Aws/DynamoDB/Client.html#update_item-instance_method
18
+ # Aws::DynamoDB::Client#update_item} call. Uses this item instance's attributes
19
+ # in order to build the request on your behalf.
21
20
  #
22
21
  # You can use the +:force+ option to perform a simple put/overwrite
23
22
  # without conditional validation or update logic.
@@ -38,19 +37,19 @@ module Aws
38
37
  if ret
39
38
  ret
40
39
  else
41
- raise Errors::ValidationError.new("Validation hook returned false!")
40
+ raise Errors::ValidationError, 'Validation hook returned false!'
42
41
  end
43
42
  end
44
43
 
45
44
  # Saves this instance of an item to Amazon DynamoDB. If this item is "new"
46
45
  # as defined by having new or altered key attributes, will attempt a
47
46
  # conditional
48
- # {http://docs.aws.amazon.com/sdkforruby/api/Aws/DynamoDB/Client.html#put_item-instance_method Aws::DynamoDB::Client#put_item}
49
- # call, which will not overwrite an existing item. If the item only has
50
- # altered non-key attributes, will perform an
51
- # {http://docs.aws.amazon.com/sdkforruby/api/Aws/DynamoDB/Client.html#update_item-instance_method Aws::DynamoDB::Client#update_item}
52
- # call. Uses this item instance's attributes in order to build the
53
- # request on your behalf.
47
+ # {http://docs.aws.amazon.com/sdkforruby/api/Aws/DynamoDB/Client.html#put_item-instance_method
48
+ # Aws::DynamoDB::Client#put_item} call, which will not overwrite an
49
+ # existing item. If the item only has altered non-key attributes, will perform an
50
+ # {http://docs.aws.amazon.com/sdkforruby/api/Aws/DynamoDB/Client.html#update_item-instance_method
51
+ # Aws::DynamoDB::Client#update_item} call. Uses this item instance's attributes
52
+ # in order to build the request on your behalf.
54
53
  #
55
54
  # You can use the +:force+ option to perform a simple put/overwrite
56
55
  # without conditional validation or update logic.
@@ -70,7 +69,6 @@ module Aws
70
69
  end
71
70
  end
72
71
 
73
-
74
72
  # Assigns the attributes provided onto the model.
75
73
  #
76
74
  # @example Usage Example
@@ -99,7 +97,7 @@ module Aws
99
97
  opts.each do |field, new_value|
100
98
  field = field.to_sym
101
99
  setter = "#{field}="
102
- raise ArgumentError.new "Invalid field: #{field} for model" unless respond_to?(setter)
100
+ raise ArgumentError, "Invalid field: #{field} for model" unless respond_to?(setter)
103
101
  public_send(setter, new_value)
104
102
  end
105
103
  end
@@ -174,42 +172,42 @@ module Aws
174
172
 
175
173
  # Deletes the item instance that matches the key values of this item
176
174
  # instance in Amazon DynamoDB. Uses the
177
- # {http://docs.aws.amazon.com/sdkforruby/api/Aws/DynamoDB/Client.html#delete_item-instance_method Aws::DynamoDB::Client#delete_item}
178
- # API.
175
+ # {http://docs.aws.amazon.com/sdkforruby/api/Aws/DynamoDB/Client.html#delete_item-instance_method
176
+ # Aws::DynamoDB::Client#delete_item} API.
179
177
  def delete!
180
178
  dynamodb_client.delete_item(
181
179
  table_name: self.class.table_name,
182
180
  key: key_values
183
181
  )
184
- self.instance_variable_get("@data").destroyed = true
182
+ instance_variable_get('@data').destroyed = true
185
183
  end
186
184
 
187
185
  # Validates and generates the key values necessary for API operations such as the
188
- # {http://docs.aws.amazon.com/sdkforruby/api/Aws/DynamoDB/Client.html#delete_item-instance_method Aws::DynamoDB::Client#delete_item}
189
- # operation.
186
+ # {http://docs.aws.amazon.com/sdkforruby/api/Aws/DynamoDB/Client.html#delete_item-instance_method
187
+ # Aws::DynamoDB::Client#delete_item} operation.
190
188
  def key_values
191
189
  validate_key_values
192
190
  attributes = self.class.attributes
193
191
  self.class.keys.values.each_with_object({}) do |attr_name, hash|
194
192
  db_name = attributes.storage_name_for(attr_name)
195
- hash[db_name] = attributes
196
- .attribute_for(attr_name)
197
- .serialize(@data.raw_value(attr_name))
193
+ hash[db_name] = attributes.attribute_for(attr_name)
194
+ .serialize(@data.raw_value(attr_name))
198
195
  end
199
196
  end
200
197
 
201
198
  # Validates key values and returns a hash consisting of the parameters
202
199
  # to save the record using the
203
- # {https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/DynamoDB/Client.html#batch_write_item-instance_method Aws::DynamoDB::Client#batch_write_item}
204
- # operation.
200
+ # {https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/DynamoDB/Client.html#batch_write_item-instance_method
201
+ # Aws::DynamoDB::Client#batch_write_item} operation.
205
202
  def save_values
206
203
  _build_item_for_save
207
204
  end
208
205
 
209
206
  private
210
- def _invalid_record?(opts)
211
- if self.respond_to?(:valid?)
212
- if !self.valid?
207
+
208
+ def _invalid_record?(_opts)
209
+ if respond_to?(:valid?)
210
+ if !valid?
213
211
  true
214
212
  else
215
213
  false
@@ -234,12 +232,11 @@ module Aws
234
232
  }.merge(prevent_overwrite_expression)
235
233
  begin
236
234
  dynamodb_client.put_item(put_opts)
237
- rescue Aws::DynamoDB::Errors::ConditionalCheckFailedException => e
238
- raise Errors::ConditionalWriteFailed.new(
239
- "Conditional #put_item call failed! Check that conditional write"\
240
- " conditions are met, or include the :force option to clobber"\
241
- " the remote item."
242
- )
235
+ rescue Aws::DynamoDB::Errors::ConditionalCheckFailedException
236
+ raise Errors::ConditionalWriteFailed,
237
+ 'Conditional #put_item call failed! Check that conditional write'\
238
+ ' conditions are met, or include the :force option to clobber'\
239
+ ' the remote item.'
243
240
  end
244
241
  else
245
242
  update_pairs = _dirty_changes_for_update
@@ -253,7 +250,7 @@ module Aws
253
250
  table_name: self.class.table_name,
254
251
  key: key_values,
255
252
  update_expression: uex,
256
- expression_attribute_names: exp_attr_names,
253
+ expression_attribute_names: exp_attr_names
257
254
  }
258
255
  request_opts[:expression_attribute_values] = exp_attr_values unless exp_attr_values.empty?
259
256
  dynamodb_client.update_item(request_opts)
@@ -264,7 +261,7 @@ module Aws
264
261
  )
265
262
  end
266
263
  end
267
- data = self.instance_variable_get("@data")
264
+ data = instance_variable_get('@data')
268
265
  data.destroyed = false
269
266
  data.new_record = false
270
267
  true
@@ -278,15 +275,11 @@ module Aws
278
275
 
279
276
  def validate_key_values
280
277
  missing = missing_key_values
281
- unless missing.empty?
282
- raise Errors::KeyMissing.new(
283
- "Missing required keys: #{missing.join(', ')}"
284
- )
285
- end
278
+ raise Errors::KeyMissing, "Missing required keys: #{missing.join(', ')}" unless missing.empty?
286
279
  end
287
280
 
288
281
  def missing_key_values
289
- self.class.keys.inject([]) do |acc, key|
282
+ self.class.keys.each_with_object([]) do |key, acc|
290
283
  acc << key.last if @data.raw_value(key.last).nil?
291
284
  acc
292
285
  end
@@ -302,24 +295,23 @@ module Aws
302
295
  def prevent_overwrite_expression
303
296
  conditions = []
304
297
  expression_attribute_names = {}
305
- keys = self.class.instance_variable_get("@keys")
298
+ keys = self.class.instance_variable_get('@keys')
306
299
  # Hash Key
307
- conditions << "attribute_not_exists(#H)"
308
- expression_attribute_names["#H"] = keys.hash_key_attribute.database_name
300
+ conditions << 'attribute_not_exists(#H)'
301
+ expression_attribute_names['#H'] = keys.hash_key_attribute.database_name
309
302
  # Range Key
310
303
  if self.class.range_key
311
- conditions << "attribute_not_exists(#R)"
312
- expression_attribute_names["#R"] = keys.range_key_attribute.database_name
304
+ conditions << 'attribute_not_exists(#R)'
305
+ expression_attribute_names['#R'] = keys.range_key_attribute.database_name
313
306
  end
314
307
  {
315
- condition_expression: conditions.join(" and "),
308
+ condition_expression: conditions.join(' and '),
316
309
  expression_attribute_names: expression_attribute_names
317
310
  }
318
311
  end
319
312
 
320
313
  def _dirty_changes_for_update
321
- attributes = self.class.attributes
322
- ret = dirty.inject({}) do |acc, attr_name|
314
+ ret = dirty.each_with_object({}) do |attr_name, acc|
323
315
  acc[attr_name] = @data.raw_value(attr_name)
324
316
  acc
325
317
  end
@@ -327,7 +319,6 @@ module Aws
327
319
  end
328
320
 
329
321
  module ItemOperationsClassMethods
330
-
331
322
  # @example Usage Example
332
323
  # check_exp = Model.transact_check_expression(
333
324
  # key: { uuid: "foo" },
@@ -343,11 +334,14 @@ module Aws
343
334
  # Allows you to build a "check" expression for use in transactional
344
335
  # write operations.
345
336
  #
337
+ # See {Transactions.transact_write transact_write} for more info.
338
+ #
346
339
  # @param [Hash] opts Options matching the :condition_check contents in
347
340
  # the
348
- # {https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/DynamoDB/Client.html#transact_write_items-instance_method Aws::DynamoDB::Client#transact_write_items}
349
- # API, with the exception that keys will be marshalled for you, and
350
- # the table name will be provided for you by the operation.
341
+ # {https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/DynamoDB/Client.html#transact_write_items-instance_method
342
+ # Aws::DynamoDB::Client#transact_write_items} API, with the exception that
343
+ # keys will be marshalled for you, and the table name will be provided
344
+ # for you by the operation.
351
345
  # @return [Hash] Options suitable to be used as a check expression when
352
346
  # calling the +#transact_write+ operation.
353
347
  def transact_check_expression(opts)
@@ -357,32 +351,35 @@ module Aws
357
351
  check_key = {}
358
352
  @keys.keys.each_value do |attr_sym|
359
353
  unless key[attr_sym]
360
- raise Errors::KeyMissing.new(
361
- "Missing required key #{attr_sym} in #{key}"
362
- )
354
+ raise Errors::KeyMissing, "Missing required key #{attr_sym} in #{key}"
363
355
  end
364
356
  attr_name = attributes.storage_name_for(attr_sym)
365
- check_key[attr_name] = attributes.attribute_for(attr_sym).
366
- serialize(key[attr_sym])
357
+ check_key[attr_name] = attributes.attribute_for(attr_sym)
358
+ .serialize(key[attr_sym])
367
359
  end
368
360
  opts[:key] = check_key
369
361
  opts[:table_name] = table_name
370
362
  opts
371
363
  end
372
364
 
365
+ # Used in {Transactions.transact_find}, which is a way to run
366
+ # transactional find across multiple DynamoDB items, including transactions
367
+ # which get items across multiple actual or virtual tables.
368
+ #
369
+ # This operation provide extra metadata used to marshal your items after retrieval.
370
+ #
371
+ # See {Transactions.transact_find transact_find} for more info and usage example.
373
372
  def tfind_opts(opts)
374
373
  opts = opts.dup
375
374
  key = opts.delete(:key)
376
375
  request_key = {}
377
376
  @keys.keys.each_value do |attr_sym|
378
377
  unless key[attr_sym]
379
- raise Errors::KeyMissing.new(
380
- "Missing required key #{attr_sym} in #{key}"
381
- )
378
+ raise Errors::KeyMissing, "Missing required key #{attr_sym} in #{key}"
382
379
  end
383
380
  attr_name = attributes.storage_name_for(attr_sym)
384
- request_key[attr_name] = attributes.attribute_for(attr_sym).
385
- serialize(key[attr_sym])
381
+ request_key[attr_name] = attributes.attribute_for(attr_sym)
382
+ .serialize(key[attr_sym])
386
383
  end
387
384
  # this is a :get item used by #transact_get_items, with the exception
388
385
  # of :model_class which needs to be removed before passing along
@@ -413,10 +410,11 @@ module Aws
413
410
  # or virtual tables.
414
411
  #
415
412
  # @param [Hash] opts Options to pass through to
416
- # {https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/DynamoDB/Client.html#transact_get_items-instance_method Aws::DynamoDB::Client#transact_get_items},
417
- # with the exception of the :transact_items array, which uses the
418
- # +#tfind_opts+ operation on your model class to provide extra
419
- # metadata used to marshal your items after retrieval.
413
+ # {https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/DynamoDB/Client.html#transact_get_items-instance_method
414
+ # Aws::DynamoDB::Client#transact_get_items}, with the exception of the
415
+ # :transact_items array, which uses the +#tfind_opts+ operation on
416
+ # your model class to provide extra metadata used to marshal your
417
+ # items after retrieval.
420
418
  # @option opts [Array] :transact_items A set of options describing
421
419
  # instances of the model class to return.
422
420
  # @return [OpenStruct] Structured like the client API response from
@@ -483,13 +481,11 @@ module Aws
483
481
  request_key = {}
484
482
  @keys.keys.each_value do |attr_sym|
485
483
  unless key[attr_sym]
486
- raise Errors::KeyMissing.new(
487
- "Missing required key #{attr_sym} in #{key}"
488
- )
484
+ raise Errors::KeyMissing, "Missing required key #{attr_sym} in #{key}"
489
485
  end
490
486
  attr_name = attributes.storage_name_for(attr_sym)
491
- request_key[attr_name] = attributes.attribute_for(attr_sym).
492
- serialize(key[attr_sym])
487
+ request_key[attr_name] = attributes.attribute_for(attr_sym)
488
+ .serialize(key[attr_sym])
493
489
  end
494
490
  request_opts = {
495
491
  table_name: table_name,
@@ -503,7 +499,6 @@ module Aws
503
499
  end
504
500
  end
505
501
 
506
-
507
502
  # @example Usage Example
508
503
  # class MyModel
509
504
  # include Aws::Record
@@ -552,9 +547,9 @@ module Aws
552
547
  # MyModel.update(id: 1, name: "First", body: "Hello!")
553
548
  #
554
549
  # Performs an
555
- # {http://docs.aws.amazon.com/sdkforruby/api/Aws/DynamoDB/Client.html#update_item-instance_method Aws::DynamoDB::Client#update_item}
556
- # call immediately on the table, using the attribute key/value pairs
557
- # provided.
550
+ # {http://docs.aws.amazon.com/sdkforruby/api/Aws/DynamoDB/Client.html#update_item-instance_method
551
+ # Aws::DynamoDB::Client#update_item} call immediately on the table,
552
+ # using the attribute key/value pairs provided.
558
553
  #
559
554
  # @param [Hash] opts attribute-value pairs for the update operation you
560
555
  # wish to perform. You must include all key attributes for a valid
@@ -564,12 +559,10 @@ module Aws
564
559
  # not include all table keys.
565
560
  def update(opts)
566
561
  key = {}
567
- updates = {}
568
562
  @keys.keys.each_value do |attr_sym|
569
- unless value = opts.delete(attr_sym)
570
- raise Errors::KeyMissing.new(
571
- "Missing required key #{attr_sym} in #{opts}"
572
- )
563
+ unless (value = opts.delete(attr_sym))
564
+ raise Errors::KeyMissing, "Missing required key #{attr_sym} in #{opts}"
565
+
573
566
  end
574
567
  attr_name = attributes.storage_name_for(attr_sym)
575
568
  key[attr_name] = attributes.attribute_for(attr_sym).serialize(value)
@@ -589,16 +582,17 @@ module Aws
589
582
  end
590
583
 
591
584
  private
585
+
592
586
  def _build_update_expression(attr_value_pairs)
593
587
  set_expressions = []
594
588
  remove_expressions = []
595
589
  exp_attr_names = {}
596
590
  exp_attr_values = {}
597
- name_sub_token = "UE_A"
598
- value_sub_token = "ue_a"
591
+ name_sub_token = 'UE_A'
592
+ value_sub_token = 'ue_a'
599
593
  attr_value_pairs.each do |attr_sym, value|
600
- name_sub = "#" + name_sub_token
601
- value_sub = ":" + value_sub_token
594
+ name_sub = '#' + name_sub_token
595
+ value_sub = ':' + value_sub_token
602
596
  name_sub_token = name_sub_token.succ
603
597
  value_sub_token = value_sub_token.succ
604
598
 
@@ -606,7 +600,7 @@ module Aws
606
600
  attr_name = attributes.storage_name_for(attr_sym)
607
601
  exp_attr_names[name_sub] = attr_name
608
602
  if _update_type_remove?(attribute, value)
609
- remove_expressions << "#{name_sub}"
603
+ remove_expressions << name_sub.to_s
610
604
  else
611
605
  set_expressions << "#{name_sub} = #{value_sub}"
612
606
  exp_attr_values[value_sub] = attribute.serialize(value)
@@ -614,21 +608,21 @@ module Aws
614
608
  end
615
609
  update_expressions = []
616
610
  unless set_expressions.empty?
617
- update_expressions << "SET " + set_expressions.join(", ")
611
+ update_expressions << 'SET ' + set_expressions.join(', ')
618
612
  end
619
613
  unless remove_expressions.empty?
620
- update_expressions << "REMOVE " + remove_expressions.join(", ")
614
+ update_expressions << 'REMOVE ' + remove_expressions.join(', ')
621
615
  end
622
616
  if update_expressions.empty?
623
617
  nil
624
618
  else
625
- [update_expressions.join(" "), exp_attr_names, exp_attr_values]
619
+ [update_expressions.join(' '), exp_attr_names, exp_attr_values]
626
620
  end
627
621
  end
628
622
 
629
623
  def build_item_from_resp(resp)
630
624
  record = new
631
- data = record.instance_variable_get("@data")
625
+ data = record.instance_variable_get('@data')
632
626
  attributes.attributes.each do |name, attr|
633
627
  data.set_attribute(name, attr.extract(resp.item))
634
628
  data.new_record = false
@@ -640,7 +634,6 @@ module Aws
640
634
  value.nil? && !attribute.persist_nil?
641
635
  end
642
636
  end
643
-
644
637
  end
645
638
  end
646
639
  end
@@ -1,19 +1,7 @@
1
- # Copyright 2015-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You may not
4
- # use this file except in compliance with the License. A copy of the License is
5
- # located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is distributed on
10
- # an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11
- # or implied. See the License for the specific language governing permissions
12
- # and limitations under the License.
1
+ # frozen_string_literal: true
13
2
 
14
3
  module Aws
15
4
  module Record
16
-
17
5
  # @api private
18
6
  class KeyAttributes
19
7
  attr_reader :keys
@@ -49,6 +37,5 @@ module Aws
49
37
  @range_key = value
50
38
  end
51
39
  end
52
-
53
40
  end
54
41
  end
@@ -1,23 +1,10 @@
1
- # Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You may not
4
- # use this file except in compliance with the License. A copy of the License is
5
- # located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is distributed on
10
- # an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11
- # or implied. See the License for the specific language governing permissions
12
- # and limitations under the License.
1
+ # frozen_string_literal: true
13
2
 
14
3
  module Aws
15
4
  module Record
16
5
  module Marshalers
17
-
18
6
  class BooleanMarshaler
19
- def initialize(opts = {})
20
- end
7
+ def initialize(opts = {}); end
21
8
 
22
9
  def type_cast(raw_value)
23
10
  case raw_value
@@ -47,7 +34,6 @@ module Aws
47
34
  end
48
35
  end
49
36
  end
50
-
51
37
  end
52
38
  end
53
39
  end
@@ -1,22 +1,10 @@
1
- # Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You may not
4
- # use this file except in compliance with the License. A copy of the License is
5
- # located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is distributed on
10
- # an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11
- # or implied. See the License for the specific language governing permissions
12
- # and limitations under the License.
1
+ # frozen_string_literal: true
13
2
 
14
3
  require 'date'
15
4
 
16
5
  module Aws
17
6
  module Record
18
7
  module Marshalers
19
-
20
8
  class DateMarshaler
21
9
  def initialize(opts = {})
22
10
  @formatter = opts[:formatter] || Iso8601Formatter
@@ -47,7 +35,6 @@ module Aws
47
35
  raise ArgumentError, "expected a Date value or nil, got #{date.class}"
48
36
  end
49
37
  end
50
-
51
38
  end
52
39
 
53
40
  module Iso8601Formatter
@@ -55,7 +42,6 @@ module Aws
55
42
  date.iso8601
56
43
  end
57
44
  end
58
-
59
45
  end
60
46
  end
61
47
  end
@@ -1,22 +1,10 @@
1
- # Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You may not
4
- # use this file except in compliance with the License. A copy of the License is
5
- # located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is distributed on
10
- # an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11
- # or implied. See the License for the specific language governing permissions
12
- # and limitations under the License.
1
+ # frozen_string_literal: true
13
2
 
14
3
  require 'date'
15
4
 
16
5
  module Aws
17
6
  module Record
18
7
  module Marshalers
19
-
20
8
  class DateTimeMarshaler
21
9
  def initialize(opts = {})
22
10
  @formatter = opts[:formatter] || Iso8601Formatter
@@ -45,6 +33,7 @@ module Aws
45
33
  end
46
34
 
47
35
  private
36
+
48
37
  def _format(raw_value)
49
38
  case raw_value
50
39
  when nil
@@ -66,7 +55,6 @@ module Aws
66
55
  datetime.iso8601
67
56
  end
68
57
  end
69
-
70
58
  end
71
59
  end
72
60
  end
@@ -1,22 +1,10 @@
1
- # Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You may not
4
- # use this file except in compliance with the License. A copy of the License is
5
- # located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is distributed on
10
- # an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11
- # or implied. See the License for the specific language governing permissions
12
- # and limitations under the License.
1
+ # frozen_string_literal: true
13
2
 
14
3
  require 'time'
15
4
 
16
5
  module Aws
17
6
  module Record
18
7
  module Marshalers
19
-
20
8
  class EpochTimeMarshaler
21
9
  def initialize(opts = {})
22
10
  @use_local_time = opts[:use_local_time] ? true : false
@@ -62,7 +50,6 @@ module Aws
62
50
  end
63
51
  end
64
52
  end
65
-
66
53
  end
67
54
  end
68
55
  end
@@ -1,23 +1,10 @@
1
- # Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You may not
4
- # use this file except in compliance with the License. A copy of the License is
5
- # located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is distributed on
10
- # an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11
- # or implied. See the License for the specific language governing permissions
12
- # and limitations under the License.
1
+ # frozen_string_literal: true
13
2
 
14
3
  module Aws
15
4
  module Record
16
5
  module Marshalers
17
-
18
6
  class FloatMarshaler
19
- def initialize(opts = {})
20
- end
7
+ def initialize(opts = {}); end
21
8
 
22
9
  def type_cast(raw_value)
23
10
  case raw_value
@@ -28,9 +15,7 @@ module Aws
28
15
  when Float
29
16
  raw_value
30
17
  else
31
- raw_value.respond_to?(:to_f) ?
32
- raw_value.to_f :
33
- raw_value.to_s.to_f
18
+ raw_value.respond_to?(:to_f) ? raw_value.to_f : raw_value.to_s.to_f
34
19
  end
35
20
  end
36
21
 
@@ -46,7 +31,6 @@ module Aws
46
31
  end
47
32
  end
48
33
  end
49
-
50
34
  end
51
35
  end
52
36
  end
@@ -1,23 +1,10 @@
1
- # Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You may not
4
- # use this file except in compliance with the License. A copy of the License is
5
- # located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is distributed on
10
- # an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11
- # or implied. See the License for the specific language governing permissions
12
- # and limitations under the License.
1
+ # frozen_string_literal: true
13
2
 
14
3
  module Aws
15
4
  module Record
16
5
  module Marshalers
17
-
18
6
  class IntegerMarshaler
19
- def initialize(opts = {})
20
- end
7
+ def initialize(opts = {}); end
21
8
 
22
9
  def type_cast(raw_value)
23
10
  case raw_value
@@ -28,9 +15,7 @@ module Aws
28
15
  when Integer
29
16
  raw_value
30
17
  else
31
- raw_value.respond_to?(:to_i) ?
32
- raw_value.to_i :
33
- raw_value.to_s.to_i
18
+ raw_value.respond_to?(:to_i) ? raw_value.to_i : raw_value.to_s.to_i
34
19
  end
35
20
  end
36
21
 
@@ -46,7 +31,6 @@ module Aws
46
31
  end
47
32
  end
48
33
  end
49
-
50
34
  end
51
35
  end
52
36
  end