ruby metaprogamming mindmap