Rubyの機械学習用ライブラリai4rをRailsのActiveRecordで使えるようにするためのcabalistを試してみた。
結論
Railsの世界で2年前のものは大昔のものですよねー、という直感が正しかった。
依存しているlibraly(leveldb?)のbindingが読み出せない。
ので、諦めました。
やったこと
一応何をしたかを書いておく。
brew install leveldb
Gemfileに追記
gem 'cabalist'
$ bundle install
cabalist (master) $ be rspec spec/cabalist/
Resolving dependencies...
Bundler can't satisfy your Gemfile's dependencies.
Install missing gems with `bundle install`.
Fetching gem metadata from http://rubygems.org/.........
Fetching gem metadata from http://rubygems.org/..
Resolving dependencies...
Using rake (10.1.0)
...
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.
モデル書いてrake:migrateやっても、うまくいかないので、オリジナルをcloneしてrspecを走らせる
$ git clone https://github.com/marcinwyszynski/cabalist.git
$ cd cabalist
$ bundle exec rspec spec/cabalist/
Resolving dependencies...
The Gemfile's dependencies are satisfied
dyld: lazy symbol binding failed: Symbol not found: __ZN6snappy19MaxCompressedLengthEm
Referenced from: /Users/michiaki-ariga/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/leveldb-ruby-0.15/lib/leveldb/leveldb.bundle
Expected in: flat namespace
dyld: Symbol not found: __ZN6snappy19MaxCompressedLengthEm
Referenced from: /Users/michiaki-ariga/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/leveldb-ruby-0.15/lib/leveldb/leveldb.bundle
Expected in: flat namespace
Trace/BPT trap: 5
P427@michiaki-ariga:cabalist (master) $ bundle exec rspec spec/cabalist/
dyld: lazy symbol binding failed: Symbol not found: __ZN6snappy19MaxCompressedLengthEm
Referenced from: /Users/michiaki-ariga/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/leveldb-ruby-0.15/lib/leveldb/leveldb.bundle
Expected in: flat namespace
dyld: Symbol not found: __ZN6snappy19MaxCompressedLengthEm
Referenced from: /Users/michiaki-ariga/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/leveldb-ruby-0.15/lib/leveldb/leveldb.bundle
Expected in: flat namespace
Trace/BPT trap: 5
う…bindingがうまくいかんやつだ…
諦めよう…