Alterator/ruby
ruby-alterator
Простейший бэкенд выглядит следующим образом:
#!/usr/bin/ruby -w
require 'alterator'
back = Alterator::Backend3.new
back.message_loop do |msg|
case msg[:action]
when "read"
back.write :name, "value"
end
end
Поддержка переводов
TBD
Вывод
Внутри message_loop сделано перенаправление STDOUT->STDERR. Все ответы должны выполняться только специальными командами.
Таблица соответствия alterator-sh-functions и ruby-alterator (back - экземпляр класса Alterator::Backend3):
alterator-sh-functions | Alterator::Backend3#write |
---|---|
write_string_param name "value" | back.write :name, "value" |
write_bool_param name true | back.write :name, true |
write_enum_item name "value" | back.write :name => "value" |
write_table_item name1 "value1" name2 "value2" | back.write nil, :name1 => "value1", :name2 => "value2" |
write_type_item name "value" | back.write :name, "value" |
write_error "message" | raise "message" (выполнение блока прерывается) |
write_nop | write |
Использование
В данный момент ruby-alterator нигде не используется.