Win merkwürdiges Problem mit Rails 6 / Ruby 2.6.5p114

Gast #6655391
Lesenswert?

Die Variable response hat nach dem Aufruf `echo \""#{passwort}"\" | 
cracklib-check` den Wert "X9d3dlgu4j OK\n"

Erwartungsgemäß gibt response.ends_with?('OK\n') true zurück

Trotzdem wird in der folgenden Version der Methode PasswortOK? der 
then-Block der if-Klausel ausgeführt:
1
def PasswortOK?
2
    response = `echo \""#{passwort}"\" | cracklib-check`
3
    if !response.ends_with?('OK\n')
4
        errors.add(:passwort, "Das Passwort ist zu schwach")
5
    end
6
end

Warum?

Wenn ich den Code folgendermaßen umbaue:
1
def PasswortOK?
2
    response = `echo \""#{passwort}"\" | cracklib-check`
3
    if response !~ /OK\n$/
4
        errors.add(:passwort, "Das Passwort ist zu schwach")
5
    end
6
end

wird – korrekter Weise – der then-Block nicht ausgeführt.

Was ist das faul?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren