Ruby

「Ruby」の編集履歴(バックアップ)一覧はこちら

Ruby - (2011/03/20 (日) 22:17:10) の最新版との変更点

追加された行は緑色になります。

削除された行は赤色になります。

* ruby の勉強メモ ** 基本 - 標準出力方法 puts "Hello World"  # 改行あり print ("Hello", "World") # 改行なし - コマンドラインの引数扱い puts ARGV[0] + ":" + ARGV[1] - コマンドラインのオプション扱い -- Option Perser を使う。 -> http://www.ruby-lang.org/ja/man/html/OptionParser.html require "optparse" opts = OptionParser.new opts.on("-a"){|v| puts "indicated a." } # -a オプションがコマンドラインで指定されていた場合の動作。 opts.parse!(ARGV) - if文の書き方 # Pattern 1 if city == "Tokyo" then print("東京です") elsif city == "Osaka" then print("大阪です") elsif city == "Nagoya" then print("名古屋です") else print("その他の都市です") end # Pattern 2 print("num = ", num) if debug # Pattern 3 (not if) unless old < 20 then print(Kconv.tosjis("年齢は"), old, Kconv.tosjis("です\n")) print(Kconv.tosjis("20歳以上ですのでご利用できます\n")) end - 繰り返し文の書き方 # while statement num = 0 while num < 4 do print("num = ", num) num = num + 1 end # until statement num = 0 until num >= 4 do print("num = ", num) num = num - 1 end # for statement for num in 0..3 do print("num = ", num) end - エラー処理 begin puts "Execute" rescue => ex puts ex.class puts ex.message puts ex.backtarce ensure if ex then puts "Error occured" else puts "No Error" end - 入力待ち print "Please any chars : " line = STDIN.gets puts "input text: #{line}" - OSコマンド呼び出し # Pattern 1 result = `ls -l` print result # this is simplest. # result has result of command. # if error occurs, prints error. # Pattern 2 result = system("ls -lh") print result # 'system' prints result of command(even if error). # result has true or false. # Pattern 3 begin result = exec("ls -lh") print result rescue puts "error" end # 'exec' prints result of command(even if error). # if command is unknown, this can catch exception. # Pattern 4 result = open("|ls -l") while !result.eof print result.gets end # result has result of command # this can write. - 環境変数取得 print ENV["LANG"] ** ファイル・ディレクトリ操作 ここ使える。 http://www.ruby-lang.org/ja/man/html/fileutils.html - 存在確認 print File.exist?("temp.rb") - ディレクトリ移動 require 'fileutils' FileUtils.cd('/usr/local/var/log') - ディレクトリ作成 require 'fileutils' FileUtils.mkdir_p('/usr/local/lib/ruby') - ファイル・ディレクトリコピー require 'fileutils' FileUtils.cp_r("sample.txt", "tmp") - ファイル・ディレクトリ切り取り require 'fileutils' FileUtils.mv(['junk.txt', 'dust.txt'], "#{ENV['HOME']}/.trash") - ディレクトリ削除 require 'fileutils' FileUtils.rm('junk.txt') - 対象行抽出(grep) -- OSコマンドを使うのが一番。 ちなみに、list からgrepで引っ張る方法はある。 p ['aa', 'bb', 'cc', 'dd', 'ee'].grep(/[bc]/) # => ["bb", "cc"] - 差分 -- OSコマンドを使うのが一番。 ちなみに、diffがあるかないかぐらいなら引っ張る方法はある。 require 'fileutils' FileUtils.cmp('somefile', 'somefile') - sha1sum取得 require 'digest/sha1' print Digest::SHA1.hexdigest(File.open('temp.rb').read) - シムリンク作成 require 'fileutils' FileUtils.ln_s('/usr/bin/ruby', '/usr/local/bin/ruby') # original is /usr/bin/ruby ** その他 - 日付取得 TODO - SVNダウンロード TODO - CVSダウンロード TODO - Httpアクセス TODO
* ruby の勉強メモ ** 基本 - 標準出力方法 puts "Hello World"  # 改行あり print ("Hello", "World") # 改行なし - コマンドラインの引数扱い puts ARGV[0] + ":" + ARGV[1] - コマンドラインのオプション扱い -- Option Perser を使う。 -> http://www.ruby-lang.org/ja/man/html/OptionParser.html require "optparse" opts = OptionParser.new opts.on("-a"){|v| puts "indicated a." } # -a オプションがコマンドラインで指定されていた場合の動作。 opts.parse!(ARGV) - if文の書き方 # Pattern 1 if city == "Tokyo" then print("東京です") elsif city == "Osaka" then print("大阪です") elsif city == "Nagoya" then print("名古屋です") else print("その他の都市です") end # Pattern 2 print("num = ", num) if debug # Pattern 3 (not if) unless old < 20 then print(Kconv.tosjis("年齢は"), old, Kconv.tosjis("です\n")) print(Kconv.tosjis("20歳以上ですのでご利用できます\n")) end - 繰り返し文の書き方 # while statement num = 0 while num < 4 do print("num = ", num) num = num + 1 end # until statement num = 0 until num >= 4 do print("num = ", num) num = num - 1 end # for statement for num in 0..3 do print("num = ", num) end - エラー処理 begin puts "Execute" rescue => ex puts ex.class puts ex.message puts ex.backtarce ensure if ex then puts "Error occured" else puts "No Error" end - 入力待ち print "Please any chars : " line = STDIN.gets puts "input text: #{line}" - OSコマンド呼び出し # Pattern 1 result = `ls -l` print result # this is simplest. # result has result of command. # if error occurs, prints error. # Pattern 2 result = system("ls -lh") print result # 'system' prints result of command(even if error). # result has true or false. # Pattern 3 begin result = exec("ls -lh") print result rescue puts "error" end # 'exec' prints result of command(even if error). # if command is unknown, this can catch exception. # Pattern 4 result = open("|ls -l") while !result.eof print result.gets end # result has result of command # this can write. - 環境変数取得 print ENV["LANG"] - 設定ファイル読み込み require 'yaml' config = YAML.load_file("config.yml") p config["dictype"][0] #=> "dym" # in config.yml dictype: - dym - rltd ** ファイル・ディレクトリ操作 ここ使える。 http://www.ruby-lang.org/ja/man/html/fileutils.html - 存在確認 print File.exist?("temp.rb") - ディレクトリ移動 require 'fileutils' FileUtils.cd('/usr/local/var/log') - ディレクトリ作成 require 'fileutils' FileUtils.mkdir_p('/usr/local/lib/ruby') - ファイル・ディレクトリコピー require 'fileutils' FileUtils.cp_r("sample.txt", "tmp") - ファイル・ディレクトリ切り取り require 'fileutils' FileUtils.mv(['junk.txt', 'dust.txt'], "#{ENV['HOME']}/.trash") - ディレクトリ削除 require 'fileutils' FileUtils.rm('junk.txt') - 対象行抽出(grep) -- OSコマンドを使うのが一番。ちなみに、list からgrepで引っ張る方法はある。 p ['aa', 'bb', 'cc', 'dd', 'ee'].grep(/[bc]/) # => ["bb", "cc"] - 差分 -- OSコマンドを使うのが一番。ちなみに、diffがあるかないかぐらいなら引っ張る方法はある。 require 'fileutils' FileUtils.cmp('somefile', 'somefile') - sha1sum取得 require 'digest/sha1' print Digest::SHA1.hexdigest(File.open('temp.rb').read) - シムリンク作成 require 'fileutils' FileUtils.ln_s('/usr/bin/ruby', '/usr/local/bin/ruby') # original is /usr/bin/ruby ** その他 - 日付取得 day = Time.now print day.strftime("%Y/%m/%d_maint") - SVNダウンロード -- OSコマンドを使うのが一番。 SubversionのRuby用bindingを利用することもできるらしいけど、インストール方法がよくわからん。。 - CVSダウンロード -- OSコマンドを使うのが一番。 - Httpアクセス require 'net/http' Net::HTTP.version_1_2 # おまじない Net::HTTP.start('www.iana.org', 80) {|http| response = http.get('/index.html') puts response.body } # use Proxy require 'net/http' Net::HTTP.version_1_2 # おまじない Net::HTTP::Proxy("your.proxy.addr", 8080).start('www.iana.org', 80) {|http| response = http.get('/index.html') puts response.body }

表示オプション

横に並べて表示:
変化行の前後のみ表示: