| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- #!/bin/sh
- set -e
- gems="$(ruby -e '
- # list taken from https://rubygems.org/stats
- gems = %w{
- bundler
- multi_json
- rake
- rack
- json
- mime-types
- activesupport
- thor
- i18n
- diff-lcs
- }
- # last updated 2017-11-15
- require "json"
- require "open-uri"
- # https://github.com/ruby/ruby/commit/05aac90a1bcfeb180f5e78ea8b00a4d1b04d5eed
- # https://bugs.ruby-lang.org/issues/15893
- # for Ruby 2.5+, we should use "URI.open", but for Ruby 2.4 we still need to use "open(...)" directly
- def openURI(uri)
- if Gem::Version.create(RUBY_VERSION) >= Gem::Version.create("2.5")
- URI.open(uri)
- else
- open(uri)
- end
- end
- for gem in gems
- # ruby 2.2.2+: rack activesupport
- # ruby 2.0+: mime-types
- # (jruby 1.7 is ruby 1.9)
- gemRubyVersion = JSON.load(openURI("https://rubygems.org/api/v1/versions/#{ gem }.json"))[0]["ruby_version"]
- if Gem::Dependency.new("", gemRubyVersion).match?("", RUBY_VERSION)
- puts gem
- else
- STDERR.puts "skipping #{ gem } due to required Ruby version: #{ gemRubyVersion } (vs #{ RUBY_VERSION })"
- end
- end
- ')"
- for gem in $gems; do
- echo "$ gem install $gem"
- gem install "$gem"
- done
|