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