別のキーワード
クラス
- Array (19)
- Bignum (6)
-
File
:: Stat (11) - Fixnum (6)
-
Net
:: SMTP (22) - Regexp (11)
- String (11)
- Struct (44)
- ThreadsWait (24)
- TracePoint (11)
-
Zlib
:: Deflate (11) -
Zlib
:: GzipReader (66) -
Zlib
:: GzipWriter (11)
キーワード
-
$ CHILD _ STATUS (11) - << (6)
- =~ (11)
- >> (6)
- NKF (11)
- [] (11)
-
all
_ waits (18) -
each
_ byte (22) -
each
_ strongly _ connected _ component _ from (21) - irb (11)
- lineno (11)
- new (50)
- pack (19)
- pack テンプレート文字列 (11)
- pos (11)
- ready (11)
-
ruby 1
. 6 feature (11) -
ruby 1
. 8 . 4 feature (11) -
set
_ dictionary (11) - socket? (11)
- tell (11)
- timeout (19)
-
tsort
_ each (21) - ungetc (11)
- unpack (11)
- リテラル (11)
検索結果
先頭5件
-
Zlib
:: GzipWriter # printf(format , *args) -> nil (18247.0) -
C 言語の printf と同じように、format に従い引数 を文字列に変換して、自身に出力します。
...C 言語の printf と同じように、format に従い引数
を文字列に変換して、自身に出力します。
@param format フォーマット文字列を指定します。print_format を参照してください。
@param args フォーマットされるオブジェクトを指定し......。
require 'zlib'
filename='hoge1.gz'
fw = File.open(filename, "w")
Zlib::GzipWriter.wrap(fw, Zlib::BEST_COMPRESSION){|gz|
gz.printf("\n%9s", "bar")
}
fr = File.open(filename)
Zlib::GzipReader.wrap(fr){|gz|
puts gz.read
}
#=> bar
@see IO#printf, Kernel.#printf... -
ruby 1
. 6 feature (5370.0) -
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 が同じ値の......> ruby 1.6.7 (2002-03-01) [i586-linux]
Errno::EAGAIN
Errno::EWOULDBLOCK
=> ruby 1.6.8 (2002-12-24) [i586-linux]
Errno::EAGAIN
-:2: uninitialized constant EWOULDBLOCK at Errno (NameError)
=> ruby 1.6.8 (2003-02-13) [i586-linux]......p foo["bar"] = "baz"
p foo
=> ruby 1.6.7 (2002-03-01) [i586-linux]
"baz"
"foo"
=> -:2:in `[]=': string not matched (IndexError)
from -:2
ruby 1.6.7 (2002-07-30) [i586-linux]
: 2002-06-03 sprintf()
"%d" で引数を整数にするときに、((<組... -
ruby 1
. 8 . 4 feature (1542.0) -
ruby 1.8.4 feature ruby 1.8.4 での ruby 1.8.3 からの変更点です。
...されたクラス/メソッドなど
* [compat]: 変更されたクラス/メソッドなど
* 互換性のある変更
* only backward-compatibility
* 影響の範囲が小さいと思われる変更もこちら
* [change]: 変更されたクラス/メソッドなど(互換......hod#bind [bug]>))
* ((<ruby 1.8.4 feature/set_trace_func [bug]>))
* ((<ruby 1.8.4 feature/set_trace_func [change]>))
* ((<ruby 1.8.4 feature/printf [bug]>))
* ((<ruby 1.8.4 feature/Hash [bug]>))
* ((<ruby 1.8.4 feature/test [bug]>))
* ((<ruby 1.8.4 feature/File.identical? [new]>))
* ((......ns do |opt|
opt.on("-n NODE") {|v| puts v }
opt.parse!
end
>ruby -v -Ku a.rb -n 時間
ruby 1.8.2 (2004-12-25) [i386-mswin32]
[-n, 時間]
時
>ruby -v -Ku a.rb -n 時間
ruby 1.8.4 (2005-12-16) [i686-linux]
[-n,... -
NKF (822.0)
-
nkf(Network Kanji code conversion Filter, https://osdn.net/projects/nkf/) を Ruby から使うためのモジュールです。
...字コード変換コマンドの例です。
//emlist[例][ruby]{
#!/usr/local/bin/ruby
require 'nkf'
opt = ''
opt = ARGV.shift if ARGV[0][0] == ?-
while line = ARGF.gets
print NKF.nkf(opt, line)
end
//}
以下は、漢字コード判別コマンドの例です。
//emlist[例][ruby]{
#!/us......e) {|io| io.gets(nil) }
printf "%-10s ", file
if str.nil?
puts "EMPTY"
else
puts CODES.fetch(NKF.guess(str))
end
end
//}
=== オプション文字列
-b 入力がバッファリングされる(デフォルト)
-u 入力がバッファリングされない
-j -s -e -w -w16......
-j ISO-2022-JP (7bit JIS) を出力する(デフォルト)
-s Shift_JIS を出力する
-e EUC-JP を出力する
-w UTF-8 を出力する(BOMなし)
-w16 UTF-16 LE を出力する
-J -S -E -W -W16 入力文字列のエンコーディングの推定値を指定する。
-J... -
Array
# pack(template) -> String (448.0) -
配列の内容を template で指定された文字列にしたがって、 バイナリとしてパックした文字列を返します。
...)
//emlist[][ruby]{
"\x01\xFE".unpack("c*") # => [1, -2]
[1, -2].pack("c*") # => "\x01\xFE"
[1, 254].pack("c*") # => "\x01\xFE"
//}
: C
unsigned char (8bit 符号なし整数)
//emlist[][ruby]{
"\x01\xFE".unpack("C*") # => [1, 254]
[1, -2].pack("C*") # => "\x01\xFE"
[1, 254].pack("C*") # =>......by"
[82, 117, 98, 121].pack("c*") # => "Ruby"
s = ""
[82, 117, 98, 121].each {|c| s << c}
s # => "Ruby"
[82, 117, 98, 121].collect {|c| sprintf "%c", c}.join # => "Ruby"
[82, 117, 98, 121].inject("") {|s, c| s << c} # => "Ruby"
//}
: 文字列を数値(文字コード)の配列に変......換する例
//emlist[][ruby]{
"Ruby".unpack('C*') # => [82, 117, 98, 121]
a = []
"Ruby".each_byte {|c| a << c}
a # => [82, 117, 98, 121]
//}
: "x" でヌルバイトを埋めることができる
//emlist[][ruby]{
[82, 117, 98, 121].pack("ccxxcc") # => "Ru\x00\x00by"
//}
: "x" で文字... -
Array
# pack(template , buffer: String . new) -> String (448.0) -
配列の内容を template で指定された文字列にしたがって、 バイナリとしてパックした文字列を返します。
...)
//emlist[][ruby]{
"\x01\xFE".unpack("c*") # => [1, -2]
[1, -2].pack("c*") # => "\x01\xFE"
[1, 254].pack("c*") # => "\x01\xFE"
//}
: C
unsigned char (8bit 符号なし整数)
//emlist[][ruby]{
"\x01\xFE".unpack("C*") # => [1, 254]
[1, -2].pack("C*") # => "\x01\xFE"
[1, 254].pack("C*") # =>......by"
[82, 117, 98, 121].pack("c*") # => "Ruby"
s = ""
[82, 117, 98, 121].each {|c| s << c}
s # => "Ruby"
[82, 117, 98, 121].collect {|c| sprintf "%c", c}.join # => "Ruby"
[82, 117, 98, 121].inject("") {|s, c| s << c} # => "Ruby"
//}
: 文字列を数値(文字コード)の配列に変......換する例
//emlist[][ruby]{
"Ruby".unpack('C*') # => [82, 117, 98, 121]
a = []
"Ruby".each_byte {|c| a << c}
a # => [82, 117, 98, 121]
//}
: "x" でヌルバイトを埋めることができる
//emlist[][ruby]{
[82, 117, 98, 121].pack("ccxxcc") # => "Ru\x00\x00by"
//}
: "x" で文字... -
String
# unpack(template) -> Array (448.0) -
Array#pack で生成された文字列を テンプレート文字列 template にしたがってアンパックし、 それらの要素を含む配列を返します。
...)
//emlist[][ruby]{
"\x01\xFE".unpack("c*") # => [1, -2]
[1, -2].pack("c*") # => "\x01\xFE"
[1, 254].pack("c*") # => "\x01\xFE"
//}
: C
unsigned char (8bit 符号なし整数)
//emlist[][ruby]{
"\x01\xFE".unpack("C*") # => [1, 254]
[1, -2].pack("C*") # => "\x01\xFE"
[1, 254].pack("C*") # =>......by"
[82, 117, 98, 121].pack("c*") # => "Ruby"
s = ""
[82, 117, 98, 121].each {|c| s << c}
s # => "Ruby"
[82, 117, 98, 121].collect {|c| sprintf "%c", c}.join # => "Ruby"
[82, 117, 98, 121].inject("") {|s, c| s << c} # => "Ruby"
//}
: 文字列を数値(文字コード)の配列に変......換する例
//emlist[][ruby]{
"Ruby".unpack('C*') # => [82, 117, 98, 121]
a = []
"Ruby".each_byte {|c| a << c}
a # => [82, 117, 98, 121]
//}
: "x" でヌルバイトを埋めることができる
//emlist[][ruby]{
[82, 117, 98, 121].pack("ccxxcc") # => "Ru\x00\x00by"
//}
: "x" で文字... -
pack テンプレート文字列 (348.0)
-
pack テンプレート文字列
...)
//emlist[][ruby]{
"\x01\xFE".unpack("c*") # => [1, -2]
[1, -2].pack("c*") # => "\x01\xFE"
[1, 254].pack("c*") # => "\x01\xFE"
//}
: C
unsigned char (8bit 符号なし整数)
//emlist[][ruby]{
"\x01\xFE".unpack("C*") # => [1, 254]
[1, -2].pack("C*") # => "\x01\xFE"
[1, 254].pack("C*") # =>......by"
[82, 117, 98, 121].pack("c*") # => "Ruby"
s = ""
[82, 117, 98, 121].each {|c| s << c}
s # => "Ruby"
[82, 117, 98, 121].collect {|c| sprintf "%c", c}.join # => "Ruby"
[82, 117, 98, 121].inject("") {|s, c| s << c} # => "Ruby"
//}
: 文字列を数値(文字コード)の配列に変......換する例
//emlist[][ruby]{
"Ruby".unpack('C*') # => [82, 117, 98, 121]
a = []
"Ruby".each_byte {|c| a << c}
a # => [82, 117, 98, 121]
//}
: "x" でヌルバイトを埋めることができる
//emlist[][ruby]{
[82, 117, 98, 121].pack("ccxxcc") # => "Ru\x00\x00by"
//}
: "x" で文字... -
irb (270.0)
-
irb は Interactive Ruby の略です。 irb を使うと、Ruby の式を標準入力から簡単に入力・実行することができます。
...ons:
-f ~/.irbrc を読み込まない
-m bc モード (分数と行列の計算ができる)
-d $DEBUG を true にする (ruby -d と同じ)
-w ruby -w と同じ
-W[level=2] ruby -W と同じ
-r library ruby -r......_MODE] = :MY_PROMPT
PROMPT_I, PROMPT_S, PROMPT_C にはフォーマット文字列を指定します。
フォーマット文字列では Kernel.#printf のように
「%」を用いた記法が使えます。
フォーマット文字列で使用可能な記法は以下の通りです。
: %N......設定をまとめて設定することができます。
以下に例を示します。
$ irb
irb(main):001:0> IRB.conf[:IRB_RC] = lambda {|conf| conf.prompt_i = "> " }
=> #<Proc:0x00002a95fa3fd8@(irb):2>
irb(main):002:0> irb
>
=== irb の使用例
irb のいろいろな使用例を......s:
-f ~/.irbrc を読み込まない
-d $DEBUG を true にする (ruby -d と同じ)
-w ruby -w と同じ
-W[level=2] ruby -W と同じ
-r library ruby -r と同じ
-I ruby -I と同じ
-U ruby -U... -
Timeout
. # timeout(sec , exception _ class = nil) {|i| . . . } -> object (262.0) -
ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。
...end
end
t = 5
min = [ 0, 0]
begin
Timeout.timeout(t){
calc_pi(min)
}
rescue Timeout::Error
puts "timeout"
end
printf "%d: pi = %f\n", min[0] + min[1], min[0]*4.0/(min[0]+min[1])
#例
#=> 417519: pi = 3.141443
例 独自の例外を発生させるタイム......ものは実用レベルでは少ないのですが、
Socket などは DNSの名前解決に時間がかかった場合割り込めません
(resolv-replace を使用する必要があります)。
その処理を Ruby で実装しなおすか C 側で Ruby
のスレッドを意識してあげる......{|fp|
fp.print <<SHELL_EOT
#!/bin/bash
S="scale=10"
M=32767
trap 'echo "$S; $m1/($m1+$m2)*4" | bc ; echo "count = $((m1+m2))" ; exit 0' INT
m1=0
m2=0
while true
do
x="($RANDOM/$M)"
y="($RANDOM/$M)"
c=$(echo "$S;$x^2+$y^2 < 1.0" | bc)
echo $x $y $c
if [ $c -...