Class: String
Constant Summary collapse
- BLANK_RE =
/\A[[:space:]]*\z/
- ENCODED_BLANKS =
Concurrent::Map.new do |h, enc| h[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:.
-
#present? ⇒ Boolean
:nodoc:.
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
153 154 155 156 157 158 159 160 161 162 163 |
# File 'lib/errgonomic/core_ext/blank.rb', line 153 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 |
#present? ⇒ Boolean
:nodoc:
165 166 167 |
# File 'lib/errgonomic/core_ext/blank.rb', line 165 def present? # :nodoc: !blank? end |