TL;DR - I created ssaunier/lab
to start hacking even faster!
A few days ago, I was on a phone interview, with my screen shared. I was asked
to write an algorithm, and I had 20 minutes. I decided to go with Ruby, and TDD.
But I spent 15 minutes to correctly setup the environment with guard
rspec
before actually
working on the algorithm. With these instructions, I would have had 19 minutes.
$ mkdir lab && cd $_
$ echo "source 'https://rubygems.org'\ngem 'guard-rspec'" > Gemfile
$ bundle install
$ bundle exec guard init
$ echo "--color" > .rspec
$ mkdir -p lib spec/lib
The interview problem was:
Devise a function that takes an integer and returns a string that
is the decimal representation of that number grouped by commas
after every 3 digits. For instance:
1 -> "1"
1000 -> "1,000"
57154351 -> "57,154,351"
Let’s code this feature in an IntegerFormatter
class, so let’s create our files:
$ echo "class IntegerFormatter\nend" > lib/integer_formatter.rb
$ echo "require './lib/integer_formatter'\n" >> spec/lib/integer_formatter_spec.rb
$ echo "describe IntegerFormatter do\nend" >> spec/lib/integer_formatter_spec.rb
I could also just have touch
ed both files and add some code afterwards.
Open the lab
folder in your favorite text editor, then run guard
.
It will automatically relaunch your specs on each
file change. Very handy for the red / green cycle of TDD.
$ bundle exec guard
Now go hack your solution! FWIW, here’s mine :)