Sha256: 5a4fd2001edd9e4b1b1c4f06a7c965470ab5d7fbe0a4451023ba084454f6b41e

Contents?: true

Size: 1.53 KB

Versions: 11

Compression:

Stored size: 1.53 KB

Contents

# Copyright 2011-2013 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

11 entries across 11 versions & 2 rubygems

Version Path
aws-sdk-euca-1.8.5 lib/aws/ec2/config_transform.rb
aws-sdk-1.9.0 lib/aws/ec2/config_transform.rb
aws-sdk-1.8.5 lib/aws/ec2/config_transform.rb
aws-sdk-1.8.4 lib/aws/ec2/config_transform.rb
aws-sdk-1.8.3.1 lib/aws/ec2/config_transform.rb
aws-sdk-1.8.3 lib/aws/ec2/config_transform.rb
aws-sdk-1.8.2 lib/aws/ec2/config_transform.rb
aws-sdk-1.8.1.3 lib/aws/ec2/config_transform.rb
aws-sdk-1.8.1.2 lib/aws/ec2/config_transform.rb
aws-sdk-1.8.1.1 lib/aws/ec2/config_transform.rb
aws-sdk-1.8.1 lib/aws/ec2/config_transform.rb