module AWS::Core::Inflection
def class_name(name)
def class_name(name) name.sub(/^(.)/) { |m| m.upcase }. gsub(/[-_]([a-z])/i) { |m| m[1,1].upcase } end
def ruby_name aws_name
def ruby_name aws_name inflector = Hash.new do |hash,key| key. sub(/^.*:/, ''). # strip namespace gsub(/([A-Z0-9]+)([A-Z][a-z])/, '\1_\2'). # split acronyms from words scan(/[a-z]+|\d+|[A-Z0-9]+[a-z]*/). # split remaining words join('_').downcase # join parts _ and downcase end # add a few irregular inflections inflector['ETag'] = 'etag' inflector['s3Bucket'] = 's3_bucket' inflector['s3Key'] = 's3_key' inflector[aws_name] end