class AwsRecord::Generators::Base

def ensure_unique_fields

def ensure_unique_fields
  used_names = Set.new
  duplicate_fields = []
  self.attributes.each do |attr|
    if used_names.include? attr.name
      duplicate_fields << [:attribute, attr.name]
    end
    used_names.add attr.name
    if attr.options.key? :database_attribute_name
      raw_db_attr_name = attr.options[:database_attribute_name].delete('"') # db attribute names are wrapped with " to make template generation easier
      if used_names.include? raw_db_attr_name
        duplicate_fields << [:database_attribute_name, raw_db_attr_name]
      end
      used_names.add raw_db_attr_name
    end
  end
  if !duplicate_fields.empty?
    duplicate_fields.each do |invalid_attr|
      @parse_errors << ArgumentError.new("Found duplicated field name: #{invalid_attr[1]}, in attribute#{invalid_attr[0]}")
    end
  end
end