Sinatra:Base#compile

Sinatra::Base#compile!
1140       def compile!(verb, path, block, options = {})
1141         options.each_pair { |option, args| send(option, *args) }
1142         method_name = "#{verb} #{path}"
1143
1144         define_method(method_name, &block)
1145         unbound_method          = instance_method method_name
1146         pattern, keys           = compile(path)
1147         conditions, @conditions = @conditions, []
1148         remove_method method_name
1149
1150         [ block.arity != 0 ?
1151             proc { unbound_method.bind(self).call(*@block_params) } :
1152             proc { unbound_method.bind(self).call },
1153           pattern, keys, conditions ]
1154       end