Posted about 5 years ago. Visible to the public.

LoDash: isBlank and isPresent mixins

When you need to check a value for presence, don't rely on JavaScript since it considers 0 or "0" false. Also don't rely on LoDash's _.isEmpty:

if ('0') { ... } // false if (0) { ... } // false
if (!_.isEmpty('0')) { ... } // true (= good) if (!_.isEmpty(0)) { ... } // false (= not good)

This is because isEmpty it is only meant for objects with a length.

While the name implies that it's meant only for collections, you probably still want something like isBlank or isPresent that return true/false for objects humans would normally consider blank or present.

Here is some CoffeeScript that provides _.isBlank and _.isPresent via LoDash/Underscore.js mixins:

_.mixin isBlank: (object) -> switch typeof object when 'boolean' then false when 'function' then false when 'number' then isNaN(object) else _.isEmpty(object) isPresent: (object) -> !_.isBlank(object) , chain: false

Use them like this:

_.isBlank(0) // false _.isBlank(23) // false _.isBlank('') // true
_.isPresent(null) // false _.isPresent(NaN) // false

The chain: false option above also allows to use them as terminal methods:

_(23).isBlank() // false _(23).isPresent() // true
Growing Rails Applications in Practice
Check out our new e-book:
Learn to structure large Ruby on Rails codebases with the tools you already know and love.

Owner of this card:

Arne Hartherz
Last edit:
5 months ago
by Besprechungs-PC
About this deck:
We are makandra and do test-driven, agile Ruby on Rails software development.
License for source code
Posted by Arne Hartherz to makandra dev
This website uses cookies to improve usability and analyze traffic.
Accept or learn more