How is mongoid syntax implemented?

In mongoid, a ORM mapped database object is like below. The part “type:
String” seems to me to not fit into any standard ruby syntax and I was
curious how does mongoid implement that ?

class Step
include Mongoid::Document

field :Label, type: String
field :Descript, type: String
field :ErrorText, type: String

embedded_in :step_data


It’s the new hash syntax introduced in ruby 1.9.

That is valid hash syntax. You’re call a method with a signature like:

def field(field_name, options = {})


field_name is a symbol, options is a hash where the keys are symbols and
the values are constants (class objects).