1
irb -- interactive ruby
2
$Release Version: 0.9.5 $
4
$Date: 2007-02-13 08:01:19 +0900 (Tue, 13 Feb 2007) $
5
by Keiju ISHITSUKA(keiju@ruby-lang.org)
9
irb��interactive ruby��ά�Ǥ�. ruby�μ���ɸ�����Ϥ����ñ������/�¹Ԥ���
20
irb�λȤ�����, Ruby�����ΤäƤ���Ф����äƴ�ñ�Ǥ�. ����Ū�ˤ� irb ��
21
�������ޥ�ɤ�¹Ԥ�������Ǥ�. irb��¹Ԥ����, �ʲ��Τ褦�ʥץ����
22
�Ȥ�ɽ��Ƥ��ޤ�. ���, ruby�μ�������Ʋ�����. �������뤷�������Ǽ¹�
28
irb(main):002:0> class Foo
29
irb(main):003:1> def foo
30
irb(main):004:2> print 1
36
�ޤ�, irb��Readline�⥸�塼��ˤ��б����Ƥ��ޤ�. Readline�⥸�塼�뤬
37
���ȡ��뤵��Ƥ�����ˤ�, �����Ȥ��Τ�ɸ���ư��ˤʤ�ޤ�.
41
irb.rb [options] file_name opts
43
-f ~/.irbrc ���ɤ߹��ޤʤ�.
44
-m bc�⡼��(ʬ��, ����η����Ǥ���)
45
-d $DEBUG ��true�ˤ���(ruby -d ��Ʊ��)
47
-r load-module ruby -r ��Ʊ��.
48
--verbose ���줫��¹Ԥ���Ԥ�ɽ������(�ǥե����)
49
--noverbose ���줫��¹Ԥ���Ԥ�ɽ�����ʤ�
50
--echo �¹Է�̤�ɽ������(�ǥե����)
51
--noecho �¹Է�̤�ɽ�����ʤ�
52
--inspect ��̽��Ϥ�inspect���Ѥ���(bc�⡼�ɰʳ��ϥǥե����).
53
--noinspect ��̽��Ϥ�inspect���Ѥ��ʤ�.
54
--readline readline�饤�֥������Ѥ���.
55
--noreadline readline�饤�֥������Ѥ��ʤ�. �ǥե���Ȥ�ư���,
56
inf-ruby-mode�ʳ���readline�饤�֥������Ѥ��褦
59
--prompt-mode prompt-mode
60
�ץ���ץȥ⡼�ɤ����ؤ��ޤ�. �����������Ƥ����
61
����ץȥ⡼�ɤ�, default, simple, xmp, inf-ruby��
62
�Ѱդ���Ƥ��ޤ�. �ǥե���Ȥ�default�ץ���ץȥ⡼
65
--inf-ruby-mode emacs��inf-ruby-mode�ѤΥץ���ץ�ɽ����Ԥʤ�. ��
66
�˻��꤬�ʤ��¤�, readline�饤�֥��ϻȤ�ʤ��ʤ�.
68
���˥���ץ�ʥץ���ץȤ��Ѥ���⡼�ɤǤ�.
69
--noprompt �ץ���ץ�ɽ����Ԥʤ�ʤ�.
70
--tracer ���ޥ�ɼ¹Ի��˥ȥ졼����Ԥʤ�.
72
�Хå��ȥ졼��ɽ����Хå��ȥ졼����Ƭ���� n, ���
73
����n�����Ԥʤ�. �ǥե���Ȥ�16
74
--irb_debug n irb�ΥǥХå��ǥХå���٥��n�����ꤹ��(���Ѥ���
76
-v, --version irb�ΥС�������ɽ������
80
irb��ư����``~/.irbrc''���ɤ߹��ߤޤ�. �⤷¸�ߤ��ʤ�����,
81
``.irbrc'', ``irb.rc'', ``_irbrc'', ``$irbrc''�ν��load���ߤޤ�.
83
���ץ��������ꤹ�������, �ʲ��Υ��ޥ�ɤǤ�ǥե���Ȥ�ư�������
86
IRB.conf[:IRB_NAME]="irb"
87
IRB.conf[:MATH_MODE]=false
88
IRB.conf[:USE_TRACER]=false
89
IRB.conf[:USE_LOADER]=false
90
IRB.conf[:IGNORE_SIGINT]=true
91
IRB.conf[:IGNORE_EOF]=false
92
IRB.conf[:INSPECT_MODE]=nil
93
IRB.conf[:IRB_RC] = nil
94
IRB.conf[:BACK_TRACE_LIMIT]=16
95
IRB.conf[:USE_LOADER] = false
96
IRB.conf[:USE_READLINE] = nil
97
IRB.conf[:USE_TRACER] = false
98
IRB.conf[:IGNORE_SIGINT] = true
99
IRB.conf[:IGNORE_EOF] = false
100
IRB.conf[:PROMPT_MODE] = :DEFALUT
101
IRB.conf[:PROMPT] = {...}
102
IRB.conf[:DEBUG_LEVEL]=0
103
IRB.conf[:VERBOSE]=true
107
�ץ���ץȤ����ޥ������������ˤ�,
111
���Ѥ��ޤ�. �㤨��, .irbrc����Dz��Τ褦�ʼ��Ҥ��ޤ�:
113
IRB.conf[:PROMPT][:MY_PROMPT] = { # �ץ���ץȥ⡼�ɤ�̾��
114
:PROMPT_I => nil, # �̾�Υץ���ץ�
115
:PROMPT_N => nil, # ��³�ԤΥץ���ץ�
116
:PROMPT_S => nil, # ʸ����ʤɤη�³�ԤΥץ���ץ�
117
:PROMPT_C => nil, # ������³���Ƥ�����Υץ���ץ�
118
:RETURN => " ==>%s\n" # �������Υץ���ץ�
121
�ץ���ץȥ⡼�ɤ���ꤷ�������ˤ�,
123
irb --prompt my-prompt
125
�Ǥ��Υץ���ץȥ⡼�ɤǵ�ư����ޤ�. �ޤ���, .irbrc�˲����Ҥ��Ƥ�
128
IRB.conf[:PROMPT_MODE] = :MY_PROMPT
130
PROMPT_I, PROMPT_N, PROMPT_S, PROMPT_C��, �ե����ޥåȤ���ꤷ�ޤ�.
132
%N ��ư���Ƥ��륳�ޥ��̾�����Ϥ����.
133
%m main���֥�������(self)��to_s�ǽ��Ϥ����.
134
%M main���֥�������(self)��inspect����ƽ��Ϥ����.
135
%l ʸ������Υ����פ�ɽ��(", ', /, ], `]'��%w����λ�)
136
%NNi ����ǥ�ȤΥ�٥��ɽ��. NN�Ͽ���������printf��%NNd��Ʊ��. ��
141
�㤨��, �ǥե���ȤΥץ���ץȥ⡼�ɤ�:
143
IRB.conf[:PROMPT_MODE][:DEFAULT] = {
144
:PROMPT_I => "%N(%m):%03n:%i> ",
145
:PROMPT_N => "%N(%m):%03n:%i> ",
146
:PROMPT_S => "%N(%m):%03n:%i%l ",
147
:PROMPT_C => "%N(%m):%03n:%i* ",
153
RETURN��, ���ߤΤȤ���printf�����Ǥ�. ������ͤ��Ѥ�뤫���Τ�ޤ���.
157
���ޥ�ɥ饤�ץ�����IRB.conf��(����)irb��ư���Υǥե���Ȥ�
158
���������Τ�, `5. ���ޥ��'�ˤ���conf�Ǹ��̤�(����)irb�����꤬��
161
IRB.conf[:IRB_RC]��proc�����ꤵ��Ƥ����, ����irb��ư������ˤ���
162
proc��irb�Υ���ƥ����Ȥ�����Ȥ��ƸƤӽФ��ޤ�. ����ˤ�äƸ��̤Υ�
163
��irb���Ȥ�������Ѥ��뤳�Ȥ��Ǥ���褦�ˤʤ�ޤ�.
168
irb��ĥ���ޥ�ɤ�, ��ñ��̾����Ƭ��`irb_'��Ĥ���̾����ξ����������
169
���ޤ�. �����, ��ñ��̾����override���줿���Τ���Ǥ�.
171
--- exit, quit, irb_exit
173
����irb��, ������irb�����.
175
--- conf, irb_context
176
irb�θ��ߤ������ɽ������. ������ѹ���, conf�˥�å����������뤳
179
--- conf.eval_history = N
181
nn��������nil�� nn>0 �Ǥ���Ф��ο������ҥ��ȥ�ˤ���롣nn==0�λ���
182
̵���¤˵������롢nil���ȥҥ��ȥ굡ǽ�Ϥ���(�ǥե����).
184
--- Conf.back_trace_limit
185
�Хå��ȥ졼��ɽ����Хå��ȥ졼����Ƭ����n, �������n�����Ԥʤ�.
188
--- conf.debug_level = N
191
--- conf.ignore_eof = true/false
192
^D�����Ϥ��줿����ư������ꤹ��. true�λ���^D��̵�뤹��, false��
195
--- conf.ignore_sigint= true/false
196
^C�����Ϥ��줿����ư������ꤹ��. false����, irb��λ����. true��
198
������: ����ޤ����Ϥ�����Τ�뤷�ȥåץ�٥�����.
201
--- conf.inf_ruby_mode = true/false
202
inf-ruby-mode�ѤΥץ���ץ�ɽ����Ԥʤ�. �ǥե���Ȥ�false.
204
--- conf.inspect_mode = true/false/nil
206
true: ���ڥ��Ȥ���ɽ������.
207
false: �̾��print��ɽ������.
208
nil: �̾�⡼�ɤǤ����, inspect mode�Ȥʤ�, math�⡼�ɤλ���, non
212
���ȤΤ�. bc�⡼��(ʬ��, ����η����Ǥ��ޤ�)���ɤ���?
214
--- conf.use_loader = true/false
215
load/require����irb��file�ɤ߹��ߵ�ǽ���Ѥ���⡼�ɤΥ����å�(�ǥե�
216
��Ȥ��Ѥ��ʤ�). ���Υ⡼�ɤ�IRB���Τ�ȿ�Ǥ����.
219
if��ľ��ʤ�, �Ԥ���³���Ƥ�����Υץ���ץ�.
225
ʸ������ʤɤ�ɽ���ץ���ץ�.
228
~/.irbrc���ɤ߹�������ɤ���?
230
--- conf.use_prompt = true/false
231
�ץ���ץ�ɽ�����뤫�ɤ���? �ǥե���ȤǤϥץ���ץȤ�ɽ������.
233
--- conf.use_readline = true/false/nil
236
false: readline��Ȥ�ʤ�.
237
nil: (�ǥե����)inf-ruby-mode�ʳ���readline�饤�֥������Ѥ���
240
#--- conf.verbose=T/F
241
# irb���餤�������ʥ�å���������Ϥ��뤫?
243
--- cws, chws, irb_cws, irb_chws, irb_change_workspace [obj]
244
obj��self�Ȥ���. obj����ά���줿�Ȥ���, home workspace, ���ʤ��
245
irb��ư�����Ȥ���main object��self�Ȥ���.
247
--- pushws, irb_pushws, irb_push_workspace [obj]
248
UNIX�����륳�ޥ�ɤ�pushd��Ʊ��.
250
--- popws, irb_popws, irb_pop_workspace
251
UNIX�����륳�ޥ�ɤ�popd��Ʊ��.
254
����irb��Ω��������. obj�����ꤵ�줿����, ����obj��self�Ȥ���.
260
���ꤷ������irb�˥����å�����. n��, ���Τ�Τ���ꤹ��.
265
self(irb obj�ǵ�ư��������obj)
267
--- kill n, irb_kill n
268
����irb��kill����. n��fg��Ʊ��.
270
--- souce, irb_source path
271
UNIX�����륳�ޥ�ɤ�source�Ȼ��Ƥ���. ���ߤδĶ����path��Υ�����
274
--- irb_load path, prev
281
���η��μ¹Է�̤�Ф��Ƥ���(���������ѿ�).
284
__[line_no]�ǡ����ιԤǼ¹Ԥ�����̤����뤳�Ȥ��Ǥ���. line_no�����
285
���ˤϡ��ǿ��η�̤���-line_no���η�̤����뤳�Ȥ��Ǥ���.
292
irb(main):001:0> irb # ����irb��������
293
irb#1(main):001:0> jobs # ����irb�Υꥹ��
294
#0->irb on main (#<Thread:0x400fb7e4> : stop)
295
#1->irb#1 on main (#<Thread:0x40125d64> : running)
297
irb#1(main):002:0> fg 0 # job�Υ����å�
299
irb(main):002:0> class Foo;end
301
irb(main):003:0> irb Foo # Foo��ƥ����Ȥ���irb
303
irb#2(Foo):001:0> def foo # Foo#foo�����
304
irb#2(Foo):002:1> print 1
305
irb#2(Foo):003:1> end
307
irb#2(Foo):004:0> fg 0 # job���å�
309
irb(main):004:0> jobs # job�Υꥹ��
310
#0->irb on main (#<Thread:0x400fb7e4> : running)
311
#1->irb#1 on main (#<Thread:0x40125d64> : stop)
312
#2->irb#2 on Foo (#<Thread:0x4011d54c> : stop)
314
irb(main):005:0> Foo.instance_methods # Foo#foo�������������
317
irb(main):006:0> fg 2 # job���å�
319
irb#2(Foo):005:0> def bar # Foo#bar�����
320
irb#2(Foo):006:1> print "bar"
321
irb#2(Foo):007:1> end
323
irb#2(Foo):010:0> Foo.instance_methods
325
irb#2(Foo):011:0> fg 0
327
irb(main):007:0> f = Foo.new
329
irb(main):008:0> irb f # Foo������irb��
331
irb#3(#<Foo:0x4010af3c>):001:0> jobs
332
#0->irb on main (#<Thread:0x400fb7e4> : stop)
333
#1->irb#1 on main (#<Thread:0x40125d64> : stop)
334
#2->irb#2 on Foo (#<Thread:0x4011d54c> : stop)
335
#3->irb#3 on #<Foo:0x4010af3c> (#<Thread:0x4010a1e0> : running)
337
irb#3(#<Foo:0x4010af3c>):002:0> foo # f.foo�μ¹�
339
irb#3(#<Foo:0x4010af3c>):003:0> bar # f.bar�μ¹�
341
irb#3(#<Foo:0x4010af3c>):004:0> kill 1, 2, 3# job��kill
343
irb(main):009:0> jobs
344
#0->irb on main (#<Thread:0x400fb7e4> : running)
346
irb(main):010:0> exit # ��λ
351
irb��, ɾ���Ǥ������(�����Ĥ�������)�Ǥ��༡�¹Ԥ�Ԥʤ��ޤ�. ��������
352
��, ruby��ľ�ܻȤä�����, �㴳�ۤʤ�ư���Ԥʤ���礬����ޤ�.
354
�������餫�ˤʤäƤ������������������ޤ�.
358
ruby�Ǥ�, �ʲ��Υץ������ϥ��顼�ˤʤ�ޤ�.
363
-:2: undefined local variable or method `foo' for #<Object:0x40283118> (NameError)
374
�Ȥʤ�, ���顼�����ޤ���. �����, ruby���ǽ�˥�����ץ����Τ�
375
�ѥ��뤷�ƥ��������ѿ�����ꤹ�뤫��Ǥ�. ������Ф�, irb�ϼ¹Բ�ǽ��
376
�ʤ�(�����Ĥ���)�ȼ�ưŪ��ɾ�����Ƥ��뤫��Ǥ�. �嵭����Ǥ�,
380
��Ԥʤä�������ɾ����Ԥʤ�, ���λ������ѿ����������뤿��, ������
381
�ѿ�foo���������Ƥ��뤫��Ǥ�.
383
���Τ褦��ruby��irb��ư��ΰ㤤���褷��������, begin...end�dz�ä�
390
NameError: undefined local variable or method `foo' for #<Object:0x4013d0f0>
392
(irb_local_binding):1:in `eval'
396
���ߤΤȤ����ҥ��ɥ�����Ȥμ������Դ����Ǥ�.
400
����ܥ�Ǥ��뤫�ɤ�����Ƚ�Ǥ�ְ㤨�뤳�Ȥ�����ޤ�. ����Ū�ˤϼ�����λ
401
���Ƥ���Τ˷�³�Ԥȸ��ʤ����Ȥ�����ޤ�.
405
% Begin Emacs Environment