# Copyright 2013 Hacking Networked Solutions
# Distributed under the terms of the GNU General Public License v3+
# $Header: $

EAPI=5

# As long as we conditionally depend on dev-ruby/rails:3.2, we're
# helpless to add ruby21 or ruby22 support. It should be possible, it
# just hasn't happened yet. See https://github.com/naitoh/rbpdf/issues/9
USE_RUBY="ruby19 ruby20"

RUBY_FAKEGEM_RECIPE_DOC="rdoc"
RUBY_FAKEGEM_EXTRADOC="README.md"

inherit ruby-fakegem

DESCRIPTION="Ruby on Rails TCPDF plugin"
HOMEPAGE="https://github.com/naitoh/rbpdf"

LICENSE="LGPL-2.1+"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""

# We need to set up a fake Rails environment to run the tests.
ruby_add_bdepend "test? ( dev-ruby/rails:3.2 )"

src_test() {
	# Create a fake Rails environment once, then do the default ruby-ng
	# thing. Make sure we use the rails-3.x.y executable.
	local rails="${ROOT}usr/bin/rails-3.2*"

	$rails new "${T}/dummy" \
		  --skip-javascript \
		  --skip-git \
		  --skip-bundle \
		  --skip-sprockets \
		  --skip-active-record \
		|| die "failed to create rails environment"

	ruby-ng_src_test
}

each_ruby_test() {
	# The test suite needs to run within a Rails environment, so in
	# src_test(), we created an empty Rails instance in ${T}/dummy. Now
	# we copy ourselves into the vendor/plugins directory of that Rails
	# instance, and run the tests using Rails's Rakefile. Assuming the
	# tests pass, we remove the plugin again so everything is nice and
	# tidy for the next ruby implementation.
	cp -r . "${T}/dummy/vendor/plugins/${PN}" || \
		die "failed to install plugin"
	cd "${T}/dummy" || die
	rake test TEST="vendor/plugins/${PN}/test/*_test.rb" || \
		die "test suite failed"
	rm -r "vendor/plugins/${PN}" || die "failed to uninstall plugin"
}