[ruby-core:73999] [Ruby trunk Feature#12075] some container#nonempty?

From: nobu@...
Date: 2016-02-26 04:40:58 UTC
List: ruby-core #73999
Issue #12075 has been updated by Nobuyoshi Nakada.


Or

```ruby
module Kernel
  def !(*a)
    a.empty? ? super() : !__send__(*a)
  end
end

ary = nil;   ary&.!:empty? #=> nil
ary = [];    ary&.!:empty? #=> false
ary = [nil]; ary&.!:empty? #=> true
```

----------------------------------------
Feature #12075: some container#nonempty?
https://bugs.ruby-lang.org/issues/12075#change-57153

* Author: Yui NARUSE
* Status: Assigned
* Priority: Normal
* Assignee: Yukihiro Matsumoto
----------------------------------------
I sometimes write following code.

```
ary = some_metho_returns_nil_or_empty_container() # nil or "" or [] or {}

if ary && !ary.empty?
  #  some code
end
```

But the condition `ary && !ary.empty?` is too long and complex.
Though Ruby 2.3 introduces `&.`, but this can’t be written as `ary&.empty?`.

One idea is add `nonempty?` write as `ary&.nonempty?`.

akr: `nonempty?` is not good name because human is not good at handling 

This discussion matches following core classes:
* String
* Array
* Hash



-- 
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>

In This Thread

Prev Next