diff --git a/ChangeLog b/ChangeLog index 6f7ebddb05..222f322cf1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed May 18 22:45:26 2011 Nobuyoshi Nakada + + * ext/io/console/lib/console/size.rb (IO#console_size): new + method. (EXPERIMENTAL) + Wed May 18 22:41:51 2011 Nobuyoshi Nakada * internal.h: add for internal use only. diff --git a/ext/io/console/lib/console/size.rb b/ext/io/console/lib/console/size.rb new file mode 100644 index 0000000000..e9d8a1fbb6 --- /dev/null +++ b/ext/io/console/lib/console/size.rb @@ -0,0 +1,20 @@ +def IO.default_console_size + [ + ENV["LINES"].to_i.nonzero? || 25, + ENV["COLUMNS"].to_i.nonzero? || 80, + ] +end + +begin + require 'io/console' +rescue LoadError + class IO + alias console_size default_console_size + end +else + def IO.console_size + console.winsize + rescue NoMethodError + default_console_size + end +end