These are the advance features. You are not required to know how inheritance works (or what the Singleton is) to write runy code. You dont have to use OO design or anything. You can write procedural code in ruby if you want.
These advanced fratures are used mostly in metaprogramming.
Ruby is like the guitar: easy to learn, hard to master.