# File lib/puppet/util/settings.rb, line 682
682:     def value(param, environment = nil)
683:         param = param.to_sym
684:         environment = environment.to_sym if environment
685: 
686:         # Short circuit to nil for undefined parameters.
687:         return nil unless @config.include?(param)
688: 
689:         # Yay, recursion.
690:         #self.reparse() unless [:config, :filetimeout].include?(param)
691: 
692:         # Check the cache first.  It needs to be a per-environment
693:         # cache so that we don't spread values from one env
694:         # to another.
695:         if cached = @cache[environment||"none"][param]
696:             return cached
697:         end
698: 
699:         val = uninterpolated_value(param, environment)
700: 
701:         # Convert it if necessary
702:         val = convert(val, environment)
703: 
704:         # And cache it
705:         @cache[environment||"none"][param] = val
706:         return val
707:     end