# File lib/aws/option_grammar.rb, line 270
        def self.apply(option, members)
          options = {}
          options = option.member_options.inject({}) do |memo, member_option|
            memo[member_option.name] = member_option
            memo
          end if option.respond_to?(:member_options)

          super(option)

          members.each do |(name, descriptors)|
            member_option = options[name] || DefaultOption.new(name)
            member_option = member_option.extend_with_config(*descriptors)
            options[name] = member_option
          end

          MetaUtils.extend_method(option, :member_options) { options.values }
          by_ruby_name = options.values.inject({}) do |memo, member_option|
            memo[member_option.ruby_name] = member_option
            memo
          end
          MetaUtils.extend_method(option, :member_option) { |n| by_ruby_name[n] }
        end