Need help with sometimes?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

198 Stars 11 Forks MIT License 35 Commits 1 Opened issues


A few hacks n' helpers to make your code more fun and unpredictable.

Services available


Need anything else?

Contributors list


Build Status

Stop being so black and white. Mix things up a bit and execute code sometimes.

A (very) simple collection of lil' helpers polluting Object namespaces since 2013 because...why the hell not?


Add this line to your Gemfile:

gem 'sometimes'

And then execute:

$ bundle

Require when needed

require 'sometimes'


Say something every other time

# executes warm fuzzies 50% of the time
sometimes do
  puts "Hey, you are awesome. You really are."

Maybe you want to do something several times, but not always the exact same number of times

# between 4 and 10 boogers made, it's unpredictable!
(4..10).times do

Maybe you want to remind someone of something, but not toooo often (It gets annoying!)

# be annoying, but only 15% of the time
15.percent_of_the_time do
  puts "Howdy, Don't forget to register!"

33.percent_of_the_time do be_very_polite end

Share a rare moment with your user

# be really annoying about 5% of the time
rarely do
  puts "How would you like some spammy spam spam!"

1.percent_of_the_time do puts "Want to see something really cool?" end

If you can't say something nice, don't say anything at all:

never do
  puts "You're a terrible person"

Always remember your manners:

always do
  puts "Thanks for sharing!"


Counting precisely is overrated.

# Sometimes increment, sometimes don't
i += sometimes(1)

5% of the time add 10, otherwise increment

i += rarely(10, otherwise:1)

Model real life state, like your calendar ```ruby

95% of the time you are in meetings

status = mostly ? "busy" : "free"

same as above

status = mostly("busy", otherwise: "free")

## Why?

This gem was made so alonetone could bit more fun when displaying notices and communicating to our users.

We are human, and have personality. Shouldn't our applications reflect this? Be predictable where it counts. But toss in some spice here and there — it is always a good thing.


Works with ruby 2.7 and higher.

Use version 1.0.0 to support ruby < 2.7 Use version 0.0.2 to support ruby < 2.2

Updating and Releasing this gem

  • Update lib/sometimes/version.rb

bundle && bundle exec rake gemspec bundle exec rake release ```

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.