Displays the results of every line of code in your file
Ruby Cucumber
Latest commit de4eb0c Jan 11, 2017 @JoshCheek Bump version to 3.2.0
SiB is now expected to work on Windows, huge shoutout to Avdi Grimm for getting that figured out!

I think 3.2.0 is fair, the API itself should pretty much be backwards compatible.
Note some changes that are more likely to be relevant to users:

* There is now a wiki, I moved most of the stuff in the readme over to the wiki.
* SiB now expects unicode everywhere (eg no matter what your environment variables say).
  I can't tell if this is a big change or not. I feel like it technically deserves to be
  a semver major bump, but I honestly don't think anyone is using it in a way that is
  incompatible with this, if you are, I'm happy to work with you to get something figured
  out, please see: https://github.com/JoshCheek/seeing_is_believing/wiki/Encodings
* Deprecated the `-K` flag (it still works, but it is now deprecated, you shouldn't use
  it going forward. If you do use it and there is an error, it will notify you to
  update your invocation, but its not spamming you when the lib is otherwise working).
* Added dependency on ChildProcess. I *think* this is okay according to SemVer.
  Not totally clear (I assume that bumping a major version of a dependency
  requires your lib to bump major versions, so maybe I'm wrong on this one)
* Added `exceptions` to the Result object and JSON api (note that the old `exception`
  still works the same/similarly as before -- it was a bit under specified, but the core
  behaviour of a falsy value or an exception is still in place, so users shouldn't
  see a change in behaviour (I think it emitted `false` instead of `nil`, but
  hopefully no one is depending on a falsy value so specific). Do note that it
  is better to use `exceptions` than `exception` as it is more correct:
  systems that can fork can emit multiple exceptions.
* The child process now talks to the parent process through a TCPSocket.
  It used to spawn the process with an additional file decriptor, but that was
  flaky on Windows. See #92

Readme.md

Unix/Mac: Unix Build Status    Windows: Windows Build Status

Seeing Is Believing

Evaluates Ruby code, recording the results of each line. Integrates with any extensible editor (I've integrated it with many already, see the list). If you like Swift Playgrounds, you'll like SiB.

example

Helpful links

Examples

  • Watch a longer video.
  • Watch John Cinnamond use it in a presentation at the 10 minute mark.
  • Avdi uses it in Ruby Tapas, an amazing resource for developers in general and Ruby Developers in particular!

Known Issues

  • Assumes utf-8 everywhere. If this is an issue, please see the encodings section of the wiki.
  • begin; else; break; end this code (an else without a rescue) will emit a warning in Ruby, and is omitted from Parser's AST. As such, I doubt that anyone will ever write it. But if you were to write it, it would blow up, because SiB rewrites your code, wrapping every expression that could have a value. This code will be wrapped. But using the value is syntactically invalid in Ruby, because it constitutes a "void value expression" (aka a pointless time sink and the cause of many bugs in SiB). Unfortunately, I can't easily check it to see if it's void since it's not in the parsed AST. But it's so edge that I don't think it's worth worrying about.

Inspiration

Shout outs

  • Whitequark for all the work on Parser, which dramatically dramatically improved SiB (I used to have my own horribly shitty line-based parser)
  • Travis CI... I love you times a million! So many difficult bugs have been caught by this. It's so easy to work with, astoundingly convenient, helps me guarantee that SiB works on everyone else's computers, too. And it's free since SiB is open source. I literally have a Travis CI sticker on my laptop, I love you that much.

License

WTFPL

Copyright (C) 2014 Josh Cheek <josh.cheek@gmail.com>

This program is free software. It comes without any warranty,
to the extent permitted by applicable law.
You can redistribute it and/or modify it under the terms of the
Do What The Fuck You Want To Public License,
Version 2, as published by Sam Hocevar.
See http://www.wtfpl.net/ for more details.