কম্পিউটার

রুবি টেমপ্লেটিং ইঞ্জিন:ERB, HAML এবং স্লিম

ERB একটি টেমপ্লেটিং ইঞ্জিন।

একটি টেমপ্লেটিং ইঞ্জিন আপনাকে HTML এবং রুবি মিশ্রিত করতে অনুমতি দেয়৷ যাতে আপনি আপনার ডাটাবেস থেকে ডেটা ব্যবহার করে ওয়েব পেজ তৈরি করতে পারেন।

ভিউ রেন্ডার করার জন্য ERB হল রেলের ডিফল্ট ইঞ্জিন।

দ্রষ্টব্য:রেলগুলি ERB এর পরিবর্তে ইরুবি নামক একটি বাস্তবায়ন ব্যবহার করে রুবি স্ট্যান্ডার্ড লাইব্রেরি থেকে ক্লাস।

আপনি এই নিবন্ধে পরে শিখবেন, ERB ব্যবহার করার জন্য আপনার রেলের প্রয়োজন নেই।

কিন্তু প্রথমে :

ERB-এর সিনট্যাক্সের একটি ভূমিকা, কীভাবে আপনার রুবি প্রোজেক্টে ERB ব্যবহার করবেন এবং কীভাবে এটি HAML-এর মতো অন্যান্য টেমপ্লেটিং ইঞ্জিনের সাথে তুলনা করে।

এটা করা যাক!

এম্বেডেড রুবি (ERB) টিউটোরিয়াল

একটি ERB টেমপ্লেট একটি ফাইল যা একটি .html.erb দিয়ে শেষ হয় অথবা .erb এক্সটেনশন।

আপনি একটি ERB টেমপ্লেটের ভিতরে যা কিছু লেখেন তা হল HTML৷

যদি না... আপনি একটি বিশেষ ট্যাগ ব্যবহার করেন!

এখানে একটি উদাহরণ আছে :

<প্রে>

হ্যালো <%=name %>!

এই <%= %> টেমপ্লেটিং ইঞ্জিনের ভিতরের রুবি কোডের মূল্যায়ন করে ট্যাগ প্রতিস্থাপন করা হবে।

এটা স্ট্রিং ইন্টারপোলেশনের মত!

লক্ষ্য করুন সমান সাইন ইন <%= %> .

এটি ERB কে এই ট্যাগের বিষয়বস্তু রেন্ডার করতে বলে৷ .

আপনি যদি ERB তে একটি লুপ বা একটি if স্টেটমেন্ট লিখতে চান তাহলে আপনি সমান চিহ্নটি ছেড়ে দিতে চান যাতে ERB আপনার প্রয়োজন নেই এমন জিনিস রেন্ডার করে না৷

আপনি সঠিক ERB ট্যাগ ব্যবহার না করলেও আপনি একটি ত্রুটি পেতে পারেন।

এখানে একটি উদাহরণ আছে :

<% if @favorite_food =="চকলেট" %> আপনি কি চকোলেট প্রেমী? এখানে আমাদের সেরা কিছু প্রিমিয়াম চকোলেট বার রয়েছে!<% else %> এখানে আমাদের সেরা 10টি স্ন্যাকস যা লোকেরা এই মাসে কিনেছে৷<% end %>

এটি একটি ERB if স্টেটমেন্ট , একটি নিয়মিত রুবি ইফ স্টেটমেন্টের মতো কিন্তু বিশেষ টেমপ্লেটিং সিনট্যাক্সের চারপাশে আবৃত যাতে এটি মূল্যায়ন করা যায় এবং যখন এই পৃষ্ঠাটি ব্যবহারকারীর জন্য রেন্ডার করা হয় তখন আউটপুট দ্বারা প্রতিস্থাপিত হয়৷

এখানে একটি ERB লুপ আছে :

<% @books.each do |book| %> <%=book.title %> <%=book.author %> 
<% শেষ %>

বইয়ের একটি অ্যারে দেওয়া, এটি তাদের মধ্যে একটি লাইন বিরতি সহ প্রতিটি বই মুদ্রণ করবে৷

আপনি যদি Rails ব্যবহার করে থাকেন, তাহলে আপনি সংশ্লিষ্ট কন্ট্রোলার অ্যাকশনে কল করলে এটি আপনার জন্য এই টেমপ্লেটটি রেন্ডার করবে।

রেল ছাড়াই ERB ব্যবহার করা

আপনি যদি রিপোর্ট এবং স্ট্যাটিক ওয়েবসাইট তৈরি করতে রেলের বাইরে ERB ব্যবহার করতে চান…

আপনি এটি করতে পারেন৷ :

'erb'Book =Struct.new(:title, :author)টেমপ্লেট =ERB.new(File.read('template.erb'))template.result_with_hash(বই:[Book.new("test") প্রয়োজন ), Book.new("abc")])

আপনাকে @books প্রতিস্থাপন করতে হবে books সহ এটি কাজ করার জন্য আপনার টেমপ্লেটে।

রেলগুলি "ভেরিয়েবল বাইন্ডিং" নামে একটি মেটাপ্রোগ্রামিং কৌশল ব্যবহার করে।

এভাবেই Rails আপনার টেমপ্লেটের সাথে আপনার কন্ট্রোলার থেকে ইনস্ট্যান্স ভেরিয়েবল শেয়ার করে। কিন্তু আপনি যদি হ্যাশ ব্যবহার করে Rails ছাড়া ERB ব্যবহার করতে যাচ্ছেন (result_with_hash সহ পদ্ধতি) একটি পরিষ্কার সমাধান।

আপনি কি মনে করেন?

টেমপ্লেটিং ইঞ্জিনের তুলনা

এখন :

আসুন বিভিন্ন টেমপ্লেটিং ইঞ্জিনের তুলনা করি।

আপনি Tilt রত্ন ব্যবহার করে এই সমস্ত ইঞ্জিন অ্যাক্সেস করতে পারেন। টিল্ট ফ্যারাডে এর মত একটি অ্যাডাপ্টার রত্ন।

উদাহরণ :

'tilt'Tilt::ErubiTemplate.new("test.erb") প্রয়োজন। renderrequire 'tilt/haml'Tilt::HamlTemplate.new("test.haml")। রেন্ডারের প্রয়োজন 'slim'Slim::টেমপ্লেট। new("test.slim").রেন্ডার

এখানে একটি বিভিন্ন বাস্তবায়নের মধ্যে মাপকাঠি :

তুলনা:erubi:5786.0 i/s ERB:4438.8 i/s - 1.30x ধীর হ্যামল:1340.0 i/s - 4.32x ধীর স্লিম:724.1 i/s - 7.99x ধীর

এখানে HAML সিনট্যাক্স কি মনে হচ্ছে:

%head %title রুবি টেমপ্লেটিং ইঞ্জিন =123 * 2% body - foo.each do |bar| %p এটা দারুণ 

এটি সাধারণ HTML থেকে আলাদা, তাই আপনাকে এটিতে অভ্যস্ত হতে হবে।

আরও সংক্ষিপ্ত হল স্লিমের সিনট্যাক্স :

হেড শিরোনাম রুবি টেমপ্লেটিং ইঞ্জিন =123 * 2body - foo.each do |bar| পি | এটি দুর্দান্ত 

স্লিম কন্টেন্টের মাল্টি-লাইন ব্লকের জন্য পাইপ অক্ষর ব্যবহার করে, হ্যামলে আপনার এটির প্রয়োজন নেই।

আসুন @ গিথুব রিপোজিটরি স্তরের একটি তুলনা দেখে নেওয়া যাক:

REPO তারা LAST_COMMIT LATEST_RELEASE CREATED_DATE
জেরেমিয়েভান্স/ইরুবি 255 2019-11-05 14:09:06 2019-09-25 15:44:36 2016-11-10 22:42:44
haml/haml 3461 2019-12-27 10:51:59 2019-08-06 12:01:09 2008-02-11 22:55:26
slim-template/slim 4898 2019-12-15 23:55:23 2018-09-02 23:54:10 2010-09-13 01:32:07

তাহলে আপনি কোনটি ব্যবহার করবেন?

আমি মনে করি এটি বেশিরভাগ ব্যক্তিগত পছন্দ।

কিন্তু একটা জিনিস পরিষ্কার :

একটি নির্দিষ্ট প্রকল্পের জন্য একটি চয়ন করুন এবং সেই ইঞ্জিন ব্যবহার করে আপনার সমস্ত টেমপ্লেট লিখুন৷

মিক্স অ্যান্ড ম্যাচ করবেন না।

আমি ERB টেমপ্লেটের সাথে লেগে থাকতে পছন্দ করি…

সঠিক সম্পাদকের স্নিপেট এবং সমর্থনের সাথে এটি এতটা অতিরিক্ত লেখা নয়।

এমনকি আপনি যদি কখনো অন্য ইঞ্জিনে যেতে চান তাহলে আপনার কাছে (ERB থেকে/ থেকে) রূপান্তরকারী উপলব্ধ রয়েছে৷

সারাংশ

আপনি রুবিতে টেমপ্লেটিং ইঞ্জিন সম্পর্কে শিখেছেন!

অনুগ্রহ করে এই নিবন্ধটি শেয়ার করুন এবং আমার নিউজলেটারে সাবস্ক্রাইব করুন যদি আপনি এখনও (9000+ গ্রাহক) না থাকেন যাতে আপনি এই ধরনের আরও দুর্দান্ত সামগ্রী পেতে পারেন৷

পড়ার জন্য ধন্যবাদ 🙂


  1. রুবিতে ল্যাম্বডাস ব্যবহার করা

  2. কোনটি দ্রুততম? ERB বনাম HAML বনাম স্লিম

  3. রুবিতে সন্নিবেশ বাছাই বোঝা

  4. রুবি 2.6-এ 9টি নতুন বৈশিষ্ট্য