種類
- インスタンスメソッド (55)
- 文書 (33)
- モジュール関数 (11)
ライブラリ
- ビルトイン (44)
- readline (11)
-
rubygems
/ requirement (11)
クラス
-
Gem
:: Requirement (11) - Object (11)
- Regexp (22)
モジュール
- Enumerable (11)
- Readline (11)
キーワード
- chunk (11)
-
fixed
_ encoding? (11) - readline (11)
-
respond
_ to _ missing? (11) -
ruby 1
. 8 . 2 feature (11) - ~ (11)
- 制御構造 (11)
- 正規表現 (11)
検索結果
先頭5件
-
Gem
:: Requirement # =~(version) -> bool (15222.0) -
引数 version が自身に含まれる全ての必要条件を満たす場合に true を返します。 そうでなければ、false を返します。
...うでなければ、false を返します。
@param version Gem::Version のインスタンスを指定します。
//emlist[][ruby]{
req = Gem::Requirement.new("~> 3.2.1")
p req.satisfied_by?(Gem::Version.new('3.2.9')) # => true
p req.satisfied_by?(Gem::Version.new('3.3.0')) # => false
//}... -
Readline
. # readline(prompt = "" , add _ hist = false) -> String | nil (9207.0) -
prompt を出力し、ユーザからのキー入力を待ちます。 エンターキーの押下などでユーザが文字列を入力し終えると、 入力した文字列を返します。 このとき、add_hist が true であれば、入力した文字列を入力履歴に追加します。 何も入力していない状態で EOF(UNIX では ^D) を入力するなどで、 ユーザからの入力がない場合は nil を返します。
...追加します。
何も入力していない状態で EOF(UNIX では ^D) を入力するなどで、
ユーザからの入力がない場合は nil を返します。
本メソッドはスレッドに対応しています。
入力待ち状態のときはスレッドコンテキストの切替......:
require "readline"
input = Readline.readline
(プロンプトなどは表示せずに、入力待ちの状態になります。
ここでは「abc」を入力後、エンターキーを押したと想定します。)
abc
p input # => "abc"
input = Readline.readline("> ")
(">"......を表示し、入力待ちの状態になります。
ここでは「ls」を入力後、エンターキーを押したと想定します。)
> ls
p input # => "ls"
input = Readline.readline("> ", true)
(">"を表示し、入力待ちの状態になります。
ここでは「cd」... -
Enumerable
# chunk {|elt| . . . } -> Enumerator (3124.0) -
要素を前から順にブロックで評価し、その結果によって 要素をチャンクに分けた(グループ化した)要素を持つ Enumerator を返します。
...ます。
//emlist[][ruby]{
enum.chunk {|elt| key }.each {|key, ary| do_something }
//}
例として、整数列を連続する奇数/偶数に分ける例を見てみます。
「n.even?」の値が切り替わるところで区切られているのがわかるでしょう。
//emlist[例][ruby]......{
[3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5].chunk {|n|
n.even?
}.each {|even, ary|
p [even, ary]
}
# => [false, [3, 1]]
# [true, [4]]
# [false, [1, 5, 9]]
# [true, [2, 6]]
# [false, [5, 3, 5]]
//}
このメソッドは各要素が既にソートされている場合に便利です。
以......、それ以外は素通しします。
//emlist[例][ruby]{
pat = /\A[A-Z][A-Za-z0-9_]+\#/
open(filename) {|f|
f.chunk {|line| pat =~ line ? $& : :_alone }.each {|key, lines|
if key != :_alone
print lines.sort.join('')
else
print lines.join('')
end
}
}
//}
@raise Runti... -
制御構造 (3060.0)
-
制御構造 条件分岐: * if * unless * case 繰り返し: * while * until * for * break * next * redo * retry 例外処理: * raise * begin その他: * return * BEGIN * END
...制御構造
条件分岐:
* if
* unless
* case
繰り返し:
* while
* until
* for
* break
* next
* redo
* retry
例外処理:
* raise
* begin
その他:
* return
* BEGIN
* END
Rubyでは(Cなどとは異なり)制御構造は式であ......き else 節があればその式が評価されます。
if 式は、条件が成立した節(あるいは else 節)の最後に評価し
た式の結果を返します。else 節がなくいずれの条件も成り立たなけれ
ば nil を返します。
Ruby では false または nil だけ......Ruby では if を繋げるのは elsif であり、else if
(C のように)でも elif(sh のように)でもないことに注意してください。
また if の条件式が正規表現のリテラルである時には特別に
//emlist[][ruby]{
$_ =~ リテラル
//}
であるかのよう... -
Regexp
# fixed _ encoding? -> bool (176.0) -
正規表現が任意の ASCII 互換エンコーディングとマッチ可能な時に false を返します。
...能な時に false を返します。
//emlist[例][ruby]{
# -*- coding:utf-8 -*-
r = /a/
r.fixed_encoding? # => false
r.encoding # => #<Encoding:US-ASCII>
r =~ "\u{6666} a" # => 2
r =~ "\xa1\xa2 a".fo......c-jp") # => 2
r =~ "abc".force_encoding("euc-jp") # => 0
r = /a/u
r.fixed_encoding? # => true
r.encoding # => #<Encoding:UTF-8>
r =~ "\u{6666} a" # => 2
begin
r =~ "\xa1\xa2".force_en......e
e.class # => Encoding::CompatibilityError
end
r =~ "abc".force_encoding("euc-jp") # => 0
r = /\u{6666}/
r.fixed_encoding? # => true
r.encoding # => #<Encoding:UTF-8>
r =~ "\u{66... -
Object
# respond _ to _ missing?(symbol , include _ private) -> bool (124.0) -
自身が symbol で表されるメソッドに対し BasicObject#method_missing で反応するつもりならば真を返します。
...自身が symbol で表されるメソッドに対し
BasicObject#method_missing で反応するつもりならば真を返します。
Object#respond_to? はメソッドが定義されていない場合、
デフォルトでこのメソッドを呼びだし問合せます。
BasicObject#method_m......。
false を返します。
@param symbol メソッド名シンボル
@param include_private private method も含めたい場合に true が渡されます
//emlist[例][ruby]{
class Sample
def method_missing(name, *args)
if name =~ /^to_*/
[name, *args] # => [:to_sample, "sample ar......, "sample args2"]
return
else
super
end
end
def respond_to_missing?(sym, include_private)
(sym =~ /^to_*/) ? true : super
end
end
s = Sample.new
s.to_sample("sample args1", "sample args2")
s.respond_to?(:to_sample) # => true
s.respond_to?(:sample) # => false
//}... -
Regexp
# ~ -> Integer | nil (112.0) -
変数 $_ の値との間でのマッチをとります。
...意味です。
//emlist[][ruby]{
self =~ $_
//}
//emlist[例][ruby]{
$_ = "hogehoge"
if /foo/
puts "match"
else
puts "no match"
end
# => no match
# ただし、警告がでる。warning: regex literal in condition
reg = Regexp.compile("foo")
if ~ reg
puts "match"
else
puts "no match"......end
# => no match
if reg
puts "match"
else
puts "no match"
end
# => match
# reg は nil でも false でも無いので常にtrue
//}... -
ruby 1
. 8 . 2 feature (66.0) -
ruby 1.8.2 feature ruby 1.8.2 での ruby 1.8.1 からの変更点です。
...: 拡張ライブラリ API
* [lib]: ライブラリ
*レベル
* [bug]: バグ修正
* [new]: 追加されたクラス/メソッドなど
* [compat]: 変更されたクラス/メソッドなど
* 互換性のある変更
* only backward-compatibility
* 影響の範囲が小......]
"\377" を引数に受け取っても適切に振舞うようになりました。((<ruby-dev:24460>))
: Dir.glob [change]
ブロックを渡したとき、false ではなく nil を返すようになりました。また、readdir しながらブロックを呼ぶのではなく、全部を......nner#matchedsize [lib] [obsolete]
$VERVOSE が設定されている時に警告がでるようになりました。use #matched_size.
: ScanError [lib] [obsolete]
use StringScanner::Error.
=== 2004-02-10
: ((<String#~|String/~>)) [obsolete]
: ((<String#=~|String/=~>)) [obsolete]
String#~... -
正規表現 (54.0)
-
正規表現 * metachar * expansion * char * anychar * string * str * quantifier * capture * grouping * subexp * selector * anchor * cond * option * encoding * comment * free_format_mode * absenceop * list * specialvar * references
...string
* str
* quantifier
* capture
* grouping
* subexp
* selector
* anchor
* cond
* option
* encoding
* comment
* free_format_mode
* absenceop
* list
* specialvar
* references
正規表現(regular expression)は文字列のパターンを記述するための言語......。
//emlist[][ruby]{
/(?<vowel>[aeiou]).\k<vowel>.\k<vowel>/.match('ototomy')
# => #<MatchData "ototo" vowel:"o">
//}
注: 名前付きキャプチャと数字によるキャプチャは併用できません。
リテラル正規表現内に名前付きキャプチャがあり、 =~ の左辺......Fortune favours the <b>bold</b>")
# => #<MatchData "bold">
# 以下は上の正規表現と同じものを表す
/<b>\K\w+(?=<\/b>)/.match("Fortune favours the <b>bold</b>")
# => #<MatchData "bold">
//}
===[a:cond] 条件分岐
(?(cond)pat) もしくは (?(cond)truepat|falsepat) という
記法で...