ラベル Ruby の投稿を表示しています。 すべての投稿を表示
ラベル Ruby の投稿を表示しています。 すべての投稿を表示

2013/06/21

FasterCSVでヘッダがあるときの落とし穴

RubyのライブラリFasterCSVを使用時。
パース時のオプションに
:headers => true
を渡してあげるとヘッダ行を読み飛ばしてくれるが
パース後のrowは配列ではなくrowオブジェクトになってしまう。
require 'fastercsv'
opts = {....}
opts[:headers]=true
FasterCSV.parse(opts) {|row|
  ....
}
row["ヘッダ項目"]のようにアクセスできるので便利なこともあるが
ヘッダがない場合と同様に扱いたいときは
row.fields
で、単純な配列でとりだせる。

2013/05/17

Ruby Gem scrubyt "cannot load such file -- mkmf (LoadError)"

Rubyのスクレイパscrubytをインストールしようとしたらエラー。
環境はRuby 1.9.3 / Ubuntu 13.04。
$ sudo gem install scrubyt

ERROR:  Error installing scrubyt:
ERROR: Failed to build gem native extension.
        /usr/bin/ruby1.9.1 extconf.rb
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from extconf.rb:1:in `<main>'

mkmfがないといわれてる。
$ apt-cache search mkmf
ruby-dev - Header files for compiling extension modules for Ruby (default version)
ruby1.8-dev - Header files for compiling extension modules for the Ruby 1.8
ruby1.9.1-dev - Header files for compiling extension modules for the Ruby 1.9.1
ruby-mkrf - Ruby library generating Rakefiles to build C extensions to Ruby
いれてみる。
 $ sudo apt-get install ruby-dev
再チャレンジ。
$ sudo gem install scrubyt
ERROR:  Error installing scrubyt:
ERROR: Failed to build gem native extension.
        /usr/bin/ruby1.9.1 extconf.rb
checking for libxml/parser.h... no
-----
libxml2 is missing.  please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies.
-----
*** extconf.rb failed *** 
Oooops。。
案外多かったので割愛しますが
怒られた順に以下のものを入れていったらインストール成功
$ sudo apt-get install libxml2-dev
$ sudo apt-get install libxslt-dev
$ sudo apt-get install g++


Related Posts Plugin for WordPress, Blogger...