Ruby na Ruby

Czy da się w działającej aplikacji rails wykonać skrypt rubiego który został przesłany poprzez formularz z przeglądarki z wyłączeniem pewnych bibliotek i funkcji?

Teoretycznie da się bo jest eval (class_eval, instance_eval) ale nie jest to dobry pomysł (bezpieczeństwo). Nie możesz prosto wyłączyć pewnych funkcji. Napisz lepiej co dokładnie próbujesz osiągnąć.

Chcę dać użytkownikom możliwość pisania czegoś w rodzaju makr. Czyli:
-Mogą pobrać dane z bazy
-Mogą je przetworzyć
-A potem zwrócić w formie jakiej sobie to wybiorą

Auuaaaa.

Masz trzy możliwości zasadniczo:

  • napisanie własnego języka, a co za tym idzie parsera, dokumentacji itp. itd.
  • kod Ruby plus przygotowanie porządnego sandboxa do ich uruchamiania
  • kod Ruby plus (długotrwałe, podatne na błędy i przypadki brzegowe) stripowanie ze wszystkich “niebezpiecznych” wywołań – cała klasa File itp. itd.

A żadna z tych możliwości nie adresuje problemu dostępu do wyłącznie-własnych danych… (czyli musisz odebrać też możliwość łączenia z bazą / korzystanie z AR na rzecz udostępnienia jakiegoś API do “własnych” zasobów)

Na githubie leżał moduł sandboxa dla Rubyego, ale nie mam pojęcia jakiej jakości to było, bo trafiłem na toto przez zupełny przypadek.

Jak tyle zachodu z tym jest to postanowiłem wykorzystać liquida: http://www.liquidmarkup.org/ Co prawda jest to język do szablonów ale powywala się to i owo i powinno starczyć. Dzięki za pomoc.

Jesli juz jestes w okolicach “jezyka” do szablonow to http://radius.rubyforge.org wydaje mi sie prostszy do rozbudowy i chyba latwiej Ci pojdzie z reszta.