class Rails::Generators::GeneratedAttribute
def parse(column_definition)
def parse(column_definition) name, type, index_type = column_definition.split(":") # if user provided "name:index" instead of "name:string:index" # type should be set blank so GeneratedAttribute's constructor # could set it to :string index_type, type = type, nil if valid_index_type?(type) type, attr_options = *parse_type_and_options(type) type = type.to_sym if type if type && !valid_type?(type) raise Error, "Could not generate field '#{name}' with unknown type '#{type}'." end if index_type && !valid_index_type?(index_type) raise Error, "Could not generate field '#{name}' with unknown index '#{index_type}'." end if type && reference?(type) if UNIQ_INDEX_OPTIONS.include?(index_type) attr_options[:index] = { unique: true } end end new(name, type, index_type, attr_options) end