module AWS::Core::OptionGrammar::Descriptors::Structure
def self.apply(option, members)
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[member_option.name] = member_option memo end MetaUtils.extend_method(option, :member_option) { |n| by_ruby_name[n] } end