distributable:
  url: https://github.com/rubygems/rubygems/archive/refs/tags/v{{version}}.tar.gz
  strip-components: 1

versions:
  github: rubygems/rubygems

dependencies:
  ruby-lang.org: '>=2.3'

runtime:
  env:
    RUBYLIB: ${{prefix}}/lib

build:
  dependencies:
    gnu.org/patch: '*'
    ruby-lang.org: ~3.1 # testing a theory
  script:
    - ruby setup.rb
      --prefix={{prefix}}
      --env-shebang
      --no-ri
      --no-rdoc

    - run: cp $SRCROOT/props/proxy .
      working-directory: ${{prefix}}/shim

    - run: |
        patch -p1 < "$SRCROOT"/props/fit-n-finish.patch
        patch -p1 < "$SRCROOT"/props/fit-n-finish.2.patch
      working-directory: ${{prefix}}

    # these are provided by ruby-lang.org
    # we don’t know why they turn up here too…
    - run: rm rake rbs rdbg typeprof
      working-directory: ${{prefix}}/bin

    # We’re not a “GEMHOME” since we *are* gem, so yeah instead
    # we have a RUBYLIB hack via our proxy script
    - run: |
        for x in *; do
          mv $x ../shim
          ln -s ../shim/proxy $x
        done
      working-directory: ${{prefix}}/bin

    - rmdir {{prefix}}/plugins

test:
  env:
    HOME: $PWD
    vRUBY: ${{deps.ruby-lang.org.version.marketing}}.0
  script:
    # for debug
    - gem env

    - |
      gem install awesome_print --verbose
      ruby -e 'require "rubygems"' -e 'require "awesome_print"' -e'ap $LOAD_PATH'

    - |
      gem install hexapdf  --verbose

      if [ -w /usr/local/lib/ruby/ ]; then
        v="$(/usr/local/bin/hexapdf version | cut -d' ' -f2)"
        test -d /usr/local/lib/ruby/gems/$vRUBY/gems/hexapdf-$v
      else
        v="$(~/.local/bin/hexapdf version | cut -d' ' -f2)"
        test -d ~/.gem/ruby/$vRUBY/gems/hexapdf-$v
      fi

provides:
  - bin/bundle
  - bin/bundler
  - bin/gem
