Programming/Ruby

Rack-traffic-signalというgemを公開しました

Qiitaにも同じ記事を書いてます どんなgem? Ruby製Webアプリケーションにメンテナンスモードを導入するためのRackミドルウェアです。 ↓みたいなやつです。 特長 すでにメンテナンスモードを導入するためのgemにはrack-maintenanceなどがありますが、このrack…

モジュールの特異メソッドを上書きする、しかもローカル変数を使って。

Qiitaにも投稿してます→ http://qiita.com/k5trismegistus/items/872d94c19dfd5d54d263 TL;DR モジュールFooに定義した特異メソッドbarを上書きしたい場合は、 Foo.module_exec do define_singleton_method(:hoge) do 'overriden' endend とすればよい。また…

Google News API

昔はGoogle NewsにもAPIがあったらしいんだけど、今はDeprecatedになっている。しかしGoogle Newsには特定のキーワードでのニュース検索についてRSSがあり、これを利用することがでほぼAPIを使うのと同じ勢いでGoogle Newsを利用することができる。欲しい情…

伸縮自在の愛 (6)

前回の更新以後、Elasticsearch + Railsで詰まった+解決したポイントをいくつか。まず、検索は標準で10件しか結果が返ってこない。いちおうこのようにすると取得件数を増やすことができるんだけれども件数を増やせば増やすほど重くなるので避けたいところ。…

伸縮自在の愛 (4)

elasticsearchの使い方について調べると、英語の情報では英語の検索をする用の情報しか出てこない。一方で日本語の情報では日本語の検索をする用の情報ばかり。"世界"の"中心"の"日本人(ジャパニーズ)" 用のサービスであったとしても日本語と英語のコンテン…

伸縮自在の愛 (3.1)

これまでのまとめとして、ArticleとUserでelasticsearchに関する部分を取り出すとこんな感じになる。 チューニングして検索が「うまくいく」ようにしていく必要こそあれ、基本的にはこんなんで動いてしまう。しかーし、テストを書くのが大変なのである。

伸縮自在の愛 (3)

インデックスをはる準備ができたので、実際にインデックスを構築してみる。 いきなりだけども、こんな感じでクラスメソッドを実装した。まず、最初のbegin部分でインデックスを削除し、次の部分でマッピングを定義。前回定義したインデックス名前とセッティ…

伸縮自在の愛 (2)

elasticsearchが使えるようになった。次はインデックスを構築する。特定テーブル内の情報だけ検索できればいいなら簡単だけど、そんなイージーな事例はそうない。たとえば「ArticleはUserにbelongs_toで、Articleを所有しているユーザー名でも検索できるよう…

伸縮自在の愛 (1)

最近、バイト先でElasticsearchを触っている。今まで、「記事」をついているタグ別に表示する機能を実装するのにacts-as-taggable-onというGemを使ってきた。これはRailsでは定番のGemらしくて、 確かにこいつを使えばタグというもので想像される機能をほぼ…

うわあ・・・、これはTDDですね。なんだこれは・・・。たまげたなあ

Ruby on Railsで作られたとあるWEBサイトの運営に携わっているわけであるけれども、やはり趣味で作るプログラムなんかとは開発の流れが違う。いわゆるTDD(TDNじゃないよ。DBは出てくるけど)というやつだと思うんだけれども、「テスト」というのが開発サイ…