
Crystal Programming
By :

Before we jump right into writing code, let's take a minute to plan out what our code needs to do exactly. The goal for our CLI is to create a program that allows using YAML with jq. Ultimately, this boils down to three requirements:
It is important to keep in mind that the end goal of this exercise is to demonstrate how various Crystal concepts can be applied to create a functional and usable CLI application. As such, we're not going to focus too much on trying to make it 100% robust for every use case, but instead, focus more on the various tools/concepts used as part of the implementation.
With that in mind, let's move on to writing the initial implementation, starting with something simple and iterating on it until we have a complete working implementation. Let's start with the simplest...