2 # - Class::Data::Inheritable -
3 # This spec file was automatically generated by cpan2rpm [ver: 2.027]
4 # The following arguments were used:
5 # --spec-only --version=0.06 '--author=Tony Bowden' Class-Data-Inheritable-0.06.tar.gz
6 # For more information on cpan2rpm please visit: http://perl.arix.com/
9 %define pkgname Class
-Data
-Inheritable
10 %define filelist
%{pkgname}-%{version}-filelist
11 %define NVR
%{pkgname}-%{version}-%{release}
14 name
: perl
-Class
-Data
-Inheritable
15 summary
: Class
-Data
-Inheritable
- Inheritable
, overridable class data
19 packager
: Arix International
<cpan2rpm@arix.com
>
21 group
: Applications
/CPAN
22 url
: http
://www.cpan.org
23 buildroot
: %{_tmppath}/%{name}-%{version}-%
(id
-u
-n
)
25 prefix
: %
(echo %{_prefix})
26 source: Class
-Data
-Inheritable
-0.06.tar.gz
29 Class
::Data
::Inheritable is
for creating accessor
/mutators to class
30 data. That is
, if you want to store something about your class as a
31 whole
(instead of about a single object
). This data is
then inherited
32 by your subclasses and can be overriden.
36 Pere
::Ubu
->mk_classdata
('Suitcase'
);
38 will generate the method Suitcase
() in the class Pere
::Ubu.
40 This new method can be used to get and
set a piece of class data.
42 Pere
::Ubu
->Suitcase
('Red'
);
43 $suitcase
= Pere
::Ubu
->Suitcase
;
45 The interesting part happens when a class inherits from Pere
::Ubu
:
48 use base qw
(Pere
::Ubu
);
50 # Raygun's suitcase is Red.
51 $suitcase
= Raygun
->Suitcase
;
53 Raygun inherits its Suitcase class data from Pere
::Ubu.
55 Inheritance of class data works analogous to method inheritance. As
56 long as Raygun does not "override" its inherited class data
(by using
57 Suitcase
() to
set a new value
) it will
continue to use whatever is
set
58 in Pere
::Ubu and inherit further changes
:
60 # Both Raygun's and Pere::Ubu's suitcases are now Blue
61 Pere
::Ubu
->Suitcase
('Blue'
);
63 However
, should Raygun decide to
set its own Suitcase
() it has now
64 "overridden" Pere
::Ubu and is on its own
, just like
if it had
67 # Raygun has an orange suitcase, Pere::Ubu's is still Blue.
68 Raygun
->Suitcase
('Orange'
);
70 Now that Raygun has overridden Pere
::Ubu futher changes by Pere
::Ubu
71 no longer effect Raygun.
73 # Raygun still has an orange suitcase, but Pere::Ubu is using Samsonite.
74 Pere
::Ubu
->Suitcase
('Samsonite'
);
77 # This package was generated automatically with the cpan2rpm
78 # utility. To get this software or for more information
79 # please visit: http://perl.arix.com/
83 %setup -q
-n
%{pkgname}-%{version}
84 chmod
-R u
+w
%{_builddir}/%{pkgname}-%{version}
87 grep
-rsl '^
#!.*perl' . |
88 grep
-v '.bak$' |xargs
--no
-run
-if-empty \
89 %__perl -MExtUtils
::MakeMaker
-e 'MY
->fixin
(@ARGV
)'
90 CFLAGS
="$RPM_OPT_FLAGS"
91 %{__perl} Makefile.PL `%{__perl} -MExtUtils::MakeMaker -e ' print qq|PREFIX=%{buildroot}%{_prefix}|
if \$ExtUtils
::MakeMaker
::VERSION
=~
/5\
.9[1-6]|
6\
.0[0-5]/ '`
98 [ "
%{buildroot}" != "/" ] && rm -rf %{buildroot}
100 %{makeinstall} `%{__perl} -MExtUtils::MakeMaker -e ' print \$ExtUtils::MakeMaker::VERSION <= 6.05 ? qq|PREFIX=%{buildroot}%{_prefix}| : qq|DESTDIR=%{buildroot}| '`
102 cmd
=/usr
/share
/spec
-helper
/compress_files
103 [ -x $cmd
] || cmd
=/usr
/lib
/rpm
/brp
-compress
107 if [ -e
/etc
/SuSE
-release
-o
-e
/etc
/UnitedLinux
-release
]
109 %{__mkdir_p} %{buildroot}/var
/adm
/perl
-modules
110 %{__cat} `find %{buildroot} -name "perllocal.pod"` \
111 |
%{__sed} -e s+%{buildroot}++g \
112 > %{buildroot}/var/adm/perl-modules/%{name}
115 # remove special files
116 find
%{buildroot} -name "perllocal.pod" \
117 -o
-name ".packlist" \
121 # no empty directories
122 find
%{buildroot}%{_prefix} \
124 -exec rmdir {} \
; 2>/dev
/null
126 %{__perl} -MFile
::Find
-le '
127 find
({ wanted
=> \
&wanted
, no_chdir
=> 1}, "
%{buildroot}"
);
128 print "
%doc doc Changes README"
;
129 for my $x
(sort @
dirs, @files
) {
130 push @ret
, $x unless indirs
($x
);
132 print join "\n"
, sort @ret
;
137 local $_
= $File
::Find
::name
;
138 my $f
= $_
; s|^\Q
%{buildroot}\E||
;
139 return unless length
;
140 return $files
[@files
] = $_
if -f $f
;
143 /\Q$d\E
/ && return for reverse sort @INC
;
144 $d
=~
/\Q$_\E
/ && return
145 for qw|
/etc
%_prefix/man
%_prefix/bin
%_prefix/share|
;
152 $x
=~
/^\Q$_\E\
// && $x ne $_
&& return 1 for @
dirs;
156 [ -z
%filelist ] && {
157 echo "ERROR
: empty
%files listing"
162 [ "
%{buildroot}" != "/" ] && rm -rf %{buildroot}
165 %defattr(-,root
,root
)
168 * Thu Nov
23 2006 root@dca02