v1.3.0
Equality methods
Thanks to @HCLarsen, it is now possible to test the equality of classes, methods, modules and structs. For example:
class1 = CGT::Class.new("Person")
.add_instance_var("name", "String", "value")
class2 = CGT::Class.new("Person")
.add_instance_var("name", "String", "value")
class2 = CGT::Class.new("Person")
.add_instance_var("age", "Int32", "value")
class1 == class2 # true
class1 == class3 # false
In brief, class1 and class2 are the same because they have the same name, type and value's instance variable. However, class1 and class3 are different because they don't have the same instance variable.
You can also compare classes that have their own class variables, their own instance methods, and class methods. Equality methods also applies to methods themselves, modules, and structs.
Unit tests
In this project, changes are made to make the code readable and understandable for all contributors. Thanks to the Fluent design pattern, variable name redundancy is eliminated. In addition, a helper has been added to avoid code repetition in many examples for assertions.
Ameba configuration
For this project, I decided to focus more on adding documentation to understand how it works. The quality of the code is also a factor.