Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rabbit on Sinatra

Rabbit on Sinatra

Rabbit( http://rabbit-shocker.org/ )をSinatraで動かした話。勉強会@Sinatra札幌( http://sinatra-sapporo.doorkeeper.jp/events/6626 )の発表資料です。

Masafumi Yokoyama

November 24, 2013
Tweet

More Decks by Masafumi Yokoyama

Other Decks in Programming

Transcript

  1. Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 Rabbit

    on Sinatra プレゼン用PDF作成ツールrab2pdf 横山昌史 Rabbitショッカー 勉強会@Sinatra札幌 2013/11/24
  2. Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 自己紹介

    ソフトウェア開発者 Webアプリの主戦場はSinatra Rabbitショッカー 札幌でRabbitを使っている Rabbitコミッター 札幌でRabbitにコミットしている
  3. Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 札幌市中央区Ruby会議01

    2014年2月8日(土) 札幌市中央区Ruby会議01 2014年2月8日(土)
  4. Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 Rabbitとは

    Rubyで書かれたプログラマー 向けのプレゼンテーションツール
  5. Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 Rabbitの特徴

    文章はテキストで記述 RD、Wiki、Markdownなど 装飾(テーマ)はRubyで記述 RubyGemsで簡単に追加 バージョン管理しやすい
  6. Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 昨日機能

    が 豊富 キーバインドの一部 一覧 情報 メニュー i(小文字) I(大文字) 右クリック http://rabbit-shocker.org/ja/sample/rd/rabbit.html
  7. Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 rab2pdfとは

    Webアプリケーション RabbitのPDF生成機能を活用 テキストからプレゼン用PDFを作成
  8. Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 サーバーの仕事

    Rabbitはインストール済み リクエストはSinatraで処理 SinatraからRabbitを実行 PDFを生成
  9. Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 余談

    RabbitはGUIアプリケーションです が、GUI環境がなくても動くように工 夫されています。 なので、Webアプリケーションのバッ クグラウンドとしても使うことができ ます。
  10. Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 作り方

    テキストを書く 1. rab2pdfに送信 2. PDFをダウンロード 3.
  11. Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 1.

    テキストを書く 現在はRD形式のみ対応 RabbitはWikiやMarkdownに対応 rab2pdfでも対応したい
  12. Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 2.

    rab2pdfに送信 普通のフォーム 普通のテキストエリア 普通の送信ボタン
  13. Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 3.

    PDFをダウンロード ダウンロードリンクが表示される PDFはしばらくサーバーに残る
  14. Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 隠し機能

    Gitリポジトリ指定機能 ローカルテーマや画像に対応 http://myokoym.net/rab2pdf/git?url=https://github.com/user/repo
  15. Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 使えるテーマ

    Rabbit組み込みのテーマ RubyGems.orgに 公開されているテーマ
  16. Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 ソースコード

    オープンソース(GPLv2+) GitHubで公開 https://github.com/myokoym/rab2pdf
  17. Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 トップページ

    get "/" do @params ||= {} @params[:source] = slide_source haml :index end
  18. Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 slide_source

    = TITLE : author Your Name : date #{Time.now.strftime("%Y/%m/%d")} = FIRST SLIDE * ITEM 1 * ITEM 2
  19. Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 フォーム(Haml)

    %form{:action => url("/convert", false, true), :method => "post"} %p %textarea{:name => "source", :cols => 50, :rows => 10}= @params[:source] %p %input{:type => "text", :name => "filename", :size => 30, :value => @params[:filename]} %p %input{:type => "submit"}
  20. Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 PDF生成

    post "/convert" do @download_url = convert(params[:source], params[:filename]) @params = params haml :index end
  21. Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 Rabbit.run

    def convert(source, filename) ... Tempfile.open(["rab2pdf", ".rab"]) do |tempfile| tempfile.puts(source) tempfile.flush Rabbit::Command::Rabbit.run("--print", "--output-filename", pdf_path, tempfile.path) end ... end
  22. Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 Thank

    you rab2pdfはあくまで入門用&緊急用 のツールなので、機能が少ないで す。可能ならRabbitをインストールし て使うことをおすすめします。 :-) http://rabbit-shocker.org/