While learning ruby, I want to study from the perspective of classes. Exmaple: Given: # Array, Index, Object Operations: array[index] = obj -> obj Given: # Two Arrays array & other_array -> an_array array + other_array -> an_array array - other_array -> an_array array <=> other_array -> -1, 0, +1 array == other_array -> bool Given: # Array, Object array.push(obj) -> array array << obj -> array etc.. So the idea is to know, what is possible with given objects of different kind. Is there any way to generate it?