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

pkgname=ruby-cucumber
pkgver=10.1.1
pkgrel=1
pkgdesc="Behaviour Driven Development with elegance and joy"
arch=(any)
url='https://github.com/cucumber/cucumber-ruby'
license=(MIT)
depends=(
  ruby
  ruby-base64
  ruby-builder
  ruby-cucumber-ci-environment
  ruby-cucumber-core
  ruby-cucumber-cucumber-expressions
  ruby-cucumber-gherkin
  ruby-cucumber-html-formatter
  ruby-cucumber-messages
  ruby-diff-lcs
  ruby-mime-types
  ruby-mini_mime
  ruby-multi_test
  ruby-rake
  ruby-sys-uname
)
makedepends=(
  patchutils
  ruby-rdoc
)
checkdepends=(
  ruby-bundler
  ruby-nokogiri
  ruby-rspec
  ruby-webrick
)
options=(!emptydirs)
source=(
  "https://github.com/cucumber/cucumber-ruby/archive/v$pkgver/cucumber-cucumber-ruby-$pkgver.tar.gz"
)
sha512sums=('469f96852e214df10da37d6deee99079880c96e33cbaa6dda5df79f01107d0e486f55baee344bc3fa339762ed4ebc07136eb8c30825ebeacdbcaab16a0a56f52')
b2sums=('21b309cfc8a1b84d04f0cceee493a7fe4f367c394b3a52d4ad0210c723afcd7494522265ef962bc5c12622e29a09a52158507cdb06939c243ea961a9eda06257')

prepare() {
  cd cucumber-ruby-$pkgver

  filterdiff --strip-match=1 --include="lib/*" --include="features/*" --include="spec/*" \
    "$srcdir/$pkgname-ruby-3.4.patch" | \
    patch --strip=1

  sed -i \
    -e '/capybara/d' \
    -e 's|~>|>=|' \
    -e "s/, '< [0-9]\+'//" \
    cucumber.gemspec
  sed -i '/[rR]ubo[cC]op/d' Rakefile

  rm Gemfile

  sed -i -e 's/bundle exec //' gem_tasks/cck.rake compatibility/cck_spec.rb
  sed -i \
    -e "s/Cucumber::Messages::TimeConversion/Cucumber::Messages::Helpers::TimeConversion/" \
    -e "s/Cucumber::Messages::IdGenerator::Incrementing/Cucumber::Messages::Helpers::IdGenerator::Incrementing/" \
    -e "s/Cucumber::Messages::IdGenerator::UUID/Cucumber::Messages::Helpers::IdGenerator::UUID/" \
    -e "s/require 'cucumber\/messages\/id_generator'/require 'cucumber\/messages\/helpers\/id_generator'/" \
    lib/cucumber/configuration.rb \
    lib/cucumber/formatter/message_builder.rb \
    spec/cucumber/formatter/message_spec.rb \
    spec/cucumber/runtime/hooks_examples.rb
}

build() {
  local _gemdir="$(gem env gemdir)"
  cd cucumber-ruby-$pkgver
  gem build cucumber.gemspec
  gem install \
    --local \
    --verbose \
    --ignore-dependencies \
    --no-user-install \
    --install-dir "tmp_install/$_gemdir" \
    --bindir "tmp_install/usr/bin" \
    cucumber-$pkgver.gem
  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
  rm -r tmp_install/$_gemdir/cache
}

check() {
  local _gemdir="$(gem env gemdir)"
  cd cucumber-ruby-$pkgver
  # cck disabled: "ci" is not supported in latest cucumber-messages
  PATH="$PWD/tmp_install/usr/bin:$PATH" GEM_HOME="tmp_install/$_gemdir" rake spec cucumber
}

package() {
  cd cucumber-ruby-$pkgver
  cp -a tmp_install/* "$pkgdir"/
  install -Dm644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname/
}
