別のキーワード
ライブラリ
クラス
- Array (100)
- CGI (12)
- CSV (60)
- Encoding (60)
-
Encoding
:: Converter (12) - Hash (12)
- Integer (24)
- Logger (12)
-
OpenSSL
:: BN (24) - OptionParser (144)
- String (12)
- StringScanner (12)
-
Thread
:: Queue (36) -
Thread
:: SizedQueue (36)
キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (12) - ARGF (12)
- ConditionVariable (12)
- Monitor (12)
- MonitorMixin (12)
-
NEWS for Ruby 2
. 4 . 0 (9) -
NEWS for Ruby 3
. 1 . 0 (4) - NKF (12)
- Ruby用語集 (12)
-
SHIFT
_ JIS (12) -
Shift
_ JIS (12) - String (12)
- append (8)
- chr (24)
- deq (24)
- drop (12)
- gets (12)
- header (12)
- iseuc (12)
- list (12)
- lshift! (12)
-
matched
_ size (12) -
name
_ list (12) - new (24)
- on (144)
- optparse (12)
- pop (48)
- prepend (8)
-
primitive
_ errinfo (12) - push (12)
-
rb
_ ary _ shift (12) - readline (12)
- replicate (12)
-
return
_ headers? (12) -
rinda
/ rinda (12) - rshift! (12)
-
ruby 1
. 6 feature (12) - unshift (12)
- 多言語化 (12)
検索結果
先頭5件
-
Logger
. new(logdev , shift _ age = 0 , shift _ size = 1048576 , level: Logger :: Severity :: DEBUG , progname: nil , formatter: Formatter . new , datetime _ format: nil , shift _ period _ suffix: & # 39;%Y%m%d& # 39;) -> Logger (333.0) -
Logger オブジェクトを生成します。
...成します。
@param logdev ログを書き込むファイル名か、 IO オブジェクト(STDOUT, STDERR など)を指定します。
@param shift_age ログファイルを保持する数か、ログファイルを切り替える頻度を指定します。
頻度には daily,......y を文字列で指定することができます。
省略すると、ログの保存先を切り替えません。
@param shift_size shift_age を整数で指定した場合のみ有効です。
このサイズでログファイルを切り替えます。
@par......文字列のフォーマットを指定します。
省略した場合は '%Y%m%d' です。
//emlist[例][ruby]{
require 'logger'
logger = Logger.new(STDERR)
logger = Logger.new(STDOUT)
logger = Logger.new('logfile.log')
file = File.open('foo.log', File::WR... -
optparse (312.0)
-
コマンドラインのオプションを取り扱うためのライブラリです。
...を受け付けるコマンドを作成する例です。
//emlist[sample.rb][ruby]{
require 'optparse'
opt = OptionParser.new
opt.on('-a') {|v| p v }
opt.on('-b') {|v| p v }
opt.parse!(ARGV)
p ARGV
//}
↓
ruby sample.rb -a foo bar -b baz
# => true
true......ている)。ただし、環境変数 POSIXLY_CORRECT が定義してあると
この挙動は変更されます。
env POSIXLY_CORRECT=1 ruby ./sample.rb -a foo bar -b baz
# => true # -a はオプションと解釈
["foo", "bar", "-b", "ba......ser.new.on('-i') { puts "list -i" }
parser.order!(ARGV)
subparsers[ARGV.shift].parse!(ARGV) unless ARGV.empty?
//}
実行すると以下のようになります。
$ ruby subcom.rb -i add -i
-i
add -i
$ ruby subcom.rb list -i
list -i
OptionParser#order! がオプションで... -
Logger
. new(logdev , shift _ age = 0 , shift _ size = 1048576) -> Logger (226.0) -
Logger オブジェクトを生成します。
...成します。
@param logdev ログを書き込むファイル名か、 IO オブジェクト(STDOUT, STDERR など)を指定します。
@param shift_age ログファイルを保持する数か、ログファイルを切り替える頻度を指定します。
頻度には daily,......ると、ログの保存先を切り替えません。
@param shift_size shift_age を整数で指定した場合のみ有効です。
このサイズでログファイルを切り替えます。
//emlist[例][ruby]{
require 'logger'
logger = Logger.new(STDERR)
logger = Logger.... -
多言語化 (202.0)
-
多言語化 Ruby は US-ASCII はもちろん、US-ASCII 以外の文字エンコーディングもサポートしています。 文字列の内部表現のエンコーディングは固定されておらず、 プログラマは目的に応じて使用するエンコーディングを選ぶことができます。
...多言語化
Ruby は US-ASCII はもちろん、US-ASCII 以外の文字エンコーディングもサポートしています。
文字列の内部表現のエンコーディングは固定されておらず、
プログラマは目的に応じて使用するエンコーディングを選ぶこ......を適切に取り扱うことができます。
後述のマジックコメントでスクリプトエンコーディングを指定すると、
Ruby スクリプトに非 ASCII 文字を使うことができます。(magic_comment)
文字列リテラルや正規表現リテラルだけでなく......に使います。
//emlist[例][ruby]{
"いろは".encode("Shift_JIS")
"\xA4\xA4\xA4\xED\xA4\xCF".force_encoding("EUC-JP")
//}
====[a:ruby18] Ruby 1.8 からの移行
Ruby 1.8 からの移行措置として、コマンドオプション -K を指定すれば
Ruby 1.8 用に書かれたスクリ... -
NKF (82.0)
-
nkf(Network Kanji code conversion Filter, https://osdn.net/projects/nkf/) を Ruby から使うためのモジュールです。
...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.get....../emlist[例][ruby]{
#!/usr/local/bin/ruby
require 'nkf'
CODES = {
NKF::JIS => "JIS",
NKF::EUC => "EUC",
NKF::SJIS => "SJIS",
NKF::UTF8 => "UTF8",
NKF::BINARY => "BINARY",
NKF::ASCII => "ASCII",
NKF::UNKNOWN => "UNKNOWN",
}
while file = ARGV.shift
str = open......)
-s Shift_JIS を出力する
-e EUC-JP を出力する
-w UTF-8 を出力する(BOMなし)
-w16 UTF-16 LE を出力する
-J -S -E -W -W16 入力文字列のエンコーディングの推定値を指定する。
-J 入力に JIS を仮定する
-S 入力に Shift_JIS と... -
rinda
/ rinda (64.0) -
Rubyで実装されたタプルスペース(Tuple Space)を扱うためのライブラリです。
...Rubyで実装されたタプルスペース(Tuple Space)を扱うためのライブラリです。
タプルスペースとは並列プログラムにおける一つのパターンです。
並列プログラミングにおいては、ロックのような同期処理が必須ですが、
適切な......イブラリはタプルスペースへのアクセス機能等を提供します。
=== 参考
* http://www.druby.org/ilikeruby/rinda.html
* http://www2a.biglobe.ne.jp/~seki/ruby/d208.html
===[a:tuplepattern] タプルのパターンについて
Rinda::TupleSpace#take や Rinda::TupleSpacePro......re 'rinda/tuplespace'
uri = ARGV.shift
DRb.start_service(uri, Rinda::TupleSpace.new)
puts DRb.uri
DRb.thread.join
# rindas.rb
require 'drb/drb'
require 'rinda/rinda'
def do_it(v)
puts "do_it(#{v})"
v + v
end
uri = ARGV.shift || raise("usage: #{$0} <server_uri>"... -
String (54.0)
-
文字列のクラスです。 ヌル文字を含む任意のバイト列を扱うことができます。 文字列の長さにはメモリ容量以外の制限はありません。
...テラルを使って生成します。
以下に文字列リテラルの例をいくつか示します。
//emlist[文字列リテラルの例][ruby]{
'str\\ing' # シングルクオート文字列 (エスケープシーケンスがほぼ無効)
"string\n" # ダブルクオート文字列 (エ......用も可能
<<-End
この行はヒアドキュメント (終端記号をインデントできる)
End
//}
===[a:mutable] 破壊的な変更
Ruby の String クラスは mutable です。
つまり、オブジェクト自体を破壊的に変更できます。
「破壊的な変更」とは......従って UTF-16 はASCII互換ではありません。
また厳密性を追求せず、おおむね互換なら互換と呼びます。よって Shift_JIS は ASCII 互換です。
==== バイト列を表す文字列
文字列ではない単なるバイト列も String オブジェクトで表......ト、ダブルクオートとの併用も可能
<<~End
この行のインデントは無視される
End
//}
===[a:mutable] 破壊的な変更
Ruby の String クラスは mutable です。
つまり、オブジェクト自体を破壊的に変更できます。
「破壊的な変更」とは... -
ARGF (36.0)
-
スクリプトに指定した引数 (Object::ARGV を参照) をファイル名とみなして、 それらのファイルを連結した 1 つの仮想ファイルを表すオブジェクトです。 ARGV が空なら標準入力を対象とします。 ARGV を変更すればこのオブジェクトの動作に影響します。
...す。
ARGV を変更すればこのオブジェクトの動作に影響します。
//emlist[][ruby]{
while line = ARGF.gets
# do something
end
//}
は、
//emlist[][ruby]{
while argv = ARGV.shift
File.open(argv) {|file|
while line = file.gets
# do something
end
}
end
//}......を読み込んだ後、再度 ARGF から内容を読むと
(ARGV が空なので)標準入力からの読み込みとなります。
//emlist[][ruby]{
ARGV.replace %w(/tmp/foo /tmp/bar)
ARGF.each {|line|
# 処理中の ARGV の内容を表示
p [ARGF.filename, ARGV]
ARGF.skip
}
#......ド
インプレースエディット (in-place edit) モードは Ruby のコマンドライン引数に指定されたファイルの内容を置き換えます。
コマンドラインオプションで -i を指定すると Ruby はこのモードで動作します。
また ARGF.class#inplace... -
MonitorMixin (36.0)
-
スレッドの同期機構としてのモニター機能を提供するモジュールです。
...りすることでそのクラス/オブジェクトに
モニタ機能を追加します。
=== 例
//emlist[消費者、生産者問題の例][ruby]{
require 'monitor'
buf = []
buf.extend(MonitorMixin) # 配列にモニタ機能を追加
empty_cond = buf.new_cond # 配列が空であるかな......hronize do # ロックする
empty_cond.wait_while { buf.empty? } # 配列が空である間はロックを開放して待つ
print buf.shift # 配列が空でなくなった後ロックを取得してこの行を実行
end # ロックを開放
end
end
# producer
while line = ARGF......ります。
上の例のように Object#extend を使って利用する場合は
自動的に初期化されます。
//emlist[extend する例][ruby]{
require 'monitor'
buf = []
buf.extend(MonitorMixin)
//}
しかし、MonitorMixin をクラス定義の際に Module#include を使って
利用... -
OptionParser
# on(long , *rest) {|v| . . . } -> self (30.0) -
オプションを取り扱うためのブロックを自身に登録します。 ブロックはコマンドラインのパース時に、オプションが指定されていれば呼ばれます。
...の説明と見なします。
//emlist[][ruby]{
opts.on("--protocol VALUE", [:http, :ftp, :https]){|w|
p w
}
# ruby command --protocol=http #=> :http
opts.on("-c", "--charset VALUE", {"jis" => "iso-2022-jp", "sjis" => "shift_jis"}){|w|
p w
}
# ruby command --charset=jis #=> "iso-2022-jp"
//}...