Привязка Ruby для серверной стороны механизм JavaScript?

для C# 3.5

без notifyicon поэтому необходимо будет завершить это приложение в диспетчере задач вручную

using System;
using System.Drawing;
using System.Windows.Forms;

static class Program
{
    static void Main()
    {
        Timer timer = new Timer();
        // timer.Interval = 4 minutes
        timer.Interval = (int)(TimeSpan.TicksPerMinute * 4 / TimeSpan.TicksPerMillisecond);
        timer.Tick += (sender, args) => { Cursor.Position = new Point(Cursor.Position.X + 1, Cursor.Position.Y + 1); };
        timer.Start();
        Application.Run();
    }
}
6
задан julien 24 November 2009 в 17:07
поделиться

3 ответа

Ruby Racer сейчас вышла из пре-альфа и колеблется где-то между альфа и бета. Теперь он поддерживает:

  • вызов кода ruby ​​из javascript
  • вызов функций javascript из ruby ​​
  • встраивание объектов ruby ​​в область видимости javascript.
  • позволяя рубиновым объектам быть вашей областью видимости javascript
9
ответ дан 8 December 2019 в 13:00
поделиться

Взгляните на Рубиновый носорог . Он использует jruby и rhino для встраивания javascript в вашу среду ruby. Среди прочего, он поддерживает безопасную оценку, вызов функций Ruby из javascript и наоборот (функции javascript из ruby)

Существует также «Ruby Racer», который встраивает v8 в MRI. Это все еще предварительная альфа-фаза, но я надеюсь, что когда-нибудь в марте следующего года у меня появится пригодная для использования версия

. Другой известный мне движок - Snarl, который также использует jruby и rhino с аналогичным эффектом.

2
ответ дан 8 December 2019 в 13:00
поделиться
  • Johnson - это RubyGem, который превращает движок JavaScript Mozilla SpiderMonkey в расширение MRI C и обеспечивает очень глубокую интеграцию между Ruby и JavaScript,
  • существует форк Johnson , который заменяет движок SpiderMonkey движком Mozilla TraceMonkey, а
  • Lyndon похож на Johnson, но с JavaScriptCore вместо SpiderMonkey и MacRuby вместо MRI.

Думаю, я также помню кого-то, кто работал над внедрением V8 с МРТ, но я не могу найти ссылку прямо сейчас.

Основная проблема с Джонсоном заключается в том, что МРТ - это невероятно дрянная языковая реализация, которая пропускает память слева и справа, и единственная языковая реализация в мире, которая могла бы быть еще хуже - SpiderMonkey. Таким образом, список TODO в репозитории Johnson Git не t точно внушают доверие; он содержит только один элемент, и я цитирую буквально:

Хватит долбить segfaulting.

Lyndon построен на гораздо лучшем фундаменте, но, очевидно, требует запуска OSX на сервере. Кроме того, MacRuby еще не выпущен.

Я думаю, что JRuby + Rhino, вероятно, самый стабильный вариант, хотя вам придется самостоятельно построить интеграцию: это всего лишь две независимые языковые реализации, которые находятся на одной виртуальной машине. , но между ними нет интеграции.

Другой подход к проблеме - RKelly , который представляет собой синтаксический анализатор JavaScript и механизм выполнения, написанный на Ruby.

В качестве альтернативы вы можете попытаться приблизиться к проблема с другой стороны: вместо того, чтобы хранить логику вашего приложения в JavaScript и запускать ее как на клиенте, так и на сервере, вы можете сохранить логику своего приложения в Ruby и запускать ее на сервере и на клиенте: существует несколько компиляторов, которые могут компилировать (подмножество) Ruby в JavaScript. Один из них - RubyJS . (Существует также HotRuby , интерпретатор байт-кода YARV, написанный на JavaScript, но это, скорее всего, будет огромным излишеством для того, что вы делаете.)

И последнее, но не менее важное: вы могли бы делать то, что Rails изначально это было сделано с помощью их помощников JavaScript: вы не определяете свою логику ни в Ruby, ни в JavaScript, вместо этого вы определяете ее один раз во внутреннем Ruby DSL и генерируете как Ruby , так и ] Логика JavaScript из этого.

есть пара компиляторов, которые могут скомпилировать (подмножество) Ruby в JavaScript. Один из них - RubyJS . (Существует также HotRuby , интерпретатор байт-кода YARV, написанный на JavaScript, но это, скорее всего, будет огромным излишеством для того, что вы делаете.)

И последнее, но не менее важное: вы могли бы делать то, что Rails изначально это было сделано с помощью их помощников JavaScript: вы не определяете свою логику ни в Ruby, ни в JavaScript, вместо этого вы определяете ее один раз во внутреннем Ruby DSL и генерируете как Ruby , так и ] Логика JavaScript из этого.

есть пара компиляторов, которые могут скомпилировать (подмножество) Ruby в JavaScript. Один из них - RubyJS . (Существует также HotRuby , интерпретатор байт-кода YARV, написанный на JavaScript, но это, скорее всего, будет огромным излишеством для того, что вы делаете.)

И последнее, но не менее важное: вы могли бы делать то, что Rails изначально это было сделано с помощью их помощников JavaScript: вы не определяете свою логику ни в Ruby, ни в JavaScript, вместо этого вы определяете ее один раз во внутреннем Ruby DSL и генерируете как Ruby , так и ] Логика JavaScript из этого.

7
ответ дан 8 December 2019 в 13:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: