別のキーワード
種類
- インスタンスメソッド (130)
- 文書 (60)
- クラス (22)
- 特異メソッド (21)
- ライブラリ (11)
クラス
- Array (19)
- Dir (21)
- String (11)
- Thread (44)
- ThreadsWait (24)
-
WIN32OLE
_ VARIABLE (11)
モジュール
- TSort (21)
キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (11) - ConditionVariable (11)
- DOSISH 対応 (11)
-
NEWS for Ruby 2
. 7 . 0 (5) - SizedQueue (11)
-
each
_ strongly _ connected _ component _ from (21) - empty? (6)
- glob (14)
-
join
_ nowait (6) -
next
_ wait (6) -
ole
_ type _ detail (11) - pack (19)
- pack テンプレート文字列 (11)
-
ruby 1
. 6 feature (11) -
ruby 1
. 8 . 3 feature (11) - tsort (11)
- unpack (11)
- value (11)
検索結果
先頭5件
-
Thread
# join -> self (18126.0) -
スレッド self の実行が終了するまで、カレントスレッドを停止し ます。self が例外により終了していれば、その例外がカレントス レッドに対して発生します。
...aise ThreadError join を実行することによってデッドロックが起きる場合に発生します。またカレントスレッドを join したときにも発生します。
以下は、生成したすべてのスレッドの終了を待つ例です。
threads = []
threads.push......(Thread.new { n = rand(5); sleep n; n })
threads.push(Thread.new { n = rand(5); sleep n; n })
threads.push(Thread.new { n = rand(5); sleep n; n })
threads.each {|t| t.join}... -
Thread
# join(limit) -> self | nil (18126.0) -
スレッド self の実行が終了するまで、カレントスレッドを停止し ます。self が例外により終了していれば、その例外がカレントス レッドに対して発生します。
...aise ThreadError join を実行することによってデッドロックが起きる場合に発生します。またカレントスレッドを join したときにも発生します。
以下は、生成したすべてのスレッドの終了を待つ例です。
threads = []
threads.push......(Thread.new { n = rand(5); sleep n; n })
threads.push(Thread.new { n = rand(5); sleep n; n })
threads.push(Thread.new { n = rand(5); sleep n; n })
threads.each {|t| t.join}... -
ThreadsWait
# join(*threads) -> () (18119.0) -
終了を待つスレッドの対象として、threads で指定されたスレッドを指定します。
...ドに指定されたthreadsを加えます。
require 'thwait'
threads = []
5.times {|i|
threads << Thread.new { sleep 1; p Thread.current }
}
thall = ThreadsWait.new
p thall.threads #=> []
thall.join(*threads)
p thall.threads
#=> [#<Thread:0x216ec dead>, #<Thread:0x21660 d... -
Dir
. [](*pattern , base: nil) -> [String] (18112.0) -
ワイルドカードの展開を行い、 パターンにマッチするファイル名を文字列の配列として返します。 パターンにマッチするファイルがない場合は空の配列を返します。
...グを指定できます。
このフラグを指定することでマッチの挙動を変更することができます。
//emlist[][ruby]{
Dir.glob("*") #=> ["bar", "foo"]
Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "..", "bar", "foo"]
//}
@param base カレ......にマッチしません。
: *
空文字列を含む任意の文字列と一致します。
: ?
任意の一文字と一致します。
: [ ]
鈎括弧内のいずれかの文字と一致します。- でつな
がれた文字は範囲を表します。鈎括弧の中の最初の......#=> ["foo"]
Dir.glob("[^f]*") #=> ["bar"]
Dir.glob("{b,f}*") #=> ["bar", "foo"]
# ベースディレクトリの例
rbfiles = File.join("**", "*.rb")
Dir.glob(rbfiles) #=> ["main.rb",
# "lib/song.rb",... -
Dir
. [](*pattern , base: nil , sort: true) -> [String] (18112.0) -
ワイルドカードの展開を行い、 パターンにマッチするファイル名を文字列の配列として返します。 パターンにマッチするファイルがない場合は空の配列を返します。
...グを指定できます。
このフラグを指定することでマッチの挙動を変更することができます。
//emlist[][ruby]{
Dir.glob("*") #=> ["bar", "foo"]
Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "..", "bar", "foo"]
//}
@param base カレ......にマッチしません。
: *
空文字列を含む任意の文字列と一致します。
: ?
任意の一文字と一致します。
: [ ]
鈎括弧内のいずれかの文字と一致します。- でつな
がれた文字は範囲を表します。鈎括弧の中の最初の......#=> ["foo"]
Dir.glob("[^f]*") #=> ["bar"]
Dir.glob("{b,f}*") #=> ["bar", "foo"]
# ベースディレクトリの例
rbfiles = File.join("**", "*.rb")
Dir.glob(rbfiles) #=> ["main.rb",
# "lib/song.rb",......グを指定できます。
このフラグを指定することでマッチの挙動を変更することができます。
//emlist[][ruby]{
Dir.glob("*") #=> ["bar", "foo"]
Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "bar", "foo"]
//}
@param base カレント... -
Thread
# [](name) -> object | nil (18106.0) -
name に対応したスレッドに固有のデータを取り出します。 name に対応するスレッド固有データがなければ nil を返し ます。
...Thread.current["name"] = "C" }
].each do |th|
th.join
puts "#{th.inspect}: #{th[:name]}"
end
# => #<Thread:0x00000002a54220 dead>: A
# => #<Thread:0x00000002a541a8 dead>: B
# => #<Thread:0x00000002a54130 dead>: C
//}
Thread#[] と Thread#[]= を用いたスレッド固有の変数は
Fiber......を切り替えると異なる変数を返す事に注意してください。
//emlist[][ruby]{
def meth(newvalue)
begin
oldvalue = Thread.current[:name]
Thread.current[:name] = newvalue
yield
ensure
Thread.current[:name] = oldvalue
end
end
//}
この関数に与えるブロ......ックがFiberを切り替える場合は動的スコープとしては
正しく動作しません。
//emlist[][ruby]{
f = Fiber.new {
meth(1) {
Fiber.yield
}
}
meth(2) {
f.resume
}
f.resume
p Thread.current[:name]
# => nil if fiber-local
# => 2 if thread-local (The value 2 is leaked to... -
ThreadsWait
# join _ nowait(*threads) -> () (6119.0) -
終了を待つスレッドの対象として、threads で指定されたスレッドを指定します。 しかし、実際には終了をまちません。
...ドに指定されたthreadsを加えます。
require 'thwait'
threads = []
5.times {|i|
threads << Thread.new { sleep 1; p Thread.current }
}
thall = ThreadsWait.new
p thall.threads #=> []
thall.join_nowait(*threads)
p thall.threads #=> [#<Thread:0x21638 sleep>, #<Thread:0x2... -
Dir
. glob(pattern , flags = 0 , base: nil) -> [String] (3012.0) -
ワイルドカードの展開を行い、 パターンにマッチするファイル名を文字列の配列として返します。 パターンにマッチするファイルがない場合は空の配列を返します。
...グを指定できます。
このフラグを指定することでマッチの挙動を変更することができます。
//emlist[][ruby]{
Dir.glob("*") #=> ["bar", "foo"]
Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "..", "bar", "foo"]
//}
@param base カレ......にマッチしません。
: *
空文字列を含む任意の文字列と一致します。
: ?
任意の一文字と一致します。
: [ ]
鈎括弧内のいずれかの文字と一致します。- でつな
がれた文字は範囲を表します。鈎括弧の中の最初の......#=> ["foo"]
Dir.glob("[^f]*") #=> ["bar"]
Dir.glob("{b,f}*") #=> ["bar", "foo"]
# ベースディレクトリの例
rbfiles = File.join("**", "*.rb")
Dir.glob(rbfiles) #=> ["main.rb",
# "lib/song.rb",... -
Dir
. glob(pattern , flags = 0 , base: nil) {|file| . . . } -> nil (3012.0) -
ワイルドカードの展開を行い、 パターンにマッチするファイル名を文字列の配列として返します。 パターンにマッチするファイルがない場合は空の配列を返します。
...グを指定できます。
このフラグを指定することでマッチの挙動を変更することができます。
//emlist[][ruby]{
Dir.glob("*") #=> ["bar", "foo"]
Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "..", "bar", "foo"]
//}
@param base カレ......にマッチしません。
: *
空文字列を含む任意の文字列と一致します。
: ?
任意の一文字と一致します。
: [ ]
鈎括弧内のいずれかの文字と一致します。- でつな
がれた文字は範囲を表します。鈎括弧の中の最初の......#=> ["foo"]
Dir.glob("[^f]*") #=> ["bar"]
Dir.glob("{b,f}*") #=> ["bar", "foo"]
# ベースディレクトリの例
rbfiles = File.join("**", "*.rb")
Dir.glob(rbfiles) #=> ["main.rb",
# "lib/song.rb",... -
Dir
. glob(pattern , flags = 0 , base: nil , sort: true) -> [String] (3012.0) -
ワイルドカードの展開を行い、 パターンにマッチするファイル名を文字列の配列として返します。 パターンにマッチするファイルがない場合は空の配列を返します。
...グを指定できます。
このフラグを指定することでマッチの挙動を変更することができます。
//emlist[][ruby]{
Dir.glob("*") #=> ["bar", "foo"]
Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "..", "bar", "foo"]
//}
@param base カレ......にマッチしません。
: *
空文字列を含む任意の文字列と一致します。
: ?
任意の一文字と一致します。
: [ ]
鈎括弧内のいずれかの文字と一致します。- でつな
がれた文字は範囲を表します。鈎括弧の中の最初の......#=> ["foo"]
Dir.glob("[^f]*") #=> ["bar"]
Dir.glob("{b,f}*") #=> ["bar", "foo"]
# ベースディレクトリの例
rbfiles = File.join("**", "*.rb")
Dir.glob(rbfiles) #=> ["main.rb",
# "lib/song.rb",......グを指定できます。
このフラグを指定することでマッチの挙動を変更することができます。
//emlist[][ruby]{
Dir.glob("*") #=> ["bar", "foo"]
Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "bar", "foo"]
//}
@param base カレント... -
Dir
. glob(pattern , flags = 0 , base: nil , sort: true) {|file| . . . } -> nil (3012.0) -
ワイルドカードの展開を行い、 パターンにマッチするファイル名を文字列の配列として返します。 パターンにマッチするファイルがない場合は空の配列を返します。
...グを指定できます。
このフラグを指定することでマッチの挙動を変更することができます。
//emlist[][ruby]{
Dir.glob("*") #=> ["bar", "foo"]
Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "..", "bar", "foo"]
//}
@param base カレ......にマッチしません。
: *
空文字列を含む任意の文字列と一致します。
: ?
任意の一文字と一致します。
: [ ]
鈎括弧内のいずれかの文字と一致します。- でつな
がれた文字は範囲を表します。鈎括弧の中の最初の......#=> ["foo"]
Dir.glob("[^f]*") #=> ["bar"]
Dir.glob("{b,f}*") #=> ["bar", "foo"]
# ベースディレクトリの例
rbfiles = File.join("**", "*.rb")
Dir.glob(rbfiles) #=> ["main.rb",
# "lib/song.rb",......グを指定できます。
このフラグを指定することでマッチの挙動を変更することができます。
//emlist[][ruby]{
Dir.glob("*") #=> ["bar", "foo"]
Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "bar", "foo"]
//}
@param base カレント... -
TSort
# each _ strongly _ connected _ component _ from(node , id _ map={} , stack=[]) -> Enumerator (106.0) -
node から到達可能な強連結成分についてのイテレータです。
...)
end
end
non_sort = {1=>[2], 2=>[3, 4], 3=>[2], 4=>[]}
non_sort.each_strongly_connected_component{|nodes|
p nodes
nodes.each {|node|
non_sort.each_strongly_connected_component_from(node){|ns|
printf("%s -> %s\n", node, ns.join(","))
}
}
}
#出力
#=> [4]
#=> 4 -> 4
#=> [2,... -
TSort
# each _ strongly _ connected _ component _ from(node , id _ map={} , stack=[]) {|nodes| . . . } -> () (106.0) -
node から到達可能な強連結成分についてのイテレータです。
...)
end
end
non_sort = {1=>[2], 2=>[3, 4], 3=>[2], 4=>[]}
non_sort.each_strongly_connected_component{|nodes|
p nodes
nodes.each {|node|
non_sort.each_strongly_connected_component_from(node){|ns|
printf("%s -> %s\n", node, ns.join(","))
}
}
}
#出力
#=> [4]
#=> 4 -> 4
#=> [2,... -
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (78.0) -
1.6.8から1.8.0への変更点(まとめ) * ((<1.6.8から1.8.0への変更点(まとめ)/インタプリタの変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたクラス/モジュール>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたメソッド>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加された定数>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張されたクラス/メソッド(互換性のある変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/変更されたクラス/メソッド(互換性のない変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/文法の変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/正規表現>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Marshal>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Windows 対応>)) * ((<1.6.8から1.8.0への変更点(まとめ)/廃止された(される予定の)機能>)) * ((<1.6.8から1.8.0への変更点(まとめ)/ライブラリ>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張ライブラリAPI>)) * ((<1.6.8から1.8.0への変更点(まとめ)/バグ修正>)) * ((<1.6.8から1.8.0への変更点(まとめ)/サポートプラットフォームの追加>))
...を返すことができます。
: 多重代入 [change]
多重代入の規則を見直しました。
# # derived from sample/test.rb
# a = *[]; p a # special case
# def f; yield; end; f {|a| p a} # add (warning)
# def r; return; end; a = r(); p a
#......); p a
# a = 1; p a
# def f; yield 1; end; f {|a| p a}
# def r; return 1; end; a = r(); p a
# a = []; p a
# def f; yield []; end; f {|a| p a}
# def r; return []; end; a = r(); p a
# a = [1]; p a
# def f; yield [1]; end; f {|a| p a}
# def r; return [1]; end; a = r();......) [compat]
ローカル側アドレスを省略可能な第3,4引数で指定できるようになりました。
=== Thread
: ((<Thread#join|Thread/join>)) [compat]
スレッドを待ち合わせる時間を limit で指定できるようになりました。
: ((<Thread/Thread.list>)) [c... -
ruby 1
. 6 feature (72.0) -
ruby 1.6 feature ruby version 1.6 は安定版です。この版での変更はバグ修正がメイン になります。
...範囲外の文字列を指定したときに例外を返す場合がありましたが、常に nil
を返すようになりました。(String#[]やString#slice と同じ結果を返すと
いうことです)
p "foo".slice!("bar") # <- 以前からこちらは nil を返してい......ymlink("foo", "bar")
p Dir.glob("bar")
=> ruby 1.6.7 (2002-03-01) [i586-linux]
[]
=> ruby 1.6.7 (2002-08-01) [i586-linux]
["bar"]
: 2002-06-13 Hash[]
Hash[] で、キーとなる文字列を dup & freeze していませんでした。
a = "k......$SAFE = 4
a.life -= 1
end.join
p a.life
=> ruby 1.6.4 (2001-06-04) [i586-linux]
6
=> ruby 1.6.4 (2001-08-06) [i586-linux]
-:6:in `life=': Insecure: can't modify Struct (SecurityError)
from -:3:in `join'
from -:3
: ((<String>))#rind...