Search code examples
rubyrubymine

Is calling puts without arguments bad practice?


Below is a small screenshot from within RubyMine 3.1. I am just starting to learn Ruby. The code here is from the Presenter-First MVP C# code generator over at atomicobject.com.

I am using this project along with a book to learn Ruby. The documentation for puts shows that it expects at least one parameter. Yet this code appears "somewhat legal" for two reasons:

  1. The code appears to work fine when I step thru it via the debugger.
  2. Searching online, and even here at SO, shows that puts w/o arguments creates a newline.

However, is it bad practice to do this (hence the RubyMine warning)? The code I am looking at is from 2006. I'm running it with Ruby 1.9.2 if that matters any.

enter image description here


Solution

  • This is perfectly fine, as puts provides 'default' value for the first parameter:

    def puts(obj='', *arg)
    

    As for RubyMine, it doesn't show any errors for me. May it happen that you define method puts somewhere else in your code? You can cmd+click on it, to get to the definition.

    Anyway, if you're able to reproduce problem in a clean new project, you can freely submit a bug report to JetBrains.