Löysin artikkelin, jossa kerrotaan hiukan tuon toteutuksesta. Merb
todellakin käyttää Abstraktia syntaksipuuta (AST). Kun actionia
kutsutaan, niin silloin Merb kurkkaa AST:hen ja katsoo funktion
parametrien nimet, jotka normaalisti ei ole näkyvissä Ruby-koodille
funktiota kutsuttaessa.
Jos esim. URI on http://example.com/kontrolleri/aktiooni/10?foo=bar
class Kontrolleri < Merb::Controller
def aktiooni(id, foo = "")
# todo
end
end
Tällöin aktiooni-funktiota kutsutaan: aktiooni(10, "bar")
Ja koska AST on käyttöjärjestelmä tai jopa toteutuskohtainen, niin tuo
ominaisuus on käytössä niillä alustoilla, joilla AST:sta saadaan tieto
ulos. Jos tähän tarvittavia kirjastoja ei ole koneelle asennettu /
olemassa, niin Merb ei käytä tuota ominaisuutta.
Lähde:
http://www.infoq.com/news/2008/02/using-parsetree
- Pekka
Tietenkään parametreja ei tarkasteta abstraktista syntaksipuusta, vaan
syntaksipuusta eli abstraktin syntaksipuun instanssista.
- Pekka
2008/7/15 Pekka Mattila <pekka....@gmail.com>:
--
- Pekka