Summary
At this point, our CLI meets all of our requirements. We are able to transform multiple hardcoded YAML data inputs into JSON and have them be processed via a jq filter with the output being transformed back into YAML and output for us to see, all the while accepting the jq filter as a CLI argument. However, our implementation is still lacking in terms of flexibility and performance. The next chapter will introduce how to use input/output (IO) types to improve the application in regard to both of those criteria.
While what we did in this chapter may seem pretty basic, it is important to remember these concepts are common to every future Crystal project you will create as well. Proper application design, both in terms of the organizational structure and the code itself, are important parts of developing readable, testable, and maintainable applications.