The particular phenomena which you’re referring to is called “iridescence.” This is pretty easy to fake by changing the specular color based on view angle. After you get that working, it’s a matter of getting the ridges to look correct.
As for picking colors based on view angle, you might try taking the dot product of the opposite of the surface normal and the camera angle. That should give you a number between 0 and 1 (if it’s less than 0 then the fragments obviously wouldn’t be on screen.) Use that value to rapidly shift through a color spectrum (either create your own 1-pixel tall color wheel, or use an HSV-to-RGB color converter in your material.)