- Seeing Is Believing
- Mountain Berry Fields
- LetterPress Is Not As Good As Boggle
Seeing Is Believing
Display what each line evaluates to
There is a gem called rcodetools which comes with a binary named xmpfilter. With xmpfilter, you place a magic comment
# => to the right of a line of Ruby code, and it will evalute the code, capture the result, and place it after the magic comment. Seeing Is Believing does this, except that you do not have ot place the magic comment, and it does it for every line of code.
My mentor at 8th Light asked me to make this for him, because he wanted to hook it into KidsRuby's editor so that the kids could get better feedback. We would create a second pane in their editor and display the results of the line of code in the other pane.
As such, the project is structured as a library that will give you a data structure containing the results. And then to mimick the xmpfilter behaviour, there is a binary which reads in your source code, hands it to the library, and then interpolates the results back into the source document.
For example, given the file
['abc', 'def', 'ghi'].each do |i| i.reverse end def second_letter(string) string end second_letter "abc" second_letter "def" second_letter "ghi"
When we run
seeing_is_believing code.rb it outputs
['abc', 'def', 'ghi'].each do |i| i.reverse # => "cba", "fed", "ihg" end # => ["abc", "def", "ghi"] def second_letter(string) string # => "b", "e", "h" end # => nil second_letter "abc" # => "b" second_letter "def" # => "e" second_letter "ghi" # => "h"
I've integrated it with TextMate, SublimeText, and Emacs.
Code is on github.