2013-03-06 1 views
2

Я хочу назвать некоторые библиотеки Ruby (обработка естественного языка) от Objective C (это приложение Mac OSX). Тем не менее я хотел бы сохранить большую часть программирования в Objective C, используя Ruby только для использования той конкретной библиотеки, которая находится в Ruby.Вызов классов/скриптов Ruby из Objective C - это MacRuby overkill?

Я посмотрел на MacRuby, и мне кажется, что я должен использовать синтаксис Ruby для всего приложения, в то время как я предпочел бы использовать ObjC по большей части и просто интерфейс с одним-двумя классами ruby.

Я понимаю, что я могу просто вызвать ruby ​​script из командной строки, но какая-то интеграция кажется гораздо более полезной.

Итак, вопрос в том, могу ли я достичь описанного выше потока с помощью MacRuby, или я должен изучить что-то еще?

+0

Являются ли эти библиотеки Ruby перенесены в MacRuby или MRI (что-то еще, чем MacRuby)? –

+0

нет, они просто Ruby, хорошо они используют RJB, поэтому там есть Java (если это имеет значение). – Stpn

+0

Вам необходимо перенести их в MacRuby, а затем, прежде чем сможете их использовать. –

ответ

4

Вы можете сделать это с помощью MacRuby, но я не думаю, что он принесет много преимуществ по сравнению с другими параметрами, если вам не нужно очень сильно взаимодействовать между двумя средами. MacRuby больше подходит для взаимодействия с миром Objective-C от Ruby, чем наоборот, но он позволяет вам свободно смешивать два языка в вашем проекте. Честно говоря, самый простой ответ - это просто использование системы Ruby. Если по какой-либо причине это непригодно, вы можете использовать Ruby C API для разговора с кодом Ruby. В программировании Ruby есть example of this.

+0

О, это действительно интересно. Спасибо! – Stpn

+0

не могли бы вы объяснить, что вы подразумеваете под «просто использованием системы Ruby» в моем случае? – Stpn

+0

@Stpn: Я имею в виду использование NSTask, который запускает/usr/bin/ruby ​​с нужной программой. Это вариант, который наименее эффективен, если он соответствует вашим потребностям. – Chuck

 Смежные вопросы

  • Нет связанных вопросов^_^