class Thor

def register_klass_file(klass, file = caller[1].split(":")[0])

def register_klass_file(klass, file = caller[1].split(":")[0])
  unless self == Thor
    superclass.register_klass_file(klass, file)
    return
  end
  file_subclasses = subclass_files[File.expand_path(file)]
  file_subclasses << klass unless file_subclasses.include?(klass)
  subclasses << klass unless subclasses.include?(klass)
end