DEV Community

Cover image for Fun Ruby tricks I learned in codewars
Ashley
Ashley

Posted on

5 3

Fun Ruby tricks I learned in codewars

I have been playing around with codewars a lot lately. (www.codewars.com) I like working with code challenges they are pretty fun. One thing that is great about playing with codewars is that I got to use a lot of tools and methods I would have never else thought of for example

delete

This comes in handy for challenges that ask you to remove a series of elements from a string.
For example, if you need to remove some vowels from a string

 my_string = "This is such a wonderful method"
 my_string.delete("aeiou") 

 => Ths s sch  wndrfl mthd
Enter fullscreen mode Exit fullscreen mode

This is much easier than using gsub!

to_str(base)

So most everyone knows how to_s works, you are converting a non string object to a string representation of that object. But one thing a lot of people forget is that you can pass in an argument to to_s when its placed on a Fixnum. This argument represents a numerical base which by default is 10. Therefore, this method can be used to convert numbers to different bases

  35.to_s(2)

  => "100011"
Enter fullscreen mode Exit fullscreen mode

partition

This is a great way to split up some data. It accepts a block and creates 2 arrays. For the elements that are true, they are first array, while the rest are placed in the second array. Imagine we have a problem where we need to seperate some evens and odds

  my_array = [1,2,3,4,5,6]
    my_array.partition{|i| i.even?}

    => [[2, 4, 6], [1, 3, 5]] 
Enter fullscreen mode Exit fullscreen mode

even? odd?

Which reminds me, I have a tendency to forget about these ruby methods. They work just as you expect. The question mark signify's this method returns some sort of boolean.

  4.even?
  => true

    4.odd?
    => false
Enter fullscreen mode Exit fullscreen mode

Its a shame how often I resort to modulo to check for evens and odds knowing this exists

chars

chars will split a string into an array of chars

 "This is my string".chars
 => ["T", "h", "i", "s", " ", "i", "s", " ", "m", "y", " ", "s", "t", "r", "i", "n", "g"] 
Enter fullscreen mode Exit fullscreen mode

of course split('') would do the same, but I like this better

Code challenges are super fun, and its great to learn new tricks. I recomment trying codwars sometime or even hacker rank or leetcode. I think Im going to go do some SQL challenges now!

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay