Issue #14136 has been updated by nobu (Nobuyoshi Nakada).


mikegee (Michael Gee) wrote:
> The discussion began because a user reported Rubocop complaining about this code:
> 
> `File.stat(manifest_file).size == 0`
> 
> Rubocop would prefer that written as `File.stat(manifest_file).empty?` (Because Rubocop assumes objects with `#size` and `#length` also have `#empty?`, like `String`, `Array`, and `Hash` do.) But, `File::Stat` does not have an `#empty?` method, so the suggestion raises `NoMethodError`.

It's a Rubocop's issue.
I'd suggest `File.empty?` instead.



----------------------------------------
Feature #14136: Implement #empty? on more classes
https://bugs.ruby-lang.org/issues/14136#change-68006

* Author: mikegee (Michael Gee)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
Hi Ruby Friends!

Rubocop prefers `#empty?` over `length == 0` and `size == 0`, which is great for `String`, `Array`, `Hash`, etc. It would be nice if more classes implemented `#empty?` for consistency.

See related discussion at https://github.com/bbatsov/rubocop/issues/2841.

I started this work at https://github.com/ruby/ruby/pull/1759

Thanks!



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>