Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Calling IO.console twice raises NoMethodError for #open? #3530

@hobodave

Description

@hobodave

Code to reproduce:

IO.console # #<File:/dev/tty>
IO.console
NoMethodError: undefined method `open?' for #<File:/dev/tty>
    from /Users/davida/.rvm/rubies/jruby-9.0.4.0/lib/ruby/stdlib/io/console.rb:159:in `console'
    from (irb):2:in `<eval>'

In order to use the console returned by IO.console you have to store a reference to it:

# Explodes
IO.console.winsize # [60, 120]
IO.console.winsize 

# Works
c = IO.console
c.winsize # [60, 120]

# Also works
IO.console
IO.instance_variable_get(:@console).winsize

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions