サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
doc.ruby-lang.org
strftime(format) -> String 時刻を format 文字列に従って文字列に変換した結果を返します。 [PARAM] format: フォーマット文字列を指定します。使用できるものは 以下の通りです。 %A: 曜日の名称(Sunday, Monday ... ) %a: 曜日の省略名(Sun, Mon ... ) %B: 月の名称(January, February ... ) %b: 月の省略名(Jan, Feb ... ) %C: 世紀 (2009年であれば 20) %c: 日付と時刻 %D: 日付 (%m/%d/%y) %d: 日(01-31) %e: 日。一桁の場合、半角空白で埋める ( 1..31) %F: %Y-%m-%d と同等 (ISO 8601の日付フォーマット) %H: 24時間制の時(00-23) %h: %b と同等 %I: 12時間制の時(0
クラスの継承リスト: Thread < Object < Kernel < BasicObject 要約 スレッドを表すクラスです。スレッドとはメモリ空間を共有して同時に実行される制御の流れです。 Thread を使うことで並行プログラミングが可能になります。 実装 ネイティブスレッドを用いて実装されていますが、 現在の実装では Ruby VM は Giant VM lock (GVL) を有しており、同時に実行される ネイティブスレッドは常にひとつです。 ただし、IO 関連のブロックする可能性があるシステムコールを行う場合には GVL を解放します。その場合にはスレッドは同時に実行され得ます。 また拡張ライブラリから GVL を操作できるので、複数のスレッドを 同時に実行するような拡張ライブラリは作成可能です。 スケジューリング Ruby のスレッドスケジューリングはネイティブスレッドの
クラスの継承リスト: String < Comparable < Object < Kernel < BasicObject 要約 文字列のクラスです。 NUL 文字を含む任意のバイト列を扱うことができます。 文字列の長さにはメモリ容量以外の制限はありません。 文字列は通常、文字列リテラルを使って生成します。 以下に文字列リテラルの例をいくつか示します。 'str\\ing' # シングルクオート文字列 (エスケープシーケンスがほぼ無効) "string\n" # ダブルクオート文字列 (エスケープシーケンスがすべて有効) %q(str\\ing) # 「%q」文字列 (エスケープシーケンスがほぼ無効、デリミタが変えられる) %Q(string\n) # 「%Q」文字列 (エスケープシーケンスがすべて有効、デリミタが変えられる) # ヒアドキュメント <<End この行はヒアドキュメント
クラスの継承リスト: OpenSSL::PKCS5 要約 OpenSSL PKCS#5 関連の機能を集めたモジュール モジュール関数 pbkdf2_hmac(pass, salt, iter, keylen, digest) -> String pass と salt から共通鍵暗号の鍵および IV(Initialization Vector) を生成します。 OpenSSL::PKCS5.#pbkdf2_hmac_sha1 と異なり任意の ハッシュ関数を利用できます。 返り値の文字列から鍵と IV に必要なバイト数を切り出して利用します。 この関数は OpenSSL 1.0.0 以降でなければ利用できません。 [PARAM] pass: パスワード文字列 [PARAM] salt: salt 文字列 [PARAM] iter: 鍵および IV 生成時のハッシュ関数の繰り返し回数 [PAR
要約 コマンドラインのオプションを取り扱うためのライブラリです。 チュートリアル optparse を使う場合、基本的には OptionParser オブジェクト opt を生成する。 オプションを取り扱うブロックを opt に登録する。 opt.parse(ARGV) でコマンドラインを実際に parse する。 というような流れになります。 オプションの定義 オプションの引数 ロングオプション ヘルプ サブコマンド ARGV の機能 '-'で始まるファイル名 オプションの定義 以下はオプション -a, -b を受け付けるコマンドを作成する例です。 require 'optparse' opt = OptionParser.new opt.on('-a') {|v| p v } opt.on('-b') {|v| p v } opt.parse!(ARGV) p ARGV ruby sa
クラスの継承リスト: NKF 要約 nkf(Network Kanji code conversion Filter, http://sourceforge.jp/projects/nkf/) を Ruby から使うためのモジュールです。 Ruby 1.8.2 以降では nkf の 2.0 以降が取り込まれています。 使い方 以下は、漢字コード変換コマンドの例です。 #!/usr/local/bin/ruby require 'nkf' opt = '' opt = ARGV.shift if ARGV[0][0] == ?- while line = ARGF.gets print NKF.nkf(opt, line) end 以下は、漢字コード判別コマンドの例です。 #!/usr/local/bin/ruby require 'nkf' CODES = { NKF::JIS => "J
要約 ユニットテストを行うためのライブラリです。 test/unit は minitest/unit を使って再実装されましたが、完全な互 換性がある訳ではありません。1.9 系で test/unit を使いたい場合は、以下の test-unit を RubyGems でインストールしてください。(本ドキュメントでは、 1.9 系については minitest/unit で再実装された test/unit につい て記述しています) Test::Unit - Ruby用単体テストフレームワーク: http://test-unit.rubyforge.org/index.html.ja 使い方 Test::Unit は以下のように使います。 まずテスト対象のソース(foo.rb)が必要です。 class Foo def foo "foo" end def bar "foo" end end 次
クラスの継承リスト: Enumerable Abstract 繰り返しを行なうクラスのための Mix-in。このモジュールの メソッドは全て each を用いて定義されているので、インクルード するクラスには each が定義されていなければなりません。 インスタンスメソッド all? -> bool all? {|item| ... } -> bool すべての要素が真である場合に true を返します。 偽である要素があれば、ただちに false を返します。 ブロックを伴う場合は、各要素に対してブロックを評価し、すべての結果 が真である場合に true を返します。ブロックが偽を返した時点で、 ただちに false を返します。 例: # すべて正の数か? p [5, 6, 7].all? {|v| v > 0 } # => true p [5, -1, 7].all? {|v| v
クラスの継承リスト: Array < Enumerable < Object < Kernel < BasicObject Abstract 配列クラスです。 配列は任意の Ruby オブジェクトを要素として持つことができます。 一般的には配列は配列式を使って [1, 2, 3] のように生成します。 特異メソッド self[*item] -> Array 引数 item を要素として持つ配列を生成して返します。 Array のサブクラスを作成したしたときに、そのサブクラスのインスタンスを作成 しやすくするために用意されている。 [PARAM] item: 配列の要素を指定します。 例: Array[1, 2, 3] #=> [1, 2, 3] class SubArray < Array # ... end p SubArray[1, 2, 3] # => [1, 2, 3] new(s
要約 CGI プログラムの支援ライブラリです。 CGI プロトコルの詳細については以下の文書を参照してください。 http://Web.Golux.Com/coar/cgi/draft-coar-cgi-v11-03.txt [RFC3875]: The Common Gateway Interface (CGI) Version 1.1 http://www.w3.org/CGI/ 使用例 フォームフィールドの値を得る require "cgi" cgi = CGI.new values = cgi['field_name'] # <== 'field_name' の配列 # 'field_name' が指定されていなかったら、 []を返す。 (1.6) # 'field_name' が指定されていなかったら、 ""を返す。(1.8) fields = cgi.keys # <== fi
数値リテラル 文字列リテラル バックスラッシュ記法 式展開 コマンド出力 ヒアドキュメント (行指向文字列リテラル) 正規表現リテラル 配列式 ハッシュ式 範囲オブジェクト シンボル %記法 数字の1や文字列"hello world"のようにRubyのプログラムの中に直接 記述できる値の事をリテラルといいます。 数値リテラル 123 0d123 整数 -123 符号つき整数 [[trap:Numeric]] 123.45 浮動小数点数 .1 など "." で始まる浮動小数点数は許されなくなりました。0.1 と書く必 要があります。 1.2e-3 浮動小数点数 0xffff 16進整数 0b1011 2進整数 0377 0o377 8進整数 ?a 文字 a を表す String 空白類を指定する場合は、?\s, ?\t などとする 必要があります。 ?\C-a コントロール a を表す St
要約 メールを送信するためのプロトコル SMTP (Simple Mail Transfer Protocol) を扱うライブラリです。 ヘッダなどメールのデータを扱うことはできません。 SMTP の実装は [RFC2821] に基いています。 使用例 とにかくメールを送る SMTP を使ってメールを送るにはまず SMTP.start でセッションを開きます。 第一引数がサーバのアドレスで第二引数がポート番号です。 ブロックを使うと File.open と同じように終端処理を自動的にやってくれる のでおすすめです。 require 'net/smtp' Net::SMTP.start( 'smtp.example.com', 25 ) {|smtp| # use smtp object only in this block } smtp-server.example.com は適切な SM
要約 汎用データ転送プロトコル HTTP を扱うライブラリです。 実装は [RFC2616] に基きます。 使用例 ウェブサーバからドキュメントを得る (GET) 例1: GET して 表示するだけ require 'net/http' Net::HTTP.get_print 'www.example.com', '/index.html' 例2: URI を使う require 'net/http' require 'uri' Net::HTTP.get_print URI.parse('http://www.example.com/index.html') 例3: より汎用的な例 require 'net/http' require 'uri' url = URI.parse('http://www.example.com/index.html') res = Net::HTTP.st
クラスの継承リスト: File < IO < Enumerable < File::Constants < Object < Kernel < BasicObject Abstract ファイルアクセスのためのクラスです。 通常 Kernel.#open または File.open を使って生成します。 IO クラスがインクルードしている File::Constants は File クラスに関係する定数を 格納したモジュールです。 また File::Stat は stat 構造体( stat(2) 参照)を表すクラスです。 特異メソッド atime(filename) -> Time 最終アクセス時刻を返します。 [PARAM] filename: ファイル名を表す文字列か IO オブジェクトを指定します。 [EXCEPTION] Errno::EXXX: ファイルの時刻の取得に失敗した
クラスの継承リスト: Kernel 要約 全てのクラスから参照できるメソッドを定義しているモジュール。 Object クラスはこのモジュールをインクルードしています。 Object クラスのメソッドは実際にはこのモジュールで定義されていま す。これはトップレベルでのメソッドの再定義に対応するためです。 モジュール関数 Array(arg) -> Array 引数を配列(Array)に変換した結果を返します。 arg.to_ary と arg.to_a をこの順に呼び出して、返ってきた配列を変換結果とします。 arg に to_ary, to_a のいずれのメソッドも定義されていない場合は 一要素の配列 [arg] を返します。 [PARAM] arg: 変換対象のオブジェクトです。 [EXCEPTION] TypeError: to_ary, to_a の返り値が配列でなければ発生します
! ? # % & | + - * / ^ ' . , < > = ~ $ @ _ {} [] () " : ` \ ; ! !true not 演算子。演算子式/notを参照。 3 != 5 「等しくない」比較演算子。演算子式/notを参照。 def xxx! 「!」はメソッド名の一部です。慣用的に、 同名の(! の無い)メソッドに比べてより破壊的な作用をもつメソッド(例: tr と tr!)で使われます。 /xxx/ !~ yyy 正規表現のメソッド =~ の否定。マッチが失敗したらtrueを返します。 ? ?a リテラル/数値リテラル。長さ 1 の文字列。 def xx? この場合の「?」はメソッド名の一部分です。 慣用的に、真偽値を返すタイプのメソッドを示すために使われます。 xx ? yy : zz 演算子式/条件演算子。三項演算子とも呼ばれます。if xx then
組み込みライブラリは Ruby 本体に組み込まれているライブラリです。 このライブラリに含まれるクラスやモジュールは、 require を書かなくても使うことができます。
手続きオブジェクトとは 手続きを中断して値を返す orphan な手続きオブジェクトの挙動 Proc オブジェクトをブロック付きメソッド呼び出しに使う lambda と proc と Proc.new とイテレータの違い 手続きオブジェクトとは 手続きオブジェクトとはブロックをコンテキスト(ローカル変数のスコープやスタックフレーム)と ともにオブジェクトしたものです。Proc クラスのインスタンスとして実現されています。 ブロック内では、新たなスコープが導入されるとともに、外側のローカル変数を参照できます。 Proc オブジェクトがローカル変数のスコープを保持していることは以下の例で変数 var を 参照できていることからわかります。 例: var = 1 $foo = Proc.new { var } var = 2 def foo $foo.call end p foo # => 2
Ruby は US-ASCII はもちろん、US-ASCII 以外の文字エンコーディングもサポートしています。 文字列の内部表現のエンコーディングは固定されておらず、 プログラマは目的に応じて使用するエンコーディングを選ぶことができます。 同じプロセスの中で異なるエンコーディングの文字列が同時に存在することができます。 全ての String や Regexp などのオブジェクトは自身のエンコーディング情報を保持しています。 これにより各オブジェクト内の文字を適切に取り扱うことができます。 後述のマジックコメントでスクリプトエンコーディングを指定すると、 Ruby スクリプトに非 ASCII 文字を使うことができます。(magic comment) 文字列リテラルや正規表現リテラルだけでなく変数名、メソッド名、クラス名などにも 非 ASCII 文字を使うことができます。ただし文字列リテラル・
Ruby オフィシャルサイト http://www.ruby-lang.org/ja/ version 1.9 未対応リファレンス 原著:まつもとゆきひろ 最新版URL: http://www.ruby-lang.org/ja/documentation/ 使用上の注意 このリファレンスマニュアルは、Ruby 1.9 に関して、言語仕様、組み込みライブラリ、 標準添付ライブラリのいずれにもまったく対応していません。信用してはいけません。 目次 はじめに コマンド Rubyの起動 環境変数 Ruby 言語仕様 Ruby でのオブジェクト: オブジェクト クラス プロセスの実行: Ruby プログラムの実行 終了処理 スレッド セキュリティモデル Ruby の文法: 字句構造 プログラム・文・式 変数と定数 リテラル 演算子式 制御構造 メソッド呼び出し(super・ブロック付き・yield)
このページを最初にブックマークしてみませんか?
『docs.ruby-lang.org』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く