হেরেডক কী?
একটি হেরেডক হলো একটি মাল্টিলাইন স্ট্রিং ডিফাইন করার পদ্ধতি, মূল ইন্ডেন্টেশন এবং ফরম্যাটিং বজায় রেখে।
এটি কোড স্নিপেট এম্বেড করার জন্য ব্যবহৃত হয়, যেমন SQL বা HTML।
এখানে একটি উদাহরণ:
query = <<-SQL SELECT * FROM food WHERE healthy = true SQL
রুবিতে হেরেডক ডিফাইন করার জন্য আপনি এই সিনট্যাক্স ব্যবহার করেন। আপনি <<- সিম্বল দিয়ে শুরু করেন, তারপর এই হেরেডকের জন্য একটি নাম প্রতীকী একটি শব্দ, তারপর হেরেডকের কন্টেন্ট, এবং তারপর সেই শব্দটিই একক লাইনে দিয়ে হেরেডক বন্ধ করেন।
এটি করার আরেকটি পদ্ধতি হলো %Q ব্যবহার করা:
query = %Q( Article about heredocs )
এখানে আপনাকে শুরুতে এবং শেষে একটি এক্সট্রা নিউলাইন मिलবে। একটি হেরেডক (বা strip মেথড কল করা) এটা সমাধান করে।
এখানে একটি ট্রেইলিং নিউলাইন ছাড়া রুবি হেরেডক:
query = <<-HTML.chomp Article about heredocs HTML
রুবি হেরেডক ইন্টারপোলেশন
আপনি যদি চিনতা করেন হেরেডকের সাথে স্ট্রিং ইন্টারপোলেশন ব্যবহার করা যায় কিনা…
উত্তর হ্যাঁ!
উদাহরণ:
type = "healthy"
table = "food"
query = <<-SQL
SELECT * FROM #{table} WHERE #{type} = true
SQL
আপনি হেরেডক নেমকে সিঙ্গেল কোট দিয়ে ঘেরে দিয়ে ইন্টারপোলেশন ডিজেবল করতে পারেন।
এভাবে:
doc = <<-'TIME'
Current time is #{Time.now}
TIME
রুবি স্কুইগলি হেরেডক
প্রতিটি লাইনের শুরুতে থাকা এক্সট্রা ইন্ডেন্টেশন কীভাবে রিমুভ করবেন? সেটাই স্কুইগলি হেরেডক-এর কাজ।
রুবি ২.৩-এ ইন্ট্রোডিউস করা স্কুইগলি হেরেডক আপনার জন্য এক্সট্রা ইন্ডেন্টেশন রিমুভ করে দেয়।
উদাহরণ:
page = <<-HTML Heredocs are cool & useful HTML # " Heredocs are cool & useful\n" page = <<~HTML Heredocs are cool & useful HTML # "Heredocs are cool & useful\n" page = <<~HTML.strip Heredocs are cool & useful HTML # "Heredocs are cool & useful"
এখন আপনি রিডেবিলিটির জন্য এক্সট্রা স্পেসগুলো রেখে দিতে পারেন। কিন্তু আকচুয়াল স্ট্রিং-এ সেগুলো বাদ থাকবে!
সারসংক্ষেপ
আপনি রুবিতে হেরেডক ব্যবহার শিখলেন আপনার কোডে মাল্টিলাইন স্ট্রিং এম্বেড করার জন্য। এটি আপনার কোডের জন্য টেস্ট লিখতে বা ছোট ডেটা বিটস উপলব্ধ রাখতে ফাইল পড়া ছাড়া উপকারী হতে পারে।
পড়ার জন্য ধন্যবাদ!