Dopo l'implementazione di Null Object Pattern in un'applicazione Rails (descritta anche nell'episodio 112 di RubyTapas) ho rifattorizzato un po 'di codice, ma c'è un costrutto di sintassi che sembra non funzionare più.Effettuare un NullObject su falsy in Ruby
ho usato per scrivere istruzioni come current_user || redirect_out
, dove, se current_user è stato fissato che sarebbe tornato, e se fosse nil
reindirizza fuori, ma ora current_user
può essere un'istanza di Null::User
e quindi "truthy", e che frammento non si reindirizzerebbe mai.
Ho provato a definire l'operatore ||
, ma non ha funzionato. Esiste un modo in cui questa sintassi può ancora essere utilizzata con oggetti null (ma "truthy")?
Non sapevo che è possibile eseguire l'override di 'not' e'! '. – sawa
@sawa: puoi definire un metodo chiamato '!' Che chiamerà sia '!' Che 'not'. –