# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=ruby-rbs
_gemname=rbs
# Keep version in sync with "Bundled gems" (https://stdgems.org) for the
# packaged Ruby version.
pkgver=3.8.1
pkgrel=0
pkgdesc="Type Signature for Ruby"
url="https://github.com/ruby/rbs"
arch="all"
license="BSD-2-Clause AND Ruby"
depends="ruby ruby-bundler"
makedepends="
	ruby-dev
	ruby-rdoc
	"
checkdepends="
	ruby-bigdecimal
	ruby-rake
	ruby-test-unit
	"
subpackages="$pkgname-doc"
source="https://github.com/ruby/rbs/archive/v$pkgver/$_gemname-$pkgver.tar.gz
	gemspec.patch
	"
builddir="$srcdir/$_gemname-$pkgver"

prepare() {
	default_prepare

	# Requires ruby-json-schema which is not in main.
	rm test/rbs/schema_test.rb

	# FIXME: Tries to install gems to / via bundler.
	rm test/rbs/cli_test.rb
}

build() {
	gem build $_gemname.gemspec

	gem install \
		--local \
		--install-dir dist \
		--bindir dist/bin \
		--ignore-dependencies \
		--document ri \
		--verbose \
		$_gemname
}

check() {
	GEM_PATH='dist' SKIP_RBS_VALIDATION=1 ruby -I lib -I test \
		-e "Dir.glob(['./test/*_test.rb', './test/rbs/*_test.rb'], &method(:require))" -- --verbose
}

package() {
	local gemdir="$pkgdir/$(ruby -e 'puts Gem.default_dir')"

	cd "$builddir"/dist

	mkdir -p "$gemdir"
	cp -r doc extensions gems specifications "$gemdir"/

	# Remove unnecessary files and rubbish...
	find "$gemdir"/extensions/ -name mkmf.log -delete

	cd "$gemdir"/gems/$_gemname-$pkgver
	rm -r ext/
}

doc() {
	pkgdesc="$pkgdesc (ri docs)"

	amove "$(ruby -e 'puts Gem.default_dir')"/doc
}

sha512sums="
e9ed09d493fac14f0aa9f1b97a440a2d424188cad3e4a4f62f5e1b5a34641e5c004b9de518327076bc0cf69d268391150ce74ca40ec36ac40964d87c9c7c1915  rbs-3.8.1.tar.gz
10887b42cc913a08012cc2b34e7179540776c59ebbe305d0488c0f0d552defac1465baf3ec3b30ec3385a68621fecdfd2f9d0e65bff7f863814fff287d96a65a  gemspec.patch
"
