トップ «前の日記(2010-10-30) 最新 次の日記(2010-11-08)» 編集

Route 477



2010-10-31

[ruby] Re: Sinatra 1.1 出た (拡張ライブラリについて)

RDBMSを使おうとすると絶対に拡張ライブラリが必要になる。そこだけバイナリパッケージをインストールしてもらえばいいのだが、手順が一つ増えるので、自社で使う分には全然問題ないのだが、お客さんのところにインストールしてもらうときにはこの手順をなくしたい

[Sinatra 1.1 出た - 射撃しつつ前転より引用]

シチュエーションがよく分からないけど、拡張ライブラリなしでSinatraアプリを書く方法を考えてみる。

  • Ruby本体 : Rubyはインストールできるらしいのでパス。
  • Sinatra本体 : Pure RubyなのでOK。
  • データベース
    • RDBMSを使う
      • SQLite : ruby-sqlite3が拡張ライブラリだからという話なら、Pure RubyのSQLiteラッパーを誰か作ってたような気がする。crateの人かな? (ActiveRecordから使えるかは不明) → と思ったらamalgaliteは「SQLite本体が不要なRuby用C拡張」だった。
      • MySQLとか : Pure RubyのMySQLアダプタは聞いたことがない。ruby-ffiで頑張って実装することは可能だろうけど (そもそもMySQLのインストールはOKなのだろうか)
    • RDBMS以外を使う
      • 標準添付のPStoreとか。RDBじゃなくてKey-value Storeだが。類似解として、YAMLやCSVで保存するとか。
    • 使わない
      • Net::HTTPでクラウド上に保存すればデータベースドライバが不要だ!

あとは、コンパイル済みのものを含めてアプリ全体をパッケージ化するとかでしょうか (ExerbとかOcraとかの方向)。