# Maintainer: Felix Yan <felixonmars@archlinux.org>

pkgname=ruby-byebug
pkgver=12.0.0
pkgrel=2
pkgdesc='A simple to use and feature rich debugger for Ruby'
arch=(x86_64 aarch64)
url='https://github.com/deivid-rodriguez/byebug'
license=(BSD)
depends=(
  ruby
  ruby-irb
)
makedepends=(
  ruby-rake
  ruby-rdoc
)
checkdepends=(
  markdownlint
  ruby-bundler
  ruby-faraday-retry
  ruby-minitest
  ruby-pry
  ruby-rake-compiler
  ruby-rexml
  ruby-simplecov
  ruby-yard
)
options=(!emptydirs)
source=(
  "https://github.com/deivid-rodriguez/byebug/archive/v$pkgver/$pkgname-$pkgver.tar.gz"
  "${pkgname}_fix_tests.patch"
)
sha512sums=('2f54c554c451d9bdaf69de738b555f618b944154a810ccadce017aedb73524e0e98c8a6b62139f1df91bb67cf64653607c504e640a20e27ce2710827c9056c9d'
            'fc97d570a1e0fd4ab3419a6351495e59dfe1ca5b954be7d9a0234ea69b4a207f6d7fd16add03e4fb76e9da364e8918694f37873c804457b96a8692321281fab9')
b2sums=('1e15d1f6b72a06da9c40062f0451e46b7e62b9b8337f706fb21a3ca37d0ad70039e1ea87ded77b3228dad93e7b6a78210041b7ed4ccaa63936c36b2a0ecf64ac'
        '1ecdb6928d68033a45822c959d5d273a426dc117892ff443b46bc7d3e02585c63fd06d7763910a1ca55453070131b5dbbce045fbefe1547fd480249bd07bb91b')

prepare() {
  cd byebug-$pkgver

  patch --verbose --strip=1 --input="../${pkgname}_fix_tests.patch"

  sed --in-place --regexp-extended \
    --expression '/chandler/d' \
    --expression 's|~>|>=|' \
    Gemfile \
    Rakefile
  sed --in-place --regexp-extended \
    --expression 's/, ".*"//' \
    Gemfile
  sed --in-place --regexp-extended \
    --expression '/release\.rake/d' \
    Rakefile
  sed --in-place --regexp-extended \
    --expression '/bundler/d' \
    bin/minitest

  rm --recursive --verbose \
    .bundle \
    Gemfile.lock \
    tasks/release.rake
}

build() {
  cd byebug-$pkgver

  local _gemdir="$(gem env gemdir)"

  gem build --verbose byebug.gemspec

  gem install \
    --local \
    --verbose \
    --ignore-dependencies \
    --no-user-install \
    --install-dir "tmp_install${_gemdir}" \
    --bindir "tmp_install/usr/bin" \
    byebug-$pkgver.gem

  rake compile:byebug

  # remove unreproducible files
  rm --force --recursive --verbose \
    "tmp_install${_gemdir}/cache/" \
    "tmp_install${_gemdir}/gems/${_gemname}-${pkgver}/vendor/" \
    "tmp_install${_gemdir}/doc/${_gemname}-${pkgver}/ri/ext/"

  find "tmp_install${_gemdir}/gems/" \
    -type f \
    \( \
      -iname "*.o" -o \
      -iname "*.c" -o \
      -iname "*.so" -o \
      -iname "*.time" -o \
      -iname "gem.build_complete" -o \
      -iname "Makefile" \
    \) \
    -delete

  find "tmp_install${_gemdir}/extensions/" \
    -type f \
    \( \
      -iname "mkmf.log" -o \
      -iname "gem_make.out" \
    \) \
    -delete
}

check() {
  local _gemdir="$(gem env gemdir)"
  cd byebug-$pkgver
  RUBYOPT="-r bundler/setup" GEM_HOME="tmp_install/$_gemdir" rake test
}

package() {
  cd byebug-$pkgver

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

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