• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Ruby In Xpages

  • Автор темы turumbay
  • Дата начала
T

turumbay

На OpenNTF появился новый проект: . Автор проекта

Как можно догадаться, цель проекта - дать разработчику возможность использовать Ruby для написания серверных скриптов (наряду со штатным SSJS).
Пример:<!--shcode--><pre><code class='XML'><?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns="http://www.ibm.com/xsp/core">
<xp:text value="#{ruby:Time.now.year}"/>
</xp:view>[/CODE]Реализация основана на JSR 223: к рантайму JSF подключается JRuby, который и исполняет код.
Фичи:
  • Поддерживаются немедленное/отложенное выполнение ( ${expression}, #{expression} ), в том числе, отложенный вызов методов (т.н. defferd method expression)
  • Позволяет создавать/использовать "Ruby Script Library". На текущий момент они должны лежать в папке WEB-INF/ruby. Либа подключается на страницу как обычный скрипт, но с атрибутом type="text/ruby" : <xp:script src="/somelibrary.rb" type="text/ruby" clientSide="false" />
  • Код может обращаться к "session", "database" и любым другим переменным, доступным через SSJS.
  • В комплекте идет небольшая библиотека - обертка для NotesDocumentCollection и NotesDocument, позволяющая итерировать коллекции документов привычным рубистам образом ( т.е. docs.each { |doc| ... } ) и использовать аналог LS-ного расширенного синтаксиса для доступа к полям документа ( doc["Form"] )
  • Заложена базовая поддержка других скриптовых языков: если раскомментировать код в frostillicus/ScriptingViewHandler.java, то появится поддержка остальных JSR-223-совместимых языков( например #{ :...}, или #{ :...} ). Работоспособность таких языков фактически не тестировалась, пример использования можно посмотреть в
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!