Má tohle ekvivalent někde ve stardadních Railsech, případně pluginu?
def html_tag(name)
"<#{name}>" + yield + "</#{name}>"
end
def div_tag
html_tag('div') do
yield
end
end
Ukázka zpřehlednění kódu view
Chcete-li zobrazit větší část HTML kódu ve vaší šabloně jen za nějaké podmínky, můžete napsat
<% unless @messages.empty? %>
...html...
<% end %>
nebo
<% if_there_are_any_mesages do %>
...html...
<% end %>
a do helperu umístit jednoduché
def if_there_are_any_mesages
yield unless @messages.empty?
end
Velmi jednoduchý příklad, větší výhody přístup přináší, je-li logika podmínky komplikovanější. Již takhle ale výrazně přispívá k čitelnosti šablony, především pro neprogramátory.
Přihlašte se na evropskou Ruby konferenci
Pokud chcete být u toho a potkat a poslechnout si (nejen) evropské příznivce jazyka Ruby, vězte, že dnes byla otevřena registrace na EURUKO 2008!
Konference se koná v Praze a za symbolických 20 euro získáte nejen možnost vyslechnout si všechny přednášky, ale též nějaké ty dárečky. Já jsem neváhal, už se moc těším.
Zed Shaw vysvětluje svůj rant
Prerekvizita: Rails Is a Ghetto
Na světě je podcast se Zedem, ve kterém svůj rant rozvádí a komentuje. Ačkoliv neobsahuje nic zásadně překvapivého, stojí za poslech.
Mě osobně zaujaly následující věci:
Zed říká, že Rails komunita a Ruby komunita jsou teď tak promíchány, že nepozná, kdo je ve které (a popisuje to ve stylu, že je to problém). Aha a nebude to třeba tím, že Railsy jsou napsané v Ruby? Oddělování komunit za každou cenu mi přijde dětinské. V obou (když už je budu oddělovat) jsou velmi chytří a rozumní lidé, stejně jako naopak. Někteří Railsisté se považují bez důvodu za mistry světa a jiní "pravověrní" Rubyisté zas bez přemýšlení odsuzují všechno, co má jen zdánlivou souvislost s RoR. Hlupáci jsou prostě všude.
Ruby je prý skvělý jazyk, ale špatná platforma. Pomalá, špatně naimplementovaná. Což jsme víceméně vědeli, že? Potěšilo mě ale, jak Zed vynášel do nebes Rubinius (podcast s autorem). Tenhle projekt je opravdu velká naděje, že se Ruby stane z hračky nadšenců a tím-v-čem-jsou-napsané-Railsy skutečně široce používaným jazykem ve stylu dnešní Javy.
Metaprogramování by prý mělo jít pro libovolnou třídu zakázat, protože je pro některé korporátní programátory příliš nebezpečné. Tím si nejsem jistý, ale rozhodně souhlasím, že by se s ním mělo šetřit. Základní věci typu method_missing jsou v pohodě, ale jakmile se to začne přehánět a dělat neumětelsky, obrovsky to zvyšuje komplexitu a často nepřínáší nic zásadně pozitivního (aneb dá se to udělat jinak, možná to zabere o pár řádků víc, ale čitelnost se zvýší výrazně).
Java jsou tupé núžky..
..je odpověď Dava Thomase na nářky (které jsme diskutovali i u nás), že Ruby dovoluje programátorům příliš mnoho. Tím ale veškerá kontroverze končí, video, na které chci poukázat, již pak obsahuje jen vysoce zajímavé ukázky toho, co Ruby dokáže na poli metaprogramování a jak se toho využivá v Railsech. Hodinka strávená sledováním přednášky MetaProgramming - Extending Ruby for Fun and Profit podle mě promarněná určitě není.
A když už jsem v tom linkování, našel jsem zajímavý koncentrát článků o Ruby/Railsech jménem Ruby Galore (jenom separátní doména tzv. "blog komunity" SocialRanku, ale to je vedlejší). Kromě slavného a brzy ještě slavnějšího rantu Zeda Shawa jsem se moc daleko nedostal (snad jen: na projektu Rubinius pracuje teď pět lidí na full-time a navíc se jedná o špičky Ruby komunity!), ale kvalita výběru se zdá ucházející.