diff options
author | zzak <zzak@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-12-21 05:45:50 +0000 |
---|---|---|
committer | zzak <zzak@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-12-21 05:45:50 +0000 |
commit | 7e9eb32669348b7e0a5775c8e0fc9566be11fc31 (patch) | |
tree | 96be4fc975e7afab8dbf4c85e04d552760dab34c /lib/irb/output-method.rb | |
parent | 4f7a6aafa57bf57ce4b0b5e323548f0a6385d527 (diff) | |
download | ruby-7e9eb32669348b7e0a5775c8e0fc9566be11fc31.tar.gz |
* lib/irb.rb, lib/irb/*: Documentation for IRB
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38515 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/irb/output-method.rb')
-rw-r--r-- | lib/irb/output-method.rb | 40 |
1 files changed, 30 insertions, 10 deletions
diff --git a/lib/irb/output-method.rb b/lib/irb/output-method.rb index 7c0df935a9..541c83f24d 100644 --- a/lib/irb/output-method.rb +++ b/lib/irb/output-method.rb @@ -12,21 +12,25 @@ require "e2mmap" module IRB - # OutputMethod - # StdioOutputMethod - + # An abstract output class for IO in irb. This is mainly used internally by + # IRB::Notifier. You can define your own output method to use with Irb.new, + # or Context.new class OutputMethod @RCS_ID='-$Id$-' + # Open this method to implement your own output method, raises a + # NotImplementedError if you don't define #print in your own class. def print(*opts) IRB.fail NotImplementedError, "print" end + # Prints the given +opts+, with a newline delimiter. def printn(*opts) print opts.join(" "), "\n" end - # extend printf + # Extends IO#printf to format the given +opts+ for Kernel#sprintf using + # #parse_printf_format def printf(format, *opts) if /(%*)%I/ =~ format format, opts = parse_printf_format(format, opts) @@ -34,16 +38,22 @@ module IRB print sprintf(format, *opts) end - # % - # <flag> [#0- +] - # <minimum field width> (\*|\*[1-9][0-9]*\$|[1-9][0-9]*) - # <precision>.(\*|\*[1-9][0-9]*\$|[1-9][0-9]*|)? - # #<length modifier>(hh|h|l|ll|L|q|j|z|t) - # <conversion specifier>[diouxXeEfgGcsb%] + # Returns an array of the given +format+ and +opts+ to be used by + # Kernel#sprintf, if there was a successful Regexp match in the given + # +format+ from #printf + # + # % + # <flag> [#0- +] + # <minimum field width> (\*|\*[1-9][0-9]*\$|[1-9][0-9]*) + # <precision>.(\*|\*[1-9][0-9]*\$|[1-9][0-9]*|)? + # #<length modifier>(hh|h|l|ll|L|q|j|z|t) + # <conversion specifier>[diouxXeEfgGcsb%] def parse_printf_format(format, opts) return format, opts if $1.size % 2 == 1 end + # Calls #print on each element in the given +objs+, followed by a newline + # character. def puts(*objs) for obj in objs print(*obj) @@ -51,17 +61,27 @@ module IRB end end + # Prints the given +objs+ calling Object#inspect on each. + # + # See #puts for more detail. def pp(*objs) puts(*objs.collect{|obj| obj.inspect}) end + # Prints the given +objs+ calling Object#inspect on each and appending the + # given +prefix+. + # + # See #puts for more detail. def ppx(prefix, *objs) puts(*objs.collect{|obj| prefix+obj.inspect}) end end + # A standard output printer class StdioOutputMethod<OutputMethod + # Prints the given +opts+ to standard output, see IO#print for more + # information. def print(*opts) STDOUT.print(*opts) end |