Sha256: 7c83038c3bd341b5e3a6e46cd9250b5a0bf71155e80b6dd15c5f9b751c9bfae9

Contents?: true

Size: 1.77 KB

Versions: 9

Compression:

Stored size: 1.77 KB

Contents

# Copyright 2011 Amazon.com, Inc. or its affiliates. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"). You
# may not use this file except in compliance with the License. A copy of
# the License is located at
#
#     http://aws.amazon.com/apache2.0/
#
# or in the "license" file accompanying this file. This file is
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
# ANY KIND, either express or implied. See the License for the specific
# language governing permissions and limitations under the License.

require 'aws/api_config'
require 'aws/xml_grammar'

module AWS

  # @private
  module ConfiguredGrammars

    # @private
    module ClassMethods

      include ApiConfig

      def base_grammar
        raise NotImplementedError
      end

      def operation_grammar(name)
        customized_name = "Customized#{name}"
        if const_defined?(customized_name)
          const_get(customized_name)
        else
          const_get(name)
        end
      end

      def input_or_output
        raise NotImplementedError
      end

      def process_customizations(name, customizations)
        customizations
      end

      def define_configured_grammars
        api_config[:operations].each do |name, data|
          customizations = process_customizations(name,
                                                  data[input_or_output])
          const_set(name,
                    base_grammar.customize(customizations))
          #                     BaseResponse.customize([{
          #                                               "#{name}Result" =>
          #                                               [:ignore, *data[:output]]
          #                                             }]))
        end
      end

    end

  end

end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
aws-sdk-1.1.3 lib/aws/configured_grammars.rb
aws-sdk-1.1.2 lib/aws/configured_grammars.rb
aws-sdk-1.1.1 lib/aws/configured_grammars.rb
aws-sdk-1.1.0 lib/aws/configured_grammars.rb
aws-sdk-1.0.4 lib/aws/configured_grammars.rb
aws-sdk-1.0.3 lib/aws/configured_grammars.rb
aws-sdk-1.0.2 lib/aws/configured_grammars.rb
aws-sdk-1.0.1 lib/aws/configured_grammars.rb
aws-sdk-1.0.0 lib/aws/configured_grammars.rb