ruby
大量のログデータの処理の前段階として、fluentプラグインで処理させるときのこと。 fluentプラグインのテストはTest::Unitで書くのが主流なようで、Test::Unitを書いている。 ただ、プラグインは大量のデータを処理するので、テストケースの量も多くなって…
普段、Ruby(RailsやSinatraといったWAFにおける)のコードレビューするときに、 こういった事を念頭においてレビューする、というものが自分の中だけで閉じている気がしているので、 文章にしてリスト化しておくことでコードレビュー時に、自分自身も漏れが少…
Vimスクリプトを書いた。 https://github.com/yoppi/config/blob/master/vim/dot.vim/ftplugin/ruby/tag.vim プログラミングしているときに、実装を知りたいときがよくあるので、Vimで素早くタグジャンプできるようにした。 ただ、 手動でtagsファイルを生成…
というgemを作った。 http://github.com/yoppi/redisable RubyオブジェクトをRedisとマッピングさせる既存の有名なライブラリに、 redis-objects(https://github.com/nateware/redis-objects) ohm(https://github.com/soveran/ohm) の2つがあるけど、次の欲…
TestDoubleライブラリをrr(Double Ruby)からRSpec標準のRSpecMocksに切り替えてるのだけど、やっぱり違和感がある。 rrはTestDoubleの考えをそのままライブラリ化した実装で、xUnit Test Patternsを熟読した人にとって馴染み易いと思う。 だけど、RSpec Mock…
にはまったというお話。 class Hash def method_missing(method, *args) ret = self[method] || self[method.to_s] return ret if ret super end end h = {root: {hoge: 1, foo: 2}, entries: [{hoge: 3, foo: 4}, {hoge: 5, foo: 6}]} h.entries #=> [[root…
勉強会で話していて3回くらい「どこからRubyやRailsの情報を仕入れてますか」のような質問をされたので、 自分はどうやって情報収集してるんだろうとふと考えてみると、 Rails Casts(pro購読するのおすすめ) http://railscasts.com/ Ruby Weekly(メールで定…
__dir__は地味に嬉しい。今までどうしてたかというと、File.dirname(File.expand_path(__FILE__)のように書いてた defaultがUTF-8になったので、マジックコメント書かなくて良いのほんと助かる... いわずもがなな Enumerable#lazy refinementはこれからな感…
自宅のMacOS X Lionだと、最新のImageMagickとlibtiffの組み合わせでrmagickをビルドできない問題に遭遇しました。 $ brew install imagemagick $ gem install rmagick ... imagemagickを6.7.1-1に、libtiffも3.9.5に落とすとビルドできます。 $ brew unlink…
Redis使いたかったというのもあるけど、memcachedより性能が良いの(http://antirez.com/post/redis-memcached-benchmark.html/)でその試験というのも兼ねて。https://github.com/yoppi/redis-session-storeすでに他の人が書いてたのだけど、Rails3で動かなか…
同僚がアンダースコアを変数名として使って、他の人に直されてコミットログで指摘されたと愚痴をこぼしていたので、他の人はどうだろうとふと思った。 僕がRuby語を書いてる時、変数名にアンダースコアを使うときは Hash等、Enumerableなものでブロック内で…
gemを開発しているとrubygemsに登録したりと何かと細かい作業が発生するのでjewelerに任せているのですが、最近gitflowを使って開発していることから、その作業の流れを紹介します。bugfixやfeaturesの開発はgitflowに任せて開発します。僕は基本的にgithub…
以前は頻繁に更新があったRuby Insideですが最近めっきり更新されてなくて、収束しちゃうんじゃないかと心配していました。先日久しぶりの更新があり、3月のRuby界、Rails界についてのまとめ記事があがってたので、気になった記事をメモしています。 トップ…
RSpecでアプリケーションの終了ステータスをテストしたい時があります。Rubyアプリケーションで、exit(Kernel::exit, Process::exit)が呼ばれるとSystemExit例外が発生します。riからexitの挙動のコードを抜粋すると、 begin exit puts "never get here" res…
RSpecでたとえば例外のテストコードを書くとして、 it "should raise CommandError in unknown command" do lambda { LocalPort.command.find("foo") }.should raise_error( LocalPort::CommandError, "foo" ) end このlambda {...}.shouldは読み手からした…
Ruby Advent Calendar 2011 16日目の記事です。 Webアプリの画面テストにはやはりその利便性からSeleniumを使うことが多いだろう。 ちょっとした変更でも問題ないと高をくくっていても、リリース後にリンクやボタンをクリックした途端に500や404が発生した日…
Pryという新しいREPLツールがとっても便利だ。 詳しい使い方は、Wikiを読めばだいたいわかる。 Railsコンソールでもこの便利なPryを使うには、Using Pry instead of IRB for Rails' consoleで紹介されているように、config/initializers/pry.rbに次のよう に…
最近MacBookにPassengerの環境を作ろうとして、gem経由でインストールするとfastthreadというgemがインストールされたので、気になったのでなんだろうとコードを読んでみた。 どうやら標準添付ライブラリ(thread.rb)で提供されているQueueやSizedQueueをその…
今のプロジェクトでは、データベースのmigrateツールを自作しており、MySQLとのインタフェースにはruby-mysqlを使用している。 しかし、最近、migrateツールを起動すると途中でprotocol errorが発生するようになった。 追いかけていくと、特定のSQL文を発行…
RMagickはImageMagickをRubyから触るためのbindingです.すこし触ってみて,日本語の描画がなかなか盲点だったのでメモとして残しておきます. RMagickのインストール ImageMagickを先にインストールします.MacPortsを使えば, % sudo port install imagema…
resolv.rbのDNSスプーフィング脆弱性 - Rubyに複数の惰弱性 Rubyのresolv.rbにKaminsky Flawの影響があるそうです.Kaminsky Flawって何それおいしいの?という人はAn Illustrated Guide to the Kaminsky DNS Vulnerabilityを読んでみてください.非常にわか…
エラトステネス 素数のルックアップテーブル版です.まったくRubyぽくないソースだ. erato.rb@github > ruby erato.rb true 0.860000 0.400000 1.260000 ( 1.255251) user system total real git! git! ギットギトにされてるのです.gitかわいいよgit. git…
集合知プログラミング作者: Toby Segaran,當山仁健,鴨澤眞夫出版社/メーカー: オライリージャパン発売日: 2008/07/25メディア: 大型本購入: 80人 クリック: 2,024回この商品を含むブログ (263件) を見る 売り切れ必死かと思いきや,運良く梅田のジュンク堂に…
rb-rubygemsをMacPortsからインストールすると以下のエラーがでてインストールできない.これは困った. % sudo port install rb-rubygems Password: ---> Configuring rb-rubygems ---> Building rb-rubygems with target setup ---> Staging rb-rubygems i…