| 1 | # Copyright 1999-2011 Gentoo Foundation |
1 | # Copyright 1999-2012 Gentoo Foundation |
| 2 | # Distributed under the terms of the GNU General Public License v2 |
2 | # Distributed under the terms of the GNU General Public License v2 |
| 3 | # $Header: /var/cvsroot/gentoo-x86/eclass/ruby-fakegem.eclass,v 1.32 2011/12/05 12:24:33 graaff Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/ruby-fakegem.eclass,v 1.34 2012/08/13 22:21:26 flameeyes Exp $ |
| 4 | |
4 | |
| 5 | # @ECLASS: ruby-fakegem.eclass |
5 | # @ECLASS: ruby-fakegem.eclass |
| 6 | # @MAINTAINER: |
6 | # @MAINTAINER: |
| 7 | # Ruby herd <ruby@gentoo.org> |
7 | # Ruby herd <ruby@gentoo.org> |
| 8 | # @AUTHOR: |
8 | # @AUTHOR: |
| … | |
… | |
| 28 | # @ECLASS-VARIABLE: RUBY_FAKEGEM_TASK_DOC |
28 | # @ECLASS-VARIABLE: RUBY_FAKEGEM_TASK_DOC |
| 29 | # @DESCRIPTION: |
29 | # @DESCRIPTION: |
| 30 | # Specify the rake(1) task to run to generate documentation. |
30 | # Specify the rake(1) task to run to generate documentation. |
| 31 | # RUBY_FAKEGEM_TASK_DOC="rdoc" |
31 | # RUBY_FAKEGEM_TASK_DOC="rdoc" |
| 32 | |
32 | |
|
|
33 | # @ECLASS-VARIABLE: RUBY_FAKEGEM_RECIPE_TEST |
|
|
34 | # @DESCRIPTION: |
|
|
35 | # Specify one of the default testing function for ruby-fakegem: |
|
|
36 | # - rake (default; see also RUBY_FAKEGEM_TASK_TEST) |
|
|
37 | # - rspec (calls ruby-ng_rspec, adds dev-ruby/rspec:2 to the dependencies) |
|
|
38 | # - cucumber (calls ruby-ng_cucumber, adds dev-util/cucumber to the |
|
|
39 | # dependencies; does not work on JRuby). |
|
|
40 | # - none |
|
|
41 | # RUBY_FAKEGEM_RECIPE_TEST="rake" |
|
|
42 | |
| 33 | # @ECLASS-VARIABLE: RUBY_FAKEGEM_TASK_TEST |
43 | # @ECLASS-VARIABLE: RUBY_FAKEGEM_TASK_TEST |
| 34 | # @DESCRIPTION: |
44 | # @DESCRIPTION: |
| 35 | # Specify the rake(1) task used for executing tests. |
45 | # Specify the rake(1) task used for executing tests. Only valid |
|
|
46 | # if RUBY_FAKEGEM_RECIPE_TEST is set to "rake" (the default). |
| 36 | # RUBY_FAKEGEM_TASK_TEST="test" |
47 | # RUBY_FAKEGEM_TASK_TEST="test" |
| 37 | |
48 | |
| 38 | # @ECLASS-VARIABLE: RUBY_FAKEGEM_DOCDIR |
49 | # @ECLASS-VARIABLE: RUBY_FAKEGEM_DOCDIR |
| 39 | # @DESCRIPTION: |
50 | # @DESCRIPTION: |
| 40 | # Specify the directory under which the documentation is built; |
51 | # Specify the directory under which the documentation is built; |
| … | |
… | |
| 71 | RUBY_FAKEGEM_NAME="${RUBY_FAKEGEM_NAME:-${PN}}" |
82 | RUBY_FAKEGEM_NAME="${RUBY_FAKEGEM_NAME:-${PN}}" |
| 72 | RUBY_FAKEGEM_VERSION="${RUBY_FAKEGEM_VERSION:-${PV/_pre/.pre}}" |
83 | RUBY_FAKEGEM_VERSION="${RUBY_FAKEGEM_VERSION:-${PV/_pre/.pre}}" |
| 73 | RUBY_FAKEGEM_SUFFIX="${RUBY_FAKEGEM_SUFFIX:-}" |
84 | RUBY_FAKEGEM_SUFFIX="${RUBY_FAKEGEM_SUFFIX:-}" |
| 74 | |
85 | |
| 75 | RUBY_FAKEGEM_TASK_DOC="${RUBY_FAKEGEM_TASK_DOC-rdoc}" |
86 | RUBY_FAKEGEM_TASK_DOC="${RUBY_FAKEGEM_TASK_DOC-rdoc}" |
|
|
87 | RUBY_FAKEGEM_RECIPE_TEST="${RUBY_FAKEGEM_RECIPE_TEST-rake}" |
| 76 | RUBY_FAKEGEM_TASK_TEST="${RUBY_FAKEGEM_TASK_TEST-test}" |
88 | RUBY_FAKEGEM_TASK_TEST="${RUBY_FAKEGEM_TASK_TEST-test}" |
| 77 | |
89 | |
| 78 | RUBY_FAKEGEM_BINWRAP="${RUBY_FAKEGEM_BINWRAP-*}" |
90 | RUBY_FAKEGEM_BINWRAP="${RUBY_FAKEGEM_BINWRAP-*}" |
| 79 | |
91 | |
| 80 | if [[ ${RUBY_FAKEGEM_TASK_DOC} != "" ]]; then |
92 | if [[ ${RUBY_FAKEGEM_TASK_DOC} != "" ]]; then |
| … | |
… | |
| 84 | |
96 | |
| 85 | if [[ -n ${RUBY_FAKEGEM_DOCDIR} ]]; then |
97 | if [[ -n ${RUBY_FAKEGEM_DOCDIR} ]]; then |
| 86 | IUSE="$IUSE doc" |
98 | IUSE="$IUSE doc" |
| 87 | fi |
99 | fi |
| 88 | |
100 | |
| 89 | if [[ ${RUBY_FAKEGEM_TASK_TEST} != "" ]]; then |
101 | [[ ${RUBY_FAKEGEM_TASK_TEST} == "" ]] && RUBY_FAKEGEM_RECIPE_TEST="none" |
|
|
102 | |
|
|
103 | case ${RUBY_FAKEGEM_RECIPE_TEST} in |
|
|
104 | rake) |
| 90 | IUSE="$IUSE test" |
105 | IUSE+=" test" |
| 91 | ruby_add_bdepend "test? ( dev-ruby/rake )" |
106 | ruby_add_bdepend "test? ( dev-ruby/rake )" |
| 92 | fi |
107 | ;; |
|
|
108 | rspec) |
|
|
109 | IUSE+=" test" |
|
|
110 | ruby_add_bdepend "test? ( dev-ruby/rspec:2 )" |
|
|
111 | ;; |
|
|
112 | cucumber) |
|
|
113 | IUSE+=" test" |
|
|
114 | # Unfortunately as of August 2012, cucumber is not supported on |
|
|
115 | # JRuby. We work it around here to avoid repeating the same |
|
|
116 | # code over and over again. |
|
|
117 | USE_RUBY="${USE_RUBY/jruby/}" ruby_add_bdepend "test? ( dev-util/cucumber )" |
|
|
118 | ;; |
|
|
119 | *) |
|
|
120 | RUBY_FAKEGEM_RECIPE_TEST="none" |
|
|
121 | ;; |
|
|
122 | esac |
| 93 | |
123 | |
| 94 | SRC_URI="mirror://rubygems/${RUBY_FAKEGEM_NAME}-${RUBY_FAKEGEM_VERSION}${RUBY_FAKEGEM_SUFFIX:+-${RUBY_FAKEGEM_SUFFIX}}.gem" |
124 | SRC_URI="mirror://rubygems/${RUBY_FAKEGEM_NAME}-${RUBY_FAKEGEM_VERSION}${RUBY_FAKEGEM_SUFFIX:+-${RUBY_FAKEGEM_SUFFIX}}.gem" |
| 95 | |
125 | |
| 96 | ruby_add_bdepend virtual/rubygems |
126 | ruby_add_bdepend virtual/rubygems |
| 97 | ruby_add_rdepend virtual/rubygems |
127 | ruby_add_rdepend virtual/rubygems |
| … | |
… | |
| 214 | # copies with different implementations; while for now we're using |
244 | # copies with different implementations; while for now we're using |
| 215 | # the same exact content, we might have differences in the future, |
245 | # the same exact content, we might have differences in the future, |
| 216 | # so better taking this into consideration. |
246 | # so better taking this into consideration. |
| 217 | local quoted_description=${DESCRIPTION//\"/\\\"} |
247 | local quoted_description=${DESCRIPTION//\"/\\\"} |
| 218 | cat - > $1 <<EOF |
248 | cat - > $1 <<EOF |
| 219 | # generated by ruby-fakegem.eclass $Revision: 1.32 $ |
249 | # generated by ruby-fakegem.eclass $Revision: 1.34 $ |
| 220 | Gem::Specification.new do |s| |
250 | Gem::Specification.new do |s| |
| 221 | s.name = "${RUBY_FAKEGEM_NAME}" |
251 | s.name = "${RUBY_FAKEGEM_NAME}" |
| 222 | s.version = "${RUBY_FAKEGEM_VERSION}" |
252 | s.version = "${RUBY_FAKEGEM_VERSION}" |
| 223 | s.summary = "${quoted_description}" |
253 | s.summary = "${quoted_description}" |
| 224 | s.homepage = "${HOMEPAGE}" |
254 | s.homepage = "${HOMEPAGE}" |
| … | |
… | |
| 264 | |
294 | |
| 265 | cat - > "${T}"/gembin-wrapper-${gembinary} <<EOF |
295 | cat - > "${T}"/gembin-wrapper-${gembinary} <<EOF |
| 266 | #!${rubycmd} |
296 | #!${rubycmd} |
| 267 | # This is a simplified version of the RubyGems wrapper |
297 | # This is a simplified version of the RubyGems wrapper |
| 268 | # |
298 | # |
| 269 | # Generated by ruby-fakegem.eclass $Revision: 1.32 $ |
299 | # Generated by ruby-fakegem.eclass $Revision: 1.34 $ |
| 270 | |
300 | |
| 271 | require 'rubygems' |
301 | require 'rubygems' |
| 272 | |
302 | |
| 273 | load Gem::default_path[-1] + "/gems/${relativegembinary}" |
303 | load Gem::default_path[-1] + "/gems/${relativegembinary}" |
| 274 | |
304 | |
| … | |
… | |
| 344 | |
374 | |
| 345 | # @FUNCTION: each_fakegem_test |
375 | # @FUNCTION: each_fakegem_test |
| 346 | # @DESCRIPTION: |
376 | # @DESCRIPTION: |
| 347 | # Run tests for the package for each ruby target if the test task is defined. |
377 | # Run tests for the package for each ruby target if the test task is defined. |
| 348 | each_fakegem_test() { |
378 | each_fakegem_test() { |
| 349 | local rubyflags= |
379 | case ${RUBY_FAKEGEM_RECIPE_TEST} in |
|
|
380 | rake) |
| 350 | ${RUBY} ${rubyflags} -S rake ${RUBY_FAKEGEM_TASK_TEST} || die "tests failed" |
381 | ${RUBY} -S rake ${RUBY_FAKEGEM_TASK_TEST} || die "tests failed" |
|
|
382 | ;; |
|
|
383 | rspec) |
|
|
384 | ruby-ng_rspec |
|
|
385 | ;; |
|
|
386 | cucumber) |
|
|
387 | ruby-ng_cucumber |
|
|
388 | ;; |
|
|
389 | none) |
|
|
390 | ewarn "each_fakegem_test called, but \${RUBY_FAKEGEM_RECIPE_TEST} is 'none'" |
|
|
391 | ;; |
|
|
392 | esac |
| 351 | } |
393 | } |
| 352 | |
394 | |
| 353 | if [[ ${RUBY_FAKEGEM_TASK_TEST} != "" ]]; then |
395 | if [[ ${RUBY_FAKEGEM_RECIPE_TEST} != none ]]; then |
| 354 | # @FUNCTION: each_ruby_test |
396 | # @FUNCTION: each_ruby_test |
| 355 | # @DESCRIPTION: |
397 | # @DESCRIPTION: |
| 356 | # Run the tests for this package. |
398 | # Run the tests for this package. |
| 357 | each_ruby_test() { |
399 | each_ruby_test() { |
| 358 | each_fakegem_test |
400 | each_fakegem_test |
| 359 | } |
401 | } |
| 360 | fi |
402 | fi |
| 361 | |
403 | |
| 362 | # @FUNCTION: each_fakegem_install |
404 | # @FUNCTION: each_fakegem_install |
| 363 | # @DESCRIPTION: |
405 | # @DESCRIPTION: |
| 364 | # Install the package for each ruby target. |
406 | # Install the package for each ruby target. |