種類
- 文書 (77)
- インスタンスメソッド (63)
- ライブラリ (22)
ライブラリ
- ビルトイン (30)
- digest (22)
-
fiddle
/ import (11)
クラス
- Array (19)
-
Digest
:: Base (22) - String (11)
モジュール
-
Fiddle
:: Importer (11)
キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (11) - Marshal フォーマット (11)
-
NEWS for Ruby 2
. 1 . 0 (11) - bind (11)
- fiddle (11)
-
fiddle
/ import (11) - hexdigest (11)
- pack (19)
- pack テンプレート文字列 (11)
-
ruby 1
. 6 feature (11) -
ruby 1
. 8 . 2 feature (11) -
ruby 1
. 9 feature (11) -
to
_ s (11)
検索結果
先頭5件
-
String
# unpack(template) -> Array (21833.0) -
Array#pack で生成された文字列を テンプレート文字列 template にしたがってアンパックし、 それらの要素を含む配列を返します。
...aram template pack テンプレート文字列
@return オブジェクトの配列
以下にあげるものは、Array#pack、String#unpack
のテンプレート文字の一覧です。テンプレート文字は後に「長さ」を表す数字
を続けることができます。......を表すこともできます。
長さの意味はテンプレート文字により異なりますが大抵、
"iiii"
のように連続するテンプレート文字は
"i4"
と書き換えることができます。
テンプレート文字列中の空白類は無視されます。
また......mlist{
n: big endian unsigned 16bit
N: big endian unsigned 32bit
v: little endian unsigned 16bit
V: little endian unsigned 32bit
//}
: エンディアン依存、整数サイズ依存 (C の構造体などに適切)
//emlist{
s!: signed short
S!: unsigned short
i,i!: signed int
I,I!......plate pack テンプレート文字列
@return オブジェクトの配列
以下にあげるものは、Array#pack、String#unpack、String#unpack1
のテンプレート文字の一覧です。テンプレート文字は後に「長さ」を表す数字
を続けることができ... -
Digest
:: Base # hexdigest -> String (9112.0) -
updateや<<によって追加した文字列に対するハッシュ値を、 ASCIIコードを使って16進数の列を示す文字列にエンコードして返します。
...updateや<<によって追加した文字列に対するハッシュ値を、
ASCIIコードを使って16進数の列を示す文字列にエンコードして返します。
返す文字列は、
MD5では32バイト長、SHA1およびRMD160では40バイト長、SHA256では64バイト長、
SH......バイト長です。
Rubyで書くと以下と同じです。
def hexdigest
digest.unpack("H*")[0]
end
例:
# MD5の場合
require 'digest/md5'
digest = Digest::MD5.new
digest.update("ruby")
p digest.hexdigest # => "58e53d1324eef6265fdb97b08ed9aadf"
@see Digest::Base#digest... -
Fiddle
:: Importer # bind(signature , *opts) { . . . } -> Fiddle :: Function (6148.0) -
Ruby のブロックを C の関数で wrap し、その関数をモジュールに インポートします。
...関数として定義されます。
また、Fiddle::Importer#[] で Fiddle::Function オブジェクトとして
取り出すことができます。
signature で関数の名前とシネグチャを指定します。例えば
"int compare(void*, void*)" のように指定します。
opts に......iddle::Function オブジェクトを返します。
@param signature 関数の名前とシネグチャ
@param opts オプション
例
require 'fiddle/import'
module M
extend Fiddle::Importer
dlload "libc.so.6"
typealias "size_t", "unsigned long"
extern "int qsort(void*, si......, size_t, void*)"
bind("int compare(void*, void*)"){|px, py|
x = px.to_s(Fiddle::SIZEOF_INT).unpack("i!")
y = py.to_s(Fiddle::SIZEOF_INT).unpack("i!")
x <=> y
}
end
data = [32, 180001, -13, -1, 0, 49].pack("i!*")
M.qsort(Fiddle::Pointer[data], 6, Fiddle::SIZE... -
Digest
:: Base # to _ s -> String (6112.0) -
updateや<<によって追加した文字列に対するハッシュ値を、 ASCIIコードを使って16進数の列を示す文字列にエンコードして返します。
...updateや<<によって追加した文字列に対するハッシュ値を、
ASCIIコードを使って16進数の列を示す文字列にエンコードして返します。
返す文字列は、
MD5では32バイト長、SHA1およびRMD160では40バイト長、SHA256では64バイト長、
SH......バイト長です。
Rubyで書くと以下と同じです。
def hexdigest
digest.unpack("H*")[0]
end
例:
# MD5の場合
require 'digest/md5'
digest = Digest::MD5.new
digest.update("ruby")
p digest.hexdigest # => "58e53d1324eef6265fdb97b08ed9aadf"
@see Digest::Base#digest... -
fiddle (6054.0)
-
*.dllや*.soなど、ダイナミックリンクライブラリを扱うためのライブラリです。
...い方
通常は fiddle/import ライブラリを require して
Fiddle::Importer モジュールを使用します。
dl と基本的な使いかたは良く似ています。
Fiddle モジュール自体はプリミティブな機能しか提供していません。
Fiddle::Importer モジュー......ルは以下のようにユーザが定義した
モジュールを拡張する形で使います。
require "fiddle/import"
module M
extend Fiddle::Importer
end
以後、このモジュールで dlload や extern などのメソッドが使用できるようになります。
以下の......字列を渡します。
require "fiddle/import"
module M
extend Fiddle::Importer
dlload 'libm.so.6'
extern 'double modf(double, double *)'
end
s = ' ' * 8
p M2.modf(1.25, s) #=> 0.25
p s.unpack('d')[0] #=> 1.0
==== 関数の引数と返り値
fiddle でインポートした C......りに使います。
=== 使い方
通常は fiddle/import ライブラリを require して
Fiddle::Importer モジュールを使用します。
Fiddle モジュール自体はプリミティブな機能しか提供していません。
Fiddle::Importer モジュールは以下のようにユ......ーザが定義した
モジュールを拡張する形で使います。
require "fiddle/import"
module M
extend Fiddle::Importer
end
以後、このモジュールで dlload や extern などのメソッドが使用できるようになります。
以下のように dlload を使っ... -
fiddle
/ import (6042.0) -
fiddle ライブラリのための高レベルインターフェースを提供するライブラリです。
...fiddle ライブラリのための高レベルインターフェースを提供するライブラリです。
通常は fiddle ライブラリを使わずこの fiddle/import ライブラリを使います。
主な使い方は fiddle も参照してください。
=== 高度な使用法
====......ouble sum(double *arry, int len);
があったとします。これを呼び出したい場合は以下のように Array#pack を使用します。
require 'fiddle/import'
module M
extend Fiddle::Importer
dlload './libsum.so'
extern 'double sum(double*, int)'
end
p M.sum([2.0, 3.0, 4.......0 = Fiddle.dlunwrap(b.ptr.to_i)
a0 <=> b0
}
extern 'void qsort(void *, int, int, void *)'
end
buff = [Time.at(1), Time.now, Time.at(100), Time.at(10)]
a = buff.map{|t| Fiddle.dlwrap(t)}.pack('l!*')
M.qsort(a, buff.size, Fiddle::SIZEOF_VOIDP, M::QsortCallback)
p a.unpack('l!... -
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (1470.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への変更点(まとめ)/サポートプラットフォームの追加>))
...の変更点(まとめ)/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......s << Object
p [self.id, self]
class << self
p [self.id, self]
end
end
=> ruby 1.6.7 (2002-03-01) [i586-linux]
[537771634, Class]
[537742484, Class]
=> ruby 1.7.3 (2002-09-05) [i586-linux]
[537771634, #......ました。
: ((<Regexp#options|Regexp/options>)) [new]
追加
=== Socket
: ((<Socket/Socket.pack_sockaddr_in>)) [new]
: ((<Socket/Socket.unpack_sockaddr_in>)) [new]
追加。ソケットアドレス構造体(INET domain)のpack/unpack。
: ((<Socket/Socket.pack_so... -
ruby 1
. 6 feature (1380.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) ->......rityError)
=> ruby 1.6.7 (2002-07-30) [i586-linux]
: 2002-05-20 IO#close
双方向のパイプの dup を close_write するとエラーになっていました。
((<ruby-dev:17155>))
open("|-","r+") {|f|
if f
f.dup.close_write
else
sleep 1
end......s "exit"
}
Thread.start { Thread.stop }
sleep
: 2002-04-17: Regexp#inspect
((<ruby-bugs-ja:PR#222>))
p %r{\/}
=> ruby 1.6.7 (2002-03-01) [i586-linux]
/\\//
=> ruby 1.6.7 (2002-05-04) [i586-linux]
/\//
: 2002-04-15: pack('U')
pack('U') を unpack('U')... -
Array
# pack(template , buffer: String . new) -> String (938.0) -
配列の内容を template で指定された文字列にしたがって、 バイナリとしてパックした文字列を返します。
...生しないことを保証するものでは
ないことに注意してください。
buffer のサイズ(capacity)が足りなければ、packはメモリを確保します。
//emlist[例][ruby]{
['!'].pack('@1a', buffer: 'abc') # => "a!"
['!'].pack('@5a', buffer: 'abc') # => "abc\u0000\u000......指定した場合は返値も指定した文字列オブジェクトになります。
以下にあげるものは、Array#pack、String#unpack、String#unpack1
のテンプレート文字の一覧です。テンプレート文字は後に「長さ」を表す数字
を続けることができ......mlist{
n: big endian unsigned 16bit
N: big endian unsigned 32bit
v: little endian unsigned 16bit
V: little endian unsigned 32bit
//}
: エンディアン依存、整数サイズ依存 (C の構造体などに適切)
//emlist{
s!: signed short
S!: unsigned short
i,i!: signed int
I,I!... -
Array
# pack(template) -> String (838.0) -
配列の内容を template で指定された文字列にしたがって、 バイナリとしてパックした文字列を返します。
...生しないことを保証するものでは
ないことに注意してください。
buffer のサイズ(capacity)が足りなければ、packはメモリを確保します。
//emlist[例][ruby]{
['!'].pack('@1a', buffer: 'abc') # => "a!"
['!'].pack('@5a', buffer: 'abc') # => "abc\u0000\u000......指定した場合は返値も指定した文字列オブジェクトになります。
以下にあげるものは、Array#pack、String#unpack、String#unpack1
のテンプレート文字の一覧です。テンプレート文字は後に「長さ」を表す数字
を続けることができ......mlist{
n: big endian unsigned 16bit
N: big endian unsigned 32bit
v: little endian unsigned 16bit
V: little endian unsigned 32bit
//}
: エンディアン依存、整数サイズ依存 (C の構造体などに適切)
//emlist{
s!: signed short
S!: unsigned short
i,i!: signed int
I,I!...