We use the wonderful semantic versioning paradigm when versioning our rails app. One question I had was where is it best to store this number? I've seen it stored in /lib
, environment.rb
, etc.
Just wondering what people thought as to best practices?
My strategy is to let your VCS tags do it for you (git shown here).
Add this to your application.rb
:
# Only attempt update on local machine
if Rails.env.development?
# Update version file from latest git tag
File.open('config/version', 'w') do |file|
file.write `git describe --tags --always` # or equivalent
end
end
config.version = File.read('config/version')
You can then access the version anywhere in your app with Rails.configuration.version