ruby

libpasoriをRubyから使う

やったこと libpasoriを共有ライブラリにする mig-ration: libpasori の共有ライブラリ化 RubyのDLを勉強 mig-ration: Ruby で PaSoRi 使ってみる http://ttsky.net/ruby/ruby-dl.html プログラミング言語 Ruby リファレンスマニュアル

restなクライアント

仕事で必要になってNetwork Facadeとrest-clientを試す。Network Facadeはちょっと分かりづらかったのでrest-clientで落ち着く。 master = RestClient::Resource.new("http://localhost:3000/locations") # リソースをGET rawdata = master.get # XmlSimple…

シャッフル

via http://glu.ttono.us/articles/2007/03/20/snippet-shuffle-an-array a = (1..10).to_a >> a = (1..10).to_a => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >> a.sort { rand(3) - 1 } => [6, 8, 1, 4, 5, 9, 7, 2, 3, 10] >> a.sort { rand(3) - 1 } => [4, 10, …

Beautiful Code: The evolution of an iterator – Signal v. Noise SvNでは珍しくプログラミングネタ。Jamisの書いたコードがDHHのアドバイスで変化していく話。 DHHはKent Beckの本でコンスタントをメソッドとして使うみたいな事を読んだらしい。 Smalltalk…

hashのupdate

既存のものは上書きせず、新しいものだけを更新する。 irb(main):001:0> a = {'a' => 1, 'b' => 2} => {"a"=>1, "b"=>2} irb(main):002:0> a.update({'b' => 999, 'c' => 3}) {|key, old, new| old} => {"a"=>1, "b"=>2, "c"=>3}hikiのconfig.rbから。

Hpricot

Lessons from Hpricot なかなか面白いです。 require 'rubygems' require 'hpricot' class Hash def /(key) self[key] end end people = {:top => {:name => "John Doe"}} p people/:top/:name > "John Doe" さらにこんな具合に class Array def /(key) self…

oneliner

rubyでのonelinerのやり方。 $ ruby -e "(0x20..0x7e).each {|i| print i.chr, ' '}" ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p…

commercial date

というものを知りませんでした。 require 'date' d = Date.commercial 2006, 23, 1 puts d # 2006-06-05第2引数はその年の何週目 第3引数は曜日:1が月曜で7が日曜

MethodFinder

http://redhanded.hobix.com/inspect/stickItInYourIrbrcMethodfinder.html SmalltalkにあるMethodFinderをrubyにも使おうという記事。最初、ここにある例の通りにやっても全然動かなくて、ちょっと困りました。 "foo".what?("bar") "foobar" #例 "foo".what…

XPathを使ってみる

XPathとかって存在は知ってても使ったことが無かったので使ってみる。 Amazonのwsdlをとってきて、OperationをXPathでmatchして並べる。 require 'open-uri' require 'rexml/document' uri = "http://webservices.amazon.com/AWSECommerceService/AWSECommer…