別のキーワード
種類
ライブラリ
- English (2)
- ビルトイン (178)
-
cgi
/ core (2) -
cgi
/ session (2) - continuation (2)
- csv (8)
- dbm (2)
-
drb
/ gw (2) - fiddle (10)
-
fiddle
/ import (1) - forwardable (2)
- gdbm (2)
-
irb
/ context (1) - json (3)
- matrix (11)
- mkmf (1)
- monitor (3)
-
net
/ http (2) -
net
/ imap (1) - openssl (5)
- optparse (3)
- ostruct (2)
- pstore (8)
- psych (5)
- rake (6)
-
rake
/ packagetask (2) - readline (2)
-
rexml
/ document (10) -
rexml
/ parsers / pullparser (2) -
rinda
/ tuplespace (1) -
rubygems
/ command _ manager (1) -
rubygems
/ config _ file (2) - sdbm (2)
- set (2)
- shell (2)
-
shell
/ command-processor (2) -
shell
/ filter (2) - stringio (1)
- strscan (1)
- thwait (10)
- tsort (4)
-
webrick
/ cgi (2) -
webrick
/ config (1) -
webrick
/ httprequest (1) -
webrick
/ httpresponse (2) -
webrick
/ httpserver (2) -
webrick
/ httpstatus (1) -
webrick
/ httputils (1) -
webrick
/ server (1) -
win32
/ registry (2) - win32ole (6)
-
yaml
/ dbm (3)
クラス
- Array (49)
-
CGI
:: Session (2) -
CSV
:: Row (4) -
CSV
:: Table (4) - Continuation (2)
- DBM (2)
-
DRb
:: GW (2) - Dir (3)
- Enumerator (2)
-
Fiddle
:: Handle (4) -
Fiddle
:: Pointer (6) - GDBM (2)
-
Gem
:: CommandManager (1) -
Gem
:: ConfigFile (2) - Hash (7)
- IO (4)
- Integer (1)
-
JSON
:: State (2) - MatchData (4)
- Matrix (5)
- Method (3)
- Module (5)
-
Net
:: IMAP :: FetchData (1) - NilClass (1)
- Object (1)
-
ObjectSpace
:: WeakMap (2) -
OpenSSL
:: Config (3) -
OpenSSL
:: OCSP :: BasicResponse (1) -
OpenSSL
:: PKCS7 (1) - OpenStruct (2)
- OptionParser (3)
- PStore (7)
- Proc (3)
-
Psych
:: Handler (1) -
Psych
:: Nodes :: Document (1) -
REXML
:: AttlistDecl (1) -
REXML
:: Attributes (3) -
REXML
:: Elements (2) -
REXML
:: Parent (4) -
REXML
:: Parsers :: PullEvent (2) -
Rake
:: FileList (1) -
Rake
:: NameSpace (1) -
Rake
:: PackageTask (2) -
Rake
:: Task (1) -
Rake
:: TaskArguments (1) - Range (8)
- Regexp (4)
-
Rinda
:: TupleEntry (1) - SDBM (2)
- Set (2)
- Shell (2)
-
Shell
:: CommandProcessor (2) -
Shell
:: Filter (2) - String (25)
- StringIO (1)
- StringScanner (1)
- Struct (6)
- Symbol (10)
- Thread (5)
- ThreadsWait (10)
- Vector (6)
-
WEBrick
:: CGI (2) -
WEBrick
:: GenericServer (1) -
WEBrick
:: HTTPRequest (1) -
WEBrick
:: HTTPResponse (2) -
WEBrick
:: HTTPServer :: MountTable (2) -
WEBrick
:: HTTPUtils :: FormData (1) - WIN32OLE (2)
-
WIN32OLE
_ TYPE (1) -
WIN32OLE
_ VARIABLE (1) -
WIN32OLE
_ VARIANT (2) -
Win32
:: Registry (2) -
YAML
:: DBM (3)
モジュール
-
CGI
:: QueryExtension (1) -
CGI
:: QueryExtension :: Value (1) - Enumerable (4)
-
Fiddle
:: Importer (1) - Forwardable (2)
- JSON (1)
- Kernel (26)
- MonitorMixin (1)
-
Net
:: HTTPHeader (2) - Process (1)
- Psych (3)
-
Rake
:: TaskManager (2) - TSort (4)
-
WEBrick
:: Config (1) -
WEBrick
:: HTTPStatus (1)
オブジェクト
- ENV (3)
-
Readline
:: HISTORY (2)
キーワード
-
$ INPUT _ RECORD _ SEPARATOR (1) -
$ RS (1) -
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (1) - =~ (1)
- Array (1)
- ConditionVariable (1)
- Context (1)
- DOSISH 対応 (1)
- FileHandler (1)
- Hash (1)
- IO (1)
- Marshal フォーマット (1)
- Monitor (1)
- MonitorMixin (1)
- Numeric (1)
- PStore (1)
- Rubyで使われる記号の意味(正規表現の複雑な記号は除く) (1)
- SizedQueue (1)
- []= (43)
- abort (1)
-
all
_ waits (3) - at (1)
- attr (1)
- bigdecimal (1)
- call (3)
- caller (3)
-
caller
_ locations (2) - clear (2)
- combination (2)
- commit (1)
- component (2)
-
const
_ source _ location (1) - constants (1)
- curry (2)
-
def
_ delegator (1) -
def
_ instance _ delegator (1) -
default
_ argv= (1) -
default
_ event _ sources (1) - delete (3)
- each (1)
- each2 (2)
-
each
_ line (2) -
each
_ strongly _ connected _ component _ from (4) - element (2)
- empty (1)
- empty? (1)
- encode (3)
- exec (5)
- fetch (1)
- field (1)
- fill (6)
- finished? (1)
- first (4)
- glob (2)
-
included
_ modules (1) -
install
_ files (1) - join (3)
-
join
_ nowait (1) - last (2)
-
load
_ stream (2) - match (2)
- max (8)
- min (8)
-
mon
_ enter (1) - names (1)
- new (7)
-
next
_ values (1) -
next
_ wait (1) -
ole
_ type _ detail (1) - open-uri (1)
- optparse (1)
- pack (2)
- pack テンプレート文字列 (1)
-
package
_ files (1) -
package
_ files= (1) -
peek
_ values (1) - permutation (2)
- pop (2)
- prefixes (1)
-
prepend
_ features (1) - product (2)
-
rb
_ ary _ new (1) - readlines (5)
-
repeated
_ combination (2) -
repeated
_ permutation (2) -
rexml
/ parsers / pullparser (1) -
rexml
/ parsers / sax2parser (1) -
rexml
/ parsers / streamparser (1) - rss (1)
-
ruby 1
. 6 feature (1) -
ruby 1
. 8 . 3 feature (1) -
ruby 1
. 9 feature (1) -
safe
_ load (1) - section (1)
- select (2)
- shift (2)
- sign (2)
- slice (11)
- slice! (3)
-
sort
_ by (2) - spawn (4)
- srand (2)
- start (1)
-
start
_ document (1) - store (3)
- summarize (2)
- sym (2)
- system (4)
- test (3)
- threads (1)
-
to
_ a (2) -
to
_ ptr (1) - transaction (1)
- transpose (1)
- tsort (1)
-
undef
_ method (1) - unpack (1)
- value (1)
-
webrick
/ cgi (1) - クラス/メソッドの定義 (1)
- パターンマッチ (1)
- 演算子式 (1)
検索結果
先頭5件
-
MonitorMixin (37.0)
-
スレッドの同期機構としてのモニター機能を提供するモジュールです。
スレッドの同期機構としてのモニター機能を提供するモジュールです。
クラスに Module#include したり、オブジェクトに
Object#extend したりすることでそのクラス/オブジェクトに
モニタ機能を追加します。
=== 例
//emlist[消費者、生産者問題の例][ruby]{
require 'monitor'
buf = []
buf.extend(MonitorMixin) # 配列にモニタ機能を追加
empty_cond = buf.new_cond # 配列が空であるかないかを通知する条件変数
# consumer
Thread.start do
lo... -
Psych
:: Handler # start _ document(version , tag _ directives , implicit) -> () (37.0) -
YAML ドキュメントの始まりで呼び出されます。
YAML ドキュメントの始まりで呼び出されます。
version には YAML ドキュメントに宣言されているバージョンが
[major, minor] という配列で渡されます。宣言がない場合は空の配列が渡されます。
tag_directives には tag directive の配列が渡されます。
それぞれの tag は [prefix, suffix] という配列で表現されます。
implicit にはドキュメントが implicit に始まっているかどうかが
真偽値で渡されます。
必要に応じてこのメソッドを override してください。
@param version ... -
Rake
:: TaskManager # clear (37.0) -
全てのタスクとルールをクリアします。
全てのタスクとルールをクリアします。
//emlist[][ruby]{
# Rakefile での記載例とする
task default: :test_rake_app
task :test_rake_app do
Rake.application.tasks # => [<Rake::Task default => [test_rake_app]>, <Rake::Task test_rake_app => []>]
Rake.application.clear # => []
Rake.application.tasks # => []
end
//} -
Range
# max -> object | nil (37.0) -
範囲内の最大の値、もしくは最大の n 要素が降順で入った配列を返します。
範囲内の最大の値、もしくは最大の n 要素が降順で入った配列を返します。
@param n 取得する要素数。
//emlist[例][ruby]{
(1..5).max # => 5
//}
//emlist[例][ruby]{
(1..5).max(3) # => [5, 4, 3]
//}
始端が終端より大きい場合、もしくは、終端を含まない範囲オブジェクトの始端が終端と
等しい場合は、引数を指定しない形式では nil を返します。
引数を指定する形式では、空の配列を返します。
//emlist[例][ruby]{
(2..1).max # => nil
(1..... -
Range
# max(n) -> [object] (37.0) -
範囲内の最大の値、もしくは最大の n 要素が降順で入った配列を返します。
範囲内の最大の値、もしくは最大の n 要素が降順で入った配列を返します。
@param n 取得する要素数。
//emlist[例][ruby]{
(1..5).max # => 5
//}
//emlist[例][ruby]{
(1..5).max(3) # => [5, 4, 3]
//}
始端が終端より大きい場合、もしくは、終端を含まない範囲オブジェクトの始端が終端と
等しい場合は、引数を指定しない形式では nil を返します。
引数を指定する形式では、空の配列を返します。
//emlist[例][ruby]{
(2..1).max # => nil
(1..... -
Range
# min -> object | nil (37.0) -
範囲内の最小の値、もしくは最小の n 要素が昇順で入った配列を返します。
範囲内の最小の値、もしくは最小の n 要素が昇順で入った配列を返します。
@param n 取得する要素数。
//emlist[例][ruby]{
(1..5).min # => 1
//}
//emlist[例][ruby]{
(1..5).min(3) # => [1, 2, 3]
//}
始端が終端より大きい場合、もしくは、終端を含まない範囲オブジェクトの始端が終端と
等しい場合は、引数を指定しない形式では nil を返します。
引数を指定する形式では、空の配列を返します。
//emlist[例][ruby]{
(2..1).min # => nil
(1...1... -
Range
# min(n) -> [object] (37.0) -
範囲内の最小の値、もしくは最小の n 要素が昇順で入った配列を返します。
範囲内の最小の値、もしくは最小の n 要素が昇順で入った配列を返します。
@param n 取得する要素数。
//emlist[例][ruby]{
(1..5).min # => 1
//}
//emlist[例][ruby]{
(1..5).min(3) # => [1, 2, 3]
//}
始端が終端より大きい場合、もしくは、終端を含まない範囲オブジェクトの始端が終端と
等しい場合は、引数を指定しない形式では nil を返します。
引数を指定する形式では、空の配列を返します。
//emlist[例][ruby]{
(2..1).min # => nil
(1...1... -
Thread
:: ConditionVariable (37.0) -
スレッドの同期機構の一つである状態変数を実現するクラスです。
スレッドの同期機構の一つである状態変数を実現するクラスです。
以下も ConditionVariable を理解するのに参考になります。
https://ruby-doc.com/docs/ProgrammingRuby/html/tut_threads.html#UF
=== Condition Variable とは
あるスレッド A が排他領域で動いていたとします。スレッド A は現在空いていない
リソースが必要になったので空くまで待つことにしたとします。これはうまくいきません。
なぜなら、スレッド A は排他領域で動いているわけですから、他のスレッドは動くことが
できません。リ... -
ThreadsWait
# join(*threads) -> () (37.0) -
終了を待つスレッドの対象として、threads で指定されたスレッドを指定します。
終了を待つスレッドの対象として、threads で指定されたスレッドを指定します。
@param 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
... -
ThreadsWait
# join _ nowait(*threads) -> () (37.0) -
終了を待つスレッドの対象として、threads で指定されたスレッドを指定します。 しかし、実際には終了をまちません。
終了を待つスレッドの対象として、threads で指定されたスレッドを指定します。
しかし、実際には終了をまちません。
@param 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(*thr... -
WIN32OLE
_ TYPE # default _ event _ sources -> [WIN32OLE _ TYPE] (37.0) -
型が持つソースインターフェイスを取得します。
型が持つソースインターフェイスを取得します。
default_event_sourcesメソッドは、selfがCoClass(コンポーネントクラス)
の場合、そのクラスがサポートするデフォルトのソースインターフェイス(イ
ベントの通知元となるインターフェイス)を返します。
@return デフォルトのソースインターフェイスをWIN32OLE_TYPEの配列と
して返します。返すのは配列ですが、デフォルトのソースインターフェ
イスは最大でも1インターフェイスです。ソースインターフェイスを持
たない場合は空配列を返します。
tobj = ... -
bigdecimal (37.0)
-
bigdecimal は浮動小数点数演算ライブラリです。 任意の精度で 10 進表現された浮動小数点数を扱えます。
bigdecimal は浮動小数点数演算ライブラリです。
任意の精度で 10 進表現された浮動小数点数を扱えます。
//emlist[][ruby]{
require 'bigdecimal'
a = BigDecimal("0.123456789123456789")
b = BigDecimal("123456.78912345678", 40)
print a + b # => 0.123456912580245903456789e6
//}
一般的な 10 進数の計算でも有用です。2 進数の浮動小数点演算には微小な誤
差があるのに対し、BigDecimal では正確な値を得る事がで... -
クラス/メソッドの定義 (37.0)
-
クラス/メソッドの定義 * クラス/メソッドの定義: * class * singleton_class * module * method * operator * nest_method * eval_method * singleton_method * class_method * limit * 定義に関する操作: * alias * undef * defined
クラス/メソッドの定義
* クラス/メソッドの定義:
* class
* singleton_class
* module
* method
* operator
* nest_method
* eval_method
* singleton_method
* class_method
* limit
* 定義に関する操作:
* alias
* undef
* defined
===[a:class] クラス定義
//emlist[例][ruby]{
class Foo < S... -
演算子式 (37.0)
-
演算子式 * assign * selfassign * multiassign * range * range_cond * and * or * not * cond
演算子式
* assign
* selfassign
* multiassign
* range
* range_cond
* and
* or
* not
* cond
//emlist[例][ruby]{
1+2*3/4
//}
プログラミングの利便のために一部のメソッド呼び出しと制御構造は演算子形
式をとります。Rubyには以下にあげる演算子があります。
高い ::
[]
+(単項) ! ~
**
... -
Array
# max -> object | nil (22.0) -
最大の要素、もしくは最大の n 要素が降順に入った配列を返します。 全要素が互いに <=> メソッドで比較できることを仮定しています。
最大の要素、もしくは最大の n 要素が降順に入った配列を返します。
全要素が互いに <=> メソッドで比較できることを仮定しています。
引数を指定しない形式では要素が存在しなければ nil を返します。
引数を指定する形式では、空の配列を返します。
//emlist[例][ruby]{
[].max #=> nil
[].max(1) #=> []
[2, 5, 3].max #=> 5
[2, 5, 3].max(2) #=> [5, 3]
//}
@param n 取得する要素数。
@see Enumerable#max -
Array
# max {|a , b| . . . } -> object | nil (22.0) -
ブロックの評価結果で各要素の大小判定を行い、最大の要素、もしくは最大の n 要素が降順に入った配列を返します。 引数を指定しない形式では要素が存在しなければ nil を返します。 引数を指定する形式では、空の配列を返します。
ブロックの評価結果で各要素の大小判定を行い、最大の要素、もしくは最大の
n 要素が降順に入った配列を返します。
引数を指定しない形式では要素が存在しなければ nil を返します。
引数を指定する形式では、空の配列を返します。
ブロックの値は、a > b のとき正、
a == b のとき 0、a < b のとき負の整数を、期待しています。
//emlist[例][ruby]{
[].max {|a, b| a <=> b } #=> nil
[].max(1) {|a, b| a <=> b } #=> []
ary = %w(albatross dog horse)
ary.ma... -
Array
# max(n) -> Array (22.0) -
最大の要素、もしくは最大の n 要素が降順に入った配列を返します。 全要素が互いに <=> メソッドで比較できることを仮定しています。
最大の要素、もしくは最大の n 要素が降順に入った配列を返します。
全要素が互いに <=> メソッドで比較できることを仮定しています。
引数を指定しない形式では要素が存在しなければ nil を返します。
引数を指定する形式では、空の配列を返します。
//emlist[例][ruby]{
[].max #=> nil
[].max(1) #=> []
[2, 5, 3].max #=> 5
[2, 5, 3].max(2) #=> [5, 3]
//}
@param n 取得する要素数。
@see Enumerable#max -
Array
# max(n) {|a , b| . . . } -> Array (22.0) -
ブロックの評価結果で各要素の大小判定を行い、最大の要素、もしくは最大の n 要素が降順に入った配列を返します。 引数を指定しない形式では要素が存在しなければ nil を返します。 引数を指定する形式では、空の配列を返します。
ブロックの評価結果で各要素の大小判定を行い、最大の要素、もしくは最大の
n 要素が降順に入った配列を返します。
引数を指定しない形式では要素が存在しなければ nil を返します。
引数を指定する形式では、空の配列を返します。
ブロックの値は、a > b のとき正、
a == b のとき 0、a < b のとき負の整数を、期待しています。
//emlist[例][ruby]{
[].max {|a, b| a <=> b } #=> nil
[].max(1) {|a, b| a <=> b } #=> []
ary = %w(albatross dog horse)
ary.ma... -
Array
# min -> object | nil (22.0) -
最小の要素、もしくは最小の n 要素が昇順で入った配列を返します。 全要素が互いに <=> メソッドで比較できることを仮定しています。
最小の要素、もしくは最小の n 要素が昇順で入った配列を返します。
全要素が互いに <=> メソッドで比較できることを仮定しています。
引数を指定しない形式では要素が存在しなければ nil を返します。
引数を指定する形式では、空の配列を返します。
//emlist[例][ruby]{
[].min #=> nil
[].min(1) #=> []
[2, 5, 3].min #=> 2
[2, 5, 3].min(2) #=> [2, 3]
//}
@param n 取得する要素数。
@see Enumerable#min -
Array
# min {|a , b| . . . } -> object | nil (22.0) -
ブロックの評価結果で各要素の大小判定を行い、最小の要素、もしくは最小の n 要素が昇順で入った配列を返します。 引数を指定しない形式では要素が存在しなければ nil を返します。 引数を指定する形式では、空の配列を返します。
ブロックの評価結果で各要素の大小判定を行い、最小の要素、もしくは最小の
n 要素が昇順で入った配列を返します。
引数を指定しない形式では要素が存在しなければ nil を返します。
引数を指定する形式では、空の配列を返します。
ブロックの値は、a > b のとき正、a == b のとき 0、
a < b のとき負の整数を、期待しています。
//emlist[例][ruby]{
[].min {|a, b| a <=> b } #=> nil
[].min(1) {|a, b| a <=> b } #=> []
ary = %w(albatross dog horse)
ary.mi... -
Array
# min(n) -> Array (22.0) -
最小の要素、もしくは最小の n 要素が昇順で入った配列を返します。 全要素が互いに <=> メソッドで比較できることを仮定しています。
最小の要素、もしくは最小の n 要素が昇順で入った配列を返します。
全要素が互いに <=> メソッドで比較できることを仮定しています。
引数を指定しない形式では要素が存在しなければ nil を返します。
引数を指定する形式では、空の配列を返します。
//emlist[例][ruby]{
[].min #=> nil
[].min(1) #=> []
[2, 5, 3].min #=> 2
[2, 5, 3].min(2) #=> [2, 3]
//}
@param n 取得する要素数。
@see Enumerable#min -
Array
# min(n) {|a , b| . . . } -> Array (22.0) -
ブロックの評価結果で各要素の大小判定を行い、最小の要素、もしくは最小の n 要素が昇順で入った配列を返します。 引数を指定しない形式では要素が存在しなければ nil を返します。 引数を指定する形式では、空の配列を返します。
ブロックの評価結果で各要素の大小判定を行い、最小の要素、もしくは最小の
n 要素が昇順で入った配列を返します。
引数を指定しない形式では要素が存在しなければ nil を返します。
引数を指定する形式では、空の配列を返します。
ブロックの値は、a > b のとき正、a == b のとき 0、
a < b のとき負の整数を、期待しています。
//emlist[例][ruby]{
[].min {|a, b| a <=> b } #=> nil
[].min(1) {|a, b| a <=> b } #=> []
ary = %w(albatross dog horse)
ary.mi... -
Array
# clear -> self (19.0) -
配列の要素をすべて削除して空にします。
配列の要素をすべて削除して空にします。
//emlist[例][ruby]{
ary = [1, 2]
ary.clear
p ary #=> []
//} -
Array
# delete(val) -> object | nil (19.0) -
指定された val と == で等しい要素を自身からすべて取り除きます。 等しい要素が見つかった場合は最後に見つかった要素を、 そうでない場合には nil を返します。
指定された val と == で等しい要素を自身からすべて取り除きます。
等しい要素が見つかった場合は最後に見つかった要素を、
そうでない場合には nil を返します。
ブロックが与えられた場合、val と等しい要素が見つからなかったときにブロッ
クを評価してその結果を返します。
@param val 自身から削除したい値を指定します。
//emlist[例][ruby]{
array = [1, 2, 3, 2, 1]
p array.delete(2) #=> 2
p array #=> [1, 3, 1]
# ブロックなしの引数に n... -
Array
# delete(val) { . . . } -> object (19.0) -
指定された val と == で等しい要素を自身からすべて取り除きます。 等しい要素が見つかった場合は最後に見つかった要素を、 そうでない場合には nil を返します。
指定された val と == で等しい要素を自身からすべて取り除きます。
等しい要素が見つかった場合は最後に見つかった要素を、
そうでない場合には nil を返します。
ブロックが与えられた場合、val と等しい要素が見つからなかったときにブロッ
クを評価してその結果を返します。
@param val 自身から削除したい値を指定します。
//emlist[例][ruby]{
array = [1, 2, 3, 2, 1]
p array.delete(2) #=> 2
p array #=> [1, 3, 1]
# ブロックなしの引数に n... -
Array
# fill(range) {|index| . . . } -> self (19.0) -
配列の指定された範囲すべてに val をセットします。
配列の指定された範囲すべてに val をセットします。
範囲の始点が自身の末尾を越える時には配列の長さを自動的に拡張し、拡張した領域を nil で初期化します。
範囲の終点が自身の末尾を越える時は長さを自動的に拡張し、拡張した部分を val で初期化します。
このメソッドが val のコピーでなく val 自身をセットすることに注意してください。
//emlist[例][ruby]{
a = [0, 1, 2]
a.fill("x", 5..10)
p a #=> [0, 1, 2, nil, nil, "x", "x", "x", "x", "x", "x"]
//}
val の代わり... -
Array
# fill(start , length = nil) {|index| . . . } -> self (19.0) -
配列の指定された範囲すべてに val をセットします。
配列の指定された範囲すべてに val をセットします。
範囲の始点が自身の末尾を越える時には配列の長さを自動的に拡張し、拡張した領域を nil で初期化します。
範囲の終点が自身の末尾を越える時は長さを自動的に拡張し、拡張した部分を val で初期化します。
このメソッドが val のコピーでなく val 自身をセットすることに注意してください。
//emlist[例][ruby]{
a = [0, 1, 2]
a.fill("x", 5..10)
p a #=> [0, 1, 2, nil, nil, "x", "x", "x", "x", "x", "x"]
//}
val の代わり... -
Array
# fill(val , range) -> self (19.0) -
配列の指定された範囲すべてに val をセットします。
配列の指定された範囲すべてに val をセットします。
範囲の始点が自身の末尾を越える時には配列の長さを自動的に拡張し、拡張した領域を nil で初期化します。
範囲の終点が自身の末尾を越える時は長さを自動的に拡張し、拡張した部分を val で初期化します。
このメソッドが val のコピーでなく val 自身をセットすることに注意してください。
//emlist[例][ruby]{
a = [0, 1, 2]
a.fill("x", 5..10)
p a #=> [0, 1, 2, nil, nil, "x", "x", "x", "x", "x", "x"]
//}
val の代わり... -
Array
# fill(val , start , length = nil) -> self (19.0) -
配列の指定された範囲すべてに val をセットします。
配列の指定された範囲すべてに val をセットします。
範囲の始点が自身の末尾を越える時には配列の長さを自動的に拡張し、拡張した領域を nil で初期化します。
範囲の終点が自身の末尾を越える時は長さを自動的に拡張し、拡張した部分を val で初期化します。
このメソッドが val のコピーでなく val 自身をセットすることに注意してください。
//emlist[例][ruby]{
a = [0, 1, 2]
a.fill("x", 5..10)
p a #=> [0, 1, 2, nil, nil, "x", "x", "x", "x", "x", "x"]
//}
val の代わり... -
Array
# first(n) -> Array (19.0) -
先頭の n 要素を配列で返します。n は 0 以上でなければなりません。
先頭の n 要素を配列で返します。n は 0 以上でなければなりません。
@param n 取得したい要素の個数を整数で指定します。
整数以外のオブジェクトを指定した場合は to_int メソッドによる暗
黙の型変換を試みます。
@raise TypeError 引数に整数以外の(暗黙の型変換が行えない)オブジェクトを
指定した場合に発生します。
@raise ArgumentError n が負値の場合発生します。
//emlist[例][ruby]{
ary = [0, 1, 2]
p ary.first(0... -
Array
# last(n) -> Array (19.0) -
末尾の n 要素を配列で返します。n は 0 以上でなければなりません。
末尾の n 要素を配列で返します。n は 0 以上でなければなりません。
@param n 取得したい要素の個数を整数で指定します。
整数以外のオブジェクトを指定した場合は to_int メソッドによる暗
黙の型変換を試みます。
@raise TypeError 引数に整数以外の(暗黙の型変換が行えない)オブジェクトを
指定した場合に発生します。
@raise ArgumentError n が負値の場合発生します。
//emlist[例][ruby]{
ary = [0, 1, 2]
p ary.last(0)... -
Array
# pack(template) -> String (19.0) -
配列の内容を template で指定された文字列にしたがって、 バイナリとしてパックした文字列を返します。
配列の内容を template で指定された文字列にしたがって、
バイナリとしてパックした文字列を返します。
テンプレートは
型指定文字列とその長さ(省略時は1)を並べたものです。長さと
して * が指定された時は「残りのデータ全て」の長さを
表します。型指定文字は以下で述べる pack テンプレート文字列の通りです。
buffer が指定されていれば、バッファとして使って返値として返します。
もし template の最初にオフセット (@) が指定されていれば、
結果はオフセットの後ろから詰められます。
buffer の元の内容がオフセットより長ければ、
オフセットより後ろの部分は上... -
Array
# pack(template , buffer: String . new) -> String (19.0) -
配列の内容を template で指定された文字列にしたがって、 バイナリとしてパックした文字列を返します。
配列の内容を template で指定された文字列にしたがって、
バイナリとしてパックした文字列を返します。
テンプレートは
型指定文字列とその長さ(省略時は1)を並べたものです。長さと
して * が指定された時は「残りのデータ全て」の長さを
表します。型指定文字は以下で述べる pack テンプレート文字列の通りです。
buffer が指定されていれば、バッファとして使って返値として返します。
もし template の最初にオフセット (@) が指定されていれば、
結果はオフセットの後ろから詰められます。
buffer の元の内容がオフセットより長ければ、
オフセットより後ろの部分は上... -
Array
# pop -> object | nil (19.0) -
自身の末尾から要素を取り除いてそれを返します。 引数を指定した場合はその個数だけ取り除き、それを配列で返します。
自身の末尾から要素を取り除いてそれを返します。
引数を指定した場合はその個数だけ取り除き、それを配列で返します。
空配列の場合、n が指定されていない場合は nil を、
指定されている場合は空配列を返します。
また、n が自身の要素数より少ない場合はその要素数の配列を
返します。どちらの場合も自身は空配列となります。
返す値と副作用の両方を利用して、個数を指定して配列を 2 分する簡単な方法として使えます。
@param n 自身から取り除きたい要素の個数を整数で指定します。
整数以外のオブジェクトを指定した場合は to_int メソッドによる暗
... -
Array
# pop(n) -> Array (19.0) -
自身の末尾から要素を取り除いてそれを返します。 引数を指定した場合はその個数だけ取り除き、それを配列で返します。
自身の末尾から要素を取り除いてそれを返します。
引数を指定した場合はその個数だけ取り除き、それを配列で返します。
空配列の場合、n が指定されていない場合は nil を、
指定されている場合は空配列を返します。
また、n が自身の要素数より少ない場合はその要素数の配列を
返します。どちらの場合も自身は空配列となります。
返す値と副作用の両方を利用して、個数を指定して配列を 2 分する簡単な方法として使えます。
@param n 自身から取り除きたい要素の個数を整数で指定します。
整数以外のオブジェクトを指定した場合は to_int メソッドによる暗
... -
Array
# repeated _ combination(n) -> Enumerator (19.0) -
サイズ n の重複組み合わせをすべて生成し、それを引数としてブロックを実行 します。
サイズ n の重複組み合わせをすべて生成し、それを引数としてブロックを実行
します。
得られる組み合わせの順序は保証されません。ブロックなしで呼び出されると、
組み合わせを生成する Enumerator オブジェクトを返します。
@param n 生成される配列のサイズを整数で指定します。
整数以外のオブジェクトを指定した場合は to_int メソッドによる暗
黙の型変換を試みます。
@raise TypeError 引数に整数以外の(暗黙の型変換が行えない)オブジェクトを
指定した場合に発生します。
//emli... -
Array
# repeated _ combination(n) { |c| . . . } -> self (19.0) -
サイズ n の重複組み合わせをすべて生成し、それを引数としてブロックを実行 します。
サイズ n の重複組み合わせをすべて生成し、それを引数としてブロックを実行
します。
得られる組み合わせの順序は保証されません。ブロックなしで呼び出されると、
組み合わせを生成する Enumerator オブジェクトを返します。
@param n 生成される配列のサイズを整数で指定します。
整数以外のオブジェクトを指定した場合は to_int メソッドによる暗
黙の型変換を試みます。
@raise TypeError 引数に整数以外の(暗黙の型変換が行えない)オブジェクトを
指定した場合に発生します。
//emli... -
Array
# repeated _ permutation(n) -> Enumerator (19.0) -
サイズ n の重複順列をすべて生成し,それを引数としてブロックを実行します。
サイズ n の重複順列をすべて生成し,それを引数としてブロックを実行します。
得られる順列の順序は保証されません。ブロックなしで呼び出されると, 順列
を生成する Enumerator オブジェクトを返します。
@param n 生成する配列のサイズを整数で指定します。
整数以外のオブジェクトを指定した場合は to_int メソッドによる暗
黙の型変換を試みます。
@raise TypeError 引数に整数以外の(暗黙の型変換が行えない)オブジェクトを
指定した場合に発生します。
//emlist[例][ruby... -
Array
# repeated _ permutation(n) { |p| . . . } -> self (19.0) -
サイズ n の重複順列をすべて生成し,それを引数としてブロックを実行します。
サイズ n の重複順列をすべて生成し,それを引数としてブロックを実行します。
得られる順列の順序は保証されません。ブロックなしで呼び出されると, 順列
を生成する Enumerator オブジェクトを返します。
@param n 生成する配列のサイズを整数で指定します。
整数以外のオブジェクトを指定した場合は to_int メソッドによる暗
黙の型変換を試みます。
@raise TypeError 引数に整数以外の(暗黙の型変換が行えない)オブジェクトを
指定した場合に発生します。
//emlist[例][ruby... -
Array
# shift -> object | nil (19.0) -
配列の先頭の要素を取り除いてそれを返します。 引数を指定した場合はその個数だけ取り除き、それを配列で返します。
配列の先頭の要素を取り除いてそれを返します。
引数を指定した場合はその個数だけ取り除き、それを配列で返します。
空配列の場合、n が指定されていない場合は nil を、
指定されている場合は空配列を返します。
また、n が自身の要素数より少ない場合はその要素数の配列を
返します。どちらの場合も自身は空配列となります。
返す値と副作用の両方を利用して、個数を指定して配列を 2 分する簡単な方法として使えます。
@param n 自身から取り除きたい要素の個数を非負整数で指定します。
整数以外のオブジェクトを指定した場合は to_int メソッドによる暗
... -
Array
# shift(n) -> Array (19.0) -
配列の先頭の要素を取り除いてそれを返します。 引数を指定した場合はその個数だけ取り除き、それを配列で返します。
配列の先頭の要素を取り除いてそれを返します。
引数を指定した場合はその個数だけ取り除き、それを配列で返します。
空配列の場合、n が指定されていない場合は nil を、
指定されている場合は空配列を返します。
また、n が自身の要素数より少ない場合はその要素数の配列を
返します。どちらの場合も自身は空配列となります。
返す値と副作用の両方を利用して、個数を指定して配列を 2 分する簡単な方法として使えます。
@param n 自身から取り除きたい要素の個数を非負整数で指定します。
整数以外のオブジェクトを指定した場合は to_int メソッドによる暗
... -
Array
# slice!(range) -> Array | nil (19.0) -
指定した部分配列を自身から取り除き、取り除いた部分配列を返します。取り除く要素がなければ nil を返します。
指定した部分配列を自身から取り除き、取り除いた部分配列を返します。取り除く要素がなければ nil
を返します。
@param start 削除したい部分配列の先頭のインデックスを整数で指定します。
@param len 削除したい部分配列の長さを整数で指定します。
@param range 削除したい配列の範囲を Range オブジェクトで指定します。
//emlist[例][ruby]{
a = [ "a", "b", "c" ]
a.slice!(1, 2) #=> ["b", "c"]
a #=> ["a"]
a = [ "a", "... -
Array
# slice!(start , len) -> Array | nil (19.0) -
指定した部分配列を自身から取り除き、取り除いた部分配列を返します。取り除く要素がなければ nil を返します。
指定した部分配列を自身から取り除き、取り除いた部分配列を返します。取り除く要素がなければ nil
を返します。
@param start 削除したい部分配列の先頭のインデックスを整数で指定します。
@param len 削除したい部分配列の長さを整数で指定します。
@param range 削除したい配列の範囲を Range オブジェクトで指定します。
//emlist[例][ruby]{
a = [ "a", "b", "c" ]
a.slice!(1, 2) #=> ["b", "c"]
a #=> ["a"]
a = [ "a", "... -
Array
# transpose -> Array (19.0) -
自身を行列と見立てて、行列の転置(行と列の入れ換え)を行いま す。転置した配列を生成して返します。空の配列に対しては空の配列を生 成して返します。
自身を行列と見立てて、行列の転置(行と列の入れ換え)を行いま
す。転置した配列を生成して返します。空の配列に対しては空の配列を生
成して返します。
それ以外の一次元の配列に対しては、例外
TypeError が発生します。各要素のサイズが不揃いな配列に対して
は、例外 IndexError が発生します。
//emlist[例][ruby]{
p [[1,2],
[3,4],
[5,6]].transpose
# => [[1, 3, 5], [2, 4, 6]]
p [].transpose
# => []
p [1,2,3].transpose
# => -:1:i... -
DOSISH 対応 (19.0)
-
DOSISH 対応 ruby version 1.7 では、DOSISH対応(DOS/Windows のパス名の扱いに対する変 更)が含まれています。(現在の)変更点を以下に示します。
DOSISH 対応
ruby version 1.7 では、DOSISH対応(DOS/Windows のパス名の扱いに対する変
更)が含まれています。(現在の)変更点を以下に示します。
なお、これらの変更は platform/mswin32 版、platform/mingw32
版の Ruby にのみあてはまります。
とりあえずの目標として、
* \ も / と同様パスセパレータとして扱う
* マルチバイトパス名への対応("表" など 2 byte 目が 0x5c(`\') である文字を正しく扱う)
* UNC 対応(これ自体は1.6にも入っている)
* ドライブレター対応
... -
Enumerable
# first -> object | nil (19.0) -
Enumerable オブジェクトの最初の要素、もしくは最初の n 要素を返します。
Enumerable オブジェクトの最初の要素、もしくは最初の n 要素を返します。
Enumerable オブジェクトが空の場合、引数を指定しない形式では nil を返します。
引数を指定する形式では、空の配列を返します。
@param n 取得する要素数。
//emlist[例][ruby]{
e = "abcd".each_byte
e.first #=> 97
e.first(2) #=> [97,98]
e = "".each_byte
e.first #=> nil
e.first(2) #=> []
//} -
Enumerable
# first(n) -> Array (19.0) -
Enumerable オブジェクトの最初の要素、もしくは最初の n 要素を返します。
Enumerable オブジェクトの最初の要素、もしくは最初の n 要素を返します。
Enumerable オブジェクトが空の場合、引数を指定しない形式では nil を返します。
引数を指定する形式では、空の配列を返します。
@param n 取得する要素数。
//emlist[例][ruby]{
e = "abcd".each_byte
e.first #=> 97
e.first(2) #=> [97,98]
e = "".each_byte
e.first #=> nil
e.first(2) #=> []
//} -
Enumerable
# sort _ by -> Enumerator (19.0) -
ブロックの評価結果を <=> メソッドで比較することで、self を昇 順にソートします。ソートされた配列を新たに生成して返します。
ブロックの評価結果を <=> メソッドで比較することで、self を昇
順にソートします。ソートされた配列を新たに生成して返します。
つまり、以下とほぼ同じ動作をします。
//emlist[例][ruby]{
class Array
def sort_by
self.map {|i| [yield(i), i] }.
sort {|a, b| a[0] <=> b[0] }.
map {|i| i[1]}
end
end
//}
Enumerable#sort と比較して sort_by が優れている点として、
比較条件が複雑な場合の速度が挙... -
Enumerable
# sort _ by {|item| . . . } -> [object] (19.0) -
ブロックの評価結果を <=> メソッドで比較することで、self を昇 順にソートします。ソートされた配列を新たに生成して返します。
ブロックの評価結果を <=> メソッドで比較することで、self を昇
順にソートします。ソートされた配列を新たに生成して返します。
つまり、以下とほぼ同じ動作をします。
//emlist[例][ruby]{
class Array
def sort_by
self.map {|i| [yield(i), i] }.
sort {|a, b| a[0] <=> b[0] }.
map {|i| i[1]}
end
end
//}
Enumerable#sort と比較して sort_by が優れている点として、
比較条件が複雑な場合の速度が挙... -
Enumerator
# next _ values -> Array (19.0) -
「次」のオブジェクトを配列で返します。
「次」のオブジェクトを配列で返します。
Enumerator#next とほぼ同様の挙動をします。終端まで到達した場合は
StopIteration 例外を発生させます。
このメソッドは、
yield
と
yield nil
を区別するために使えます。
next メソッドによる外部列挙の状態は他のイテレータメソッドによる
内部列挙には影響を与えません。
ただし、 IO#each_line のようにおおもとの列挙メカニズムが副作用を
伴っている場合には影響があり得ます。
//emlist[例: next と next_values の違いを][ruby]{
o = Object... -
Enumerator
# peek _ values -> Array (19.0) -
Enumerator#next_values のように「次」のオブジェクトを 配列で返しますが、列挙状態を変化させません。
Enumerator#next_values のように「次」のオブジェクトを
配列で返しますが、列挙状態を変化させません。
Enumerator#next, Enumerator#next_values のように
現在までの列挙状態に応じて「次」のオブジェクトを返しますが、
next と異なり列挙状態を変更しません。
列挙が既に最後へ到達している場合は、StopIteration 例外を発生します。
このメソッドは Enumerator#next_values と同様
yield
と
yield nil
を区別するために使えます。
//emlist[例][ruby]{
o =... -
Forwardable
# def _ delegator(accessor , method , ali = method) -> () (19.0) -
メソッドの委譲先を設定します。
メソッドの委譲先を設定します。
@param accessor 委譲先のオブジェクト
@param method 委譲先のメソッド
@param ali 委譲元のメソッド
委譲元のオブジェクトで ali が呼び出された場合に、
委譲先のオブジェクトの method へ処理が委譲されるようになります。
委譲元と委譲先のメソッド名が同じ場合は, ali を省略することが可能です。
def_delegator は def_instance_delegator の別名になります。
例:
require 'forwardable'
class MyQueue
exten... -
Forwardable
# def _ instance _ delegator(accessor , method , ali = method) -> () (19.0) -
メソッドの委譲先を設定します。
メソッドの委譲先を設定します。
@param accessor 委譲先のオブジェクト
@param method 委譲先のメソッド
@param ali 委譲元のメソッド
委譲元のオブジェクトで ali が呼び出された場合に、
委譲先のオブジェクトの method へ処理が委譲されるようになります。
委譲元と委譲先のメソッド名が同じ場合は, ali を省略することが可能です。
def_delegator は def_instance_delegator の別名になります。
例:
require 'forwardable'
class MyQueue
exten... -
Hash
. new(ifnone = nil) -> Hash (19.0) -
空の新しいハッシュを生成します。ifnone はキーに対 応する値が存在しない時のデフォルト値です。設定したデフォルト値はHash#defaultで参照できます。
空の新しいハッシュを生成します。ifnone はキーに対
応する値が存在しない時のデフォルト値です。設定したデフォルト値はHash#defaultで参照できます。
ifnoneを省略した Hash.new は {} と同じです。
デフォルト値として、毎回同一のオブジェクトifnoneを返します。
それにより、一箇所のデフォルト値の変更が他の値のデフォルト値にも影響します。
//emlist[][ruby]{
h = Hash.new([])
h[0] << 0
h[1] << 1
p h.default #=> [0, 1]
//}
これを避けるには、破壊的でないメソッドで再代入する... -
IRB
:: Context (19.0) -
irb の設定を扱うためのクラスです。
irb の設定を扱うためのクラスです。
irb 中で conf コマンドの戻り値や .irbrc で IRB.conf を操作する事で設定
を変更します。irb の起動後は IRB.conf の内容を更新しても変更の内容は反
映されない事に注意してください。
なお、.irbrc 中に記述できる以下の設定値については、IRB::Context
オブジェクトのメソッドとして操作できません。
: IRB.conf[:AT_EXIT]
irb の終了時(サブ irb を含みません)に本項目に設定された Proc オ
ブジェクトを実行します。ブロック引数には何も渡されません。
デフ... -
Kernel
$ $ INPUT _ RECORD _ SEPARATOR -> String | nil (19.0) -
$/ の別名
$/ の別名
require "English"
$INPUT_RECORD_SEPARATOR = '|'
array = []
while line = DATA.gets
array << line
end
p array #=> ["ugo|", "ego|", "fogo\n"]
__END__
ugo|ego|fogo -
Kernel
$ $ RS -> String | nil (19.0) -
$/ の別名
$/ の別名
require "English"
$INPUT_RECORD_SEPARATOR = '|'
array = []
while line = DATA.gets
array << line
end
p array #=> ["ugo|", "ego|", "fogo\n"]
__END__
ugo|ego|fogo -
Kernel
. # Array(arg) -> Array (19.0) -
引数を配列(Array)に変換した結果を返します。
引数を配列(Array)に変換した結果を返します。
arg.to_ary と arg.to_a をこの順に呼び出して、返ってきた配列を変換結果とします。
arg に to_ary, to_a のいずれのメソッドも定義されていない場合は
一要素の配列 [arg] を返します。
@param arg 変換対象のオブジェクトです。
@raise TypeError to_ary, to_a の返り値が配列でなければ発生します
//emlist[例][ruby]{
p Array({:it => 3}) #=> [[:it, 3]]
p Array(nil) #=> []
p Array("... -
Kernel
. # caller(range) -> [String] | nil (19.0) -
start 段上の呼び出し元の情報を $@ の形式のバックトレース(文字列の配列)として返します。
start 段上の呼び出し元の情報を $@
の形式のバックトレース(文字列の配列)として返します。
トップレベルでは空の配列を返します。caller の戻り値を $@ に代入することで
例外の発生位置を設定できます。
引数で指定した値が範囲外の場合は nil を返します。
@param start long の範囲を超えない正の整数でスタックレベルを指定します。
@param length 取得するスタックの個数を指定します。
@param range 取得したいスタックの範囲を示す Range オブジェクトを指定します。
@see Kernel.#set_trace_func,K... -
Kernel
. # caller(start = 1) -> [String] | nil (19.0) -
start 段上の呼び出し元の情報を $@ の形式のバックトレース(文字列の配列)として返します。
start 段上の呼び出し元の情報を $@
の形式のバックトレース(文字列の配列)として返します。
トップレベルでは空の配列を返します。caller の戻り値を $@ に代入することで
例外の発生位置を設定できます。
引数で指定した値が範囲外の場合は nil を返します。
@param start long の範囲を超えない正の整数でスタックレベルを指定します。
@param length 取得するスタックの個数を指定します。
@param range 取得したいスタックの範囲を示す Range オブジェクトを指定します。
@see Kernel.#set_trace_func,K... -
Kernel
. # caller(start , length) -> [String] | nil (19.0) -
start 段上の呼び出し元の情報を $@ の形式のバックトレース(文字列の配列)として返します。
start 段上の呼び出し元の情報を $@
の形式のバックトレース(文字列の配列)として返します。
トップレベルでは空の配列を返します。caller の戻り値を $@ に代入することで
例外の発生位置を設定できます。
引数で指定した値が範囲外の場合は nil を返します。
@param start long の範囲を超えない正の整数でスタックレベルを指定します。
@param length 取得するスタックの個数を指定します。
@param range 取得したいスタックの範囲を示す Range オブジェクトを指定します。
@see Kernel.#set_trace_func,K... -
Kernel
. # caller _ locations(range) -> [Thread :: Backtrace :: Location] | nil (19.0) -
現在のフレームを Thread::Backtrace::Location の配列で返します。引 数で指定した値が範囲外の場合は nil を返します。
現在のフレームを Thread::Backtrace::Location の配列で返します。引
数で指定した値が範囲外の場合は nil を返します。
@param start 開始フレームの位置を数値で指定します。
@param length 取得するフレームの個数を指定します。
@param range 取得したいフレームの範囲を示す Range オブジェクトを指定します。
//emlist[例][ruby]{
def test1(start, length)
locations = caller_locations(start, length)
p locations
... -
Kernel
. # caller _ locations(start = 1 , length = nil) -> [Thread :: Backtrace :: Location] | nil (19.0) -
現在のフレームを Thread::Backtrace::Location の配列で返します。引 数で指定した値が範囲外の場合は nil を返します。
現在のフレームを Thread::Backtrace::Location の配列で返します。引
数で指定した値が範囲外の場合は nil を返します。
@param start 開始フレームの位置を数値で指定します。
@param length 取得するフレームの個数を指定します。
@param range 取得したいフレームの範囲を示す Range オブジェクトを指定します。
//emlist[例][ruby]{
def test1(start, length)
locations = caller_locations(start, length)
p locations
... -
Kernel
. # exec(command , options={}) -> () (19.0) -
引数で指定されたコマンドを実行します。
引数で指定されたコマンドを実行します。
プロセスの実行コードはそのコマンド(あるいは shell)になるので、
起動に成功した場合、このメソッドからは戻りません。
=== 引数の解釈
この形式では command が shell のメタ文字
//emlist{
* ? {} [] <> () ~ & | \ $ ; ' ` " \n
//}
を含む場合、shell 経由で実行されます。
そうでなければインタプリタから直接実行されます。
@param command コマンドを文字列で指定します。
@param env 更新する環境変数を表す Hash
@param options... -
Kernel
. # exec(env , command , options={}) -> () (19.0) -
引数で指定されたコマンドを実行します。
引数で指定されたコマンドを実行します。
プロセスの実行コードはそのコマンド(あるいは shell)になるので、
起動に成功した場合、このメソッドからは戻りません。
=== 引数の解釈
この形式では command が shell のメタ文字
//emlist{
* ? {} [] <> () ~ & | \ $ ; ' ` " \n
//}
を含む場合、shell 経由で実行されます。
そうでなければインタプリタから直接実行されます。
@param command コマンドを文字列で指定します。
@param env 更新する環境変数を表す Hash
@param options... -
Kernel
. # readlines(rs = $ / ) -> [String] (19.0) -
ARGFを Kernel.#gets(rs) でEOFまで読み込んで、その各行を要素としてもつ配列を返します。 行の区切りは引数 rs で指定した文字列になります。
ARGFを Kernel.#gets(rs) でEOFまで読み込んで、その各行を要素としてもつ配列を返します。
行の区切りは引数 rs で指定した文字列になります。
rs に nil を指定すると行区切りなしとみなします。
空文字列 "" を指定すると連続する改行を行の区切りとみなします
(パラグラフモード)。
@param rs 行の区切りとなる文字列です。
@raise Errno::EXXX 読み込みに失敗した場合に発生します。
//emlist[main.rb][ruby]{
ARGV << 'b.txt' << 'b.txt'
p readlines #=> ["... -
Kernel
. # spawn(command , options={}) -> Integer (19.0) -
引数を外部コマンドとして実行しますが、生成した 子プロセスの終了を待ち合わせません。生成した子プロセスのプロセスIDを返します。
引数を外部コマンドとして実行しますが、生成した
子プロセスの終了を待ち合わせません。生成した子プロセスのプロセスIDを返します。
=== 引数の解釈
この形式では command が shell のメタ文字
//emlist{
* ? {} [] <> () ~ & | \ $ ; ' ` " \n
//}
を含む場合、shell 経由で実行されます。
そうでなければインタプリタから直接実行されます。
@param command コマンドを文字列で指定します。
@param env 更新する環境変数を表す Hash
@param options オプションパラメータ Hash... -
Kernel
. # spawn(env , command , options={}) -> Integer (19.0) -
引数を外部コマンドとして実行しますが、生成した 子プロセスの終了を待ち合わせません。生成した子プロセスのプロセスIDを返します。
引数を外部コマンドとして実行しますが、生成した
子プロセスの終了を待ち合わせません。生成した子プロセスのプロセスIDを返します。
=== 引数の解釈
この形式では command が shell のメタ文字
//emlist{
* ? {} [] <> () ~ & | \ $ ; ' ` " \n
//}
を含む場合、shell 経由で実行されます。
そうでなければインタプリタから直接実行されます。
@param command コマンドを文字列で指定します。
@param env 更新する環境変数を表す Hash
@param options オプションパラメータ Hash... -
Kernel
. # srand -> Integer (19.0) -
Kernel.#rand や Random.rand で使用される擬似乱数生成器の種を設定し、古い種を返します。
Kernel.#rand や Random.rand で使用される擬似乱数生成器の種を設定し、古い種を返します。
seed に整数を指定するとその絶対値を乱数の種に設定します。
それ以外の値を指定した場合は seed.to_int が指定されたものとして扱います。
seed に既知の値を与えると、以前の Kernel.#rand の値を再現できます。
seed が省略された時には
現在の時刻やプロセス ID、srand を呼び出した回数、
また可能なら /dev/urandom から読み出したデータなどを元に種を作ります。
@param seed 乱数の種となる整数を指定します。
... -
Kernel
. # srand(seed) -> Integer (19.0) -
Kernel.#rand や Random.rand で使用される擬似乱数生成器の種を設定し、古い種を返します。
Kernel.#rand や Random.rand で使用される擬似乱数生成器の種を設定し、古い種を返します。
seed に整数を指定するとその絶対値を乱数の種に設定します。
それ以外の値を指定した場合は seed.to_int が指定されたものとして扱います。
seed に既知の値を与えると、以前の Kernel.#rand の値を再現できます。
seed が省略された時には
現在の時刻やプロセス ID、srand を呼び出した回数、
また可能なら /dev/urandom から読み出したデータなどを元に種を作ります。
@param seed 乱数の種となる整数を指定します。
... -
Kernel
. # system(command , options={}) -> bool | nil (19.0) -
引数を外部コマンドとして実行して、成功した時に真を返します。
引数を外部コマンドとして実行して、成功した時に真を返します。
子プロセスが終了ステータス 0 で終了すると成功とみなし true を返します。
それ以外の終了ステータスの場合は false を返します。
コマンドを実行できなかった場合は nil を返します。
終了ステータスは変数 $? で参照できます。
コマンドを実行することができなかった場合、多くのシェルはステータス
127 を返します。シェルを介さない場合は Ruby の子プロセスがステータス
127 で終了します。
コマンドが実行できなかったのか、コマンドが失敗したのかは、普通
$? を参照することで判別可能です。
=== ... -
Kernel
. # system(env , command , options={}) -> bool | nil (19.0) -
引数を外部コマンドとして実行して、成功した時に真を返します。
引数を外部コマンドとして実行して、成功した時に真を返します。
子プロセスが終了ステータス 0 で終了すると成功とみなし true を返します。
それ以外の終了ステータスの場合は false を返します。
コマンドを実行できなかった場合は nil を返します。
終了ステータスは変数 $? で参照できます。
コマンドを実行することができなかった場合、多くのシェルはステータス
127 を返します。シェルを介さない場合は Ruby の子プロセスがステータス
127 で終了します。
コマンドが実行できなかったのか、コマンドが失敗したのかは、普通
$? を参照することで判別可能です。
=== ... -
Marshal フォーマット (19.0)
-
Marshal フォーマット フォーマットバージョン 4.8 を元に記述しています。
Marshal フォーマット
フォーマットバージョン 4.8 を元に記述しています。
=== nil, true, false
それぞれ、'0', 'T', 'F' になります。
//emlist[][ruby]{
p Marshal.dump(nil).unpack1("x2 a*") # => "0"
p Marshal.dump(true).unpack1("x2 a*") # => "T"
p Marshal.dump(false).unpack1("x2 a*") # => "F"
//}
Ruby 2.1 以前では、インスタンス変数を設定しても dump されません... -
Module
# const _ source _ location(name , inherited = true) -> [String , Integer] (19.0) -
name で指定した定数の定義を含むソースコードのファイル名と行番号を配列で返します。
name で指定した定数の定義を含むソースコードのファイル名と行番号を配列で返します。
@param name Symbol,String で定数の名前を指定します。
@param inherited true を指定するとスーパークラスや include したモジュールで定義された定数が対象にはなります。false を指定した場合 対象にはなりません。
@return ソースコードのファイル名と行番号を配列で返します。
指定した定数が見つからない場合は nil を返します。
定数は見つかったがソースファイルが見つからなかった場合は空の配列を返します。
... -
Module
# constants(inherit = true) -> [Symbol] (19.0) -
そのモジュール(またはクラス)で定義されている定数名の配列を返します。
そのモジュール(またはクラス)で定義されている定数名の配列を返します。
inherit に真を指定すると
スーパークラスやインクルードしているモジュールの定数も含みます。
Object のサブクラスの場合、Objectやそのスーパークラスで定義されている
定数は含まれません。 Object.constants とすると Object クラスで定義された
定数の配列が得られます。
得られる定数の順序は保証されません。
@param inherit true を指定するとスーパークラスや include したモジュールで
定義された定数が対象にはなります。false を指定し... -
Module
# included _ modules -> [Module] (19.0) -
self にインクルードされているモジュールの配列を返します。
self にインクルードされているモジュールの配列を返します。
//emlist[例][ruby]{
module Mixin
end
module Outer
include Mixin
end
Mixin.included_modules #=> []
Outer.included_modules #=> [Mixin]
//}
@see Module#ancestors -
Module
# prepend _ features(mod) -> self (19.0) -
Module#prepend から呼び出されるメソッドで、 prepend の処理の実体です。このメソッド自体は mod で指定した モジュール/クラスの継承チェインの先頭に self を追加します。
Module#prepend から呼び出されるメソッドで、
prepend の処理の実体です。このメソッド自体は mod で指定した
モジュール/クラスの継承チェインの先頭に self を追加します。
このメソッドを上書きすることで、prepend の処理を変更したり
追加したりすることができます。
@param mod prepend を呼び出したモジュール
@return mod が返されます
//emlist[例][ruby]{
class Recorder
RECORDS = []
end
module X
def self.prepend_features(mod)
... -
Monitor (19.0)
-
スレッドの同期機構としてのモニター機能を提供するクラスです。 また同じスレッドから何度も lock できる Mutex としての機能も提供します。
スレッドの同期機構としてのモニター機能を提供するクラスです。
また同じスレッドから何度も lock できる Mutex としての機能も提供します。
MonitorMixin を include し、いくつかの別名を定義したクラスです。
=== 例
//emlist[消費者、生産者問題の例][ruby]{
require 'monitor'
buf = []
mon = Monitor.new
empty_cond = mon.new_cond
# consumer
Thread.start do
loop do
mon.synchronize do
empty... -
MonitorMixin
# mon _ enter -> () (19.0) -
モニターをロックします。
モニターをロックします。
一度に一つのスレッドだけがモニターをロックできます。
既にモニターがロックされている場合は、ロックが開放されるまで
そのスレッドは待ちます。
Thread::Mutex#lock に相当します。
Mutex#lock と違うのは現在のモニターの所有者が現在実行されているスレッドである場合、
何度でもロックできる点です。ロックした回数だけ mon_exit を呼ばなければモニターは
解放されません。
//emlist[例][ruby]{
require 'monitor'
buf = []
buf.extend(MonitorMixin)
buf.mon_ent... -
Net
:: IMAP :: FetchData # attr -> { String => object } (19.0) -
各メッセージのアトリビュートの値をハッシュテーブルで返します。
各メッセージのアトリビュートの値をハッシュテーブルで返します。
キーはアトリビュート名の文字列、値はアトリビュートの値となります。
値のクラスはアトリビュートによって異なります。
利用可能なアトリビュートは以下の通りです。
: BODY
BODYSTRUCTURE の拡張データなしの形式。
Net::IMAP::BodyTypeBasic, Net::IMAP::BodyTypeText,
Net::IMAP::BodyTypeMessage, Net::IMAP::BodyTypeMultipart
のいずれか。
: BODY[<section>]<<... -
Numeric (19.0)
-
数値を表す抽象クラスです。Integer や Float などの数値クラス は Numeric のサブクラスとして実装されています。
数値を表す抽象クラスです。Integer や Float などの数値クラス
は Numeric のサブクラスとして実装されています。
演算や比較を行うメソッド(+, -, *, /, <=>)は Numeric のサブクラスで定義されま
す。Numeric で定義されているメソッドは、サブクラスで提供されているメソッド
(+, -, *, /, %) を利用して定義されるものがほとんどです。
つまり Numeric で定義されているメソッドは、Numeric のサブクラスとして新たに数値クラスを定義した時に、
演算メソッド(+, -, *, /, %, <=>, coerce)だけを定義すれ... -
Object
# to _ a -> Array (19.0) -
オブジェクトを配列に変換した結果を返します。 デフォルトでは定義されていません。
オブジェクトを配列に変換した結果を返します。
デフォルトでは定義されていません。
説明のためここに記載してありますが、
このメソッドは実際には Object クラスには定義されていません。
必要に応じてサブクラスで定義すべきものです。
//emlist[][ruby]{
p( {'a'=>1}.to_a ) # [["a", 1]]
p ['array'].to_a # ["array"]
p nil.to_a # []
//}
@see Object#to_ary,Kernel.#Array -
OptionParser
# default _ argv=(argv) (19.0) -
自身がデフォルトでパースする引数を文字列の配列で指定します。
自身がデフォルトでパースする引数を文字列の配列で指定します。
OptionParser#parse の引数が指定されなかったときに使われます。
@param argv デフォルトでパースしたい文字列の配列を指定します。
//emlist[例][ruby]{
require "optparse"
config = {}
opts = OptionParser.new
opts.on("-r", "--require LIBRARY"){|lib| config[:lib] = lib }
# パラメーター指定なしで実行
opts.default_argv # => []
opts.p... -
PStore (19.0)
-
Rubyのオブジェクトを外部ファイルに格納するためのクラスです。 内部で Marshal を使っています。
Rubyのオブジェクトを外部ファイルに格納するためのクラスです。
内部で Marshal を使っています。
=== 使い方
データベースにアクセスするためには、
transaction のブロック内である必要があります。
インターフェースは Hash に似ています。
require 'pstore'
db = PStore.new("/tmp/foo")
db.transaction do
p db.roots # => []
ary = db["root"] = [1,2,3,4]
ary[0] = [1,1.5]
end
... -
PStore
# abort -> () (19.0) -
データベースの読み書きを終了します。
データベースの読み書きを終了します。
transaction ブロックから抜けますが、データベースの変更は反映されません。
@raise PStore::Error トランザクション外でこのメソッドが呼び出された場合に発生します。
例:
require 'pstore'
db = PStore.new("/tmp/foo")
db.transaction do
p db.roots # => []
ary = db["root"] = [1,2,3,4]
db.abort
ary[0] = [1,1.5] # => ここは実行さ... -
PStore
# commit -> () (19.0) -
データベースの読み書きを終了します。
データベースの読み書きを終了します。
transaction ブロックから抜け、データベースの変更が反映されます。
@raise PStore::Error トランザクション外でこのメソッドが呼び出された場合に発生します。
例:
require 'pstore'
db = PStore.new("/tmp/foo")
db.transaction do
p db.roots # => []
ary = db["root"] = [1,2,3,4]
db.commit
ary[0] = [1,1.5] # => ここは実行されない... -
PStore
# delete(name) -> object (19.0) -
ルートnameに対応する値を削除します。
ルートnameに対応する値を削除します。
@param name 探索するルート。
@return 削除した値を返します。
@raise PStore::Error トランザクション外でこのメソッドが呼び出された場合に発生します。
例:
require 'pstore'
db = PStore.new("/tmp/foo")
db.transaction do
p db.roots # => []
ary = db["root"] = [1,2,3,4]
ary[0] = [1,1.5]
end
db.transacti... -
PStore
# fetch(name , default = PStore :: Error) -> object (19.0) -
ルートnameに対応する値を得ます。
ルートnameに対応する値を得ます。
該当するルートが登録されていない時には、
引数 default が与えられていればその値を返し、
与えられていなければ例外 PStore::Error が発生します。
@param name 探索するルート。
@param default name に対応するルートが登録されていない場合に返す値を指定する。
@raise PStore::Error name に対応するルートが登録されていないかつ、
default が与えられていない場合に発生します。
また、トラ... -
PStore
# transaction(read _ only = false) {|pstore| . . . } -> object (19.0) -
トランザクションに入ります。 このブロックの中でのみデータベースの読み書きができます。
トランザクションに入ります。
このブロックの中でのみデータベースの読み書きができます。
読み込み専用のトランザクションが使用可能です。
@param read_only 真を指定すると、読み込み専用のトランザクションになります。
@return ブロックで最後に評価した値を返します。
@raise PStore::Error read_only を真にしたときに、データベースを変更しようした場合に発生します。
例:
require 'pstore'
db = PStore.new("/tmp/foo")
db.transaction do
p db.roots... -
Proc
# curry -> Proc (19.0) -
Procをカリー化します
Procをカリー化します
カリー化したProcはいくつかの引数をとります。十分な数の引数が与えられると、元のProcに引数を渡し
て実行し、結果を返します。引数の個数が足りないときは、部分適用したカリー化Procを返します。
@param arity 引数の個数を指定します
@return カリー化したProcオブジェクトを返します
//emlist[例][ruby]{
b = proc {|x, y, z| (x||0) + (y||0) + (z||0) }
p b.curry[1][2][3] #=> 6
p b.curry[1, 2][3, 4] ... -
Proc
# curry(arity) -> Proc (19.0) -
Procをカリー化します
Procをカリー化します
カリー化したProcはいくつかの引数をとります。十分な数の引数が与えられると、元のProcに引数を渡し
て実行し、結果を返します。引数の個数が足りないときは、部分適用したカリー化Procを返します。
@param arity 引数の個数を指定します
@return カリー化したProcオブジェクトを返します
//emlist[例][ruby]{
b = proc {|x, y, z| (x||0) + (y||0) + (z||0) }
p b.curry[1][2][3] #=> 6
p b.curry[1, 2][3, 4] ... -
Process
. exec(command , *args) -> () (19.0) -
カレントプロセスを与えられた外部コマンドで置き換えます。
カレントプロセスを与えられた外部コマンドで置き換えます。
=== 引数の解釈
引数が一つだけ与えられた場合、command が shell のメタ文字
//emlist{
* ? {} [] <> () ~ & | \ $ ; ' ` " \n
//}
を含む場合、shell 経由で実行されます。
そうでなければインタプリタから直接実行されます。
引数が複数与えられた場合、第 2 引数以降は command に直接渡され、
インタプリタから直接実行されます。
第 1 引数が 2 要素の配列の場合、第 1 要素の文字列が実際に起動する
プログラムのパスで、第 2 要素が「みせかけ... -
Psych
. load _ stream(yaml , filename=nil) -> [object] (19.0) -
複数の YAML ドキュメントを含むデータを Ruby のオブジェクトに変換します。
複数の YAML ドキュメントを含むデータを
Ruby のオブジェクトに変換します。
ブロックなしの場合はオブジェクトの配列を返します。
//emlist[例][ruby]{
Psych.load_stream("--- foo\n...\n--- bar\n...") # => ['foo', 'bar']
//}
ブロックありの場合は各オブジェクト引数としてそのブロックを呼び出します。
//emlist[例][ruby]{
list = []
Psych.load_stream("--- foo\n...\n--- bar\n...") do |ruby|
list << ru... -
Psych
. load _ stream(yaml , filename=nil) {|obj| . . . } -> () (19.0) -
複数の YAML ドキュメントを含むデータを Ruby のオブジェクトに変換します。
複数の YAML ドキュメントを含むデータを
Ruby のオブジェクトに変換します。
ブロックなしの場合はオブジェクトの配列を返します。
//emlist[例][ruby]{
Psych.load_stream("--- foo\n...\n--- bar\n...") # => ['foo', 'bar']
//}
ブロックありの場合は各オブジェクト引数としてそのブロックを呼び出します。
//emlist[例][ruby]{
list = []
Psych.load_stream("--- foo\n...\n--- bar\n...") do |ruby|
list << ru... -
REXML
:: Attributes # prefixes -> [String] (19.0) -
self の中で宣言されている prefix の集合を 文字列の配列で返します。
self の中で宣言されている prefix の集合を
文字列の配列で返します。
self が属する要素より上位の要素で定義されているものは含みません。
//emlist[][ruby]{
require 'rexml/document'
doc = REXML::Document.new(<<EOS)
<root xmlns:foo="http://example.org/foo"
xmlns:bar="http://example.org/bar">
<a foo:att='1' bar:att='2' att='<'/>
</root>
EOS
a = doc... -
Rake
:: PackageTask # package _ files -> Rake :: FileList (19.0) -
パッケージに含むファイルリストを返します。
パッケージに含むファイルリストを返します。
//emlist[][ruby]{
# Rakefile での記載例とする
require 'rake/packagetask'
IO.write("test1.rb", "test")
IO.write("test2.rb", "test")
Rake::PackageTask.new("sample", "1.0.0") do |package_task|
package_task.package_files # => []
package_task.package_files.include("*.rb")
package_... -
Rake
:: PackageTask # package _ files=(file _ list) (19.0) -
パッケージに含むファイルリストを設定します。
パッケージに含むファイルリストを設定します。
@param file_list ファイルリストを指定します。
//emlist[][ruby]{
# Rakefile での記載例とする
require 'rake/packagetask'
IO.write("test1.rb", "test")
IO.write("test2.rb", "test")
Rake::PackageTask.new("sample", "1.0.0") do |package_task|
package_task.package_files # => []
package_task.packag... -
Regexp
# =~(string) -> Integer | nil (19.0) -
文字列 string との正規表現マッチを行います。マッチした場合、 マッチした位置のインデックスを返します(先頭は0)。マッチしなかった 場合、あるいは string が nil の場合には nil を返 します。
文字列 string との正規表現マッチを行います。マッチした場合、
マッチした位置のインデックスを返します(先頭は0)。マッチしなかった
場合、あるいは string が nil の場合には nil を返
します。
//emlist[例][ruby]{
p /foo/ =~ "foo" # => 0
p /foo/ =~ "afoo" # => 1
p /foo/ =~ "bar" # => nil
//}
組み込み変数 $~ もしくは Regexp.last_match にマッチに関する情報 MatchData が設定されます。
文字列のかわりにSymbolをマッチさせることが... -
Regexp
# match(str , pos = 0) -> MatchData | nil (19.0) -
指定された文字列 str に対して位置 pos から自身が表す正規表現によるマッ チングを行います。マッチした場合には結果を MatchData オブジェクトで返し ます。 マッチしなかった場合 nil を返します。
指定された文字列 str に対して位置 pos から自身が表す正規表現によるマッ
チングを行います。マッチした場合には結果を MatchData オブジェクトで返し
ます。
マッチしなかった場合 nil を返します。
省略可能な第二引数 pos を指定すると、マッチの開始位置を pos から行
うよう制御できます(pos のデフォルト値は 0)。
//emlist[例][ruby]{
p(/(.).(.)/.match("foobar", 3).captures) # => ["b", "r"]
p(/(.).(.)/.match("foobar", -3).captures) #... -
Regexp
# match(str , pos = 0) {|m| . . . } -> object | nil (19.0) -
指定された文字列 str に対して位置 pos から自身が表す正規表現によるマッ チングを行います。マッチした場合には結果を MatchData オブジェクトで返し ます。 マッチしなかった場合 nil を返します。
指定された文字列 str に対して位置 pos から自身が表す正規表現によるマッ
チングを行います。マッチした場合には結果を MatchData オブジェクトで返し
ます。
マッチしなかった場合 nil を返します。
省略可能な第二引数 pos を指定すると、マッチの開始位置を pos から行
うよう制御できます(pos のデフォルト値は 0)。
//emlist[例][ruby]{
p(/(.).(.)/.match("foobar", 3).captures) # => ["b", "r"]
p(/(.).(.)/.match("foobar", -3).captures) #...