golf

配列をユニークにしてその個数とともに返せ。
具体的には、["foo", "bar", "foo", "baz", "bar", "foo"] を、[ ["foo", 3], ["bar", 2], ["baz", 1] ] にする。


今から考える。


ハッシュ返すほうが inject 使って簡単にできそうだな。
["foo", "bar", "foo", "baz", "bar", "foo"] を {"foo" => 3, "bar" => 2, "baz" => 1} にする。


できた:

["foo", "bar", "foo", "baz", "bar", "foo"].inject({}){|r,e| r[e] = r[e].to_i + 1; r}

nil.to_i が 0 を返すことを期待しても良いものか。


追記:
ゆうきパゥワートラックバックがいっぱいなので、ちゃんとした答えを載せておきますね。

%w|foo bar foo baz bar foo|.inject(Hash.new 0){|r,e|r[e]+=1;r}.to_a

タグクラウドで文字の大きさ変えるとき考えてたんすよ。そんときゃ to_a 要らないけど。

Hyper Estraier

clear_index! は成功する(status:200)のに、reindex! が失敗する(status:401)。

401 : 認証情報がないか、間違っています。

かぁー。うーん


作り直したら行けた。そのあと fulltext_search のテストが通らなかったんだけど、キャッシュを無効にしたら通った。

/var/lib/hyperestraier/estmaster/_conf

# maximum size of the index cache (in mega bytes)
#cachesize: 64
cachesize: 0

# maximum number of cached records for document attributes
#cacheanum: 8192
cacheanum: 0

# maximum number of cached records for document texts
#cachetnum: 1024
cachetnum: 0

# maximum number of cached records for occurrence results
#cachernum: 256
cachernum: 0