/[gentoo-x86]/eclass/ruby-fakegem.eclass
Gentoo

Diff of /eclass/ruby-fakegem.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.24 Revision 1.25
1# Copyright 1999-2009 Gentoo Foundation 1# Copyright 1999-2009 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.24 2010/09/23 06:47:01 grobian Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/ruby-fakegem.eclass,v 1.25 2010/12/18 09:50:08 graaff 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# 8#
56 56
57# @ECLASS-VARIABLE: RUBY_FAKEGEM_REQUIRE_PATHS 57# @ECLASS-VARIABLE: RUBY_FAKEGEM_REQUIRE_PATHS
58# @DESCRIPTION: 58# @DESCRIPTION:
59# Extra require paths (beside lib) to add to the specification 59# Extra require paths (beside lib) to add to the specification
60# RUBY_FAKEGEM_REQUIRE_PATHS="" 60# RUBY_FAKEGEM_REQUIRE_PATHS=""
61
62# @ECLASS-VARIABLE: RUBY_FAKEGEM_GEMSPEC
63# @DESCRIPTION:
64# Filename of .gemspec file to install instead of generating a generic one.
65# RUBY_FAKEGEM_GEMSPEC=""
61 66
62RUBY_FAKEGEM_NAME="${RUBY_FAKEGEM_NAME:-${PN}}" 67RUBY_FAKEGEM_NAME="${RUBY_FAKEGEM_NAME:-${PN}}"
63RUBY_FAKEGEM_VERSION="${RUBY_FAKEGEM_VERSION:-${PV/_pre/.pre}}" 68RUBY_FAKEGEM_VERSION="${RUBY_FAKEGEM_VERSION:-${PV/_pre/.pre}}"
64RUBY_FAKEGEM_SUFFIX="${RUBY_FAKEGEM_SUFFIX:-}" 69RUBY_FAKEGEM_SUFFIX="${RUBY_FAKEGEM_SUFFIX:-}"
65 70
82 ruby_add_bdepend "test? ( dev-ruby/rake )" 87 ruby_add_bdepend "test? ( dev-ruby/rake )"
83fi 88fi
84 89
85SRC_URI="mirror://rubygems/${RUBY_FAKEGEM_NAME}-${RUBY_FAKEGEM_VERSION}${RUBY_FAKEGEM_SUFFIX:+-${RUBY_FAKEGEM_SUFFIX}}.gem" 90SRC_URI="mirror://rubygems/${RUBY_FAKEGEM_NAME}-${RUBY_FAKEGEM_VERSION}${RUBY_FAKEGEM_SUFFIX:+-${RUBY_FAKEGEM_SUFFIX}}.gem"
86 91
87ruby_add_rdepend virtual/rubygems 92ruby_add_rdepend dev-ruby/rubygems
88 93
89# @FUNCTION: ruby_fakegem_gemsdir 94# @FUNCTION: ruby_fakegem_gemsdir
90# @RETURN: Returns the gem data directory 95# @RETURN: Returns the gem data directory
91# @DESCRIPTION: 96# @DESCRIPTION:
92# This function returns the gems data directory for the ruby 97# This function returns the gems data directory for the ruby
131 local newbasename=$(basename "$2") 136 local newbasename=$(basename "$2")
132 137
133 insinto $(ruby_fakegem_gemsdir)/gems/${RUBY_FAKEGEM_NAME}-${RUBY_FAKEGEM_VERSION}${newdirname} 138 insinto $(ruby_fakegem_gemsdir)/gems/${RUBY_FAKEGEM_NAME}-${RUBY_FAKEGEM_VERSION}${newdirname}
134 newins "$1" ${newbasename} 139 newins "$1" ${newbasename}
135 ) || die "failed $0 $@" 140 ) || die "failed $0 $@"
141}
142
143# @FUNCTION: ruby_fakegem_gemspec
144# @DESCRIPTION:
145# Install a .gemspec file for this package. Either use the file indicated
146# by the RUBY_FAKEGEM_GEMSPEC variable, or generate one using
147# ruby_fakegem_genspec
148ruby_fakegem_gemspec() {
149 if [[ ${RUBY_FAKEGEM_GEMSPEC} != "" ]]; then
150 (
151 insinto $(ruby_fakegem_gemsdir)/specifications
152 newins "${RUBY_FAKEGEM_GEMSPEC}" ${RUBY_FAKEGEM_NAME}-${RUBY_FAKEGEM_VERSION}.gemspec
153 ) || die "Unable to install ${RUBY_FAKEGEM_GEMSPEC} gemspec"
154 else
155 ruby_fakegem_genspec
156 fi
136} 157}
137 158
138# @FUNCTION: ruby_fakegem_genspec 159# @FUNCTION: ruby_fakegem_genspec
139# @DESCRIPTION: 160# @DESCRIPTION:
140# Generates a gemspec for the package and places it into the "specifications" 161# Generates a gemspec for the package and places it into the "specifications"
154 # copies with different implementations; while for now we're using 175 # copies with different implementations; while for now we're using
155 # the same exact content, we might have differences in the future, 176 # the same exact content, we might have differences in the future,
156 # so better taking this into consideration. 177 # so better taking this into consideration.
157 local quoted_description=${DESCRIPTION//\"/\\\"} 178 local quoted_description=${DESCRIPTION//\"/\\\"}
158 cat - > "${T}"/${RUBY_FAKEGEM_NAME}-${_ruby_implementation} <<EOF 179 cat - > "${T}"/${RUBY_FAKEGEM_NAME}-${_ruby_implementation} <<EOF
159# generated by ruby-fakegem.eclass $Revision: 1.24 $ 180# generated by ruby-fakegem.eclass $Revision: 1.25 $
160Gem::Specification.new do |s| 181Gem::Specification.new do |s|
161 s.name = "${RUBY_FAKEGEM_NAME}" 182 s.name = "${RUBY_FAKEGEM_NAME}"
162 s.version = "${RUBY_FAKEGEM_VERSION}" 183 s.version = "${RUBY_FAKEGEM_VERSION}"
163 s.summary = "${quoted_description}" 184 s.summary = "${quoted_description}"
164 s.homepage = "${HOMEPAGE}" 185 s.homepage = "${HOMEPAGE}"
208 229
209 cat - > "${T}"/gembin-wrapper-${gembinary} <<EOF 230 cat - > "${T}"/gembin-wrapper-${gembinary} <<EOF
210#!${rubycmd} 231#!${rubycmd}
211# This is a simplified version of the RubyGems wrapper 232# This is a simplified version of the RubyGems wrapper
212# 233#
213# Generated by ruby-fakegem.eclass $Revision: 1.24 $ 234# Generated by ruby-fakegem.eclass $Revision: 1.25 $
214 235
215require 'rubygems' 236require 'rubygems'
216 237
217load Gem::default_path[-1] + "/gems/${relativegembinary}" 238load Gem::default_path[-1] + "/gems/${relativegembinary}"
218 239
300 321
301# @FUNCTION: each_fakegem_install 322# @FUNCTION: each_fakegem_install
302# @DESCRIPTION: 323# @DESCRIPTION:
303# Install the package for each ruby target. 324# Install the package for each ruby target.
304each_fakegem_install() { 325each_fakegem_install() {
305 ruby_fakegem_genspec 326 ruby_fakegem_gemspec
306 327
307 local _gemlibdirs="${RUBY_FAKEGEM_EXTRAINSTALL}" 328 local _gemlibdirs="${RUBY_FAKEGEM_EXTRAINSTALL}"
308 for directory in bin lib; do 329 for directory in bin lib; do
309 [[ -d ${directory} ]] && _gemlibdirs="${_gemlibdirs} ${directory}" 330 [[ -d ${directory} ]] && _gemlibdirs="${_gemlibdirs} ${directory}"
310 done 331 done

Legend:
Removed from v.1.24  
changed lines
  Added in v.1.25

  ViewVC Help
Powered by ViewVC 1.1.20