disenchanter

noun
  1. a person or thing that disenchants; one who removes illusions or breaks a spell of charm or delight
  2. Usage: often used in literary or figurative contexts

Examples