Ruby include, extend, require and load explained
The Ruby ‘include’ statement references to a named module; it appends features of a module into classes or other modules.
‘extend’ adds the features of a module to one instance (object) at run-time
‘require’ is used for loading nonmodule Ruby sources and binaries. ’require’ is similar to a ‘load’ ,but it will not load a file if it has already been loaded.
‘include’ and ‘require’ are essentially unrelated. You may need to do a require follow by an include to use some externally stored module.