ライブラリ
- ビルトイン (8)
-
fiddle
/ import (1) -
rake
/ gempackagetask (1) -
rake
/ packagetask (12) -
rubygems
/ commands / unpack _ command (1) -
rubygems
/ commands / which _ command (1) -
rubygems
/ installer (1) -
rubygems
/ package / tar _ header (1) -
rubygems
/ package / tar _ input (4) -
rubygems
/ package / tar _ output (1) -
rubygems
/ package / tar _ reader (1) -
rubygems
/ package / tar _ reader / entry (2) -
rubygems
/ package / tar _ writer (8) - socket (8)
クラス
- Addrinfo (1)
- Array (2)
- BasicSocket (2)
-
Gem
:: Commands :: UnpackCommand (1) -
Gem
:: Commands :: WhichCommand (1) -
Gem
:: Installer (1) -
Gem
:: Package :: TarHeader (1) -
Gem
:: Package :: TarInput (4) -
Gem
:: Package :: TarOutput (1) -
Gem
:: Package :: TarReader (1) -
Gem
:: Package :: TarReader :: Entry (2) -
Gem
:: Package :: TarWriter (6) -
Gem
:: Package :: TarWriter :: BoundedStream (1) -
Gem
:: Package :: TarWriter :: RestrictedStream (1) - IO (2)
-
Rake
:: GemPackageTask (1) -
Rake
:: PackageTask (12) - Socket (2)
- String (4)
- UDPSocket (3)
モジュール
-
Fiddle
:: Importer (1)
キーワード
- == (1)
-
add
_ file (2) -
add
_ file _ simple (2) -
add
_ signatures (1) - bind (2)
-
check
_ closed (1) - connect (1)
- crypt (1)
- define (1)
- each (1)
-
extract
_ entry (1) - fcntl (1)
-
find
_ paths (1) -
force
_ encoding (1) -
gem
_ spec= (1) -
get
_ path (1) - init (1)
- ioctl (1)
-
ip
_ unpack (1) -
load
_ gemspec (1) - mkdir (1)
- name= (1)
-
need
_ tar= (1) -
need
_ tar _ bz2= (1) -
need
_ tar _ gz= (1) -
need
_ zip= (1) -
package
_ dir= (1) -
package
_ files= (1) - read (1)
- rewind (2)
- send (4)
- sendmsg (1)
-
tar
_ command= (1) - unpack (2)
- unpack1 (1)
- version= (1)
- write (2)
-
zip
_ command= (1) -
zipped
_ stream (1)
検索結果
先頭5件
-
Array
# pack(template) -> String (57910.0) -
配列の内容を template で指定された文字列にしたがって、 バイナリとしてパックした文字列を返します。
配列の内容を template で指定された文字列にしたがって、
バイナリとしてパックした文字列を返します。
テンプレートは
型指定文字列とその長さ(省略時は1)を並べたものです。長さと
して * が指定された時は「残りのデータ全て」の長さを
表します。型指定文字は以下で述べる pack テンプレート文字列の通りです。
buffer が指定されていれば、バッファとして使って返値として返します。
もし template の最初にオフセット (@) が指定されていれば、
結果はオフセットの後ろから詰められます。
buffer の元の内容がオフセットより長ければ、
オフセットより後ろの部分は上... -
Array
# pack(template , buffer: String . new) -> String (57910.0) -
配列の内容を template で指定された文字列にしたがって、 バイナリとしてパックした文字列を返します。
配列の内容を template で指定された文字列にしたがって、
バイナリとしてパックした文字列を返します。
テンプレートは
型指定文字列とその長さ(省略時は1)を並べたものです。長さと
して * が指定された時は「残りのデータ全て」の長さを
表します。型指定文字は以下で述べる pack テンプレート文字列の通りです。
buffer が指定されていれば、バッファとして使って返値として返します。
もし template の最初にオフセット (@) が指定されていれば、
結果はオフセットの後ろから詰められます。
buffer の元の内容がオフセットより長ければ、
オフセットより後ろの部分は上... -
Rake
:: PackageTask # package _ dir=(dirname) (27322.0) -
パッケージに入れるファイルを保存するディレクトリ名をセットします。
パッケージに入れるファイルを保存するディレクトリ名をセットします。
@param dirname パッケージに入れるファイルを保存するディレクトリ名を指定します。
//emlist[][ruby]{
# Rakefile での記載例とする
require 'rake/packagetask'
Rake::PackageTask.new("sample", "1.0.0") do |package_task|
package_task.package_dir # => "pkg"
package_task.package_dir = "package"
package_tas... -
Rake
:: PackageTask # package _ files=(file _ list) (27322.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... -
String
# unpack(template) -> Array (21916.0) -
Array#pack で生成された文字列を テンプレート文字列 template にしたがってアンパックし、 それらの要素を含む配列を返します。
Array#pack で生成された文字列を
テンプレート文字列 template にしたがってアンパックし、
それらの要素を含む配列を返します。
@param template pack テンプレート文字列
@return オブジェクトの配列
以下にあげるものは、Array#pack、String#unpack、String#unpack1
のテンプレート文字の一覧です。テンプレート文字は後に「長さ」を表す数字
を続けることができます。「長さ」の代わりに`*'とすることで「残り全て」
を表すこともできます。
長さの意味はテンプレート文字により異なりますが大... -
String
# unpack1(format) -> object (18340.0) -
formatにしたがって文字列をデコードし、展開された1つ目の値を返します。 unpackは配列を返しますがunpack1は配列の1つ目の要素のみを返します。
formatにしたがって文字列をデコードし、展開された1つ目の値を返します。
unpackは配列を返しますがunpack1は配列の1つ目の要素のみを返します。
//emlist[例][ruby]{
"ABC".unpack1("C*") # => 65
"ABC".unpack("C*") # => [65, 66, 67]
//}
@see String#unpack, Array#pack -
Addrinfo
# ip _ unpack -> [String , Integer] (18322.0) -
IP アドレスとポート番号を 2 要素の配列で返します。
IP アドレスとポート番号を 2 要素の配列で返します。
require 'socket'
Addrinfo.tcp("127.0.0.1", 80).ip_unpack #=> ["127.0.0.1", 80]
Addrinfo.tcp("::1", 80).ip_unpack #=> ["::1", 80]
@see Addrinfo#ip_address, Addrinfo#ip_port -
Gem
:: Installer # unpack(directory) (18322.0) -
与えられたディレクトリに Gem を展開します。
与えられたディレクトリに Gem を展開します。
@param directory Gem を展開するディレクトリを指定します。 -
Gem
:: Package :: TarInput # extract _ entry(destdir , entry , expected _ md5sum = nil) (9076.0) -
指定された destdir に entry を展開します。
指定された destdir に entry を展開します。
@param destdir 展開先のディレクトリを指定します。
@param entry エントリを指定します。
@param expected_md5sum 期待する MD5 チェックサムを指定します。
@raise Gem::Package::BadCheckSum チェックサムが一致しなかった場合に発生します。 -
Gem
:: Package :: TarWriter # add _ file _ simple(name , mode , size) -> self (9058.0) -
自身に関連付けられた IO にファイルを追加します。
自身に関連付けられた IO にファイルを追加します。
ブロックを与えると、自身に関連付けられた IO をブロックに渡してブロック
を評価します。
@param name 追加するファイルの名前を指定します。
@param mode 追加するファイルのパーミッションを指定します。
@param size 追加するファイルのサイズを指定します。 -
Gem
:: Package :: TarWriter # add _ file _ simple(name , mode , size) {|io| . . . } -> self (9058.0) -
自身に関連付けられた IO にファイルを追加します。
自身に関連付けられた IO にファイルを追加します。
ブロックを与えると、自身に関連付けられた IO をブロックに渡してブロック
を評価します。
@param name 追加するファイルの名前を指定します。
@param mode 追加するファイルのパーミッションを指定します。
@param size 追加するファイルのサイズを指定します。 -
Gem
:: Package :: TarWriter :: BoundedStream # write(data) -> Integer (9058.0) -
与えられたデータを自身に関連付けられた IO に書き込みます。
与えられたデータを自身に関連付けられた IO に書き込みます。
@param data 書き込むデータを指定します。
@return 書き込んだデータのサイズを返します。
@raise Gem::Package::TarWriter::FileOverflow Gem::Package::TarWriter::BoundedStream#limit を越えて
書き込もうとした場合に発生します。 -
Gem
:: Commands :: UnpackCommand # get _ path(gemname , version _ req) -> String | nil (9040.0) -
引数で指定された条件にマッチする Gem パッケージを保存しているパスを返します。
引数で指定された条件にマッチする Gem パッケージを保存しているパスを返します。
@param gemname Gem パッケージの名前を指定します。
@param version_req バージョンの満たすべき条件を文字列で指定します。 -
Gem
:: Package :: TarInput # load _ gemspec(io) -> Gem :: Specification | nil (9040.0) -
YAML 形式の gemspec を io から読み込みます。
YAML 形式の gemspec を io から読み込みます。
@param io 文字列か IO オブジェクトを指定します。
@see Gem::Specification.from_yaml -
Gem
:: Package :: TarReader # rewind -> Integer (9040.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 :: TarWriter # add _ file(name , mode) -> self (9040.0) -
自身に関連付けられた IO にファイルを追加します。
自身に関連付けられた IO にファイルを追加します。
ブロックを与えると、自身に関連付けられた IO をブロックに渡してブロック
を評価します。
@param name 追加するファイルの名前を指定します。
@param mode 追加するファイルのパーミッションを指定します。 -
Gem
:: Package :: TarWriter # add _ file(name , mode) {|io| . . . } -> self (9040.0) -
自身に関連付けられた IO にファイルを追加します。
自身に関連付けられた IO にファイルを追加します。
ブロックを与えると、自身に関連付けられた IO をブロックに渡してブロック
を評価します。
@param name 追加するファイルの名前を指定します。
@param mode 追加するファイルのパーミッションを指定します。 -
Gem
:: Package :: TarWriter # mkdir(name , mode) -> self (9040.0) -
自身に関連付けられた IO にディレクトリを追加します。
自身に関連付けられた IO にディレクトリを追加します。
@param name 追加するディレクトリの名前を指定します。
@param mode 追加するディレクトリのパーミッションを指定します。 -
Gem
:: Package :: TarWriter :: RestrictedStream # write(data) -> Integer (9040.0) -
与えられたデータを自身に関連付けられた IO に書き込みます。
与えられたデータを自身に関連付けられた IO に書き込みます。
@param data 書き込むデータを指定します。
@return 書き込んだデータのサイズを返します。 -
Rake
:: PackageTask # init(name , version) (9040.0) -
自身の各属性にデフォルト値をセットします。
自身の各属性にデフォルト値をセットします。
@param name パッケージの名前を指定します。
@param version パッケージのバージョンを指定します。 -
Gem
:: Package :: TarHeader # ==(other) -> bool (9022.0) -
自身と other が等しければ真を返します。 そうでない場合は偽を返します。
自身と other が等しければ真を返します。
そうでない場合は偽を返します。
@param other 比較対象のオブジェクトを指定します。 -
Gem
:: Package :: TarInput # each {|entry| . . . } (9022.0) -
data.tar.gz の各エントリをブロックに渡してブロックを評価します。
data.tar.gz の各エントリをブロックに渡してブロックを評価します。
@see Gem::Package::TarReader#each -
Gem
:: Package :: TarInput # zipped _ stream(entry) -> StringIO (9022.0) -
与えられた entry の圧縮したままの StringIO を返します。
与えられた entry の圧縮したままの StringIO を返します。
@param entry エントリを指定します。 -
Gem
:: Package :: TarOutput # add _ signatures (9022.0) -
gem-format な tar ファイルに data.tar.gz.sig, metadata.gz.sig を追加します。
gem-format な tar ファイルに data.tar.gz.sig, metadata.gz.sig を追加します。
@see Gem::Security::Signer -
Gem
:: Package :: TarReader :: Entry # read(length = nil) -> String (9022.0) -
自身から指定されたバイト数読み込みます。
自身から指定されたバイト数読み込みます。
@param length 読み込むバイト数を指定します。
省略すると全てを読み込みます。 -
Gem
:: Package :: TarReader :: Entry # rewind -> 0 (9022.0) -
ファイルポインタを先頭に移動します。
ファイルポインタを先頭に移動します。
@raise Gem::Package::NonSeekableIO シークできない場合に発生します。 -
Gem
:: Package :: TarWriter # check _ closed (9022.0) -
自身に関連付けられた IO が既に close されているかどうかチェックします。
自身に関連付けられた IO が既に close されているかどうかチェックします。
@raise IOError 自身に関連付けられた IO が既に close されている場合に発
生します。 -
Rake
:: GemPackageTask # gem _ spec=(gem _ spec) (9022.0) -
gemspec をセットします。
gemspec をセットします。
@param gem_spec Gem::Specification のインスタンスを指定します。 -
Rake
:: PackageTask # define -> self (9022.0) -
タスクを定義します。
タスクを定義します。
@raise RuntimeError バージョン情報をセットしていない場合に発生します。
初期化時に :noversion が指定されている場合は発生しません。 -
Rake
:: PackageTask # name=(name) (9022.0) -
バージョン情報を含まないパッケージの名前をセットします。
バージョン情報を含まないパッケージの名前をセットします。
@param name パッケージの名前を指定します。
//emlist[][ruby]{
# Rakefile での記載例とする
require 'rake/packagetask'
Rake::PackageTask.new("sample", "1.0.0") do |package_task|
package_task.name # => "sample"
package_task.name = "update"
package_task.name # => "update"
end
//} -
Rake
:: PackageTask # need _ tar=(flag) (9022.0) -
gzip した tar ファイル (tgz) を作成するかどうかを設定します。
gzip した tar ファイル (tgz) を作成するかどうかを設定します。
@param flag 真または偽を指定します。
//emlist[][ruby]{
# Rakefile での記載例とする
require 'rake/packagetask'
Rake::PackageTask.new("sample", "1.0.0") do |package_task|
package_task.need_tar # => false
package_task.need_tar = true
package_task.need_tar # => true
end
//}... -
Rake
:: PackageTask # need _ tar _ bz2=(flag) (9022.0) -
bzip2 した tar ファイル (tar.bz2) を作成するかどうかを設定します。
bzip2 した tar ファイル (tar.bz2) を作成するかどうかを設定します。
@param flag 真または偽を指定します。
//emlist[][ruby]{
# Rakefile での記載例とする
require 'rake/packagetask'
Rake::PackageTask.new("sample", "1.0.0") do |package_task|
package_task.need_tar_bz2 # => false
package_task.need_tar_bz2 = true
package_task.need_tar_bz2 ... -
Rake
:: PackageTask # need _ tar _ gz=(flag) (9022.0) -
gzip した tar ファイル (tar.gz) を作成するかどうかを設定します。
gzip した tar ファイル (tar.gz) を作成するかどうかを設定します。
@param flag 真または偽を指定します。
//emlist[][ruby]{
# Rakefile での記載例とする
require 'rake/packagetask'
Rake::PackageTask.new("sample", "1.0.0") do |package_task|
package_task.need_tar_gz # => false
package_task.need_tar_gz = true
package_task.need_tar_gz # => ... -
Rake
:: PackageTask # need _ zip=(flag) (9022.0) -
zip ファイル (tgz) を作成するかどうかを設定します。
zip ファイル (tgz) を作成するかどうかを設定します。
@param flag 真または偽を指定します。
//emlist[][ruby]{
# Rakefile での記載例とする
require 'rake/packagetask'
Rake::PackageTask.new("sample", "1.0.0") do |package_task|
package_task.need_zip # => false
package_task.need_zip = true
package_task.need_zip # => true
end
//} -
Rake
:: PackageTask # tar _ command=(command) (9022.0) -
tar コマンドとして使用するコマンドを設定します。
tar コマンドとして使用するコマンドを設定します。
@param command コマンドを文字列で指定します。 -
Rake
:: PackageTask # version=(str) (9022.0) -
作成するパッケージのバージョンをセットします。
作成するパッケージのバージョンをセットします。
@param str バージョンを表す文字列を指定します。 -
Rake
:: PackageTask # zip _ command=(command) (9022.0) -
zip コマンドとして使用するコマンドを設定します。
zip コマンドとして使用するコマンドを設定します。
@param command コマンドを文字列で指定します。 -
Gem
:: Commands :: WhichCommand # find _ paths(package _ name , dirs) -> Array (340.0) -
dirs から package_name という名前を持つファイルを探索します。
dirs から package_name という名前を持つファイルを探索します。
以下の拡張子を持つファイルが対象です。
%w[.rb .rbw .so .dll .bundle]
@param package_name ファイルの名前を指定します。
@param dirs 探索するディレクトリを文字列の配列で指定します。 -
BasicSocket
# send(mesg , flags , dest _ sockaddr = nil) -> Integer (112.0) -
ソケットを介してデータを送ります。flags に関しては send(2) を参照してください。connect していないソケット に対しては送り先である dest_sockaddr を指定する必要があります。実際に送っ たデータの長さを返します。
ソケットを介してデータを送ります。flags に関しては
send(2) を参照してください。connect していないソケット
に対しては送り先である dest_sockaddr を指定する必要があります。実際に送っ
たデータの長さを返します。
dest_sockaddr には「ソケットアドレス構造体を pack した文字列」
を指定します。
データの送信に失敗した場合は例外 Errno::EXXX が発生します。
@param mesg 送信するデータを文字列で指定します。
@param flags send(2) の flags を参照してください。
@... -
BasicSocket
# sendmsg(mesg , flags=0 , dest _ sockaddr=nil , *controls) -> Integer (112.0) -
sendmsg(2) を用いてメッセージを送ります。
sendmsg(2) を用いてメッセージを送ります。
このメソッドはブロックします。ノンブロッキング方式で通信したい
場合は BasicSocket#sendmsg_nonblock を用います。
ソケットが connection-less の場合は dest_sockaddr で
通信先のアドレスを指定しなければなりません。Socket.sockaddr_in
の返り値や Addrinfo オブジェクトを引数として渡すことができます。
controls には 補助データ(ancillary data)を渡します。
Socket::AncillaryData のインスタンスや
3要素(c... -
UDPSocket
# send(mesg , flags) -> Integer (112.0) -
UDP ソケットを介してデータを送ります。
UDP ソケットを介してデータを送ります。
flags には Socket::MSG_* という定数の bitwise OR を渡します。
詳しい意味は send(2) を参照してください。
host, port の対、もしくは sockaddr_to で送り先を指定します。
送り先を省略した場合は UDPSocket#connect で接続した
先にデータを送ります。
実際に送ったデータの長さを返します。
sockaddr_to にはlib:socket#pack_string もしくは
Addrinfo オブジェクトを指定します。
host, port に関しては lib:so... -
UDPSocket
# send(mesg , flags , host , port) -> Integer (112.0) -
UDP ソケットを介してデータを送ります。
UDP ソケットを介してデータを送ります。
flags には Socket::MSG_* という定数の bitwise OR を渡します。
詳しい意味は send(2) を参照してください。
host, port の対、もしくは sockaddr_to で送り先を指定します。
送り先を省略した場合は UDPSocket#connect で接続した
先にデータを送ります。
実際に送ったデータの長さを返します。
sockaddr_to にはlib:socket#pack_string もしくは
Addrinfo オブジェクトを指定します。
host, port に関しては lib:so... -
UDPSocket
# send(mesg , flags , sockaddr _ to) -> Integer (112.0) -
UDP ソケットを介してデータを送ります。
UDP ソケットを介してデータを送ります。
flags には Socket::MSG_* という定数の bitwise OR を渡します。
詳しい意味は send(2) を参照してください。
host, port の対、もしくは sockaddr_to で送り先を指定します。
送り先を省略した場合は UDPSocket#connect で接続した
先にデータを送ります。
実際に送ったデータの長さを返します。
sockaddr_to にはlib:socket#pack_string もしくは
Addrinfo オブジェクトを指定します。
host, port に関しては lib:so... -
IO
# fcntl(cmd , arg = 0) -> Integer (94.0) -
IOに対してシステムコール fcntl を実行します。 機能の詳細は fcntl(2) を参照してください。 fcntl(2) が返した整数を返します。
IOに対してシステムコール fcntl を実行します。
機能の詳細は fcntl(2) を参照してください。
fcntl(2) が返した整数を返します。
@param cmd IO に対するコマンドを、添付ライブラリ fcntl が提供している定数で指定します。
@param arg cmd に対する引数を整数、文字列、booleanのいずれかで指定します。
整数の時にはその値を fcntl(2) に渡します。
文字列の場合には Array#pack した構造体だとみなして渡します。
arg が nil か false の... -
Fiddle
:: Importer # bind(signature , *opts) { . . . } -> Fiddle :: Function (76.0) -
Ruby のブロックを C の関数で wrap し、その関数をモジュールに インポートします。
Ruby のブロックを C の関数で wrap し、その関数をモジュールに
インポートします。
これでインポートされた関数はモジュール関数として定義されます。
また、Fiddle::Importer#[] で Fiddle::Function オブジェクトとして
取り出すことができます。
signature で関数の名前とシネグチャを指定します。例えば
"int compare(void*, void*)" のように指定します。
opts には :stdcall もしくは :cdecl を渡すことができ、
呼出規約を明示することができます。
@return インポートした関数を表す ... -
IO
# ioctl(cmd , arg = 0) -> Integer (76.0) -
IO に対してシステムコール ioctl を実行し、その結果を返します。 機能の詳細は ioctl(2) を参照してください。
IO に対してシステムコール ioctl を実行し、その結果を返します。
機能の詳細は ioctl(2) を参照してください。
@param cmd IO に対するコマンドを整数で指定します。どのようなコマンドが使えるかはプラットフォームに依存します。
@param arg cmd に対する引数を指定します。整数の時にはその値を ioctl に渡します。
文字列の場合には Array#pack した構造体だとみなして渡します。
arg が nil か false の場合には 0を、true の場合には 1 を渡します。
@raise IOEr... -
Socket
# bind(my _ sockaddr) -> 0 (76.0) -
ソケットを my_sockaddr に結合します。bind(2) と同じ働きをします。
ソケットを my_sockaddr に結合します。bind(2)
と同じ働きをします。
@param my_sockaddr ソケットアドレス構造体を pack した文字列lib:socket#pack_stringもしくはAddrinfoオブジェクトを指定します。
@return 0 を返します。 -
String
# force _ encoding(encoding) -> self (76.0) -
文字列の持つエンコーディング情報を指定された encoding に変えます。
文字列の持つエンコーディング情報を指定された encoding に変えます。
このとき実際のエンコーディングは変換されず、検査もされません。
Array#pack などで得られたバイト列のエンコーディングを指定する時に使います。
@param encoding 変更するエンコーディング情報を表す文字列か Encoding オブジェクトを指定します。
//emlist[例][ruby]{
s = [164, 164, 164, 237, 164, 207].pack("C*")
p s.encoding #=> ASC... -
Socket
# connect(server _ sockaddr) -> 0 (58.0) -
connect(2) でソケットを接続します。
connect(2) でソケットを接続します。
server_sockaddr は、
lib:socket#pack_string
もしくは Addrinfo オブジェクト
です。
0 を返します。
@param server_sockaddr 接続先アドレス
@raise Errno::EXXX connect(2) がエラーを報告した場合に発生します。詳しくは
man を参照してください。
たとえば IPv4 の TCP ソケットを生成し、connect で www.ruby-lang.org:80 に接続するには以下のようにします。
例:
require... -
String
# crypt(salt) -> String (40.0) -
self と salt から暗号化された文字列を生成して返します。 salt には英数字、ドット (「.」)、スラッシュ (「/」) から構成される、 2 バイト以上の文字列を指定します。
self と salt から暗号化された文字列を生成して返します。
salt には英数字、ドット (「.」)、スラッシュ (「/」) から構成される、
2 バイト以上の文字列を指定します。
暗号化された文字列から暗号化前の文字列 (self) を求めることは一般に困難で、
self を知っている者のみが同じ暗号化された文字列を生成できます。
このことから self を知っているかどうかの認証に使うことが出来ます。
salt には、以下の様になるべくランダムな文字列を選ぶべきです。
他にも 29297 などがあります。
注意:
* Ruby 2.6 から非推奨になったため、引き続き...