Varsayılan kayıt ayırıcısını değiştirmedikçe ve chomping yaptığınız bu olmadığı sürece, şerit sondaki satır başlarını da kaldıracağından hem şerit hem de chomp'a gerek yoktur.
Olly'nin cevabı zaten Ruby'de bunu yapmanın kanonik yoluna sahip, ancak kendinizi çok fazla yaparsanız, bunun için her zaman bir yöntem tanımlayabilirsiniz:
def strip_or_self!(str)
str.strip! || str
end
Giving:
@title = strip_or_self!(tokens[Title]) if tokens[Title]
Ayrıca @title
, belirtecin sıfır olması durumunda if ifadesinin atanmasını engelleyeceğini ve bunun da önceki değerini korumasına neden olacağını unutmayın. Her @title
zaman atanmak istiyorsanız veya sakıncası yoksa , denetimi yönteme taşıyabilir ve çoğaltmayı daha da azaltabilirsiniz:
def strip_or_self!(str)
str.strip! || str if str
end
Alternatif olarak, kendinizi maceraperest hissediyorsanız, String'in kendisinde bir yöntem tanımlayabilirsiniz:
class String
def strip_or_self!
strip! || self
end
end
Şunlardan birini vermek:
@title = tokens[Title].strip_or_self! if tokens[Title]
@title = tokens[Title] && tokens[Title].strip_or_self!