tanakahdaのプログラマ手帳

プログラミングとかソフトウェア開発とかの備忘録

Ruby

ruby-2.0.0とrails3.2.14をインストールする

ruby-2.0.0のソースをwget [root@localhost src]# wget http://cache.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p247.tar.gz --2013-09-10 00:21:07-- http://cache.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p247.tar.gz cache.ruby-lang.org をDNSに問いあわせ…

キー、値を全て取得する - 配列とハッシュ - @Ruby

members = { "dev1" => "ooishi", "dev2" => "kishi", "dev3" => "katou", "infra1" => "ishikawa", "infra2" => "ookawa" } members.each {|key, value| puts "#{key} : #{value}" } 結果 infra2 : ookawa infra1 : ishikawa dev3 : katou dev2 : kishi dev…

http/ftp に簡単にアクセスするためのクラス open-uri

httpのURL を、普通のファイルのように開ける require 'open-uri' open("http://www.ruby-lang.org") {|f| f.each_line {|line| p line} } 結果 "<html>\n" " <head>\n" " <script type=\"text/javascript\">\n" " var languages = {\n" " \"bg\": \"bg\",\n" " \"de\": \"de\",\n" " \"es\": \"es\",\n" "</head></html>…

ファイル入出力

# # ファイルを開いて順番に表示する # File.open("test.log"){|f| f.each_line do |line| print "#{f.lineno}: #{line}" end }

例外処理の基礎

# # 例外が予期される部分をbegin ... end でくくる。 # 例外が発生した場合は、対応するrescue節にジャンプする。 # begin # Argumenterrorまたはその子孫クラスの例外を処理 # error変数に代入し制御をrescue節に移す rescue ArgumentError => error then …

ActiveRecord::RecordNotFoundの場合の例外処理

# GET /carts/1 # GET /carts/1.json def show begin @cart = Cart.find(params[:id]) # 直リンク張られた時など rescue ActiveRecord::RecordNotFound logger.error "無効なカート#{params[:id]}にアクセスしようとしました" redirect_to store_url, notice…

宇宙船演算子

irb(main):001:0> 1<=>1 => 0 irb(main):002:0> 1<=>2 => -1 irb(main):003:0> 1<=>0 => 1 irb(main):004:0>

クラスとメソッドの定義

class TypicalClass NAME = 'typical' # クラス定数 @@magic_value = 0x3092 #クラス変数 # クラスメソッド def self.change_magic(x) @@magic_value ^= x end # オブジェクトの初期化メソッド def initialize(init_value) @value = init_value # インスタン…

節とブロック付きメソッド

Rubyの制御構造のほとんどは、下記の形式をとる。 予約語 [式 [予約語]] [式 … ] ←節内 end Rubyの特徴の1つに、節のような制御構造と同様な形式で 呼び出し可能なメソッドをプログラム内で定義できるブロック付きメソッドがある。 オブジェクト.メソッド名…

Rangeオブジェクト

主に下限値から上限値までのループの制御に利用する。 (1..3).each do |i| $stdout.puts i end =begin 結果: 1 2 3 =end Rangeオブジェクトのto_aメソッドは、指定範囲の値で初期化したArrayオブジェクトを生成する。 p (1..3).to_a # 結果: [1, 2, 3]