Hello Sam,

Just in private for the moment. I'm trying to find the definition of 
blank? in the rails source code. I expected it somewhere around 
here:https://github.com/rails/rails/tree/master/activesupport/lib/active_support/core_ext/string
but I didn't find anything.

Regards,   Martin.

On 2016/04/25 08:03, sam.saffron / gmail.com wrote:
> Issue #12306 has been updated by Sam Saffron.
>
>
> Nobu,
>
> Regarding:
>
>> Most of them looks different from ActiveSupport's String#blank? which is Unicode aware.
>
> I think this change (if it happens) must come with unicode aware strip/rstrip/lstrip (and underlying is_space) for UTF-8 encoded strings. It is clear that there is a desire to make string operations encoding aware so this would have to be lockstep. All of the `strip.length==0` in core can safely be changed to a unicode aware `blank?` function with zero regression.
>
> ----------------------------------------
> Feature #12306: Implement String #blank? #present? and improve #strip and family to handle unicode
> https://bugs.ruby-lang.org/issues/12306#change-58299
>
> * Author: Sam Saffron
> * Status: Open
> * Priority: Normal
> * Assignee:
> ----------------------------------------
> Time and again there have been rejected feature requests to Ruby core to implement `blank` and `present` protocols across all objects as ActiveSupport does. I am fine with this call and think it is fair.
>
> However, for the narrow case of String having `#blank?` and `#present?` makes sense.
>
> - Provides a natural extension over `#strip`, `#lstrip` and `#rstrip`. `("   ".strip.length == 0) == "    ".blank?`
>
> - Plays nicely with ActiveSupport, providing an efficient implementation in Ruby core: see: https://github.com/SamSaffron/fast_blank, implementing blank efficiently requires a c extension.
>
> However, if this work is to be done, `#strip` and should probably start dealing with unicode blanks, eg:
>
> ```
> irb(main):008:0> [0x3000].pack("U")
> => "กก"
> irb(main):009:0> [0x3000].pack("U").strip.length
> => 1
> ```
>
> So there are 2 questions / feature requests here
>
> 1. Can we add blank? and present? to String?
> 2. Can we amend strip and family to account for unicode per: https://github.com/SamSaffron/fast_blank/blob/master/ext/fast_blank/fast_blank.c#L43-L74
>
>
>

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