# Maintainer: David Runge <dvzrv@archlinux.org>
# Maintainer: Andreas 'Segaja' Schleifer <archlinux at segaja dot de>

_gemname='zeitwerk'
pkgname="ruby-${_gemname}"
pkgver=2.7.5
pkgrel=1
pkgdesc="Efficient and thread-safe code loader for Ruby"
arch=(any)
url="https://github.com/fxn/${_gemname}"
license=('MIT')
depends=(
  ruby
)
makedepends=(
  ruby-rdoc
)
checkdepends=(
  ruby-minitest
  ruby-minitest-proveit
  ruby-minitest-reporters
  ruby-minitest-sprint
  ruby-warning
)
options=('!emptydirs')
source=("${url}/archive/v${pkgver}/${pkgname}-${pkgver}.tar.gz")
sha512sums=('a39784003739340800584dbb64b38a6aa22461585dfbca4303b50e584700c3356bee20f756d28ebd98d20532457e91ae58fbb6397fc66d9d48a1d5eeea60c07c')
b2sums=('71948f811ce33875cb1aab1ac60770142e38b020e5797c39abeb5f878c130c668d1e81c203f12d7a085f62a44369a649390b0b65c24c85734664cecb87334608')

prepare() {
  cd "${_gemname}-${pkgver}"

  # update gemspec/Gemfile to allow newer version of the dependencies
  sed --in-place --regexp-extended \
    --expression 's|~>|>=|g' \
    --expression '/signing_key/d' \
    "${_gemname}.gemspec"

  # remove ruby-minitest-focus requirement
  sed '/minitest\/focus/d' -i test/test_helper.rb
}

build() {
  cd "${_gemname}-${pkgver}"

  local _gemdir="$(gem env gemdir)"

  gem build --verbose "${_gemname}.gemspec"

  gem install \
    --local \
    --verbose \
    --ignore-dependencies \
    --build-root "tmp_install" \
    "${_gemname}-${pkgver}.gem"
}

check() {
  cd "${_gemname}-${pkgver}"

  local _gemdir="$(gem env gemdir)"

  GEM_HOME="tmp_install/${_gemdir}" minitest
}

package() {
  cd "${_gemname}-${pkgver}"

  cp --archive --verbose tmp_install/* "${pkgdir}"

  install --verbose -D --mode=0644 MIT-LICENSE --target-directory "${pkgdir}/usr/share/licenses/${pkgname}/"
  install --verbose -D --mode=0644 *.md --target-directory "${pkgdir}/usr/share/doc/${pkgname}/"
}
