Class: Modulorails::SelfUpdateGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- Modulorails::SelfUpdateGenerator
- Defined in:
- lib/generators/modulorails/self_update/self_update_generator.rb
Overview
Author: Matthieu ‘ciappa_m’ Ciappara This updates modulorails by editing the gemfile and running a bundle update
Constant Summary collapse
- LATEST_VERSION_URL =
'https://rubygems.org/api/v1/versions/modulorails.json'
Instance Method Summary collapse
Instance Method Details
#create_config_file ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/generators/modulorails/self_update/self_update_generator.rb', line 14 def create_config_file # Get the last published version versions = HTTParty.get(LATEST_VERSION_URL).parsed_response last_published_version = versions&.reject { |version| Gem::Version.new(version['number']).prerelease? }&.first # Do nothing if we could not fetch the last published version (whatever the reason) return if last_published_version.nil? requirement = last_published_version['ruby_version'] unless ruby_version_supported_by_next_gem_version?(requirement) warn("Next Modulorails version requires Ruby version #{requirement}. You should update.") return end modulorails_version = Gem::Version.new(Modulorails::VERSION) # Do nothing if the current version is the same as the last published version version = Gem::Version.new(last_published_version['number']) return if version <= modulorails_version # Add gem to Gemfile gsub_file 'Gemfile', /^\s*gem\s['"]modulorails['"].*$/, "gem 'modulorails', '= #{version}'" # Update the gem and the Gemfile.lock run('bundle install -q') rescue StandardError => e warn("[Modulorails] Error: cannot generate health_check configuration: #{e.}") end |