Thinking about this more...

Is there a way that we can use graceful degradation instead of version detection? Like, can we check if a certain file or module exists, rather than "assuming" a version and  moving on?

If not, this seems like a good use case for Chef Sugar, since it wraps all this craziness for you.