Introduction
In the previous chapter, we learned about a number of advanced topics, including blocks, procs, and lambdas, which we will use in this chapter when we dive deep into the world of metaprogramming. We will also learn when we should not apply metaprogramming concepts by not always crossing the line into monkey patching (which is changing the behavior of classes and ultimately making the code confusing and unmaintainable).
In the second part of this chapter, we will learn a key programming skill that is required in order to create any real-world application that is communicating with external APIs: how to make GET
data from a backend server and how to submit data to said server.
The final part of this chapter will help you share and distribute your Ruby code with others. So far, you have learned how to use Ruby gems, but, by the end of this chapter, you will be able to create your own RubyGem
package and share it with the world.