Ruby

ブロックでコールバック

Rubyクックブック ―エキスパートのための応用レシピ集作者: Lucas Carlson,Leonard Richardson,株式会社クイープ出版社/メーカー: オライリー・ジャパン発売日: 2007/04/27メディア: 大型本購入: 1人 クリック: 73回この商品を含むブログ (55件) を見るレシ…

メルマガ 没ねた

今朝ようやく "mailAddress".sub(/(^.)/){|s| $1.upcase }がシンプルな書き方であることに気がつく。 require 'erb' class String def upcase_head self.sub(/(^.)/){|s| $1.upcase } end end class JavaSourceModel attr_accessor :class_name def initiali…

2005-12-28 - hacking_dubbyの日記

ソケットプログラミング

サーバー側 require "socket" port = 8080 server = TCPServer.new("0.0.0.0", port) p '[start]' loop { Thread.fork(server.accept) { |socket| begin p "[accpet]" message = socket.read p message if message == 'EXIT' then p '[exit]'; exit end ensu…

require 'net/http' Net::HTTP.version_1_2 text = Net::HTTP.start('www.pythonchallenge.com', 80) {|http| response = http.get('/pc/def/equality.html') response.body } p text.split("\n").collect { |node| node.slice(/[^A-Z][A-Z]{3}([a-z])[A-Z]{…

http://pcweb.mycom.co.jp/articles/2005/10/21/oscon2/ Rails広まるといいな。 A : Attention (注意を引く) I : Intention (関心を抱かせる) S : Search (検索させる) A : Action(使わせる) S : Share(感想を共有してもらう)

require 'net/http' Net::HTTP.version_1_2 text = /-->/.match( /

rakeで簡単なプロジェクト生成

書き直し require 'erb' require 'drb/drb' require 'fileutils' task :default => [:project] desc 'create project [rake project project_name=<project_name> class_name=<first_class_name> ]' task :project do FileUtils.mkdir(dir_name) write_target write_test end def write_target</first_class_name></project_name>…

文字列置換

# repase_string.rb FIND_STRING REPLASE_STRING **/*.apt require 'fileutils' def replase_string(find_string, replase_string, files) puts "find_string = #{find_string}, replase_string=#{replase_string}" puts "files = #{files.inspect}" files.e…

Railsインストールメモ

RubyGemsをゲットしてインストール http://rubygems.rubyforge.org/wiki/wiki.pl?action=browse&id=RubyGems&oldid=HomePage//展開先 ruby ruby setup.rb gem update Railsのインストール gem install rails

rakefile

task :default => [:test] task :test do Dir["**/*_test.rb"].each{|test_target| puts "\n\n" puts "[start test #{test_target}]" begin ruby test_target rescue => evar puts evar end } end

MockTest

基本のモック require 'test/unit' require 'mock' class PublisherText 例外を投げるモック require 'test/unit' require 'mock' class AddUserActionText error assert_equal("can't add user becouse dao error", error.message) end mock_dao.__verify e…

Single Threaded Execution

require 'thread' class Client def initialize(gate, name) @gate = gate @name = name @t = Thread.new { do_run } end def do_run 3.times do @gate.pass(@name) end end def join @t.join end end class Gate def initialize @counter = 0 @mutex = Mute…

method_missing

class LogWapper def initialize target @target = target end def method_missing(method, *value) puts "before invoke #{method.id2name}" @target.__send__(method, *value) puts "after invoke #{method.id2name}" end end class Hoge def hogehoge put…

Guarded Suspension

require 'thread' #class RequestQueue # def initialize # @mutex = Mutex.new # @cv = ConditionVariable.new # @queue = [] # end # # def pop # @mutex.synchronize { # while(@queue.size invoke wait" # @cv.wait(@mutex) # puts "#after wait" # end …

method_missing

require 'test/unit' class PropertyTest value) if(setter_method?(method)) key = method.id2name.delete("=") @values[key] = value[0] else key = method.id2name return @values[key] end end def setter_method?(method) method.id2name.include?("=")…