# Maintainer: Andreas 'Segaja' Schleifer <segaja at archlinux dot org>

pkgname="rubocop"
pkgver=1.81.7
pkgrel=1
pkgdesc='A Ruby code style checking and code formatting tool'
arch=('any')
url='https://rubocop.org/'
license=('MIT')
provides=('ruby-rubocop')
depends=(
  ruby
  ruby-language_server-protocol
  ruby-lint_roller
  ruby-parallel
  ruby-parser
  ruby-rainbow
  ruby-regexp_parser
  ruby-rubocop-ast
  ruby-ruby-progressbar
  ruby-unicode-display_width
)
makedepends=(
  ruby-rdoc
)
checkdepends=(
  asciidoctor
  procps-ng
  ruby-bundler
  ruby-irb
  ruby-lsp
  ruby-memory_profiler
  ruby-rake
  ruby-rspec
  ruby-rubocop-performance
  ruby-rubocop-rake
  ruby-rubocop-rspec
  ruby-stackprof
  ruby-test-queue
  ruby-webmock
  ruby-yard
)
options=('!emptydirs')
source=(
  "https://github.com/rubocop/rubocop/archive/v${pkgver}/${pkgname}-${pkgver}.tar.gz"
)
sha512sums=('ff4aac513e83f024a07e9b46d4e875346591184d4b61d2e308c270a3afd23d0ba4e61e3f119bc9997a3243e8d4d0f810d7aa790260a5584af894eba63c23c4cd')
b2sums=('045d4707120f92bdc733bc1c25d8b9e1a76f7d665cefaf6e621f670fde55b6f3a149ee5c7a27028d4ceef1c1bb0aced41dd1b0b0b2ee66bbf119e845dcc2cd19')

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

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

  # we need webmock
  sed --in-place \
    --expression '/group/d' \
    --expression '/end/d' \
    Gemfile

  sed --in-place --regexp-extended \
    --expression '/bump/d' \
    --expression '/simplecov/d' \
    Gemfile

  rm tasks/cut_release.rake
}

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

  local _gemdir="$(gem env gemdir)"

  gem build "${pkgname}.gemspec"

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

  # remove unrepreducible files
  rm --force --recursive --verbose \
    "tmp_install/${_gemdir}/cache/" \
    "tmp_install/${_gemdir}/gems/${pkgname}-${pkgver}/vendor/" \
    "tmp_install/${_gemdir}/doc/${pkgname}-${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() {
  cd "${pkgname}-${pkgver}"

  local _gemdir="$(gem env gemdir)"

  GEM_HOME="tmp_install/${_gemdir}" rake ascii_spec spec
}

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

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

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

# vim: tabstop=2 shiftwidth=2 expandtab:
