Use lambda instead of Proc.new
Remove module_eval and call to self

Straight call to module.define_singleton_method as 
dkubb suggested works great.
Explicitly use block in Configuration#call
Fix Configuration doc