Ruby

勝手に添削をさらに勝手に書き直す

rubyneko - 知人のRubyコードを勝手に添削してみたを見て、個人的に気になったところを勝手に直してみた。かなり、個人的な好みなので、これがいいのかわからないけど。 require 'pp' #def functions def make_cluster(centroid, num_array) c = num_array.s…

いやなはまり方

今日は、rubyのバージョンではまった。あるバージョン(1.8.3ぐらい)だと、PStoreのfetchがデフォルトにした値を返さずに、nilを返してきていた。それで、nilであることを前提として、unlessとかで分岐書いていたら、別の環境(1.8.5)でちゃんと値返してきて動…

Threadにはまった?

なんか、仕事でいろんなファイルをwebからとってきて、いろいろdirにふりわけないといけなかったので、めんどうなので、Rubyでスレッドだと思ったんだけど、こんなん書いたらはまったくさい。 tlist = [] flist.each do | f | t = Thread.new(f){|url| `wget…

簡潔さは善だねぇ

ひさしぶりに、仕事でExcelいじるRuby書いた。スクリプトなので適当にdefで関数定義していたら、なんかfunc(操作対象(WIN32OLEのインスタンス),arg1,..)みたいな関数が多くなって、きもいなぁと思っていたら、これ特異メソッドでいいじゃんとやりなおしてみ…

今日のはまったところ

今日、Rubyで書いていてはまったところ、zip。さて、これはどうなるでしょう? i = [1,2,3].zip([4,5,6]){|a,b| a+b} 答えは、 p i => nil a.zip(b).map{|a,b| a+b}と同じだと思って、書いて失敗した。きっと、みんなはまってるよね。

今日のきもいよRubyさん

きもいといっても、僕があんまり使っていない機能を使おうとしたら、僕が思った動作をしなかったというだけですが。まずは、Arrayのdelete。配列の要素を削除して、それをjoinしようとして、 a.delete("").join(" ") とかやろうとしたんだけど、 NoMethodErr…

最近のRuby(rails)についていろいろいわれていることについて、ちゃんとさわってない人間が適当に書いてみる

最近、Railsの案件が炎上するだとか、そんな感じのエントリを読んで思ったことを、適当に書いてみる。Railsは生産性が高いと言われているのに、ちらほら炎上という話について。これは、ホントに僕はやったことが無いので、想像になるんだけど、まず、Railsは…

lambdaでyield

なんとなく、できないかなぁと思って、やってみたらできなかった。 irb(main):001:0> hoge =lambda{ yield(10) } => #<Proc:0x004dcdbc@(irb):1> irb(main):002:0> hoge.call{|v| puts v } LocalJumpError: no block given from (irb):1 from (irb):3:in `call' from (irb):3 lambdaで</proc:0x004dcdbc@(irb):1>…

applescript with Ruby

ふと昨日、itunesをRubyでいじりたいと思って、あえて、流行りのRubyCocoaではなく、applescriptをRubyでいじる方法を調べてみる。Rubyクックブックには、applescriptというラッパーを使うみたいに書いてあったんだけど、どうもrb-appscriptのほうがいいかん…

破壊的なのが苦手

なんか、Rubyで書いている時、破壊的メソッドつかうのに抵抗がある。必要であれば、使うんだけどさ。なんとか使わない方法を考えてしまう。今日、ある文字列を置換して出力するスクリプト書いていた。それsedで(ryとかいっちゃいけない。 置換しなきゃいけな…

call/ccかと

楽天との「友好関係」継続に懸念を覚える状況という、ニュースタイトルをみて、すぐにRubyが頭にでてきて、いろいろ妄想した僕は、どんだけアフォかと。

ブロック引き数で多重代入

会社でこう書けないかなと思っていたら、実は書けるということを家帰って気づいたというお話。ちょっとしたスクリプトを書く時に、Rangeクラス使って配列作って、zipでゴニョゴニョやるというのをよくやるんですけど、今まで ((1..10).to_a.zip( (1..10).to_…