ruby

RubyGemsをダウングレードする 

何回か同じこと繰り返してるのでここに書いておきます。Rails 2.3.5で運用しているプロジェクトがあります。(諸事情により) 最近のバージョンのRubyGemsでrakeを実行すると、 uninitialized constant ActiveSupport::Dependencies::Mutexが出たりします。 …

youRoomのAPIを使ってみた

youRoomのAPIを使ってなにかしてみたいと思いました。 APIを使うには申し込みが必要です。申し込みはここからできました。youRoom APIをベータユーザ向けに限定公開します!そうすると、Consumer KeyとConsumer Secretをすぐに発行してもらえます。発行して…

モデルのバリデーションのテストをダラダラ書きたくない

RSpecでモデルのバリデーションのテストをダラダラ書かないで済むうまいやり方ってあるんでしょうか? ダラダラ書かないで済む方法を模索してみました。 spec_helper.rbにこういうのを追加します。ここではバリデーションの種類はverify_hours(入力値が24…

10分でコーディング

10分でコーディングをやってみました。 10分でできなかったし、なんかセンスないです。出直します。。 def kubaru(cnt, tramp) tramp = tramp.split(//) limit = tramp.size/cnt sets = "" rtn = [] cnt.times do |c| tramp.each_with_index do |e, i| set…

オブジェクトの特異メソッドを定義する(明示的に特異クラスのインスタンスメソッドとして定義する場合)

今度こそinstance_evalとmodule_evalを理解してもらった 最近の基礎シリーズいいです!もっとやってほしい! 環境 # ruby -v ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin9] Objectのオブジェクトobj >> obj = Object.new => #<Object:0x1a896d8> >> block = Proc.new</object:0x1a896d8>…

ruby-growlが動かず

jugyoさんのgを試してみたんですが Growlで開発の効率をUP! >> require 'g' => true >> g "hello" Errno::ECONNREFUSED: Connection refused - send(2) from /opt/local/lib/ruby/gems/1.8/gems/ruby-growl-1.0.1/lib/ruby-growl.rb:187:in `send' from /opt…

RPCFN: Short Circuit (#3)の結果がサッパリだったのでやり直した

ぜんぜんダメだったw ダイクストラ法のことがぜんぜん理解できてなかったwwwイカンなー Aldric Giacomoniさんのコードを参考にしてやり直した。ほぼパクリであるとも言う。。 コード class ShortCircuit INFINITY = 1.0/0 def initialize(circuit, source, d…

githubからインストールしたgemをgemcutterへ移行する off_github

というツールをみつけました http://github.com/maxim/off_github 便利やなかろうか

RPCFN: Short Circuit (#3)やってみた

チャレンジしました AからGまでの最短経路を探した上で、不要な経路を出力するというものです RPCFN: Short Circuit (#3) ダイクストラ法を参考にしました。正面衝突ブチ当たり ダイクストラ法(最短経路問題) コード paths = [ {:from => "A", :to => "B",…

REXMLでXMLをパース

REXMLでできるパースの種類は4種類あるようです tree parsing API・・・DOMのようなもの stream parsing API・・・SAXのようなもの。SAXより速いらしい SAX2-based API・・・SAX2ベースドエーピーアイ Pull parsing API・・・Java SE 6で入ったStAXと似てい…

続・MacRubyインストール

ここを参考にまたやってみたけど・・ Getting Started with MacRuby またrakeでうまくいかなかったー bridgesupport.cpp: In member function ‘llvm::Function* RoxorCompiler::compile_bs_struct_writer(rb_vm_bs_boxed_t*, int)’: bridgesupport.cpp:143: …

RPCFN: Average Arrival Time For A Flight (#2)の見直し

RPCFN: Average Arrival Time For A Flight (#2)12:00pmの扱いがバグってたのを修正 amとpmが混在したときの扱いがバグってたのを修正 Time.atで時刻を出すようにした MIN = 60 HOUR = MIN*60 def average_time_of_day(args) times = [] r = /(\d+?):(\d+?)(…

RPCFN: Average Arrival Time For A Flight (#2)

ベタ書きしてしまいました。テストありません。例外処理してません。すいません。 MIN = 60 HOUR = MIN*60 def average_time_of_day(args) times = [] r = /(\d+?):(\d+?)(am|pm)/ args.each do |e| times << r.match(e).to_a[1..-1] end mixed = !(times.al…

Hash#invert

# irb >> h = {:banana => 100, :tomato => 120, :apple => 200} => {:apple=>200, :banana=>100, :tomato=>120} >> h.invert => {100=>:banana, 200=>:apple, 120=>:tomato}

任意の文字列の正規表現をまとめてつくる

a = %w(banana orange apple) #=> ["banana", "orange", "apple"] r = Regexp.union(a.map{|e| /\A#{Regexp.escape(e)}\z/}) #=> /(?-mix:\Abanana\z)|(?-mix:\Aorange\z)|(?-mix:\Aapple\z)/ "apple" =~ r #=> 0 "bananana" =~ r #=> nil

バイナリ→Base64エンコーディング→バイナリ

f = File.open("Firefoxでもっと便利に使おう - はてな.png") #バイナリ→Base64エンコーディング base64_text = [f.read].pack('m') File.open("fuga.png", "wb") do |f| #Base64エンコーディング→バイナリ f.write(base64_text.unpack('m')[0]) end

MacPortsで1.8.7を入れる

# sudo port -d selfupdate # sudo port -d sync # sudo port install ruby @1.8.7-p174 # ruby -v ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin9]

MacRubyインストール失敗

llvmインストール # sudo port install llvm ソースコード取得 # git clone git://git.macruby.org/macruby/MacRuby.git rake実行 # rake rakeで失敗 bridgesupport.cpp:1299: error: ‘Create’ is not a member of ‘llvm::ReturnInst’ bridgesupport.cpp:129…

文字列の中のダブルコーテーション

>> o = "hello \"world\"" => "hello \"world\"" >> puts o hello "world" => nil >> o = 'hello "world"' => "hello \"world\"" >> puts o hello "world" => nil >> o = %Q|hello "world"| => "hello \"world\"" >> puts o hello "world" => nil

MapReduceの"Hello World"は単語数数え上げ

The “Hello World” of MapReduce is to perform a distributed word count. http://wiki.github.com/documentcloud/cloud-crowd/writing-an-action:site workersを5つつくる # crowd workers start -n 5 Job実行 # ruby word_count_example.rb 結果 >> Net::…

CloudCrowd ― Parallel Processing for the Rest of Us

Rubyによる並列処理システム「CloudCrowd 0.1.0」リリース ファミコン的なロゴとかアーキテクチャの図とかゆるい感じです。 インストール # sudo gem install cloud-crowd Password: Building native extensions. This could take a while... Successfully i…

Joruri

Joruriとは、Japan Originated Ruby-based RESTful and Integrated CMS(日本から生み出され、ルビーをベースにし、REST規約に従った、統合されたCMS)という意味から名づけられ、更には、人形浄瑠璃の三人遣いのように、すばらしいホームページを裏で支える…

Ruby 標準化 IPA報告書

Rubyの標準規格は、ISOとIEC(国際電気標準会議)が共同で運営している「ISO/IEC JTC 1」の「SC22」にて審査の後、認定される予定。SC22では、今のところCOBOL、FORTRAN、C言語などの標準化ドキュメントのメンテナンスを実施している。標準化の作業は、Ruby…

Class#inherited

>> class Class >> def inherited(subclass) >> puts "#{self}'s subclass:#{subclass} is defined" >> subclass.instance_variable_set('@klass_hensu', "KlassHensu") >> end >> end => nil >> class Hoge >> def self.hoge >> @klass_hensu >> end >> end…

なんちゃらlogicが気になる

#176 Searchlogic #170 OpenID with Authlogic #160 Authlogicbinarylogic

rvmを入れた

# rvm list ruby: - ruby-1.8.6-p383 - ruby-1.9.1-p243 jruby: - jruby-1.3.1 ree: - ruby-enterprise-1.8.6-20090610 system: - (ruby 1.8.6 (2007-09-24 patchlevel 111) [i686-darwin9.2.2]) rubiniusのインストールが失敗する・・ 複数のRubyを切り替え…

なにもしないクラスメソッドにブロック渡すとProcが返ってくる

なにもしないクラスメソッド irb(main):104:0> class A irb(main):105:1> def self.hoge(*args, &block) irb(main):106:2> end irb(main):107:1> end => nil irb(main):108:0> A.hoge("bar"){puts "bar"} => #<Proc:0xb7e739f4@(irb):108> なんかするクラスメソッド irb(main):109:0> cl</proc:0xb7e739f4@(irb):108>…

CentOSでmechanizeをインストール

libxml2-develとlibxslt-develを入れとく必要あり # sudo yum install libxml2-devel # sudo yum install libxslt-devel# sudo gem install mechanize

ブロックの中のブロック?

?> def hoge >> yield 1 >> end => nil >> ?> def bar >> yield 2 >> end => nil >> ?> total = 0 => 0 >> ?> hoge {|e| total+=e; bar{|e| total+=e}} => 3 >> total => 3>> def hoge >> p = Proc.new{p "world"} >> yield p >> end => nil >> hoge{|e| p "…

ruby-oci8セットアップ時にはLD_LIBRARY_PATHとNLS_LANGを必ず設定する

NLS_LANG忘れてた。Rails起動したらみたことないORAエラーがでてあせった。