module Thor::Util

def user_home # rubocop:disable MethodLength

rubocop:disable MethodLength
def user_home # rubocop:disable MethodLength
  @@user_home ||= if ENV['HOME']
                    ENV['HOME']
                  elsif ENV['USERPROFILE']
                    ENV['USERPROFILE']
                  elsif ENV['HOMEDRIVE'] && ENV['HOMEPATH']
                    File.join(ENV['HOMEDRIVE'], ENV['HOMEPATH'])
                  elsif ENV['APPDATA']
                    ENV['APPDATA']
                  else
                    begin
                      File.expand_path('~')
                    rescue
                      if File::ALT_SEPARATOR
                        'C:/'
                      else
                        '/'
                      end
                    end
                  end
end