you can do both methods… you can use java script to get the class of add to cart button if disabled you can show out of stock and if in stock you can show metafield.. All you need is to play with code. i did same on one of our website
So how do I change the code I wrote above if I added a true or false meta field name Half-Yard and I wanted the half yard text to only show when the Meta was true.