# Maintainer: J. Peter Mugaas <jpmugaas@suddenlink.net>

_realname=mustache
pkgbase="mingw-w64-ruby-${_realname}"
pkgname="${MINGW_PACKAGE_PREFIX}-ruby-${_realname}"
pkgver=1.1.1
pkgrel=2
pkgdesc="Mustache is a framework-agnostic way to render logic-free views. (mingw-w64)"
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64')
url='https://github.com/mustache/mustache'
license=('MIT')
depends=("${MINGW_PACKAGE_PREFIX}-ruby")
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc")
source=(https://rubygems.org/downloads/${_realname}-${pkgver}.gem)
noextract=(${_realname}-$pkgver.gem)
sha256sums=('90891fdd50b53919ca334c8c1031eada1215e78d226d5795e523d6123a2717d0')

check() {
  local _gemdir="$(ruby -e 'puts Gem.default_dir')"
  _gemdir="$(cygpath -u ${_gemdir})"

  ${MINGW_PREFIX}/bin/gem check --verbose \
    "${_realname}-${pkgver}.gem"
}

package() {
  local _gemdir="$(${MINGW_PREFIX}/bin/ruby -e 'puts Gem.default_dir')"
  _gemdir="$(cygpath -u ${_gemdir})"

  ${MINGW_PREFIX}/bin/gem install --ignore-dependencies --no-user-install --verbose \
    -i "${pkgdir}/${_gemdir}" -n "${pkgdir}${MINGW_PREFIX}/bin" \
    "${_realname}-${pkgver}.gem"

  local _ruby_exe=$(cygpath -m ${MINGW_PREFIX}/bin/ruby.exe)

  #for this conversion, we want the fully qualified ruby .exe path
  #so that we can be sure that we are calling the correct one.
  sed -e "s|${_ruby_exe}|${MINGW_PREFIX}/bin/ruby|g" \
      -i ${pkgdir}${MINGW_PREFIX}/bin/mustache

  #for Win32 .bat files, we want to drop the path references as the path
  #refs are not needed since it's involved from the same dir.  If we did
  #need fully-qualified pathes, they would have to be fully-qualified and
  # in DOS format.
  local _inst_dir=$(cygpath -m ${pkgdir}/${MINGW_PREFIX}/bin/)
  local _w_ruby_exe=$(cygpath -w ${MINGW_PREFIX}/bin/ruby.exe | sed 's/\\/\\\\/g')
  sed  -e "s|${_w_ruby_exe}|ruby.exe|g" \
       -e "s|${_inst_dir}||g" \
       -i ${pkgdir}${MINGW_PREFIX}/bin/mustache.bat

  install -Dm644 "${pkgdir}/${_gemdir}/gems/${_realname}-${pkgver}/man/mustache.1" \
    "${pkgdir}${MINGW_PREFIX}/share/man/man1/mustache.1"

  rm "${pkgdir}/${_gemdir}/cache/${_realname}-${pkgver}.gem"
  rm -rf "${pkgdir}${MINGW_PREFIX}/${_gemdir}/gems/${_realname}-${pkgver}/man"
}
