JRuby & BOOKMATE

Кто я такой и что делаю на раёне

Alexey Nikitin @tank_bohr

senior software engineer at bookmate (aka старший заднеконцевик)

Что такое JRuby

Почему JRuby

Используем джаву из руби

require 'java'

java_import java.util.HashMap
java_import java.util.Map

require_relative './essosdk.jar'

java_import com.ufinity.daytona.client.sdk.SDKConst
java_import com.ufinity.sso.api.client.SSOCallClientConfig
java_import com.ufinity.sso.api.client.SSOCallClient
java_import com.ufinity.sso.api.common.LogUtil
java_import com.ufinity.sso.api.common.SSOCall
java_import com.ufinity.sso.api.common.SSOCallResult

client = SSOCallClient.new()
call = SSOCall.new()
call.set_function('func') # alias for `setFunction`
call.acive?               # alias for `isActive`

Интеграция со Starhub'ом

Нахождение похожих книг

SMPP-клиент

ruby-smpp cloudhopper-smpp
- плохо поддерживается + активно поддерживается
- неплоностью реализует протокол + полностью реализует протокол
- плохо написана + хорошо покрыта тестами
- не поддерживает русскую кодировку + поддерживает все кодировки
+ поверх EventMachine + поверх netty
- не работает на последних версиях ruby + используется Twitter'ом
+ написана на ruby - плохо документирована

Недостатки

Java - зависимости

Куда девать зависимости?

  1. Простой путь. Положить jar'ку в репозиторий
  2. Путь rjack. Хитроумная смесь rake-задач и maven-плагинов
  3. Путь clojure. Полная мимикрия под maven-пакет

Конец

Twitter: @tank_bohr


http://tank-bohr.github.io/jruby_talk/

/