Lazy loading for MRI Ruby and JRuby, uses double-locking/volatile variable for JRuby, ||= for MRI Ruby