ERuby - eRuby - Wikipedia

eRuby (o'rnatilgan Ruby)
Barqaror chiqish
1.0.5 / 2004 yil 14-dekabr (2004-12-14)
TuriShablonli dvigatel
LitsenziyaGPL va LGPL

eRuby (Yoqut) joylashtiradigan templat tizimidir Yoqut matnli hujjatga. Ko'pincha Ruby kodini an ga qo'shish uchun ishlatiladi HTML ga o'xshash hujjat ASP, JSP va PHP va boshqa server tomonidagi skript tillari. ERuby-ning templat tizimi ruby ​​kodini va oddiy matnni birlashtirish uchun birlashtiradi oqimlarni boshqarish va o'zgaruvchan almashtirish, shuning uchun uni saqlashni osonlashtiradi.[1]

The Modulni ko'rish relslar javob yoki chiqishni brauzerda aks ettirish uchun javobgardir. Oddiy ko'rinishda ko'rinish parcha bo'lishi mumkin HTML statik tarkibga ega bo'lgan kod. Ko'pgina ilovalar uchun faqat statik tarkibga ega bo'lish etarli bo'lmasligi mumkin. Ko'pchilik Reylar dasturlari tomonidan yaratilgan dinamik tarkib talab qilinadi boshqaruvchi (harakat usuli) ularning ko'rinishida ko'rsatilishi kerak. Bunga dinamik tarkibni o'z ichiga oladigan shablonlarni yaratish uchun Embedded Ruby dasturi yordamida erishildi. Embedded Ruby ruby ​​kodini ko'rish hujjatiga kiritishga imkon beradi. Ushbu kod ishlash vaqtida kodning bajarilishidan kelib chiqadigan tegishli qiymat bilan almashtiriladi. Ammo, ko'rish hujjatiga kodni kiritish qobiliyatiga ega bo'lsak, biz mavjud bo'lgan aniq ajratishni ko'paytirishga xavf tug'diramiz MVC ramkasi. Shunday qilib, ishlab chiquvchining javobgarligi, ular orasida mas'uliyatni aniq ajratib turishiga ishonch hosil qilishdir model, ko'rish va nazorat qilish modullari uning arizasi.[2]

Foydalanish

eRuby Ruby kodini juftlik ichiga joylashtirishga imkon beradi <% va %> ajratuvchilar. Ushbu o'rnatilgan kod bloklari joyida baholanadi (ular o'rniga ularni baholash natijalari bilan almashtiriladi). Veb-sahifalarni yaratishdan tashqari, yaratish uchun eRuby-dan ham foydalanish mumkin XML hujjatlari, RSS lentalar va tuzilgan matnli fayllarning boshqa shakllari. eRuby dinamik ravishda statik fayllarni dinamik ravishda yaratadi andozalar. ERuby-ning ushbu funktsiyalarini ERB kutubxonasida topish mumkin.

ERB shablonlarida ishlatiladigan yorliq markerlarining har xil turlari:

  1. Ifoda teglari
  2. Ijro teglari
  3. Fikr teglari[3]

Ifoda teglari

<%= %> : Bu teg ifodani qamrab olayotganligini bildiradi. Bunday yorliq ochilishdan boshlanadi yorliq ajratuvchi, keyin unga teng belgi va tugatish yorlig'i bilan tugaydi ajratuvchi. Ko'rsatish paytida shablon, ushbu kod qismi kod natijasi bilan almashtiriladi. Agar baholangan natija mag'lubiyatga ega bo'lmasa, u ko'rsatilishidan oldin satrga aylanadi. Masalan:

talab qilish "erb"x = 500shablon = ERB.yangi("X ning qiymati: <% = x%>")qo'yadi shablon.natija(majburiy)

Olingan matn quyidagicha ko'rinadi: x ning qiymati: 500 ga teng[1]

Ijro teglari

<% %> : Bunday teglarga kiritilgan kod a deb nomlanadi stsenariy. Bunday yorliqdagi kod bajariladi va uning natijasi stsenariy o'rniga almashtiriladi. Bunday teglar mos keladigan bo'lishi kerak <% oxiri %> funktsional blokning oxirini belgilaydigan yorliq. Masalan:[4]

<ul><% 4.marta qil %>  <li>ro'yxat elementi</li><% oxiri %></ul>

Yuqoridagi misolda matnlar ro'yxati elementi to'rt marta chop etiladi. The stsenariy o'z-o'zidan hech qanday matn ishlab chiqarmaydi, faqat bir necha marta ishlash uchun ilova qilingan bayonotni qiladi. Yuqoridagi kodning chiqishi:

  • ro'yxat elementi
  • ro'yxat elementi
  • ro'yxat elementi
  • ro'yxat elementi

Sharh teglari

<%#%> : Izoh teglarining tarkibi chiqishda ko'rsatilmaydi. Bunday teglar ochiq yorliqlarni ajratuvchi bilan boshlanib, keyin xash belgisi bilan tugaydi va tugatish yorlig'i bilan tugaydi. Izoh yorlig'i misoli quyida keltirilgan:[5]

<%# ruby code %>

Bu Ruby-dagi sharh bilan bir xil. # Dan keyingi barcha Ruby kodlari e'tiborga olinmaydi va hech narsa hosil qilmaydi.

Boshqa teglar

Ruby-da eRuby-da keng tarqalgan boshqa narsalar, masalan, satrlarni almashtirish # {string_name}kabi tillarda o'xshash bo'lgan Perl yoki PHP.

ERuby-dagi yangi satrlarni tugatish ajratuvchisi boshiga defis qo'shib bosish mumkin. Masalan:

<%2.marta qil -%><%= @ ism %><% oxiri -%>

Yuqoridagi kodning chiqishida ismning qiymati bir qatorda ikki marta bosiladi.[1][3]

Amaliyotlar

ERuby-ning bir nechta dasturlari mavjud, ya'ni:

  1. ERB
  2. erubislar
  3. kuydirgi

erb

erb faqat Ruby dasturlash tilida yozilgan va ichiga kiritilgan eRuby dasturidir Ruby standart kutubxonasi.[2]

Andoza yordamida yozilgan kod qismini ishga tushirish orqali yaratilishi mumkin ERB ob'ekt. Oddiy misol quyida ko'rsatilganidek:

talab qilish "erb"x = 400simple_template = "X ning qiymati: bu <% = x%>."ko'rsatuvchi = ERB.yangi(simple_template)qo'yadi chiqish = ko'rsatuvchi.natija(majburiy)

Natija quyidagicha ko'rinadi: x ning qiymati: 400 ga teng

Bunga ERB ob'ektidan foydalanmaydigan quyidagi kod yordamida erishish mumkin:

x = 400mag'lubiyat = "X ning qiymati: #{x}"qo'yadi mag'lubiyat

Yuqoridagi ikkala narsa kod parchalari bir xil natijani yaratish. Ammo birinchisida 2-qatorni 3-chiziq bilan almashtirganimizda nima bo'ladi kod parchasi va ikkinchi kod parchasida 1-satr 2-satr bilan? Birinchi parcha quyida ko'rsatilgan kodga o'zgaradi:

talab qilish "erb"simple_template = "X ning qiymati: bu <% = x%>."x = 400ko'rsatuvchi = ERB.yangi(simple_template)qo'yadi chiqish = ko'rsatuvchi.natija(majburiy)

Bu hali ham bir xil natijani keltirib chiqaradi. ya'ni x ning qiymati: 400 ga teng.

Ikkinchi kod parchasi quyidagi kodga o'zgaradi:

mag'lubiyat = "X ning qiymati: #{x}"x = 400qo'yadi mag'lubiyat

Yuqoridagi kod bajarilmaydi. Buning sababi shundaki, 1-qator bajarilayotganda x ning qiymatini bilmaydi. Shunday qilib, ERB ob'ektidan foydalanishning asosiy sababi shablonlarni oldindan yozish, tomonidan majburiy ma'lum bir vaqtda mavjud bo'lmasligi mumkin bo'lgan o'zgaruvchilar va usullar. Shablon faqat qachon ishlanadi natija ERB ob'ektida chaqiriladi. Kirish uchun misol usullari va misol o'zgaruvchisi ob'ektning, ERB foydalanadi a majburiy ob'ekt. Ob'ektning o'zgaruvchilari va usullariga kirish xususiy tomonidan beriladi majburiy har bir ruby ​​sinfida mavjud bo'lgan ob'ekt. A usuli ichida usullar va o'zgaruvchilarga kirish oson sinf. Ammo boshqa sinfning o'zgaruvchilariga kirish uchun ushbu sinf majburiy ob'ektni umumiy usul orqali namoyish qilishi kerak. Quyidagi misol quyidagicha:[2][4]

sinf ERBMisol  attr_accessor: o'zgaruvchi1    # sinf o'zgaruvchilariga kirish uchun bind-dan foydalanib  def ko'rsatish()    ko'rsatuvchi.natija(majburiy)  oxiri  def boshlash(o'zgaruvchan1)    @ o'zgaruvchan1 = o'zgaruvchan1  oxiri  # Maxsus majburiy () usulini oching.  def get_binding    majburiy()  oxirioxirimisol = ERBMisol.yangi(o'zgaruvchan1)ko'rsatuvchi = ERB.yangi(shablon)qo'yadi chiqish = ko'rsatuvchi.natija(misol.get_binding)

Yuqoridagi misolda ko'rib turganimizdek, biz fosh qilmoqdamiz majburiy ERBExample sinfining ob'ekti. Bundan tashqari, biz ishlatganmiz majburiy uning usullaridan biri ichida sinfning o'zgaruvchilari va usullariga kirish uchun ob'ekt.

ERBning yangi () usuli

The yangi ERB ob'ektining usuli yana ikkitasini oladi parametrlar. Ikkinchi parametr xavfsizlik darajasini belgilaydi. Ikkinchi parametrda (max qiymati = 4) raqam berib, shablonni boshqacha ishlashiga erishish mumkin ip. Raqamning qiymati xavfsizlik darajasini belgilaydi. Maksimal izolyatsiya darajasida, agar majburiy ob'ekt ishonchli deb belgilanmasa, ERB undan foydalana olmaydi. Uchinchi parametr ixtiyoriy modifikatorlarni belgilaydi. Ular yordamida yangi chiziqlar qo'shilishini boshqarish uchun foydalanish mumkin. Masalan, yorliq tugaganidan keyin ERB yangi qatorlar chiqmasligiga ishonch hosil qilish uchun ERB ob'ektini quyida ko'rsatilgandek yaratishimiz mumkin[3][4]

ko'rsatuvchi = ERB.yangi(shablon, 3, '>')

Faqat uchinchi parametrni ta'minlash va ikkinchi parametrni e'tiborsiz qoldirish uchun 0 parametridan ikkinchi parametr uchun kirish sifatida foydalaning.

ERB shablonni ko'rsatish uchun ishlatilishi mumkin bo'lgan ko'plab boshqa usullarga ega. ERB ob'ekti ta'sir qiladigan API-larning to'liq ro'yxati uchun ga murojaat qiling ERB hujjatlari mos yozuvlar qismida berilgan.

Buyruqning satridan ERB-ni ishga tushirish

Avvalgi bo'limlarda allaqachon tushuntirilgani kabi, erb shablonlarni yaratish uchun ishlatiladi. Bu ko'pincha veb-sahifalarni yoki boshqa matnli fayllarni yaratish uchun ishlatiladi. Odatda chiqishni kerakli faylga surish uchun erb kerak. Bunga erishish uchun biz yo'naltirilgan yo'naltirish qobiliyatidan foydalanishimiz mumkin buyruq satri va chiqishni standart chiqishda bosib chiqarishni emas, balki faylga yo'naltiring.[3]

erb sample1.erb.txt> my_view.html.erb

Yuqoridagi misolda chiqish yo'naltirilgan bo'ladi my_view.html.erb fayl.

Uchinchi tomon kutubxonalarini bog'lashga -r parametridan foydalanish va kutubxona nomini berish orqali erishish mumkin. Ushbu funktsiyani eslab qolish uchun Ruby kalit so'zini eslab qolish mumkin talab qilish, -r opsiyasi bilan bir xil funktsiyani bajaradigan. Quyidagi misolda IPAddr kutubxona.

erb -r IPAddr sample1.txt.erb> my_view.html.erb

Biz haqida aytib o'tganimizdek xavfsizlik darajasi oldingi bobda -S opsiyasi yordamida xavfsizlik darajasini buyruq satri argumenti sifatida ko'rsatish mumkin[3]

erb -S 4 sample1.erb.txt> my_view.html.erb

erubislar

erubislar Ruby-da va shu bilan birga kiritilgan eRuby dasturidir Java. O'zining uy sahifasiga ko'ra, u eRuby va ERb dan tezroq ishlaydi va bir nechta foydali variantlarga, shu jumladan yaroqli yorliqlarni ishlatishga imkon beradi. XML.

kuydirgi

kuydirgi eRuby-ning sof Ruby dasturidir Linux. Bu eRuby shablonlarini disk raskadrovka qilishga imkon beradi, ularning moslashuvchanligini yaxshilaydi va kuchli stenografiya eRuby ko'rsatmalarini beradi.

Turli xil dastur teglarini taqqoslash

Quyidagi jadvalda yuqoridagi dasturlarning har birida mavjud teglar taqqoslangan[4][6][7]

Amaliyotlar
Oddiy ifoda yorlig'i
<%= %>
Oddiy ijro yorlig'i
<% %>
Oddiy izoh yorlig'i
<%#%>
Teg naqshini sozlash qobiliyatiTeglar uchun qisqa yozuv<%~ %><%+ %><%< ><%| >
erb
HaHaHaYo'qHa, <%xy%> sifatida yozilishi mumkin % xy.Yo'qYo'qYo'qYo'q
erubislar
HaHaHaHa, teg naqshini har qanday narsaga o'zgartirishi mumkin.

sobiq - [% %] va boshqalar.

Ha,

chunki teg naqshlarini o'zgartirish mumkin.

Yo'qYo'qYo'qYo'q
kuydirgi
HaHaHaYo'qHa, <%xy%> sifatida yozilishi mumkin % xy.Tegning mazmuni eRuby shabloni sifatida baholanadi.Tegning mazmuni Ruby kodi sifatida baholanadi va u o'qiladigan, baholanadigan va ko'rsatiladigan Ruby shablon fayliga yo'naltirilgan yo'l bo'lishi kutilmoqda.Xuddi shunday <%+ %> ammo fayl tarkibi shunchaki chiqishga ko'rsatiladi.Yopiq kodni Ruby kod bloki sifatida ko'rib chiqadi va (agar kerak bo'lsa) a qo'shimchasini qo'shadi qil yorliq tanasiga kalit so'z.

Shuningdek qarang

Adabiyotlar

  1. ^ a b v Jigarrang, Gregori (2009). Ruby eng yaxshi amaliyotlari. O'Rayli. pp.279 –281. ISBN  978-0596523008.
  2. ^ a b v S., Rubin; D., Tomas; Hansson D, Heinemeier (2011). Rails bilan tezkor veb-ishlab chiqish. Pragmatik dasturchilar. p. 35. ISBN  978-1-934356-54-8.
  3. ^ a b v d e Ellis, Styuart (2016 yil 1-iyul). "ERB shabloniga kirish". Olingan 12 sentyabr 2016.
  4. ^ a b v d "ERB". 2015 yil 23-fevral. Olingan 12 sentyabr 2016.
  5. ^ "ERB - Ruby Template". 2016. Olingan 12 sentyabr 2016.
  6. ^ "ember (1)". 2011 yil 29 iyun. Olingan 12 sentyabr 2016.
  7. ^ "Erubis". 2011. Olingan 12 sentyabr 2016.

Tashqi havolalar