別のキーワード
キーワード
- debug (12)
- drb (12)
-
drb
/ extservm (12) -
drb
/ gw (12) - irb (12)
- monitor (12)
- resolv (12)
-
rinda
/ rinda (12) - yaml (12)
検索結果
-
thread (38019.0)
-
スレッド間キューや状態変数 (condition variable) を提供するライブラリです。
...間キューや状態変数 (condition variable) を提供するライブラリです。
このライブラリは Thread を拡張します。rubyインタプリタを
デバッグオプション付き($DEBUGを真)で実行したときには、
Thread.abort_on_exception を true にします。... -
irb (261.0)
-
irb は Interactive Ruby の略です。 irb を使うと、Ruby の式を標準入力から簡単に入力・実行することができます。
...irb は Interactive Ruby の略です。
irb を使うと、Ruby の式を標準入力から簡単に入力・実行することができます。
=== irb の使い方
Ruby さえ知っていれば irb を使うのは簡単です。
irb コマンドを実行すると、以下のようなプロン......$DEBUG を true にする (ruby -d と同じ)
-w ruby -w と同じ
-W[level=2] ruby -W と同じ
-r library ruby -r と同じ
-I ruby -I と同じ
-U ruby -U と同じ
-E enc ruby -E と同じ
--verbose......# サブirbの立ちあげ
irb#1(main):001:0> jobs # サブirbのリスト
#0->irb on main (#<Thread:0x400fb7e4> : stop)
#1->irb#1 on main (#<Thread:0x40125d64> : running)
nil
irb#1(main):002:0> fg 0 # jobのスイッチ
nil
irb(main):002:0>... -
yaml (229.0)
-
構造化されたデータを表現するフォーマットであるYAML (YAML Ain't Markup Language) を扱うためのライブラリです。
...造化された配列][ruby]{
require 'yaml'
data = ["Taro san", "Jiro san", "Saburo san"]
str_r = YAML.dump(data)
str_l = <<~YAML_EOT
---
- Taro san
- Jiro san
- Saburo san
YAML_EOT
p str_r == str_l # => true
//}
//emlist[例2: 構造化されたハッシュ][ruby]{
require 'yaml'
requ......] = {
"age" => 13,
"birthday" => Date.new(1992, 12, 21)
}
p str_r == YAML.load(str_l) # => true
//}
//emlist[例3: 構造化されたログ][ruby]{
require 'yaml'
require 'stringio'
strio_r = StringIO.new(<<~YAML_EOT)
---
time: 2008-02-25 17:03:12 +09:00
target: YAML
version: 4
log......=== タグの指定
!ruby/sym :foo などのようにタグを指定することで、読み込み時に記述した値
の型を指定できます。
//emlist[例][ruby]{
require 'yaml'
p YAML.load(<<~EOS)
---
!ruby/sym :foo
EOS
# => :foo
//}
yaml では、Ruby 向けに以下のローカ... -
debug (99.0)
-
Ruby デバッガです。Ruby スクリプトのソースコードデバッグに使用します。
...Ruby デバッガです。Ruby スクリプトのソースコードデバッグに使用します。
また、Emacs を使用したインタフェース rubydb3x.el が
https://github.com/ruby/elisp にあるので、活用してください。
=== 使い方
$ ruby -rdebug foo.rb
または、E......-x load-library rubydb3x.el
M-x rubydb
=== デバッグコマンド
以下は、デバッガで使用できるコマンド名とその用法の一覧です。
各コマンド名には省略形があります。
ここに挙げたもの以外を入力した場合、その入力を ruby の式......: thread l[ist]
スレッドの一覧を表示します。
このコマンドの省略形は th です。
: thread c[ur[rent]]
現在のスレッドを表示します。
: thread <nnn>
: thread sw[itch] <nnn>
実行するスレッドを <nnn> に切替えます。
: thread stop... -
drb (73.0)
-
分散オブジェクトプログラミングのためのライブラリです。
...す。
Ruby のプロセスから他のRubyプロセスにあるオブジェクトのメソッド
を呼びだすことができます。他のマシン上のプロセスにも
アクセスできます。
=== 概要
dRuby は Ruby 専用の分散オブジェクトシステムです。
Ruby のみ......ket のような Ruby 本体が提供する
通信手段があれば追加のインストール物なしに利用可能です。
独自のプロトコルで通信し、他の分散オブジェクトシステム
(CORBA, RMI, .NETなど)との相互運用性はありません。
dRuby は
* 他の......r が自動でします。そのため
オブジェクトの登録のようなことは通常必要ありません。
DRb::DRbServer に URI(例: druby://example.com:8787)を関連付けること
で、他のプロセスからの通信(リモートメソッド呼び出し)ができるようにな... -
resolv (57.0)
-
DNSによる名前解決を行うライブラリです。 Ruby で書かれているため thread-aware であり、並列に多くのホスト名を解決することができます。
...DNSによる名前解決を行うライブラリです。 Ruby で書かれているため thread-aware であり、並列に多くのホスト名を解決することができます。
DNS モジュールを使うことで、さまざまなリソースを直接ルックアップできます。......きます。
//emlist[例:][ruby]{
require "resolv"
Resolv.getaddress("www.ruby-lang.org")
Resolv.getname("210.251.121.214").to_s
Resolv::DNS.new.getresources("www.ruby-lang.org", Resolv::DNS::Resource::IN::A).collect {|r| r.address}
Resolv::DNS.new.getresources("ruby-lang.org", Resolv::DNS::Resour... -
rinda
/ rinda (53.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......# まず、rinda_ts.rb を動かす
ruby rinda_ts.rb druby://localhost:40121
# rinda_ts.rb を動かしたまま、rindas.rbを動かす
# 複数の rindas.rb を同時に動かしてもよい。
# 別のターミナルで:
ruby rindas.rb druby://localhost:40121
# rindac.rb を... -
monitor (43.0)
-
スレッドの同期機構としてのモニター機能を提供するクラスです。 また同じスレッドから何度も lock できる Mutex としての機能も提供します。
...ことは
可能ですが、モニタの利点はライブラリがその関連を保証
していることです。
monitor は以下のような Thread::Mutex としての機能も提供します。
* lock の持ち主がスレッドである Mutex / 何度も lock できる Mutex
* lock......たら ただ yield するだけ (lock/unlockもしない)
* unlock はそのスレッドだけができる
30447 より。
よりプリミティブな同期機構として、
Thread::Mutex、Thread::ConditionVariable も参照してください。
=== 参照
* 6829
* 30447
* 30449... -
drb
/ gw (31.0) -
drb 通信を中継するゲートウェイ(DRb::GW)と、 中継に必要なオブジェクト識別子変換クラス(DRb::GWIdConv)、 および DRb::DRbObject への拡張が含まれています。
...とで
中継プロセスを経由した通信ができます。
以下の URL も参照してください。
* http://www2a.biglobe.ne.jp/~seki/ruby/drbssh.html
=== Example
この例は drb/gw.rb に含まれているものです。
foo.rb
require 'drb/drb'
class Foo
include DRbUndu......tmp/gw_b_c', front)
s1.thread.join
s2.thread.join
gw_a.rb
require 'drb/unix'
require_relative 'foo'
obj = Foo.new('a')
DRb.start_service("drbunix:/tmp/gw_a", obj)
robj = DRbObject.new_with_uri('drbunix:/tmp/gw_b_a')
robj[:a] = obj
DRb.thread.join
gw_c.rb
require 'dr......DRb.start_service("drbunix:/tmp/gw_c", nil)
robj = DRbObject.new_with_uri("drbunix:/tmp/gw_b_c")
puts "c->b"
a = robj[:a]
sleep 2
a.ping(foo)
DRb.thread.join
これを、gw_b, gw_a, gw_c の順に起動すると、gw_b を経由して
gw_a と gw_c が通信します。... -
monitor (31.0)
-
スレッドの同期機構としてのモニター機能を提供するクラスです。 また同じスレッドから何度も lock できる Mutex としての機能も提供します。
...していたら ただ yield するだけ (lock/unlockもしない)
* unlock はそのスレッドだけができる
30447 より。
よりプリミティブな同期機構として、
Mutex、Thread::ConditionVariable も参照してください。
=== 参照
* 6829
* 30447
* 30449... -
drb
/ extservm (25.0) -
DRb::ExtServManager を定義しているライブラリ。
...ータに加えて
# さらに2つのパラメータ(サーバの druby URI とサービス名)が渡されます
DRb::ExtServManager.command["No1"] = %w(ruby service.rb service1)
DRb::ExtServManager.command["No2"] = %w(ruby service.rb service2)
# ExtServManager オブジェクトを生......成して
# drb の front object に指定する
s = DRb::ExtServManager.new
DRb.start_service("druby://localhost:10234", s)
# drb のプロセスの終了を待つ
DRb.thread.join
service.rb:
require 'drb/drb'
require 'drb/extserv'
# サービスを表すクラス
class Ser......る
# ポート番号に 0 を指定すると ephemeral port から適当なポート番号が
# 選ばれる
server = DRb::DRbServer.new("druby://localhost:0", front)
# ARGV の最後の2つと DRbServer オブジェクトを ExtServ.new に渡す。
# これによってブローカ...