Интерпретация / рендеринг вывода от put () как HTML - PullRequest
2 голосов
/ 09 июня 2011

Когда я запускаю свой скрипт ruby, я хочу, чтобы вывод был представлен как HTML , предпочтительно с помощью браузера (например, Chrome). Однако я бы очень предпочел, чтобы мне не нужно было запускать веб-сервис, потому что я не создаю сайт. Я пробовал sinatra, и проблема с ним в том, что мне приходится перезагружать сервер каждый раз, когда я делаю изменения в своем коде, плюс он содержит запросы (например, GET / POST-аргументы), которые мне на самом деле не нужны .

Я просто предпочитаю, чтобы выходные данные из моей программы на Ruby отображались как HTML, а не как текст консоли - поскольку html обеспечивает более творческий / выразительный вывод. Есть ли хороший / простой / эффективный способ сделать это? (Я использую notepad ++ для редактирования своего кода, поэтому, если это возможно как-то совместить с ним, это было бы здорово).

Большое спасибо:)

1 Ответ

1 голос
/ 09 июня 2011

Используя gem shotgun, вы можете запустить приложение Sinatra, которое автоматически перезагружает изменения без перезагрузки сервера.

В качестве альтернативы, используя библиотеку типа awesome_print, которая имеет форматирование HTML, вы можете написать функцию, которая принимает выходные данные и сохраняет их в файл. Затем откройте файл в Chrome.

Если вы не хотите вручную обновлять страницу в Chrome, вы можете взглянуть на guard-livereload (https://github.com/guard/guard-livereload)), который будет отслеживать данный файл с помощью гема guard и перезагрузить Chrome. Райан Бейтс скриншот здесь, http://railscasts.com/episodes/264-guard.

Вот функция, которая переопределяет Kernel #, чтобы напечатать строку в STDOUT и записать ее версию в формате HTML в output.html.

require 'awesome_print'

module Kernel
    alias :old_puts :puts
    def puts(string)
        old_puts string
        File.open("output.html", "w") do |file|
            file.puts string.ai(:html => true)
        end
    end
end

puts "test"
...