স্ট্রিপ এবং চম্প উভয়েরই দরকার নেই কারণ স্ট্রিপও ট্র্যাজিং ক্যারেজ রিটার্ন সরিয়ে ফেলবে - যদি না আপনি ডিফল্ট রেকর্ড বিভাজকটি পরিবর্তন করেন এবং এটিই আপনি চিপ করছেন।
অলির উত্তরটি ইতিমধ্যে রুবিতে এটি করার প্রচলিত পদ্ধতি রয়েছে, যদিও আপনি নিজেকে এটি অনেক কিছু করতে দেখেন তবে আপনি সর্বদা এর জন্য কোনও পদ্ধতি সংজ্ঞায়িত করতে পারেন:
def strip_or_self!(str)
str.strip! || str
end
প্রদান:
@title = strip_or_self!(tokens[Title]) if tokens[Title]
এছাড়াও মনে রাখবেন যে যদি @title
টোকেনটি নিল হয় তবে যদি বিবৃতিটি নির্ধারিত হতে বাধা দেয় তবে এর ফলাফলটি এর পূর্ববর্তী মানটি রাখে। আপনি যদি চান বা @title
সর্বদা নিয়োগের বিষয়ে আপত্তি না করেন তবে আপনি চেকটি পদ্ধতিতে স্থানান্তর করতে পারেন এবং আরও সদৃশতা হ্রাস করতে পারেন:
def strip_or_self!(str)
str.strip! || str if str
end
বিকল্প হিসাবে, আপনি যদি দুঃসাহসী বোধ করেন তবে আপনি স্ট্রিংয়ের উপর একটি পদ্ধতি নির্ধারণ করতে পারেন:
class String
def strip_or_self!
strip! || self
end
end
এর মধ্যে একটি দেওয়া:
@title = tokens[Title].strip_or_self! if tokens[Title]
@title = tokens[Title] && tokens[Title].strip_or_self!