def value
      unless @processed
        @processed = true
        until (nested = constants_from_value).empty?
          nested.each {|n| @value.gsub!(value_regex(n),find_value_for_constant(n)) }
        end
      end

      @value
    end
def value
      unless @processed
        @processed = true
        until (nested = constants_from_value).empty?
          nested.each {|n| @value.gsub!(value_regex(n),find_value_for_constant(n)) }
        end
      end

      @value
    end
When requesting a step tranformer object value, process it, if it hasn't
 alredy been processed, replacing any constants that may be lurking within
 the value.

 Processing it means looking for any escaped characters that happen to be
 CONSTANTS that could be matched and then replaced. This is done recursively
 as CONSTANTS can be defined with more CONSTANTS.