Skip to content

Keyword Arguments of Ruby makes code more clear

chenge profile image chenge github logo ・1 min read  

In this video the speaker demoed the pros of KWArgs.

In the pic, upper code is obviously more clear.

So when should you use it? I think, when it's hard to identify the params you should use KWArgs.

The usage is simple:

def foo(bar:, baz:)

foo(bar: 1, baz: 2)

Do you think so?

twitter logo DISCUSS (6)
markdown guide

Didn't watch the video, but what I find interesting is that keyword arguments did not exist until Ruby 2.0, which means before Ruby 2.0, there's a totally different way to do hack it, and you'll sometimes see this in the wild :) (I've encountered this in Rails' DateTime library)

# Ruby 2.0
def method(first:, second:)
  puts "First: #{first}, Second: #{second}"

# Ruby 1.9
def method(options={})
  first = options.fetch(:first)
  second = options.fetch(:second)
  puts "First: #{first}, Second: #{second}"


Yes, it simplify code. Very useful.


Seems right as shown, but perhaps only for .new?

For any other method:

  • If the parameters are related, could they form a class and be passed as an object?

  • If not, does the method lack a unified purpose?


Right, better params no more than 3. If more than 3 maybe should use hash or object.


How does it handle extra arguments? Does it ignore it or throw an exception?

Classic DEV Post from Jul 26 '19

🎩 JavaScript Enhanced Scss mixins! 🎩 concepts explained

In the next post we are going to explore CSS @apply to supercharge what we talk about here....

chenge profile image
Ruby, and learn Rust, Go, Elixir, Erlang...