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でクラウド上に保存すればデータベースドライバが不要だ!
- RDBMSを使う
あとは、コンパイル済みのものを含めてアプリ全体をパッケージ化するとかでしょうか (ExerbとかOcraとかの方向)。