The way these resolutions are structured will result in the behavior that values are never updated when Facter flushes all fact values and then refreshes them.  This behavior is a result of the way the closure passed to `setcode` is being used.  The `property` variable is bound outside the closure which means it'll never get updated or garbage collected.

For dynamically generated facts like this, I recommend using the new `on_flush` method that we added in Facter 1.7.  If you take a look at the approach we took in the patches merged in with 2223fda there's an example of how dynamic facts can be defined, flushed, refreshed, and added or pruned as needed during the life of the process Facter is running in.

Please let us know if you have any questions about this approach or the concern being raised, hopefully we'll be able to help quickly.