ライブラリ
クラス
-
ARGF
. class (1) - CSV (1)
-
CSV
:: Table (2) - DBM (1)
- File (1)
-
File
:: Stat (1) - GDBM (1)
-
Gem
:: Package :: TarReader (1) -
Gem
:: Package :: TarReader :: Entry (2) - IO (9)
-
Net
:: HTTP (2) -
Net
:: IMAP (1) -
Net
:: IMAP :: ThreadMember (1) -
Net
:: POP3 (1) -
Net
:: SMTP (1) - Socket (2)
- String (1)
- StringIO (1)
- Thread (7)
-
Thread
:: Backtrace :: Location (1) -
Thread
:: Mutex (1) -
Thread
:: Queue (3) -
Thread
:: SizedQueue (1) - Tracer (1)
- WIN32OLE (1)
-
Win32
:: Registry (1) -
Zlib
:: GzipReader (5) -
Zlib
:: GzipWriter (1)
モジュール
- Etc (21)
- FileTest (1)
- Kernel (6)
-
OpenSSL
:: ASN1 (1) - PTY (4)
- Process (1)
- Readline (1)
-
Socket
:: Constants (2)
オブジェクト
キーワード
-
$ INPUT _ LINE _ NUMBER (1) -
$ NR (1) -
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (1) -
CLOCK
_ THREAD _ CPUTIME _ ID (1) -
CP
_ THREAD _ ACP (1) -
CS
_ GNU _ LIBPTHREAD _ VERSION (1) -
CS
_ POSIX _ V7 _ THREADS _ CFLAGS (1) -
CS
_ POSIX _ V7 _ THREADS _ LDFLAGS (1) - DEBUG (1)
- DEBUG= (1)
-
MSG
_ HAVEMORE (2) -
NEWS for Ruby 2
. 1 . 0 (1) -
NEWS for Ruby 2
. 2 . 0 (1) - READER (2)
-
SC
_ READER _ WRITER _ LOCKS (1) -
SC
_ THREADS (1) -
SC
_ THREAD _ ATTR _ STACKADDR (1) -
SC
_ THREAD _ ATTR _ STACKSIZE (1) -
SC
_ THREAD _ CPUTIME (1) -
SC
_ THREAD _ DESTRUCTOR _ ITERATIONS (1) -
SC
_ THREAD _ KEYS _ MAX (1) -
SC
_ THREAD _ PRIORITY _ SCHEDULING (1) -
SC
_ THREAD _ PRIO _ INHERIT (1) -
SC
_ THREAD _ PRIO _ PROTECT (1) -
SC
_ THREAD _ PROCESS _ SHARED (1) -
SC
_ THREAD _ ROBUST _ PRIO _ INHERIT (1) -
SC
_ THREAD _ ROBUST _ PRIO _ PROTECT (1) -
SC
_ THREAD _ SAFE _ FUNCTIONS (1) -
SC
_ THREAD _ SPORADIC _ SERVER (1) -
SC
_ THREAD _ STACK _ MIN (1) -
SC
_ THREAD _ THREADS _ MAX (1) -
SC
_ XOPEN _ REALTIME _ THREADS (1) -
SO
_ NREAD (2) -
add
_ trace _ func (1) -
bytes
_ read (1) -
copy
_ stream (2) - count (1)
- decode (1)
- expunge (1)
-
field
_ size _ limit (1) -
get
_ screen _ size (1) -
get
_ thread _ no (1) - getc (1)
- getpty (2)
- length (3)
- lineno (2)
- max (1)
- nread (1)
-
num
_ waiting (1) -
open
_ timeout (1) - pos (2)
- priority (1)
- priority= (1)
-
read
_ timeout (3) - readbyte (3)
- readchar (1)
- rewind (1)
-
ruby 1
. 6 feature (1) -
ruby 1
. 8 . 2 feature (1) -
ruby 1
. 8 . 4 feature (1) -
ruby 1
. 9 feature (1) -
safe
_ level (1) - seqno (1)
-
set
_ trace _ func (1) - size (3)
- sleep (1)
- spawn (6)
- sysseek (1)
- syswrite (1)
- tell (1)
-
world
_ readable? (3) - write (4)
検索結果
先頭5件
-
Win32
:: Registry # read(name , *rtype) (54322.0) -
@todo
@todo
レジストリ値 name を読み,[ type, data ]
の配列で返します。
name が nil の場合,(標準) レジストリ値が読み込まれます。
type はレジストリ値の型です。(⇒Win32::Registry::Constants)
data はレジストリ値のデータで,クラスは以下の通りです:
* REG_SZ, REG_EXPAND_SZ
String
* REG_MULTI_SZ
String の配列
* REG_DWORD, REG_DWORD_BIG_ENDIAN, REG_QWORD
Integer
* REG_B... -
Zlib
:: GzipReader # readchar -> Integer (27622.0) -
IO クラスの同名メソッドIO#readcharと同じです。
IO クラスの同名メソッドIO#readcharと同じです。
但し、gzip ファイル中に
エラーがあった場合 Zlib::Error 例外や
Zlib::GzipFile::Error 例外が発生します。
gzip ファイルのフッターの処理に注意して下さい。
gzip ファイルのフッターには圧縮前データのチェックサムが
記録されています。GzipReader オブジェクトは、次の時に展開した
データとフッターの照合を行い、エラーがあった場合は
Zlib::GzipFile::NoFooter, Zlib::GzipFile::CRCError,
Zlib::GzipFile::Lengt... -
Gem
:: Package :: TarReader :: Entry # bytes _ read -> Integer (27607.0) -
自身から読み込んだバイト数を返します。
自身から読み込んだバイト数を返します。 -
Etc
:: SC _ THREAD _ THREADS _ MAX -> Integer (19291.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Net
:: HTTP # read _ timeout -> Integer|nil (18673.0) -
読みこみ(read(2)) 一回でブロックしてよい最大秒数 を返します。
読みこみ(read(2)) 一回でブロックしてよい最大秒数
を返します。
この秒数たっても読みこめなければ例外 Net::ReadTimeout
を発生します。
nilはタイムアウトしないことを意味します。
デフォルトは 60 (秒)です。
@see Net::HTTP#open_timeout, Net::HTTP#read_timeout= -
Net
:: SMTP # read _ timeout -> Integer (18673.0) -
読みこみ (read(2) 一回) でブロックしてよい最大秒数を返します。
読みこみ (read(2) 一回) でブロックしてよい最大秒数を返します。
デフォルトは60(秒)です。
この秒数たっても読みこめなければ例外 TimeoutError を発生します。
@see Net::SMTP#read_timeout= -
Net
:: POP3 # read _ timeout -> Integer (18625.0) -
読み込みでブロックしてよい最大秒数を返します。
読み込みでブロックしてよい最大秒数を返します。
この秒数たっても読みこめなければ例外 ReadTimeout を発生します。
デフォルトは60秒です。
@see Net::POP3#read_timeout= -
ARGF
. class # readbyte -> Integer (18604.0) -
自身から 1 バイトを読み込み整数として返します。 既に EOF に達していれば EOFError が発生します。
自身から 1 バイトを読み込み整数として返します。
既に EOF に達していれば EOFError が発生します。
@raise EOFError 既に EOF に達している場合に発生します。
$ echo "foo" > file
$ ruby argf.rb file
ARGF.readbyte # => 102
ARGF.readbyte # => 111
ARGF.readbyte # => 111
ARGF.readbyte # => 10
ARGF.readbyte # => end of file reached (EOFError)... -
DBM
:: READER -> Integer (18604.0) -
読み込みモードでオープンします.
読み込みモードでオープンします.
@see DBM.open -
File
. world _ readable?(path) -> Integer | nil (18604.0) -
path が全てのユーザから読めるならばそのファイルのパーミッションを表す 整数を返します。そうでない場合は nil を返します。
path が全てのユーザから読めるならばそのファイルのパーミッションを表す
整数を返します。そうでない場合は nil を返します。
整数の意味はプラットフォームに依存します。
@param path パスを表す文字列か IO オブジェクトを指定します。
//emlist[例][ruby]{
m = File.world_readable?("/etc/passwd")
"%o" % m # => "644"
//} -
File
:: Stat # world _ readable? -> Integer | nil (18604.0) -
全てのユーザから読めるならば、そのファイルのパーミッションを表す 整数を返します。そうでない場合は nil を返します。
全てのユーザから読めるならば、そのファイルのパーミッションを表す
整数を返します。そうでない場合は nil を返します。
整数の意味はプラットフォームに依存します。
//emlist[][ruby]{
m = File.stat("/etc/passwd").world_readable? # => 420
sprintf("%o", m) # => "644"
//} -
FileTest
. # world _ readable?(path) -> Integer | nil (18604.0) -
path が全てのユーザから読めるならばそのファイルのパーミッションを表す 整数を返します。そうでない場合は nil を返します。
path が全てのユーザから読めるならばそのファイルのパーミッションを表す
整数を返します。そうでない場合は nil を返します。
整数の意味はプラットフォームに依存します。
@param path パスを表す文字列を指定します。
m = FileTest.world_readable?("/etc/passwd")
"%o" % m # => "644" -
GDBM
:: READER -> Integer (18604.0) -
GDBM.open の第3引数に指定します。
GDBM.open の第3引数に指定します。
読み込みモードでオープンします。 -
IO
# nread -> Integer (18604.0) -
ブロックせずに読み込み可能なバイト数を返します。 ブロックする場合は0を返します。
ブロックせずに読み込み可能なバイト数を返します。
ブロックする場合は0を返します。
判別が不可能な場合は0を返します。 -
IO
# readbyte -> Integer (18604.0) -
IO から1バイトを読み込み整数として返します。 既に EOF に達していれば EOFError が発生します。
IO から1バイトを読み込み整数として返します。
既に EOF に達していれば EOFError が発生します。
@raise EOFError 既に EOF に達している場合に発生します。
//emlist[例][ruby]{
IO.write("testfile", "123")
File.open("testfile") do |f|
begin
f.readbyte # => 49
f.readbyte # => 50
f.readbyte # => 51
f.readbyte # => 例外発生
rescue => e
e... -
Process
:: CLOCK _ THREAD _ CPUTIME _ ID -> Integer (18604.0) -
Process.#clock_gettime で使われます。
Process.#clock_gettime で使われます。
システムによっては定義されていません。 -
Socket
:: Constants :: SO _ NREAD -> Integer (18604.0) -
@todo Get first packet byte count。
@todo
Get first packet byte count。 -
Socket
:: SO _ NREAD -> Integer (18604.0) -
@todo Get first packet byte count。
@todo
Get first packet byte count。 -
StringIO
# readbyte -> Integer (18604.0) -
自身から 1 文字読み込んで、その文字に対応する整数を返します。
自身から 1 文字読み込んで、その文字に対応する整数を返します。
文字列の終端に到達した時には例外 EOFError を発生させます。
//emlist[例][ruby]{
require "stringio"
a = StringIO.new("hoge")
a.readbyte #=> 104
//}
@raise EOFError 文字列の終端に到達した時に発生します。 -
Tracer
# get _ thread _ no -> Integer (18604.0) -
@todo
@todo -
WIN32OLE
:: CP _ THREAD _ ACP -> Integer (18604.0) -
現在実行中のスレッドの既定のコードページ(3)を示します。
現在実行中のスレッドの既定のコードページ(3)を示します。
Windowsのコードページはスレッド毎に異なる値を設定できます。 -
Etc
:: SC _ READER _ WRITER _ LOCKS -> Integer (9991.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ THREADS -> Integer (9991.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ THREAD _ ATTR _ STACKADDR -> Integer (9991.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ THREAD _ ATTR _ STACKSIZE -> Integer (9991.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ THREAD _ CPUTIME -> Integer (9991.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ THREAD _ DESTRUCTOR _ ITERATIONS -> Integer (9991.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ THREAD _ KEYS _ MAX -> Integer (9991.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ THREAD _ PRIORITY _ SCHEDULING -> Integer (9991.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ THREAD _ PRIO _ INHERIT -> Integer (9991.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ THREAD _ PRIO _ PROTECT -> Integer (9991.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ THREAD _ PROCESS _ SHARED -> Integer (9991.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ THREAD _ ROBUST _ PRIO _ INHERIT -> Integer (9991.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ THREAD _ ROBUST _ PRIO _ PROTECT -> Integer (9991.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ THREAD _ SAFE _ FUNCTIONS -> Integer (9991.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ THREAD _ SPORADIC _ SERVER -> Integer (9991.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ THREAD _ STACK _ MIN -> Integer (9991.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: SC _ XOPEN _ REALTIME _ THREADS -> Integer (9991.0) -
Etc.#sysconf の引数に指定します。
Etc.#sysconf の引数に指定します。
詳細は sysconf(3) を参照してください。 -
Etc
:: CS _ GNU _ LIBPTHREAD _ VERSION -> Integer (9700.0) -
Etc.#confstr の引数に指定します。
Etc.#confstr の引数に指定します。
詳細は confstr(3) を参照してください。 -
Etc
:: CS _ POSIX _ V7 _ THREADS _ CFLAGS -> Integer (9700.0) -
Etc.#confstr の引数に指定します。
Etc.#confstr の引数に指定します。
詳細は confstr(3) を参照してください。 -
Etc
:: CS _ POSIX _ V7 _ THREADS _ LDFLAGS -> Integer (9700.0) -
Etc.#confstr の引数に指定します。
Etc.#confstr の引数に指定します。
詳細は confstr(3) を参照してください。 -
Readline
. get _ screen _ size -> [Integer , Integer] (9607.0) -
端末のサイズを [rows, columns] で返します。
端末のサイズを [rows, columns] で返します。
@raise NotImplementedError サポートしていない環境で発生します。
@see GNU Readline ライブラリの rl_get_screen_size 関数 -
Zlib
:: GzipReader # getc -> Integer | nil (9322.0) -
IO クラスの同名メソッドIO#getcと同じです。
IO クラスの同名メソッドIO#getcと同じです。
但し、gzip ファイル中に
エラーがあった場合 Zlib::Error 例外や
Zlib::GzipFile::Error 例外が発生します。
gzip ファイルのフッターの処理に注意して下さい。
gzip ファイルのフッターには圧縮前データのチェックサムが
記録されています。GzipReader オブジェクトは、次の時に展開した
データとフッターの照合を行い、エラーがあった場合は
Zlib::GzipFile::NoFooter, Zlib::GzipFile::CRCError,
Zlib::GzipFile::LengthErr... -
Zlib
:: GzipReader # lineno -> Integer (9322.0) -
IO クラスの同名メソッドIO#linenoと同じです。
IO クラスの同名メソッドIO#linenoと同じです。
但し、gzip ファイル中に
エラーがあった場合 Zlib::Error 例外や
Zlib::GzipFile::Error 例外が発生します。
gzip ファイルのフッターの処理に注意して下さい。
gzip ファイルのフッターには圧縮前データのチェックサムが
記録されています。GzipReader オブジェクトは、次の時に展開した
データとフッターの照合を行い、エラーがあった場合は
Zlib::GzipFile::NoFooter, Zlib::GzipFile::CRCError,
Zlib::GzipFile::LengthE... -
Readline
:: HISTORY . length -> Integer (9307.0) -
ヒストリに格納された内容の数を取得します。
ヒストリに格納された内容の数を取得します。
例: ヒストリの内容を最初から順番に出力する。
require "readline"
Readline::HISTORY.push("foo", "bar", "baz")
p Readline::HISTORY.length #=> 3
@see Readline::HISTORY.empty? -
Readline
:: HISTORY . size -> Integer (9307.0) -
ヒストリに格納された内容の数を取得します。
ヒストリに格納された内容の数を取得します。
例: ヒストリの内容を最初から順番に出力する。
require "readline"
Readline::HISTORY.push("foo", "bar", "baz")
p Readline::HISTORY.length #=> 3
@see Readline::HISTORY.empty? -
Thread
:: Queue # length -> Integer (9307.0) -
キューの長さを返します。
キューの長さを返します。
//emlist[例][ruby]{
q = Queue.new
[:resource1, :resource2, :resource3, nil].each { |r| q.push(r) }
q.length # => 4
//} -
Thread
:: Queue # size -> Integer (9307.0) -
キューの長さを返します。
キューの長さを返します。
//emlist[例][ruby]{
q = Queue.new
[:resource1, :resource2, :resource3, nil].each { |r| q.push(r) }
q.length # => 4
//} -
Zlib
:: GzipReader # pos -> Integer (9307.0) -
現在までに展開したデータの長さの合計を返します。 ファイルポインタの位置ではないことに注意して下さい。
現在までに展開したデータの長さの合計を返します。
ファイルポインタの位置ではないことに注意して下さい。
require 'zlib'
Zlib::GzipWriter.open('hoge.gz') { |gz|
gz.puts 'hoge'
}
Zlib::GzipReader.open('hoge.gz'){|gz|
while c = gz.getc
printf "%c, %d\n", c, gz.pos
end
}
# 実行例
#=> h, 1
#=> o, 2
#=> g, 3
#=> e, 4
... -
Zlib
:: GzipReader # tell -> Integer (9307.0) -
現在までに展開したデータの長さの合計を返します。 ファイルポインタの位置ではないことに注意して下さい。
現在までに展開したデータの長さの合計を返します。
ファイルポインタの位置ではないことに注意して下さい。
require 'zlib'
Zlib::GzipWriter.open('hoge.gz') { |gz|
gz.puts 'hoge'
}
Zlib::GzipReader.open('hoge.gz'){|gz|
while c = gz.getc
printf "%c, %d\n", c, gz.pos
end
}
# 実行例
#=> h, 1
#=> o, 2
#=> g, 3
#=> e, 4
... -
Gem
:: Package :: TarReader # rewind -> Integer (9304.0) -
自身に関連付けられた IO のファイルポインタを先頭に移動します。または、 Gem::Package::TarReader.new したときの IO#pos にファイルポ インタを先頭に移動します。
自身に関連付けられた IO のファイルポインタを先頭に移動します。または、
Gem::Package::TarReader.new したときの IO#pos にファイルポ
インタを先頭に移動します。
Gem::Package::TarReader#each の実行中に呼ばないようにしてください。
@return 戻った位置を返します。
@raise Gem::Package::NonSeekableIO 自身に関連付けられた IO がシーク可能
でない場合に発生します。 -
Gem
:: Package :: TarReader :: Entry # pos -> Integer (9304.0) -
自身から読み込んだバイト数を返します。
自身から読み込んだバイト数を返します。 -
Net
:: IMAP :: ThreadMember # seqno -> Integer | nil (9304.0) -
メッセージの sequence number もしくは UID を返します。
メッセージの sequence number もしくは UID を返します。
root となるメッセージが存在しない場合しない木の場合は
nil を返します。 -
Thread
# priority -> Integer (9304.0) -
スレッドの優先度を返します。この値が大きいほど優先度が高くなります。 メインスレッドのデフォルト値は 0 です。新しく生成されたスレッドは親スレッドの priority を引き継ぎます。
スレッドの優先度を返します。この値が大きいほど優先度が高くなります。
メインスレッドのデフォルト値は 0 です。新しく生成されたスレッドは親スレッドの
priority を引き継ぎます。
@param val スレッドの優先度を指定します。プラットフォームに依存します。
//emlist[例][ruby]{
Thread.current.priority # => 0
count1 = count2 = 0
a = Thread.new do
loop { count1 += 1 }
end
a.priority = -1
b = Thread.new do
... -
Thread
# safe _ level -> Integer (9304.0) -
self のセーフレベルを返します。カレントスレッドの safe_level は、$SAFE と同じです。
self のセーフレベルを返します。カレントスレッドの
safe_level は、$SAFE と同じです。
Ruby 2.6 から$SAFEがプロセスグローバルになったため、このメソッドは obsolete になりました。
セーフレベルについてはspec/safelevelを参照してください。
//emlist[例][ruby]{
thr = Thread.new { $SAFE = 1; sleep }
Thread.current.safe_level # => 0
thr.safe_level # => 1
//} -
Thread
. DEBUG -> Integer (9304.0) -
スレッドのデバッグレベルを返します。
スレッドのデバッグレベルを返します。
スレッドのデバッグレベルが 0 のときはなにもしません。
それ以外の場合は、スレッドのデバッグログを標準出力に出力します。
初期値は 0 です。
使用するためには、THREAD_DEBUG を -1 にして Ruby をコンパイルする必要が
あります。
//emlist[例][ruby]{
Thread.DEBUG # => 0
//}
@see Thread.DEBUG= -
Thread
:: Backtrace :: Location # lineno -> Integer (9304.0) -
self が表すフレームの行番号を返します。
self が表すフレームの行番号を返します。
例: Thread::Backtrace::Location の例1を用いた例
//emlist[][ruby]{
loc = c(0..1).first
loc.lineno # => 2
//} -
Thread
:: Mutex # sleep(timeout = nil) -> Integer (9304.0) -
与えられた秒数の間ロックを解除してスリープして、実行後にまたロックします。
与えられた秒数の間ロックを解除してスリープして、実行後にまたロックします。
@param timeout スリープする秒数を指定します。省略するとスリープし続けます。
@return スリープしていた秒数を返します。
@raise ThreadError 自身がカレントスレッドによってロックされていない場合に発生します。
[注意] 2.0 以降ではスリープ中でも、シグナルを受信した場合などに実行が再
開(spurious wakeup)される場合がある点に注意してください。
//emlist[例][ruby]{
m = Mutex.new
th = Thread.new do
... -
Thread
:: Queue # num _ waiting -> Integer (9304.0) -
キューを待っているスレッドの数を返します。
キューを待っているスレッドの数を返します。
//emlist[例][ruby]{
require 'thread'
q = SizedQueue.new(1)
q.push(1)
t = Thread.new { q.push(2) }
sleep 0.05 until t.stop?
q.num_waiting # => 1
q.pop
t.join
//} -
Thread
:: SizedQueue # max -> Integer (9304.0) -
キューの最大サイズを返します。
キューの最大サイズを返します。
//emlist[例][ruby]{
q = SizedQueue.new(4)
q.max # => 4
//} -
Thread
# add _ trace _ func(pr) -> Proc (9037.0) -
スレッドにトレース用ハンドラを追加します。
スレッドにトレース用ハンドラを追加します。
追加したハンドラを返します。
@param pr トレースハンドラ(Proc オブジェクト)
//emlist[例][ruby]{
th = Thread.new do
class Trace
end
43.to_s
end
th.add_trace_func lambda {|*arg| p arg }
th.join
# => ["line", "example.rb", 4, nil, #<Binding:0x00007f98e107d0d8>, nil]
# => ["c-call", "example.rb", 4, ... -
Thread
# set _ trace _ func(pr) -> Proc | nil (9037.0) -
スレッドにトレース用ハンドラを設定します。
スレッドにトレース用ハンドラを設定します。
nil を渡すとトレースを解除します。
設定したハンドラを返します。
//emlist[例][ruby]{
th = Thread.new do
class Trace
end
2.to_s
Thread.current.set_trace_func nil
3.to_s
end
th.set_trace_func lambda {|*arg| p arg }
th.join
# => ["line", "example.rb", 2, nil, #<Binding:0x00007fc8de87cb08>, nil]
#... -
Thread
. DEBUG=(val) (9019.0) -
スレッドのデバッグレベルを val に設定します。
スレッドのデバッグレベルを val に設定します。
val が 真 のときは Integer に変換してから設定します。
偽 のときは 0 を設定します。
使用するためには、THREAD_DEBUG を -1 にして Ruby をコンパイルする必要が
あります。
//emlist[例][ruby]{
Thread.DEBUG # => 0
Thread.DEBUG = 1
Thread.DEBUG # => 1
//}
@see Thread.DEBUG -
Thread
# priority=(val) (9004.0) -
スレッドの優先度を返します。この値が大きいほど優先度が高くなります。 メインスレッドのデフォルト値は 0 です。新しく生成されたスレッドは親スレッドの priority を引き継ぎます。
スレッドの優先度を返します。この値が大きいほど優先度が高くなります。
メインスレッドのデフォルト値は 0 です。新しく生成されたスレッドは親スレッドの
priority を引き継ぎます。
@param val スレッドの優先度を指定します。プラットフォームに依存します。
//emlist[例][ruby]{
Thread.current.priority # => 0
count1 = count2 = 0
a = Thread.new do
loop { count1 += 1 }
end
a.priority = -1
b = Thread.new do
... -
Kernel
. # spawn(env , program , *args , options={}) -> Integer (457.0) -
引数を外部コマンドとして実行しますが、生成した 子プロセスの終了を待ち合わせません。生成した子プロセスのプロセスIDを返します。
引数を外部コマンドとして実行しますが、生成した
子プロセスの終了を待ち合わせません。生成した子プロセスのプロセスIDを返します。
env に Hash を渡すことで、exec(2) で子プロセス内で
ファイルを実行する前に環境変数を変更することができます。
Hash のキーは環境変数名文字列、Hash の値に設定する値とします。
nil とすることで環境変数が削除(unsetenv(3))されます。
//emlist[例][ruby]{
# FOO を BAR にして BAZ を削除する
pid = spawn({"FOO"=>"BAR", "BAZ"=>nil}, command)
//... -
Kernel
. # spawn(program , *args) -> Integer (457.0) -
引数を外部コマンドとして実行しますが、生成した 子プロセスの終了を待ち合わせません。生成した子プロセスのプロセスIDを返します。
引数を外部コマンドとして実行しますが、生成した
子プロセスの終了を待ち合わせません。生成した子プロセスのプロセスIDを返します。
env に Hash を渡すことで、exec(2) で子プロセス内で
ファイルを実行する前に環境変数を変更することができます。
Hash のキーは環境変数名文字列、Hash の値に設定する値とします。
nil とすることで環境変数が削除(unsetenv(3))されます。
//emlist[例][ruby]{
# FOO を BAR にして BAZ を削除する
pid = spawn({"FOO"=>"BAR", "BAZ"=>nil}, command)
//... -
Socket
:: Constants :: MSG _ HAVEMORE -> Integer (352.0) -
@todo Data ready to be read
@todo
Data ready to be read -
Socket
:: MSG _ HAVEMORE -> Integer (352.0) -
@todo Data ready to be read
@todo
Data ready to be read -
IO
. copy _ stream(src , dst , copy _ length = nil) -> Integer (343.0) -
指定された src から dst へコピーします。 コピーしたバイト数を返します。
指定された src から dst へコピーします。
コピーしたバイト数を返します。
コピー元の src が IO オブジェクトの場合は、src のオフセットから
ファイル名の場合はファイルの最初からコピーを開始します。
コピー先の dst に関しても同様です。
dst にファイル名を指定し、そのファイルが存在しない場合、
ファイルは作成されます。ファイルが存在する場合は長さ 0 に切り詰められます。
src が IO オブジェクトでかつ src_offset が指定されている場合、
src のオフセット(src.pos)は変更されません。
@param src コピー元となる IO ... -
IO
. copy _ stream(src , dst , copy _ length , src _ offset) -> Integer (343.0) -
指定された src から dst へコピーします。 コピーしたバイト数を返します。
指定された src から dst へコピーします。
コピーしたバイト数を返します。
コピー元の src が IO オブジェクトの場合は、src のオフセットから
ファイル名の場合はファイルの最初からコピーを開始します。
コピー先の dst に関しても同様です。
dst にファイル名を指定し、そのファイルが存在しない場合、
ファイルは作成されます。ファイルが存在する場合は長さ 0 に切り詰められます。
src が IO オブジェクトでかつ src_offset が指定されている場合、
src のオフセット(src.pos)は変更されません。
@param src コピー元となる IO ... -
IO
. write(path , string , **opts) -> Integer (343.0) -
path で指定されるファイルを開き、string を書き込み、 閉じます。
path で指定されるファイルを開き、string を書き込み、
閉じます。
Kernel.#open と同様 path の先頭が "|" ならば、"|" に続くコマンドを実行し、コマンドの出力を標準出力に書き込みます。
offset を指定するとその位置までシークします。
offset を指定しないと、書き込みの末尾でファイルを
切り捨てます。
キーワード引数はファイルを開くときに使われ、エンコーディングなどを指定することができます。
詳しくは IO.open を見てください。
@param path ファイル名文字列
@param string 書き込む文字列
@param of... -
IO
. write(path , string , offset=nil , **opts) -> Integer (343.0) -
path で指定されるファイルを開き、string を書き込み、 閉じます。
path で指定されるファイルを開き、string を書き込み、
閉じます。
Kernel.#open と同様 path の先頭が "|" ならば、"|" に続くコマンドを実行し、コマンドの出力を標準出力に書き込みます。
offset を指定するとその位置までシークします。
offset を指定しないと、書き込みの末尾でファイルを
切り捨てます。
キーワード引数はファイルを開くときに使われ、エンコーディングなどを指定することができます。
詳しくは IO.open を見てください。
@param path ファイル名文字列
@param string 書き込む文字列
@param of... -
CSV
# field _ size _ limit -> Integer (340.0) -
フィールドサイズの最大値を返します。
フィールドサイズの最大値を返します。
//emlist[例][ruby]{
require "csv"
csv = CSV.new(DATA)
csv.field_size_limit # => nil
p csv.read # => [["a", "b"], ["\n2\n2\n", ""]]
DATA.rewind
csv = CSV.new(DATA, field_size_limit: 4)
p csv.field_size_limit # => 4
csv.read # => #<CSV::MalformedCSVError: Field size exceeded on l... -
String
# count(*chars) -> Integer (340.0) -
chars で指定された文字が文字列 self にいくつあるか数えます。
chars で指定された文字が文字列 self にいくつあるか数えます。
検索する文字を示す引数 chars の形式は tr(1) と同じです。
つまり、「"a-c"」は文字 a から c を意味し、
「"^0-9"」のように文字列の先頭が「^」の場合は
指定文字以外を意味します。
文字「-」は文字列の両端にない場合にだけ範囲指定の意味になります。
同様に、「^」も文字列の先頭にあるときだけ否定の効果を発揮します。
また、「-」「^」「\」は
バックスラッシュ (「\」) によりエスケープできます。
引数を複数指定した場合は、
すべての引数にマッチした文字だけを数えます。
@para... -
Kernel
. # spawn(command , options={}) -> Integer (337.0) -
引数を外部コマンドとして実行しますが、生成した 子プロセスの終了を待ち合わせません。生成した子プロセスのプロセスIDを返します。
引数を外部コマンドとして実行しますが、生成した
子プロセスの終了を待ち合わせません。生成した子プロセスのプロセスIDを返します。
=== 引数の解釈
この形式では command が shell のメタ文字
//emlist{
* ? {} [] <> () ~ & | \ $ ; ' ` " \n
//}
を含む場合、shell 経由で実行されます。
そうでなければインタプリタから直接実行されます。
@param command コマンドを文字列で指定します。
@param env 更新する環境変数を表す Hash
@param options オプションパラメータ Hash... -
Kernel
. # spawn(env , command , options={}) -> Integer (337.0) -
引数を外部コマンドとして実行しますが、生成した 子プロセスの終了を待ち合わせません。生成した子プロセスのプロセスIDを返します。
引数を外部コマンドとして実行しますが、生成した
子プロセスの終了を待ち合わせません。生成した子プロセスのプロセスIDを返します。
=== 引数の解釈
この形式では command が shell のメタ文字
//emlist{
* ? {} [] <> () ~ & | \ $ ; ' ` " \n
//}
を含む場合、shell 経由で実行されます。
そうでなければインタプリタから直接実行されます。
@param command コマンドを文字列で指定します。
@param env 更新する環境変数を表す Hash
@param options オプションパラメータ Hash... -
CSV
:: Table # length -> Integer (325.0) -
(ヘッダを除く)行数を返します。
(ヘッダを除く)行数を返します。
Array#length, Array#size に委譲しています。
//emlist[][ruby]{
require 'csv'
csv = CSV.new("a,b,c\n1,2,3", headers: true)
table = csv.read
p table.size # => 1
//}
@see Array#length, Array#size -
CSV
:: Table # size -> Integer (325.0) -
(ヘッダを除く)行数を返します。
(ヘッダを除く)行数を返します。
Array#length, Array#size に委譲しています。
//emlist[][ruby]{
require 'csv'
csv = CSV.new("a,b,c\n1,2,3", headers: true)
table = csv.read
p table.size # => 1
//}
@see Array#length, Array#size -
Kernel
$ $ INPUT _ LINE _ NUMBER -> Integer (325.0) -
$. の別名
$. の別名
1 e
2 f
3 g
4 h
5 i
# end of a.txt
require "English"
File.foreach(ARGV.at(0)){|line|
# read line
}
p $INPUT_LINE_NUMBER
# end of sample.rb
ruby sample.rb a.txt
#=> 5 -
Kernel
$ $ NR -> Integer (325.0) -
$. の別名
$. の別名
1 e
2 f
3 g
4 h
5 i
# end of a.txt
require "English"
File.foreach(ARGV.at(0)){|line|
# read line
}
p $INPUT_LINE_NUMBER
# end of sample.rb
ruby sample.rb a.txt
#=> 5 -
IO
# sysseek(offset , whence = IO :: SEEK _ SET) -> Integer (322.0) -
lseek(2) と同じです。IO#seek では、 IO#sysread, IO#syswrite と併用すると正しく動作しないので代わりにこのメソッドを使います。 位置 offset への移動が成功すれば移動した位置(ファイル先頭からのオフセット)を返します。
lseek(2) と同じです。IO#seek では、
IO#sysread, IO#syswrite と併用すると正しく動作しないので代わりにこのメソッドを使います。
位置 offset への移動が成功すれば移動した位置(ファイル先頭からのオフセット)を返します。
書き込み用にバッファリングされた IO に対して実行すると警告が出ます。
File.open("/dev/zero") {|f|
buf = f.read(3)
f.sysseek(0)
}
# => -:3:in `sysseek': sysseek for buffered IO (IOErro... -
IO
# syswrite(string) -> Integer (322.0) -
write(2) を用いて string を出力します。 string が文字列でなければ to_s による文字列化を試みます。 実際に出力できたバイト数を返します。
write(2) を用いて string を出力します。
string が文字列でなければ to_s による文字列化を試みます。
実際に出力できたバイト数を返します。
stdio を経由しないので他の出力メソッドと混用すると思わぬ動作
をすることがあります。
@param string 自身に書き込みたい文字列を指定します。
@raise IOError 自身が書き込み用にオープンされていなければ発生します。
@raise Errno::EXXX 出力に失敗した場合に発生します。
//emlist[例][ruby]{
File.open("testfile", "w+") do |... -
IO
# write(str) -> Integer (322.0) -
IOポートに対して str を出力します。str が文字列でなけ れば to_s による文字列化を試みます。 実際に出力できたバイト数を返します。
IOポートに対して str を出力します。str が文字列でなけ
れば to_s による文字列化を試みます。
実際に出力できたバイト数を返します。
IO#syswrite を除く全ての出力メソッドは、最終的に
"write" という名のメソッドを呼び出すので、このメソッドを置き換える
ことで出力関数の挙動を変更することができます。
@param str 自身に書き込みたい文字列を指定します。
@raise IOError 自身が書き込み用にオープンされていなければ発生します。
@raise Errno::EXXX 出力に失敗した場合に発生します。
//emlist[例][ruby]... -
Net
:: HTTP # open _ timeout -> Integer|nil (322.0) -
接続時に待つ最大秒数を返します。
接続時に待つ最大秒数を返します。
この秒数たってもコネクションが
開かなければ例外 Net::OpenTimeout を発生します。
デフォルトは 60 (秒)です。
@see Net::HTTP#read_timeout, Net::HTTP#open_timeout= -
Net
:: IMAP # expunge -> [Integer] | nil (322.0) -
EXPUNGEコマンドを送り、:Deletedフラグをセットしたメッセージを すべて処理中のメールボックスから削除します。
EXPUNGEコマンドを送り、:Deletedフラグをセットしたメッセージを
すべて処理中のメールボックスから削除します。
削除したメッセージの message sequence number を配列で返します。
@raise Net::IMAP::NoResponseError メールボックスが read-only である場合に発生します -
Zlib
:: GzipWriter # write(str) -> Integer (322.0) -
自身に str を出力します。str が文字列でなけ れば to_s による文字列化を試みます。
自身に str を出力します。str が文字列でなけ
れば to_s による文字列化を試みます。
@param str 出力する文字列を指定します。文字列でない場合は to_s で文字列に変換します。
@return 実際に出力できたバイト数を返します。
require 'zlib'
filename='hoge1.gz'
fw = File.open(filename, "w")
Zlib::GzipWriter.wrap(fw, Zlib::BEST_COMPRESSION){|gz|
gz.write "foo"
}
fr = File.open... -
PTY
. # getpty(command) -> [IO , IO , Integer] (313.0) -
擬似 tty を確保し、指定されたコマンドをその擬似 tty の向こうで実行し、配列を返します。
擬似 tty を確保し、指定されたコマンドをその擬似 tty の向こうで実行し、配列を返します。
プラットフォームに依存しますが、対応していれば、作られたプロセスはセッションリーダーに
なり、その制御端末は作成された擬似 tty に設定されます。
@param command 擬似 tty 上で実行するコマンド
@return 返値は3つの要素からなる配列です。最初の要素は擬似 tty から
読み出すための IO オブジェクト、2番目の要素は書きこむための IO オブジェクト、
3番目の要素は子プロセスのプロセス ID です。
このメソ... -
PTY
. # getpty(command) {|read , write , pid| . . . } -> nil (313.0) -
擬似 tty を確保し、指定されたコマンドをその擬似 tty の向こうで実行し、配列を返します。
擬似 tty を確保し、指定されたコマンドをその擬似 tty の向こうで実行し、配列を返します。
プラットフォームに依存しますが、対応していれば、作られたプロセスはセッションリーダーに
なり、その制御端末は作成された擬似 tty に設定されます。
@param command 擬似 tty 上で実行するコマンド
@return 返値は3つの要素からなる配列です。最初の要素は擬似 tty から
読み出すための IO オブジェクト、2番目の要素は書きこむための IO オブジェクト、
3番目の要素は子プロセスのプロセス ID です。
このメソ... -
PTY
. # spawn(command) -> [IO , IO , Integer] (313.0) -
擬似 tty を確保し、指定されたコマンドをその擬似 tty の向こうで実行し、配列を返します。
擬似 tty を確保し、指定されたコマンドをその擬似 tty の向こうで実行し、配列を返します。
プラットフォームに依存しますが、対応していれば、作られたプロセスはセッションリーダーに
なり、その制御端末は作成された擬似 tty に設定されます。
@param command 擬似 tty 上で実行するコマンド
@return 返値は3つの要素からなる配列です。最初の要素は擬似 tty から
読み出すための IO オブジェクト、2番目の要素は書きこむための IO オブジェクト、
3番目の要素は子プロセスのプロセス ID です。
このメソ... -
PTY
. # spawn(command) {|read , write , pid| . . . } -> nil (313.0) -
擬似 tty を確保し、指定されたコマンドをその擬似 tty の向こうで実行し、配列を返します。
擬似 tty を確保し、指定されたコマンドをその擬似 tty の向こうで実行し、配列を返します。
プラットフォームに依存しますが、対応していれば、作られたプロセスはセッションリーダーに
なり、その制御端末は作成された擬似 tty に設定されます。
@param command 擬似 tty 上で実行するコマンド
@return 返値は3つの要素からなる配列です。最初の要素は擬似 tty から
読み出すための IO オブジェクト、2番目の要素は書きこむための IO オブジェクト、
3番目の要素は子プロセスのプロセス ID です。
このメソ... -
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (181.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への変更点(まとめ)/サポートプラットフォームの追加>))
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への変更点(まとめ)/変更されたクラス/メソッド(互換性のない変更)>))... -
ruby 1
. 6 feature (145.0) -
ruby 1.6 feature ruby version 1.6 は安定版です。この版での変更はバグ修正がメイン になります。
ruby 1.6 feature
ruby version 1.6 は安定版です。この版での変更はバグ修正がメイン
になります。
((<stable-snapshot|URL:ftp://ftp.netlab.co.jp/pub/lang/ruby/stable-snapshot.tar.gz>)) は、日々更新される安定版の最新ソースです。
== 1.6.8 (2002-12-24) -> stable-snapshot
: 2003-01-22: errno
EAGAIN と EWOULDBLOCK が同じ値のシステムで、EWOULDBLOCK がなくなっ
ていま... -
ruby 1
. 9 feature (145.0) -
ruby 1.9 feature ruby version 1.9.0 は開発版です。 以下にあげる機能は将来削除されたり互換性のない仕様変更がなされるかもしれません。 1.9.1 以降は安定版です。 バグ修正がメインになります。
ruby 1.9 feature
ruby version 1.9.0 は開発版です。
以下にあげる機能は将来削除されたり互換性のない仕様変更がなされるかもしれません。
1.9.1 以降は安定版です。
バグ修正がメインになります。
記号について(特に重要なものは大文字(主観))
* カテゴリ
* [ruby]: ruby インタプリタの変更
* [api]: 拡張ライブラリ API
* [lib]: ライブラリ
* [parser]: 文法の変更
* [regexp]: 正規表現の機能拡張
* [marshal]: Marshal ファイルのフォーマット変更
* ... -
NEWS for Ruby 2
. 2 . 0 (127.0) -
NEWS for Ruby 2.2.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
NEWS for Ruby 2.2.0
このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
それぞれのエントリーは参照情報があるため短いです。
十分な情報と共に書かれた全ての変更のリストは ChangeLog ファイルか bugs.ruby-lang.org の issue を参照してください。
== 2.1.0 以降の変更
=== 言語仕様の変更
* nil/true/false
* nil/true/false はフリーズされました 8923
* Hash リテラル
* 後ろにコロンのあるシンボルをキーにしたと... -
ruby 1
. 8 . 2 feature (109.0) -
ruby 1.8.2 feature ruby 1.8.2 での ruby 1.8.1 からの変更点です。
ruby 1.8.2 feature
ruby 1.8.2 での ruby 1.8.1 からの変更点です。
掲載方針
*バグ修正の影響も含めて動作が変わるものを収録する。
*単にバグを直しただけのものは収録しない。
*ライブラリへの単なる定数の追加は収録しない。
以下は各変更点に付けるべきタグです。
*カテゴリ
* [ruby]: ruby インタプリタの変更
* [api]: 拡張ライブラリ API
* [lib]: ライブラリ
*レベル
* [bug]: バグ修正
* [new]: 追加されたクラス/メソッドなど
* [compat]: 変更されたクラス/... -
ruby 1
. 8 . 4 feature (91.0) -
ruby 1.8.4 feature ruby 1.8.4 での ruby 1.8.3 からの変更点です。
ruby 1.8.4 feature
ruby 1.8.4 での ruby 1.8.3 からの変更点です。
掲載方針
*バグ修正の影響も含めて動作が変わるものを収録する。
*単にバグを直しただけのものは収録しない。
*ライブラリへの単なる定数の追加は収録しない。
以下は各変更点に付けるべきタグです。
記号について(特に重要なものは大文字(主観))
# * カテゴリ
# * [ruby]: ruby インタプリタの変更
# * [api]: 拡張ライブラリ API
# * [lib]: ライブラリ
* レベル
* [bug]: バグ修正
* [new]: 追加され... -
NEWS for Ruby 2
. 1 . 0 (55.0) -
NEWS for Ruby 2.1.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
NEWS for Ruby 2.1.0
このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
それぞれのエントリーは参照情報があるため短いです。
十分な情報と共に書かれた全ての変更のリストは ChangeLog ファイルか bugs.ruby-lang.org の issue を参照してください。
== 2.0.0 以降の変更
=== 言語仕様の変更
* キーワード引数のデフォルト値が省略可能になりました。これらの「必須キーワード引数」は呼び出し時に明示的に与えなければなりません。
* 整数や小数のリテラルの末尾に'r','i','... -
OpenSSL
:: ASN1 . # decode(der) -> OpenSSL :: ASN1 :: ASN1Data (37.0) -
DER 表現の文字列を解析し、そこにエンコードされている ASN.1 の値を OpenSSL::ASN1::ASN1Data のサブクラスのインスタンスとして返します。
DER 表現の文字列を解析し、そこにエンコードされている ASN.1 の値を
OpenSSL::ASN1::ASN1Data のサブクラスのインスタンスとして返します。
複数の ASN.1 の値が含まれている場合、先頭の値だけを返します。
ASN.1 オブジェクトが Constructive である場合は、
それを構成する要素も再帰的に解析します。
例:
ruby -e '
require "openssl"
require "pp"
pem = File.read(ARGV[0])
cert = OpenSSL::X509::Certificate.new(pem...