loading...

re: A trick with Ruby array literals VIEW POST

TOP OF THREAD FULL DISCUSSION
re: Good information and well-written! At one of my companies, I picked up the pattern of making a class for constants within their namespace, and refe...
 

Never thought about using a separate module to keep them grouped but it is a really good technique.

I topically use this in a way in which the constants end up being almost private.
I either wrap the value checks in small predicate methods:

def red?
  color == COLORS_RED
end

Or if I need them with active record I create scopes like the ones in the post.

Even in tests I try to avoid using them for setup and if I have factory_bot at hand I create traits for the different values instead.

This way you end up with code which is a bit more decoupled from this specific implementation detail and when your constant is not enough and you need to build an object instead you'll save a lot of grepping and sedding😅

code of conduct - report abuse