Class: String
Overview
Constant Summary collapse
- BLANK_RE =
:nodoc:
/\A[[:space:]]*\z/.freeze
- ENCODED_BLANKS =
:nodoc:
Concurrent::Map.new do |map, enc| map[enc] = Regexp.new(BLANK_RE.source.encode(enc), BLANK_RE. | Regexp::FIXEDENCODING) end
Instance Method Summary collapse
-
#blank? ⇒ true, false
A string is blank if it's empty or contains whitespaces only:.
Instance Method Details
#blank? ⇒ true, false
A string is blank if it's empty or contains whitespaces only:
''.blank? # => true ' '.blank? # => true "\t\n\r".blank? # => true ' blah '.blank? # => false
Unicode whitespace is supported:
"\u00a0".blank? # => true
135 136 137 138 139 140 141 142 143 144 145 |
# File 'lib/stub_requests/core_ext/object/blank.rb', line 135 def blank? # The regexp that matches blank strings is expensive. For the case of empty # strings we can speed up this method (~3.5x) with an empty? call. The # penalty for the rest of strings is marginal. empty? || begin BLANK_RE.match?(self) rescue Encoding::CompatibilityError ENCODED_BLANKS[encoding].match?(self) end end |