Once refactoring enhancement I think you could consider doing in a separate PR is to move these descriptions down to the Snippet classes, and expose the list of snippet types (the values from the hash in the factory method) as a method on RbLanguage. Then this option parser would not have to know anything about the different types of snippets, and we could easily add more without having the change the option parser.

Do you see what I mean?