aws-sdk 1.8.5 → 1.9.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.
- checksums.yaml +7 -0
- data/.yardopts +1 -0
- data/README.rdoc +8 -0
- data/lib/aws-sdk.rb +39 -35
- data/lib/aws/api_config/CloudFront-2012-07-01.yml +2398 -0
- data/lib/aws/api_config/DirectConnect-2012-10-25.yml +475 -0
- data/lib/aws/api_config/DynamoDB-2011-12-05.yml +8 -0
- data/lib/aws/api_config/DynamoDB-2012-08-10.yml +1516 -0
- data/lib/aws/api_config/OpsWorks-2013-02-18.yml +2 -2
- data/lib/aws/auto_scaling.rb +44 -44
- data/lib/aws/auto_scaling/activity.rb +1 -1
- data/lib/aws/auto_scaling/activity_collection.rb +14 -15
- data/lib/aws/auto_scaling/client.rb +277 -277
- data/lib/aws/auto_scaling/config.rb +1 -1
- data/lib/aws/auto_scaling/group.rb +35 -36
- data/lib/aws/auto_scaling/group_collection.rb +10 -10
- data/lib/aws/auto_scaling/group_options.rb +19 -19
- data/lib/aws/auto_scaling/instance.rb +27 -27
- data/lib/aws/auto_scaling/instance_collection.rb +10 -10
- data/lib/aws/auto_scaling/launch_configuration.rb +3 -3
- data/lib/aws/auto_scaling/launch_configuration_collection.rb +1 -1
- data/lib/aws/auto_scaling/notification_configuration.rb +2 -2
- data/lib/aws/auto_scaling/notification_configuration_collection.rb +37 -38
- data/lib/aws/auto_scaling/scaling_policy.rb +3 -3
- data/lib/aws/auto_scaling/scaling_policy_collection.rb +6 -6
- data/lib/aws/auto_scaling/scaling_policy_options.rb +8 -7
- data/lib/aws/auto_scaling/scheduled_action.rb +3 -3
- data/lib/aws/auto_scaling/scheduled_action_collection.rb +28 -28
- data/lib/aws/auto_scaling/tag_collection.rb +30 -28
- data/lib/aws/cloud_formation.rb +95 -94
- data/lib/aws/cloud_formation/client.rb +136 -133
- data/lib/aws/cloud_formation/config.rb +1 -1
- data/lib/aws/cloud_formation/stack.rb +37 -37
- data/lib/aws/cloud_formation/stack_collection.rb +28 -27
- data/lib/aws/cloud_formation/stack_event.rb +9 -11
- data/lib/aws/cloud_formation/stack_output.rb +1 -1
- data/lib/aws/cloud_formation/stack_resource.rb +6 -6
- data/lib/aws/cloud_formation/stack_resource_collection.rb +11 -12
- data/lib/aws/cloud_formation/stack_resource_summary_collection.rb +11 -11
- data/lib/aws/cloud_formation/stack_summary_collection.rb +39 -39
- data/lib/aws/cloud_front.rb +21 -21
- data/lib/aws/cloud_front/client.rb +853 -652
- data/lib/aws/cloud_front/request.rb +3 -0
- data/lib/aws/cloud_search.rb +22 -22
- data/lib/aws/cloud_search/client.rb +322 -315
- data/lib/aws/cloud_search/config.rb +1 -1
- data/lib/aws/cloud_watch.rb +39 -39
- data/lib/aws/cloud_watch/alarm.rb +55 -37
- data/lib/aws/cloud_watch/alarm_collection.rb +18 -18
- data/lib/aws/cloud_watch/alarm_history_item_collection.rb +2 -2
- data/lib/aws/cloud_watch/client.rb +360 -146
- data/lib/aws/cloud_watch/config.rb +1 -1
- data/lib/aws/cloud_watch/metric.rb +15 -15
- data/lib/aws/cloud_watch/metric_alarm_collection.rb +17 -17
- data/lib/aws/cloud_watch/metric_collection.rb +16 -16
- data/lib/aws/cloud_watch/metric_statistics.rb +11 -11
- data/lib/aws/core.rb +243 -225
- data/lib/aws/core/async_handle.rb +13 -13
- data/lib/aws/core/cacheable.rb +14 -15
- data/lib/aws/core/client.rb +40 -15
- data/lib/aws/core/collection.rb +42 -46
- data/lib/aws/core/collection/with_limit_and_next_token.rb +1 -1
- data/lib/aws/core/collection/with_next_token.rb +1 -1
- data/lib/aws/core/configuration.rb +97 -133
- data/lib/aws/core/credential_providers.rb +16 -16
- data/lib/aws/core/data.rb +23 -23
- data/lib/aws/core/http/connection_pool.rb +348 -0
- data/lib/aws/core/http/net_http_handler.rb +17 -26
- data/lib/aws/core/http/patch.rb +102 -0
- data/lib/aws/core/http/request.rb +13 -19
- data/lib/aws/core/http/response.rb +2 -2
- data/lib/aws/core/lazy_error_classes.rb +17 -17
- data/lib/aws/core/log_formatter.rb +70 -104
- data/lib/aws/core/options/json_serializer.rb +1 -1
- data/lib/aws/core/options/validator.rb +4 -4
- data/lib/aws/core/page_result.rb +8 -8
- data/lib/aws/core/policy.rb +49 -49
- data/lib/aws/core/region.rb +72 -0
- data/lib/aws/core/region_collection.rb +106 -0
- data/lib/aws/core/resource.rb +5 -5
- data/lib/aws/core/response.rb +20 -17
- data/lib/aws/core/rest_request_builder.rb +4 -4
- data/lib/aws/core/service_interface.rb +24 -2
- data/lib/aws/core/signature/version_3.rb +2 -2
- data/lib/aws/core/uri_escape.rb +1 -1
- data/lib/aws/core/xml/frame_stack.rb +1 -1
- data/lib/aws/core/xml/grammar.rb +3 -4
- data/lib/aws/core/xml/sax_handlers/libxml.rb +2 -2
- data/lib/aws/core/xml/sax_handlers/nokogiri.rb +3 -3
- data/lib/aws/core/xml/sax_handlers/rexml.rb +5 -5
- data/lib/aws/core/xml/stub.rb +9 -9
- data/lib/aws/data_pipeline.rb +21 -21
- data/lib/aws/data_pipeline/client.rb +189 -133
- data/lib/aws/data_pipeline/config.rb +1 -1
- data/lib/aws/direct_connect.rb +74 -0
- data/lib/aws/direct_connect/client.rb +253 -0
- data/lib/aws/direct_connect/config.rb +18 -0
- data/lib/aws/direct_connect/errors.rb +22 -0
- data/lib/aws/direct_connect/request.rb +27 -0
- data/lib/aws/dynamo_db.rb +71 -69
- data/lib/aws/dynamo_db/attribute_collection.rb +53 -58
- data/lib/aws/dynamo_db/batch_get.rb +23 -23
- data/lib/aws/dynamo_db/batch_write.rb +43 -43
- data/lib/aws/dynamo_db/binary.rb +9 -9
- data/lib/aws/dynamo_db/client.rb +494 -509
- data/lib/aws/dynamo_db/client_base.rb +91 -0
- data/lib/aws/dynamo_db/client_v2.rb +825 -0
- data/lib/aws/dynamo_db/config.rb +1 -1
- data/lib/aws/dynamo_db/item.rb +10 -10
- data/lib/aws/dynamo_db/item_collection.rb +75 -75
- data/lib/aws/dynamo_db/table.rb +85 -85
- data/lib/aws/dynamo_db/table_collection.rb +13 -13
- data/lib/aws/ec2.rb +132 -142
- data/lib/aws/ec2/attachment.rb +31 -36
- data/lib/aws/ec2/attachment_collection.rb +1 -1
- data/lib/aws/ec2/availability_zone.rb +4 -4
- data/lib/aws/ec2/client.rb +2272 -2125
- data/lib/aws/ec2/config.rb +1 -1
- data/lib/aws/ec2/customer_gateway.rb +6 -6
- data/lib/aws/ec2/customer_gateway_collection.rb +6 -6
- data/lib/aws/ec2/dhcp_options.rb +3 -3
- data/lib/aws/ec2/dhcp_options_collection.rb +10 -10
- data/lib/aws/ec2/elastic_ip.rb +15 -15
- data/lib/aws/ec2/elastic_ip_collection.rb +11 -15
- data/lib/aws/ec2/export_task.rb +4 -4
- data/lib/aws/ec2/export_task_collection.rb +11 -11
- data/lib/aws/ec2/filtered_collection.rb +6 -8
- data/lib/aws/ec2/image.rb +46 -40
- data/lib/aws/ec2/image_collection.rb +44 -52
- data/lib/aws/ec2/instance.rb +64 -62
- data/lib/aws/ec2/instance_collection.rb +47 -50
- data/lib/aws/ec2/internet_gateway.rb +6 -6
- data/lib/aws/ec2/internet_gateway/attachment.rb +13 -13
- data/lib/aws/ec2/internet_gateway_collection.rb +3 -3
- data/lib/aws/ec2/key_pair.rb +3 -3
- data/lib/aws/ec2/key_pair_collection.rb +12 -12
- data/lib/aws/ec2/network_acl.rb +39 -39
- data/lib/aws/ec2/network_acl/association.rb +2 -2
- data/lib/aws/ec2/network_acl/entry.rb +22 -22
- data/lib/aws/ec2/network_acl_collection.rb +2 -2
- data/lib/aws/ec2/network_interface.rb +13 -4
- data/lib/aws/ec2/network_interface/attachment.rb +3 -3
- data/lib/aws/ec2/network_interface_collection.rb +5 -5
- data/lib/aws/ec2/permission_collection.rb +1 -1
- data/lib/aws/ec2/region.rb +6 -6
- data/lib/aws/ec2/region_collection.rb +1 -1
- data/lib/aws/ec2/reserved_instances_collection.rb +2 -2
- data/lib/aws/ec2/reserved_instances_offering_collection.rb +2 -2
- data/lib/aws/ec2/resource_tag_collection.rb +5 -5
- data/lib/aws/ec2/route_table.rb +14 -14
- data/lib/aws/ec2/route_table/association.rb +22 -22
- data/lib/aws/ec2/route_table/route.rb +8 -8
- data/lib/aws/ec2/route_table_collection.rb +3 -3
- data/lib/aws/ec2/security_group.rb +39 -41
- data/lib/aws/ec2/security_group_collection.rb +19 -21
- data/lib/aws/ec2/snapshot.rb +3 -3
- data/lib/aws/ec2/snapshot_collection.rb +11 -12
- data/lib/aws/ec2/subnet.rb +2 -2
- data/lib/aws/ec2/subnet_collection.rb +17 -17
- data/lib/aws/ec2/tag_collection.rb +1 -1
- data/lib/aws/ec2/tagged_collection.rb +7 -7
- data/lib/aws/ec2/tagged_item.rb +10 -10
- data/lib/aws/ec2/volume.rb +16 -16
- data/lib/aws/ec2/volume_collection.rb +9 -12
- data/lib/aws/ec2/vpc.rb +6 -6
- data/lib/aws/ec2/vpc_collection.rb +10 -10
- data/lib/aws/ec2/vpn_connection.rb +4 -4
- data/lib/aws/ec2/vpn_connection/telemetry.rb +1 -1
- data/lib/aws/ec2/vpn_connection_collection.rb +6 -6
- data/lib/aws/ec2/vpn_gateway.rb +2 -2
- data/lib/aws/ec2/vpn_gateway_collection.rb +5 -5
- data/lib/aws/elastic_beanstalk.rb +12 -12
- data/lib/aws/elastic_beanstalk/client.rb +376 -368
- data/lib/aws/elastic_beanstalk/config.rb +1 -1
- data/lib/aws/elastic_transcoder.rb +5 -5
- data/lib/aws/elastic_transcoder/client.rb +283 -283
- data/lib/aws/elastic_transcoder/config.rb +1 -1
- data/lib/aws/elasticache.rb +12 -12
- data/lib/aws/elasticache/client.rb +484 -479
- data/lib/aws/elasticache/config.rb +1 -1
- data/lib/aws/elb.rb +23 -23
- data/lib/aws/elb/availability_zone_collection.rb +34 -34
- data/lib/aws/elb/backend_server_policy_collection.rb +24 -24
- data/lib/aws/elb/client.rb +153 -153
- data/lib/aws/elb/config.rb +1 -1
- data/lib/aws/elb/errors.rb +1 -1
- data/lib/aws/elb/instance_collection.rb +20 -25
- data/lib/aws/elb/listener.rb +3 -3
- data/lib/aws/elb/listener_collection.rb +8 -8
- data/lib/aws/elb/load_balancer.rb +15 -16
- data/lib/aws/elb/load_balancer_collection.rb +36 -24
- data/lib/aws/elb/load_balancer_policy.rb +1 -1
- data/lib/aws/elb/load_balancer_policy_collection.rb +5 -5
- data/lib/aws/emr.rb +28 -26
- data/lib/aws/emr/client.rb +165 -149
- data/lib/aws/emr/config.rb +1 -1
- data/lib/aws/emr/instance_group.rb +1 -1
- data/lib/aws/emr/instance_group_collection.rb +1 -1
- data/lib/aws/emr/job_flow.rb +27 -26
- data/lib/aws/emr/job_flow_collection.rb +34 -34
- data/lib/aws/errors.rb +7 -7
- data/lib/aws/glacier.rb +21 -21
- data/lib/aws/glacier/archive_collection.rb +2 -2
- data/lib/aws/glacier/client.rb +139 -140
- data/lib/aws/glacier/config.rb +1 -1
- data/lib/aws/glacier/vault.rb +2 -2
- data/lib/aws/glacier/vault_collection.rb +1 -1
- data/lib/aws/iam.rb +133 -144
- data/lib/aws/iam/access_key.rb +17 -17
- data/lib/aws/iam/access_key_collection.rb +22 -22
- data/lib/aws/iam/account_alias_collection.rb +2 -2
- data/lib/aws/iam/client.rb +429 -420
- data/lib/aws/iam/collection.rb +1 -1
- data/lib/aws/iam/config.rb +2 -2
- data/lib/aws/iam/group.rb +8 -8
- data/lib/aws/iam/group_collection.rb +16 -16
- data/lib/aws/iam/group_policy_collection.rb +6 -6
- data/lib/aws/iam/group_user_collection.rb +3 -3
- data/lib/aws/iam/mfa_device.rb +1 -1
- data/lib/aws/iam/mfa_device_collection.rb +9 -9
- data/lib/aws/iam/policy_collection.rb +4 -4
- data/lib/aws/iam/resource.rb +2 -2
- data/lib/aws/iam/server_certificate.rb +1 -1
- data/lib/aws/iam/server_certificate_collection.rb +15 -15
- data/lib/aws/iam/signing_certificate.rb +29 -29
- data/lib/aws/iam/signing_certificate_collection.rb +23 -23
- data/lib/aws/iam/user.rb +33 -38
- data/lib/aws/iam/user_collection.rb +27 -27
- data/lib/aws/iam/user_group_collection.rb +3 -3
- data/lib/aws/iam/user_policy_collection.rb +6 -6
- data/lib/aws/iam/virtual_mfa_device.rb +12 -12
- data/lib/aws/iam/virtual_mfa_device_collection.rb +4 -4
- data/lib/aws/import_export.rb +22 -21
- data/lib/aws/import_export/client.rb +47 -43
- data/lib/aws/ops_works.rb +5 -5
- data/lib/aws/ops_works/client.rb +484 -438
- data/lib/aws/ops_works/config.rb +1 -1
- data/lib/aws/rails.rb +34 -34
- data/lib/aws/rds.rb +18 -18
- data/lib/aws/rds/client.rb +1286 -1277
- data/lib/aws/rds/config.rb +1 -1
- data/lib/aws/rds/db_instance.rb +15 -4
- data/lib/aws/rds/db_snapshot.rb +1 -1
- data/lib/aws/record.rb +50 -24
- data/lib/aws/record/abstract_base.rb +52 -60
- data/lib/aws/record/attributes.rb +79 -79
- data/lib/aws/record/conversion.rb +1 -1
- data/lib/aws/record/dirty_tracking.rb +69 -67
- data/lib/aws/record/errors.rb +21 -21
- data/lib/aws/record/exceptions.rb +2 -2
- data/lib/aws/record/hash_model.rb +20 -21
- data/lib/aws/record/hash_model/attributes.rb +13 -15
- data/lib/aws/record/hash_model/finder_methods.rb +46 -46
- data/lib/aws/record/hash_model/scope.rb +31 -31
- data/lib/aws/record/model.rb +136 -136
- data/lib/aws/record/model/attributes.rb +57 -59
- data/lib/aws/record/model/finder_methods.rb +67 -67
- data/lib/aws/record/model/scope.rb +48 -49
- data/lib/aws/record/naming.rb +1 -1
- data/lib/aws/record/scope.rb +23 -19
- data/lib/aws/record/validations.rb +253 -271
- data/lib/aws/record/validator.rb +3 -3
- data/lib/aws/record/validators/acceptance.rb +1 -3
- data/lib/aws/record/validators/block.rb +1 -3
- data/lib/aws/record/validators/confirmation.rb +1 -3
- data/lib/aws/record/validators/count.rb +2 -4
- data/lib/aws/record/validators/exclusion.rb +2 -4
- data/lib/aws/record/validators/format.rb +2 -4
- data/lib/aws/record/validators/inclusion.rb +1 -3
- data/lib/aws/record/validators/length.rb +5 -7
- data/lib/aws/record/validators/method.rb +1 -3
- data/lib/aws/record/validators/numericality.rb +6 -8
- data/lib/aws/record/validators/presence.rb +1 -3
- data/lib/aws/redshift.rb +14 -14
- data/lib/aws/redshift/client.rb +596 -592
- data/lib/aws/redshift/config.rb +1 -1
- data/lib/aws/route_53.rb +30 -30
- data/lib/aws/route_53/change_batch.rb +7 -7
- data/lib/aws/route_53/client.rb +188 -152
- data/lib/aws/route_53/hosted_zone.rb +4 -4
- data/lib/aws/route_53/hosted_zone_collection.rb +7 -7
- data/lib/aws/route_53/resource_record_set.rb +10 -10
- data/lib/aws/route_53/resource_record_set_collection.rb +6 -6
- data/lib/aws/s3.rb +79 -79
- data/lib/aws/s3/access_control_list.rb +44 -36
- data/lib/aws/s3/acl_options.rb +51 -51
- data/lib/aws/s3/bucket.rb +146 -146
- data/lib/aws/s3/bucket_collection.rb +21 -21
- data/lib/aws/s3/bucket_lifecycle_configuration.rb +81 -82
- data/lib/aws/s3/bucket_tag_collection.rb +4 -2
- data/lib/aws/s3/cipher_io.rb +5 -4
- data/lib/aws/s3/client.rb +89 -84
- data/lib/aws/s3/client/xml.rb +1 -1
- data/lib/aws/s3/config.rb +7 -1
- data/lib/aws/s3/cors_rule.rb +2 -0
- data/lib/aws/s3/cors_rule_collection.rb +42 -40
- data/lib/aws/s3/data_options.rb +16 -11
- data/lib/aws/s3/encryption_utils.rb +2 -2
- data/lib/aws/s3/errors.rb +7 -7
- data/lib/aws/s3/multipart_upload.rb +30 -33
- data/lib/aws/s3/multipart_upload_collection.rb +8 -6
- data/lib/aws/s3/object_collection.rb +35 -35
- data/lib/aws/s3/object_metadata.rb +6 -6
- data/lib/aws/s3/object_version.rb +4 -4
- data/lib/aws/s3/object_version_collection.rb +15 -15
- data/lib/aws/s3/policy.rb +2 -2
- data/lib/aws/s3/prefixed_collection.rb +9 -5
- data/lib/aws/s3/presigned_post.rb +39 -37
- data/lib/aws/s3/request.rb +11 -11
- data/lib/aws/s3/s3_object.rb +210 -200
- data/lib/aws/s3/tree.rb +25 -27
- data/lib/aws/s3/tree/child_collection.rb +3 -3
- data/lib/aws/s3/tree/leaf_node.rb +2 -2
- data/lib/aws/s3/tree/parent.rb +1 -1
- data/lib/aws/s3/website_configuration.rb +13 -13
- data/lib/aws/simple_db.rb +83 -83
- data/lib/aws/simple_db/attribute.rb +9 -7
- data/lib/aws/simple_db/attribute_collection.rb +22 -13
- data/lib/aws/simple_db/client.rb +107 -107
- data/lib/aws/simple_db/config.rb +7 -1
- data/lib/aws/simple_db/consistent_read_option.rb +5 -5
- data/lib/aws/simple_db/domain.rb +4 -2
- data/lib/aws/simple_db/domain_collection.rb +4 -4
- data/lib/aws/simple_db/domain_metadata.rb +5 -5
- data/lib/aws/simple_db/errors.rb +9 -9
- data/lib/aws/simple_db/item.rb +5 -5
- data/lib/aws/simple_db/item_collection.rb +83 -81
- data/lib/aws/simple_db/item_data.rb +4 -4
- data/lib/aws/simple_db/put_attributes.rb +3 -3
- data/lib/aws/simple_email_service.rb +140 -140
- data/lib/aws/simple_email_service/client.rb +82 -76
- data/lib/aws/simple_email_service/config.rb +1 -2
- data/lib/aws/simple_email_service/email_address_collection.rb +3 -3
- data/lib/aws/simple_email_service/identity.rb +8 -8
- data/lib/aws/simple_email_service/quotas.rb +8 -6
- data/lib/aws/simple_workflow.rb +106 -106
- data/lib/aws/simple_workflow/activity_task.rb +15 -22
- data/lib/aws/simple_workflow/activity_task_collection.rb +15 -15
- data/lib/aws/simple_workflow/activity_type.rb +23 -23
- data/lib/aws/simple_workflow/activity_type_collection.rb +23 -23
- data/lib/aws/simple_workflow/client.rb +1004 -956
- data/lib/aws/simple_workflow/config.rb +1 -1
- data/lib/aws/simple_workflow/count.rb +5 -5
- data/lib/aws/simple_workflow/decision_task.rb +129 -129
- data/lib/aws/simple_workflow/decision_task_collection.rb +59 -59
- data/lib/aws/simple_workflow/domain.rb +11 -11
- data/lib/aws/simple_workflow/domain_collection.rb +26 -26
- data/lib/aws/simple_workflow/history_event.rb +32 -32
- data/lib/aws/simple_workflow/history_event_collection.rb +3 -3
- data/lib/aws/simple_workflow/option_formatters.rb +5 -5
- data/lib/aws/simple_workflow/request.rb +1 -1
- data/lib/aws/simple_workflow/resource.rb +1 -1
- data/lib/aws/simple_workflow/type.rb +8 -8
- data/lib/aws/simple_workflow/type_collection.rb +15 -15
- data/lib/aws/simple_workflow/workflow_execution.rb +70 -72
- data/lib/aws/simple_workflow/workflow_execution_collection.rb +130 -130
- data/lib/aws/simple_workflow/workflow_type.rb +27 -25
- data/lib/aws/simple_workflow/workflow_type_collection.rb +20 -20
- data/lib/aws/sns.rb +25 -25
- data/lib/aws/sns/client.rb +55 -55
- data/lib/aws/sns/config.rb +1 -1
- data/lib/aws/sns/policy.rb +1 -1
- data/lib/aws/sns/subscription.rb +7 -7
- data/lib/aws/sns/subscription_collection.rb +5 -5
- data/lib/aws/sns/topic.rb +49 -49
- data/lib/aws/sns/topic_collection.rb +2 -2
- data/lib/aws/sns/topic_subscription_collection.rb +5 -5
- data/lib/aws/sqs.rb +20 -20
- data/lib/aws/sqs/client.rb +78 -78
- data/lib/aws/sqs/config.rb +1 -1
- data/lib/aws/sqs/errors.rb +12 -12
- data/lib/aws/sqs/queue.rb +66 -67
- data/lib/aws/sqs/queue_collection.rb +16 -8
- data/lib/aws/sqs/received_message.rb +7 -6
- data/lib/aws/storage_gateway.rb +21 -21
- data/lib/aws/storage_gateway/client.rb +269 -202
- data/lib/aws/storage_gateway/config.rb +1 -1
- data/lib/aws/sts.rb +10 -8
- data/lib/aws/sts/client.rb +35 -35
- data/lib/aws/sts/session.rb +3 -3
- data/lib/aws/version.rb +1 -2
- metadata +23 -21
- data/lib/aws/core/autoloader.rb +0 -64
- data/lib/net/http/connection_pool.rb +0 -226
- data/lib/net/http/connection_pool/connection.rb +0 -189
- data/lib/net/http/connection_pool/session.rb +0 -126
data/lib/aws/simple_db/config.rb
CHANGED
|
@@ -13,7 +13,13 @@
|
|
|
13
13
|
|
|
14
14
|
AWS::Core::Configuration.module_eval do
|
|
15
15
|
|
|
16
|
-
add_service 'SimpleDB', 'simple_db'
|
|
16
|
+
add_service 'SimpleDB', 'simple_db' do |region|
|
|
17
|
+
if region == 'us-east-1'
|
|
18
|
+
'sdb.amazonaws.com'
|
|
19
|
+
else
|
|
20
|
+
'sdb.%s.amazonaws.com' % region
|
|
21
|
+
end
|
|
22
|
+
end
|
|
17
23
|
|
|
18
24
|
add_option :simple_db_consistent_reads, false, :boolean => true
|
|
19
25
|
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
module AWS
|
|
15
15
|
class SimpleDB
|
|
16
|
-
|
|
16
|
+
|
|
17
17
|
# @private
|
|
18
18
|
module ConsistentReadOption
|
|
19
19
|
|
|
@@ -21,22 +21,22 @@ module AWS
|
|
|
21
21
|
#
|
|
22
22
|
# Precedence is given to:
|
|
23
23
|
#
|
|
24
|
-
# *
|
|
24
|
+
# * `:consistent_read` option
|
|
25
25
|
# * SimpleDB.consistent_reads block value
|
|
26
26
|
# * AWS.config.simple_db_consistent_reads?
|
|
27
|
-
#
|
|
27
|
+
#
|
|
28
28
|
# @return [Boolean] Returns true if a read should be made consistently
|
|
29
29
|
# to SimpleDB.
|
|
30
30
|
def consistent_read options
|
|
31
31
|
if options.has_key?(:consistent_read)
|
|
32
|
-
options[:consistent_read] ? true : false
|
|
32
|
+
options[:consistent_read] ? true : false
|
|
33
33
|
elsif SimpleDB.send(:in_consistent_reads_block?)
|
|
34
34
|
SimpleDB.send(:consistent_reads_state)
|
|
35
35
|
else
|
|
36
36
|
config.simple_db_consistent_reads?
|
|
37
37
|
end
|
|
38
38
|
end
|
|
39
|
-
|
|
39
|
+
|
|
40
40
|
end
|
|
41
41
|
end
|
|
42
42
|
end
|
data/lib/aws/simple_db/domain.rb
CHANGED
|
@@ -19,9 +19,11 @@ module AWS
|
|
|
19
19
|
# Domains, like database tables, must exist before you can write to one.
|
|
20
20
|
#
|
|
21
21
|
# @example Creating a domain
|
|
22
|
+
#
|
|
22
23
|
# domain = SimpleDB.new.domains.create('mydomain')
|
|
23
24
|
#
|
|
24
25
|
# @example Getting a domain
|
|
26
|
+
#
|
|
25
27
|
# domain = SimpleDB.new.domains['mydomain']
|
|
26
28
|
#
|
|
27
29
|
# @see DomainCollection
|
|
@@ -102,9 +104,9 @@ module AWS
|
|
|
102
104
|
|
|
103
105
|
# @return [Boolean] Returns true if the domains are the same.
|
|
104
106
|
def == other
|
|
105
|
-
other.is_a?(Domain) and
|
|
107
|
+
other.is_a?(Domain) and
|
|
106
108
|
other.name == name and
|
|
107
|
-
other.config.simple_db_endpoint == config.simple_db_endpoint
|
|
109
|
+
other.config.simple_db_endpoint == config.simple_db_endpoint
|
|
108
110
|
end
|
|
109
111
|
alias_method :eql?, :==
|
|
110
112
|
|
|
@@ -43,11 +43,11 @@ module AWS
|
|
|
43
43
|
# Creates a domain in SimpleDB and returns a domain object.
|
|
44
44
|
#
|
|
45
45
|
# @note This operation might take 10 or more seconds to complete.
|
|
46
|
-
# @note Creating a domain in SimpleDB is an idempotent operation;
|
|
47
|
-
# running it multiple times using the same domain name will not
|
|
46
|
+
# @note Creating a domain in SimpleDB is an idempotent operation;
|
|
47
|
+
# running it multiple times using the same domain name will not
|
|
48
48
|
# result in an error.
|
|
49
49
|
# @note You can create up to 250 domains per account.
|
|
50
|
-
# @param [String] domain_name
|
|
50
|
+
# @param [String] domain_name
|
|
51
51
|
# @return [Domain] Returns a new domain with the given name.
|
|
52
52
|
def create(domain_name)
|
|
53
53
|
client.create_domain(:domain_name => domain_name)
|
|
@@ -56,7 +56,7 @@ module AWS
|
|
|
56
56
|
|
|
57
57
|
# Returns a domain object with the given name.
|
|
58
58
|
#
|
|
59
|
-
# @note This does not attempt to create the domain if it does not
|
|
59
|
+
# @note This does not attempt to create the domain if it does not
|
|
60
60
|
# already exist in SimpleDB. Use {#create} to add a domain to SDB.
|
|
61
61
|
#
|
|
62
62
|
# @param [String] domain_name The name of the domain to return.
|
|
@@ -32,7 +32,7 @@ module AWS
|
|
|
32
32
|
# :item_names_size_bytes => 3,
|
|
33
33
|
# :attribute_name_count => 3
|
|
34
34
|
# }
|
|
35
|
-
#
|
|
35
|
+
#
|
|
36
36
|
class DomainMetadata
|
|
37
37
|
|
|
38
38
|
include Core::Model
|
|
@@ -69,19 +69,19 @@ module AWS
|
|
|
69
69
|
self.to_h[:item_names_size_bytes]
|
|
70
70
|
end
|
|
71
71
|
|
|
72
|
-
# @return [Integer] The number of unique attribute names in the
|
|
72
|
+
# @return [Integer] The number of unique attribute names in the
|
|
73
73
|
# {#domain}.
|
|
74
74
|
def attribute_name_count
|
|
75
75
|
self.to_h[:attribute_name_count]
|
|
76
76
|
end
|
|
77
77
|
|
|
78
|
-
# @return [Integer] The total size of all unique attribute names,
|
|
78
|
+
# @return [Integer] The total size of all unique attribute names,
|
|
79
79
|
# in bytes.
|
|
80
80
|
def attribute_names_size_bytes
|
|
81
81
|
self.to_h[:attribute_names_size_bytes]
|
|
82
82
|
end
|
|
83
83
|
|
|
84
|
-
# @return [Integer] The number of all attribute name/value pairs in
|
|
84
|
+
# @return [Integer] The number of all attribute name/value pairs in
|
|
85
85
|
# the {#domain}.
|
|
86
86
|
def attribute_value_count
|
|
87
87
|
self.to_h[:attribute_value_count]
|
|
@@ -98,7 +98,7 @@ module AWS
|
|
|
98
98
|
self.to_h[:timestamp]
|
|
99
99
|
end
|
|
100
100
|
|
|
101
|
-
# @return [Hash] A hash of all of the metadata attributes for
|
|
101
|
+
# @return [Hash] A hash of all of the metadata attributes for
|
|
102
102
|
# this {#domain}.
|
|
103
103
|
def to_h
|
|
104
104
|
meta = client.domain_metadata(:domain_name => domain.name)
|
data/lib/aws/simple_db/errors.rb
CHANGED
|
@@ -18,18 +18,18 @@ module AWS
|
|
|
18
18
|
# types that SimpleDB can return. You can use these classes to
|
|
19
19
|
# rescue specific errors, for example:
|
|
20
20
|
#
|
|
21
|
-
#
|
|
22
|
-
#
|
|
23
|
-
#
|
|
24
|
-
#
|
|
25
|
-
#
|
|
26
|
-
#
|
|
27
|
-
#
|
|
21
|
+
# begin
|
|
22
|
+
# SimpleDB.new.domains.mydomain.
|
|
23
|
+
# items["foo"].attributes.set(:color => "red")
|
|
24
|
+
# rescue SimpleDB::Errors::NoSuchDomain => e
|
|
25
|
+
# SimpleDB.new.domians.create("mydomain")
|
|
26
|
+
# retry
|
|
27
|
+
# end
|
|
28
28
|
#
|
|
29
29
|
# Each exception has:
|
|
30
30
|
#
|
|
31
|
-
# *
|
|
32
|
-
# *
|
|
31
|
+
# * `code`: returns the error code as a string.
|
|
32
|
+
# * `box_usage`: returns the box usage for the operation.
|
|
33
33
|
#
|
|
34
34
|
# All errors raised as a result of error responses from the
|
|
35
35
|
# service are instances of either {ClientError} or {ServerError}.
|
data/lib/aws/simple_db/item.rb
CHANGED
|
@@ -19,7 +19,7 @@ module AWS
|
|
|
19
19
|
# use it to access the {AttributeCollection} for the item in
|
|
20
20
|
# order to add, remove, or read the item's attributes.
|
|
21
21
|
#
|
|
22
|
-
#
|
|
22
|
+
# item = AWS::SimpleDB.new.domains['mydomain'].items['item-id']
|
|
23
23
|
#
|
|
24
24
|
class Item
|
|
25
25
|
|
|
@@ -35,7 +35,7 @@ module AWS
|
|
|
35
35
|
@name = name
|
|
36
36
|
super
|
|
37
37
|
end
|
|
38
|
-
|
|
38
|
+
|
|
39
39
|
# @return [Domain] The domain this item belongs to.
|
|
40
40
|
attr_reader :domain
|
|
41
41
|
|
|
@@ -50,9 +50,9 @@ module AWS
|
|
|
50
50
|
|
|
51
51
|
# Deletes the item and all of its attributes from SimpleDB.
|
|
52
52
|
# @param [Hash] options
|
|
53
|
-
# @option options [Hash] :if Pass a hash with a single key (attribute
|
|
53
|
+
# @option options [Hash] :if Pass a hash with a single key (attribute
|
|
54
54
|
# name) and a single value (the attribute value). This causes the
|
|
55
|
-
# delete to become conditional.
|
|
55
|
+
# delete to become conditional.
|
|
56
56
|
# @option options [String,Symbol] :unless Pass an attribute name. This
|
|
57
57
|
# causes the delete to become conditional on that attribute not
|
|
58
58
|
# existing.
|
|
@@ -80,7 +80,7 @@ module AWS
|
|
|
80
80
|
end
|
|
81
81
|
|
|
82
82
|
def == other
|
|
83
|
-
other.is_a?(Item) and
|
|
83
|
+
other.is_a?(Item) and
|
|
84
84
|
other.domain == domain and
|
|
85
85
|
other.name == name
|
|
86
86
|
end
|
|
@@ -56,16 +56,18 @@ module AWS
|
|
|
56
56
|
super
|
|
57
57
|
end
|
|
58
58
|
|
|
59
|
-
# Creates a new item in SimpleDB with the given attributes:
|
|
59
|
+
# Creates a new item in SimpleDB with the given attributes:
|
|
60
|
+
#
|
|
61
|
+
# @example
|
|
60
62
|
#
|
|
61
63
|
# domain.items.create('shirt', {
|
|
62
|
-
# 'colors' => ['red', 'blue'],
|
|
64
|
+
# 'colors' => ['red', 'blue'],
|
|
63
65
|
# 'category' => 'clearance'})
|
|
64
66
|
#
|
|
65
67
|
# @overload create(item_name, attributes)
|
|
66
68
|
# @param [String] item_name The name of the item as you want it stored
|
|
67
69
|
# in SimpleDB.
|
|
68
|
-
# @param [Hash] attributes A hash of attribute names and values
|
|
70
|
+
# @param [Hash] attributes A hash of attribute names and values
|
|
69
71
|
# you want to store in SimpleDB.
|
|
70
72
|
# @return [Item] Returns a reference to the object that was created.
|
|
71
73
|
def create item_name, *args
|
|
@@ -99,33 +101,33 @@ module AWS
|
|
|
99
101
|
# * AWS::SimpleDB::ItemData objects (some or all attributes populated)
|
|
100
102
|
#
|
|
101
103
|
# The default mode of an ItemCollection is to yield Item objects with
|
|
102
|
-
# no populated attributes.
|
|
104
|
+
# no populated attributes.
|
|
103
105
|
#
|
|
104
|
-
#
|
|
105
|
-
#
|
|
106
|
-
#
|
|
107
|
-
#
|
|
108
|
-
#
|
|
106
|
+
# # only receives item names from SimpleDB
|
|
107
|
+
# domain.items.each do |item|
|
|
108
|
+
# puts item.name
|
|
109
|
+
# puts item.class.name # => AWS::SimpleDB::Item
|
|
110
|
+
# end
|
|
109
111
|
#
|
|
110
112
|
# You can switch a collection into yielded {ItemData} objects by
|
|
111
113
|
# specifying what attributes to request:
|
|
112
114
|
#
|
|
113
|
-
#
|
|
114
|
-
#
|
|
115
|
-
#
|
|
116
|
-
#
|
|
115
|
+
# domain.items.select(:all).each do |item_data|
|
|
116
|
+
# puts item_data.class.name # => AWS::SimpleDB::ItemData
|
|
117
|
+
# puts item_data.attributes # => { 'attr-name' => 'attr-value', ... }
|
|
118
|
+
# end
|
|
117
119
|
#
|
|
118
120
|
# You can also pass the standard scope options to #each as well:
|
|
119
121
|
#
|
|
120
|
-
#
|
|
121
|
-
#
|
|
122
|
-
#
|
|
123
|
-
#
|
|
122
|
+
# # output the item names of the 10 most expensive items
|
|
123
|
+
# domain.items.each(:order => [:price, :desc], :limit => 10).each do |item|
|
|
124
|
+
# puts item.name
|
|
125
|
+
# end
|
|
124
126
|
#
|
|
125
127
|
# @yield [item] Yields once for every item in the {#domain}.
|
|
126
128
|
#
|
|
127
129
|
# @yieldparam [Item,ItemData] item If the item collection has been
|
|
128
|
-
# scoped by chaining
|
|
130
|
+
# scoped by chaining `#select` or by passing the `:select` option
|
|
129
131
|
# then {ItemData} objects (that contain a hash of attributes) are
|
|
130
132
|
# yielded. If no list of attributes has been provided, then#
|
|
131
133
|
# {Item} objects (with no populated data) are yielded.
|
|
@@ -137,9 +139,9 @@ module AWS
|
|
|
137
139
|
#
|
|
138
140
|
# @option options [Mixed] :select If select is provided, then each
|
|
139
141
|
# will yield {ItemData} objects instead of empty {Item}.
|
|
140
|
-
# The
|
|
142
|
+
# The `:select` option may be:
|
|
141
143
|
#
|
|
142
|
-
# *
|
|
144
|
+
# * `:all` - Specifies that all attributes should requested.
|
|
143
145
|
#
|
|
144
146
|
# * A single or array of attribute names (as strings or symbols).
|
|
145
147
|
# This causes the named attribute(s) to be requested.
|
|
@@ -151,14 +153,14 @@ module AWS
|
|
|
151
153
|
# will be yielded (see {#order}).
|
|
152
154
|
#
|
|
153
155
|
# @option options :limit [Integer] The maximum number of
|
|
154
|
-
# items to fetch from SimpleDB.
|
|
156
|
+
# items to fetch from SimpleDB.
|
|
155
157
|
#
|
|
156
158
|
# @option options :batch_size Specifies a maximum number of records
|
|
157
159
|
# to fetch from SimpleDB in a single request. SimpleDB may return
|
|
158
160
|
# fewer items than :batch_size per request, but never more.
|
|
159
161
|
# Generally you should not need to specify this option.
|
|
160
162
|
#
|
|
161
|
-
# @return [String,nil] Returns a next token that can be used with
|
|
163
|
+
# @return [String,nil] Returns a next token that can be used with
|
|
162
164
|
# the exact same SimpleDB select expression to get more results.
|
|
163
165
|
# A next token is returned ONLY if there was a limit on the
|
|
164
166
|
# expression, otherwise all items will be enumerated and
|
|
@@ -178,21 +180,21 @@ module AWS
|
|
|
178
180
|
|
|
179
181
|
# Counts the items in the collection.
|
|
180
182
|
#
|
|
181
|
-
#
|
|
183
|
+
# domain.items.count
|
|
182
184
|
#
|
|
183
185
|
# You can specify what items to count with {#where}:
|
|
184
186
|
#
|
|
185
|
-
#
|
|
187
|
+
# domain.items.where(:color => "red").count
|
|
186
188
|
#
|
|
187
189
|
# You can also limit the number of items to count:
|
|
188
190
|
#
|
|
189
|
-
#
|
|
190
|
-
#
|
|
191
|
+
# # count up to 500 items and then stop
|
|
192
|
+
# domain.items.limit(500).count
|
|
191
193
|
#
|
|
192
194
|
# @param [Hash] options Options for counting items.
|
|
193
195
|
#
|
|
194
196
|
# @option options [Boolean] :consistent_read (false) Causes this
|
|
195
|
-
# method to yield the most current data in the domain when
|
|
197
|
+
# method to yield the most current data in the domain when `true`.
|
|
196
198
|
#
|
|
197
199
|
# @option options :where Restricts the item collection using
|
|
198
200
|
# {#where} before querying.
|
|
@@ -217,7 +219,7 @@ module AWS
|
|
|
217
219
|
|
|
218
220
|
response = select_request(options, next_token)
|
|
219
221
|
|
|
220
|
-
if
|
|
222
|
+
if
|
|
221
223
|
domain_item = response.items.first and
|
|
222
224
|
count_attribute = domain_item.attributes.first
|
|
223
225
|
then
|
|
@@ -238,36 +240,36 @@ module AWS
|
|
|
238
240
|
# # the selection mode (item names only or with attributes).
|
|
239
241
|
# #
|
|
240
242
|
# def page options = {}
|
|
241
|
-
#
|
|
243
|
+
#
|
|
242
244
|
# handle_query_options(options) do |collection, opts|
|
|
243
245
|
# return collection.page(opts)
|
|
244
246
|
# end
|
|
245
|
-
#
|
|
247
|
+
#
|
|
246
248
|
# super(options)
|
|
247
|
-
#
|
|
249
|
+
#
|
|
248
250
|
# end
|
|
249
251
|
|
|
250
252
|
# Specifies a list of attributes select from SimpleDB.
|
|
251
253
|
#
|
|
252
|
-
#
|
|
253
|
-
#
|
|
254
|
-
#
|
|
254
|
+
# domain.items.select('size', 'color').each do |item_data|
|
|
255
|
+
# puts item_data.attributes # => { 'size' => ..., :color => ... }
|
|
256
|
+
# end
|
|
255
257
|
#
|
|
256
|
-
# You can select all attributes by passing
|
|
258
|
+
# You can select all attributes by passing `:all` or '*':
|
|
257
259
|
#
|
|
258
|
-
#
|
|
260
|
+
# domain.items.select('*').each {|item_data| ... }
|
|
259
261
|
#
|
|
260
|
-
#
|
|
262
|
+
# domain.items.select(:all).each {|item_data| ... }
|
|
261
263
|
#
|
|
262
264
|
# Calling #select causes #each to yield {ItemData} objects
|
|
263
|
-
# with #attribute hashes, instead of {Item} objects with
|
|
265
|
+
# with #attribute hashes, instead of {Item} objects with
|
|
264
266
|
# an item name.
|
|
265
267
|
#
|
|
266
268
|
# @param [Symbol, String, or Array] attributes The attributes to
|
|
267
269
|
# retrieve. This can be:
|
|
268
|
-
#
|
|
269
|
-
# *
|
|
270
|
-
#
|
|
270
|
+
#
|
|
271
|
+
# * `:all` or '*' to request all attributes for each item
|
|
272
|
+
#
|
|
271
273
|
# * A list or array of attribute names as strings or symbols
|
|
272
274
|
#
|
|
273
275
|
# Attribute names may contain any characters that are valid
|
|
@@ -319,64 +321,64 @@ module AWS
|
|
|
319
321
|
# in addition to any conditions defined on this collection.
|
|
320
322
|
# For example:
|
|
321
323
|
#
|
|
322
|
-
#
|
|
323
|
-
#
|
|
324
|
+
# items = domain.items.where(:color => 'blue').
|
|
325
|
+
# where('engine_type is not null')
|
|
324
326
|
#
|
|
325
|
-
#
|
|
326
|
-
#
|
|
327
|
-
#
|
|
327
|
+
# # does SELECT itemName() FROM `mydomain`
|
|
328
|
+
# # WHERE color = "blue" AND engine_type is not null
|
|
329
|
+
# items.each { |i| ... }
|
|
328
330
|
#
|
|
329
|
-
#
|
|
331
|
+
# ## Hash Conditions
|
|
330
332
|
#
|
|
331
|
-
# When
|
|
333
|
+
# When `conditions` is a hash, each entry produces a condition
|
|
332
334
|
# on the attribute named in the hash key. For example:
|
|
333
335
|
#
|
|
334
|
-
#
|
|
335
|
-
#
|
|
336
|
+
# # produces "WHERE `foo` = 'bar'"
|
|
337
|
+
# domain.items.where(:foo => 'bar')
|
|
336
338
|
#
|
|
337
339
|
# You can pass an array value to use an "IN" operator instead
|
|
338
340
|
# of "=":
|
|
339
341
|
#
|
|
340
|
-
#
|
|
341
|
-
#
|
|
342
|
+
# # produces "WHERE `foo` IN ('bar', 'baz')"
|
|
343
|
+
# domain.items.where(:foo => ['bar', 'baz'])
|
|
342
344
|
#
|
|
343
345
|
# You can also pass a range value to use a "BETWEEN" operator:
|
|
344
346
|
#
|
|
345
|
-
#
|
|
346
|
-
#
|
|
347
|
+
# # produces "WHERE `foo` BETWEEN 'bar' AND 'baz'
|
|
348
|
+
# domain.items.where(:foo => 'bar'..'baz')
|
|
347
349
|
#
|
|
348
|
-
#
|
|
349
|
-
#
|
|
350
|
+
# # produces "WHERE (`foo` >= 'bar' AND `foo` < 'baz')"
|
|
351
|
+
# domain.items.where(:foo => 'bar'...'baz')
|
|
350
352
|
#
|
|
351
|
-
#
|
|
353
|
+
# ## Placeholders
|
|
352
354
|
#
|
|
353
|
-
# If
|
|
354
|
-
# quoted part of the expression,
|
|
355
|
+
# If `conditions` is a string and "?" appears outside of any
|
|
356
|
+
# quoted part of the expression, `placeholers` is expected to
|
|
355
357
|
# contain a value for each of the "?" characters in the
|
|
356
358
|
# expression. For example:
|
|
357
359
|
#
|
|
358
|
-
#
|
|
359
|
-
#
|
|
360
|
+
# # produces "WHERE foo like 'fred''s % value'"
|
|
361
|
+
# domain.items.where("foo like ?", "fred's % value")
|
|
360
362
|
#
|
|
361
363
|
# Array values are surrounded with parentheses when they are
|
|
362
364
|
# substituted for a placeholder:
|
|
363
365
|
#
|
|
364
|
-
#
|
|
365
|
-
#
|
|
366
|
+
# # produces "WHERE foo in ('1', '2')"
|
|
367
|
+
# domain.items.where("foo in ?", [1, 2])
|
|
366
368
|
#
|
|
367
369
|
# Note that no substitutions are made within a quoted region
|
|
368
370
|
# of the query:
|
|
369
371
|
#
|
|
370
|
-
#
|
|
371
|
-
#
|
|
372
|
+
# # produces "WHERE `foo?` = 'red'"
|
|
373
|
+
# domain.items.where("`foo?` = ?", "red")
|
|
372
374
|
#
|
|
373
|
-
#
|
|
374
|
-
#
|
|
375
|
+
# # produces "WHERE foo = 'fuzz?' AND bar = 'zap'"
|
|
376
|
+
# domain.items.where("foo = 'fuzz?' AND bar = ?", "zap")
|
|
375
377
|
#
|
|
376
378
|
# Also note that no attempt is made to correct for syntax:
|
|
377
379
|
#
|
|
378
|
-
#
|
|
379
|
-
#
|
|
380
|
+
# # produces "WHERE 'foo' = 'bar'", which is invalid
|
|
381
|
+
# domain.items.where("? = 'bar'", "foo")
|
|
380
382
|
#
|
|
381
383
|
# @return [ItemCollection] Returns a new item collection with the
|
|
382
384
|
# additional conditions.
|
|
@@ -412,13 +414,13 @@ module AWS
|
|
|
412
414
|
# For example, to get item names in descending order of
|
|
413
415
|
# popularity, you can do:
|
|
414
416
|
#
|
|
415
|
-
#
|
|
417
|
+
# domain.items.order(:popularity, :desc).map(&:name)
|
|
416
418
|
#
|
|
417
419
|
# @param attribute [String or Symbol] The attribute name to
|
|
418
420
|
# order by.
|
|
419
421
|
# @param order [String or Symbol] The desired order, which may be:
|
|
420
|
-
# *
|
|
421
|
-
# *
|
|
422
|
+
# * `asc` or `ascending` (the default)
|
|
423
|
+
# * `desc` or `descending`
|
|
422
424
|
# @return [ItemCollection] Returns a new item collection with the
|
|
423
425
|
# given ordering logic.
|
|
424
426
|
def order(attribute, order = nil)
|
|
@@ -432,10 +434,10 @@ module AWS
|
|
|
432
434
|
# Limits the number of items that are returned or yielded.
|
|
433
435
|
# For example, to get the 100 most popular item names:
|
|
434
436
|
#
|
|
435
|
-
#
|
|
436
|
-
#
|
|
437
|
-
#
|
|
438
|
-
#
|
|
437
|
+
# domain.items.
|
|
438
|
+
# order(:popularity, :desc).
|
|
439
|
+
# limit(100).
|
|
440
|
+
# map(&:name)
|
|
439
441
|
#
|
|
440
442
|
# @overload limit
|
|
441
443
|
# @return [Integer] Returns the current limit for the collection.
|
|
@@ -451,14 +453,14 @@ module AWS
|
|
|
451
453
|
|
|
452
454
|
# Applies standard scope options (e.g. :where => 'foo') and removes them from
|
|
453
455
|
# the options hash by calling their method (e.g. by calling #where('foo')).
|
|
454
|
-
# Yields only if there were scope options to apply.
|
|
456
|
+
# Yields only if there were scope options to apply.
|
|
455
457
|
# @private
|
|
456
458
|
protected
|
|
457
459
|
def handle_query_options(*args)
|
|
458
460
|
|
|
459
461
|
options = args.last.is_a?(Hash) ? args.pop : {}
|
|
460
462
|
|
|
461
|
-
if
|
|
463
|
+
if
|
|
462
464
|
query_options = options.keys & [:select, :where, :order, :limit] and
|
|
463
465
|
!query_options.empty?
|
|
464
466
|
then
|
|
@@ -486,7 +488,7 @@ module AWS
|
|
|
486
488
|
|
|
487
489
|
response = select_request(options, next_token, max)
|
|
488
490
|
|
|
489
|
-
if output_list == 'itemName()'
|
|
491
|
+
if output_list == 'itemName()'
|
|
490
492
|
response.items.each do |item|
|
|
491
493
|
yield(self[item.name])
|
|
492
494
|
end
|
|
@@ -497,7 +499,7 @@ module AWS
|
|
|
497
499
|
end
|
|
498
500
|
|
|
499
501
|
response[:next_token]
|
|
500
|
-
|
|
502
|
+
|
|
501
503
|
end
|
|
502
504
|
|
|
503
505
|
protected
|
|
@@ -559,7 +561,7 @@ module AWS
|
|
|
559
561
|
# @private
|
|
560
562
|
protected
|
|
561
563
|
def collection_with options
|
|
562
|
-
ItemCollection.new(domain, {
|
|
564
|
+
ItemCollection.new(domain, {
|
|
563
565
|
:output_list => output_list,
|
|
564
566
|
:conditions => conditions,
|
|
565
567
|
:sort_instructions => sort_instructions,
|