Category Archives: Ruby

A Ruby Conversion Idiom

@CapnKernul writes: [do you know of] a Ruby idiom for converting an object to a type if it isn’t already that type. For example, if you want to only store an attribute of type Foo, you could write an accessor … Continue reading

Posted in Ruby | Tagged , , | 7 Comments

Generating cows with IO.popen()

I find the subject of starting and interacting with other OS processes fascinating. A few years ago I wrote a never-completed series on the many ways to spawn off processes in Ruby: Part 1: Backticks and system() Part 2: Opening … Continue reading

Posted in Ruby | Tagged , | 2 Comments

Unless readable else confused

An exploration of why unless…else in Ruby is problematic at best. Continue reading

Posted in Ruby | Tagged | 10 Comments

On Module Integrity

A reply to Josh Cheek’s post “Modules called, they want their integrity back”. Continue reading

Posted in Ruby | Tagged | 3 Comments

Ruby Thread Locals are also Fiber-Local

I was briefly concerned that thread-local variables would not also be Fiber-local, since fibers have their own stack. This would be a problem for any code which uses thread-local variables to delimit a stack context, e.g. to implement dynamically-scoped variables … Continue reading

Posted in Ruby | Tagged , , , | 4 Comments

Preventing Recursion in Ruby

A new post on the CodeBenders blog about how to prevent a method from accidentally falling into an infinite recursion. Continue reading

Posted in Ruby | Tagged , , , | Leave a comment

Decoration is best, except when it isn’t

I think by now we all know to prefer composition over inheritance. But in a language with a lot of options, what’s the best kind of composition to use? Composing an adventure Consider an adventure game, with objects representing player … Continue reading

Posted in Ruby | Tagged , , | 10 Comments

Testing that a block is called

CapnKernul asks: Hey Avdi. How would you test that a method’s provided block is called in RSpec? Would you stub #to_proc (for &block) and mock #call? Typically the way I test that a block is called goes something like this: … Continue reading

Posted in Ruby | Tagged , , | 4 Comments

Temporarily disabling warnings in Ruby

I’ve been doing a lot of pontification lately. Time for some code. Warnings are a hot topic in the Ruby community. Some folks love ‘em. Some folks hate ‘em. What we can all agree on is that they do us … Continue reading

Posted in Ruby | Tagged , , , | 6 Comments

Your Code is My Hell

It occurred to me recently that my experience as a Rails developer may be somewhat unique. I often get brought in to help preexisting Ruby/Rails projects evolve and mature in a sustainable way. As a result, the vast majority of … Continue reading

Posted in Rails, Rants, Ruby | Tagged , , , , , | 122 Comments