Sha256: f649d327f18660e2e2b2c17f6724b9d243e668e6b38190010d42bae6aeed24b9

Contents?: true

Size: 1.53 KB

Versions: 36

Compression:

Stored size: 1.53 KB

Contents

# Copyright 2011-2012 Amazon.com, Inc. or its affiliates. All Rights Reserved.

module AWS
  class EC2

    # @private
    class ConfigTransform

      class << self

        def transform(api_config)
          ["RunInstances",
           "DetachVolume",
           "AttachVolume",
           "CreateSnapshot",
           "CreateVolume",
           "DescribeImageAttribute",
           "DescribeInstanceAttribute"].each do |(op, wrapper)|
            if op_config = api_config[:operations][op]
              op_config[:output] = op_config[:output].first.values.first
            end
          end

          api_config[:operations].each do |op, op_config|
            op_config[:input] =
              capitalize_input_structure(op_config[:input])
          end

          api_config
        end

        private
        def capitalize_input_structure(struct)
          struct.inject({}) do |m, (name, desc)|

            name = name[0,1].upcase + name[1..-1]
            m[name] = capitalize_input_descriptors(desc)
            m
          end
        end

        private
        def capitalize_input_descriptors(desc)
          desc.map do |d|
            case
            when d.kind_of?(Hash) && d.key?(:structure)
              d.merge(:structure =>
                      capitalize_input_structure(d[:structure]))
            when d.kind_of?(Hash) && d.key?(:list)
              d.merge(:list =>
                      capitalize_input_descriptors(d[:list]))
            else
              d
            end
          end
        end

      end

    end

  end
end

Version data entries

36 entries across 36 versions & 2 rubygems

Version Path
aws-sdk-1.8.0 lib/aws/ec2/config_transform.rb
aws-sdk-1.7.1 lib/aws/ec2/config_transform.rb
aws-sdk-1.7.0 lib/aws/ec2/config_transform.rb
aws-sdk-1.6.9 lib/aws/ec2/config_transform.rb
aws-sdk-1.6.8 lib/aws/ec2/config_transform.rb
aws-sdk-1.6.7 lib/aws/ec2/config_transform.rb
aws-sdk-1.6.6 lib/aws/ec2/config_transform.rb
aws-sdk-1.6.5 lib/aws/ec2/config_transform.rb
aws-sdk-1.6.4 lib/aws/ec2/config_transform.rb
aws-sdk-1.6.3 lib/aws/ec2/config_transform.rb
aws-sdk-1.6.2 lib/aws/ec2/config_transform.rb
aws-sdk-1.6.1 lib/aws/ec2/config_transform.rb
aws-sdk-1.6.0 lib/aws/ec2/config_transform.rb
aws-sdk-1.5.8 lib/aws/ec2/config_transform.rb
aws-sdk-1.5.7 lib/aws/ec2/config_transform.rb
aws-sdk-1.5.6 lib/aws/ec2/config_transform.rb
aws-sdk-1.5.5 lib/aws/ec2/config_transform.rb
aws-sdk-1.5.4 lib/aws/ec2/config_transform.rb
aws-sdk-1.5.3 lib/aws/ec2/config_transform.rb
aws_sdk-3.1.5 lib/aws/ec2/config_transform.rb