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) #aws_name.sub(/^.*:/, ''). # gsub(/[A-Z]+[a-z]+/){|str| "_#{str.downcase}_" }. # gsub(/(^_|_$)/, ''). # gsub(/__/, '_'). # downcase return 'etag' if aws_name == 'ETag' aws_name. 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