Method: Jarbler::Config#define_jruby_version
- Defined in:
- lib/jarbler/config.rb
#define_jruby_version ⇒ Object
define JRuby version if not set in config file
152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 |
# File 'lib/jarbler/config.rb', line 152 def define_jruby_version if @jruby_version.nil? && File.exist?('.ruby-version') # not yet defined in config file but .ruby-version file exists # read the file RAILS_ROOT/.ruby-version starting from char at position 6 to the end of the line full_jruby_version_string = File.read('.ruby-version') if full_jruby_version_string[0..5] == 'jruby-' @jruby_version = full_jruby_version_string[6..20].strip if @jruby_version =~ /\d+\.\d+\.\d+\.\d+/ # check if the version is valid with four digits debug "Jarbler::Config.define_jruby_version: JRuby version used from .ruby-version file: #{@jruby_version}" else debug "Jarbler::Config.define_jruby_version: Invalid JRuby version in .ruby-version file (not four digits delimited by dot): #{full_jruby_version_string}" @jruby_version = nil end else debug "Jarbler::Config.define_jruby_version: Version info from .ruby-version file not applicable: #{full_jruby_version_string}" end end if @jruby_version.nil? # not yet defined in config file and .ruby-version file # no .ruby-version file to be used, use JRuby version of the latest Gem # Fetch the gem specification from Rubygems.org # search for the gem and get the JSON response response = Gem::SpecFetcher.fetcher.search_for_dependency(Gem::Dependency.new('jruby-jars')) debug("Jarbler::Config.define_jruby_version: Response from search_for_dependency = #{response.inspect}") # extract the versions from the response @jruby_version = response&.first&.first&.first&.version&.to_s raise "Unable to determine the latest available version of jruby-jars gem!\nResponse = #{response.inspect}" unless @jruby_version debug "Jarbler::Config.define_jruby_version: JRuby version from latest jruby-jars gem: #{jruby_version}" end end |