Features of Ruby
Ruby language has many features. Some of them are explained below:
Ruby is purely object oriented programming language. Each and every value is an object. Every object has a class and every class has a super class. Every code has their properties and actions. Ruby is influenced with Smalltalk language. Rules applying to objects applies to the entire Ruby.
Ruby is a flexible language as you can easily remove, redefine or add existing parts to it. It allows its users to freely alter its parts as they wish.
Ruby has a feature of single inheritance only. Ruby has classes as well as modules. A module has methods but no instances. Instead, a module can be mixed into a class, which adds the method of that module to the class. It is similar to inheritance but much more flexible.
Ruby generally prefers English keyword and some punctuation is used to decorate Ruby. It doesn't need variable declaration.
Dynamic typing and Duck typing
Ruby is a dynamic programming language. Ruby programs are not compiled. All class, module and method definition are built by the code when it run.
Ruby variables are loosely typed language, which means any variable can hold any type of object. When a method is called on an object, Ruby only looks up at the name irrespective of the type of object. This is duck typing. It allows you to make classes that pretend to be other classes.
In Ruby, constants are not really constant. If an already initialized constant will be modified in a script, it will simply trigger a warning but will not halt your program.
Ruby defines some naming conventions for its variable, method, constant and class.
Like Python, Ruby methods can also be defined using keyword arguments.
Methods are allowed to end with question mark (?) or exclamation mark (!). By convention, methods that answer questions end with question mark and methods that indicates that method can change the state of the object end with exclamation mark.
Ruby singleton methods are per-object methods. They are only available on the object you defined it on.
If a method is lost, Ruby calls the method_missing method with name of the lost method.
Multiple statements in a single line must contain semi colon in between but not at the end of a line.
In Ruby there are approximately 42 keywords which can't be used for other purposes. They are called reserved words.
Ruby is a case-sensitive language. Lowercase letters and uppercase letters are different.