2015-02-13 20:03:50 +00:00
|
|
|
#
|
|
|
|
# spec file for package perl-Object-Import
|
|
|
|
#
|
|
|
|
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
|
|
|
|
#
|
|
|
|
# All modifications and additions to the file contributed by third parties
|
|
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
|
|
# upon. The license for this file, and modifications and additions to the
|
|
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
|
|
# license for the pristine package is not an Open Source License, in which
|
|
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
|
|
# published by the Open Source Initiative.
|
|
|
|
|
|
|
|
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
|
|
Name: perl-Object-Import
|
|
|
|
Version: 1.004
|
|
|
|
Release: 0
|
|
|
|
%define cpan_name Object-Import
|
|
|
|
Summary: import methods of an object as functions to a package
|
2015-02-13 20:05:14 +00:00
|
|
|
License: GPL-3.0 or Artistic-1.0
|
2015-02-13 20:03:50 +00:00
|
|
|
Group: Development/Libraries/Perl
|
|
|
|
Url: http://search.cpan.org/dist/Object-Import/
|
|
|
|
Source: http://www.cpan.org/authors/id/A/AM/AMBRUS/%{cpan_name}-%{version}.tar.gz
|
|
|
|
BuildArch: noarch
|
|
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|
|
|
BuildRequires: perl
|
|
|
|
BuildRequires: perl-macros
|
|
|
|
BuildRequires: perl(MRO::Compat)
|
|
|
|
Requires: perl(MRO::Compat)
|
|
|
|
%{perl_requires}
|
2015-02-13 20:05:14 +00:00
|
|
|
# MANUAL License
|
2015-02-13 20:03:50 +00:00
|
|
|
|
|
|
|
%description
|
|
|
|
This module lets you call methods of a certain object more easily by
|
|
|
|
exporting them as functions to a package. The exported functions are not
|
|
|
|
called as methods and do not receive an object argument, but instead the
|
|
|
|
object is fixed at the time you import them with this module.
|
|
|
|
|
|
|
|
You use the module with the following syntax:
|
|
|
|
|
|
|
|
use Object::Import $object, %options;
|
|
|
|
|
|
|
|
Here, '$object' is the object from which you want to import the methods.
|
|
|
|
This can be a perl object (blessed reference), or the name of a package
|
|
|
|
that has class methods.
|
|
|
|
|
|
|
|
As usual, a 'use' statement is executed in compile time, so you should take
|
|
|
|
care not to use values that you compute only in run-time, eg.
|
|
|
|
|
|
|
|
my $object = Foo::Bar->new();
|
|
|
|
use Object::Import $object; # WRONG: $object is not yet initialized
|
|
|
|
|
|
|
|
Instead, you have to create the object before you import, such as
|
|
|
|
|
|
|
|
use Object::Import Foo::Bar->new();
|
|
|
|
|
|
|
|
You can also call import in run-time, eg.
|
|
|
|
|
|
|
|
use Object::Import ();
|
|
|
|
my $object = Foo::Bar->new();
|
|
|
|
import Object::Import $object;
|
|
|
|
|
|
|
|
but in that case, you can't call the imported functions without
|
|
|
|
parenthesis.
|
|
|
|
|
|
|
|
If you don't give an explicit list of methods to export, Object::Import
|
|
|
|
tries to find out what callable methods the object has and import all of
|
|
|
|
them. Some methods are excluded from exporting in this case, namely any
|
|
|
|
methods where exporting would overwrite a function existing in the target
|
|
|
|
package or would override a builtin function, also any methods with names
|
|
|
|
that are special to perl, such as 'DESTROY', and any methods whose name
|
|
|
|
starts with an underscore. This automatic search for methods is quite
|
|
|
|
fragile because of the way perl OO works, so it can find subroutines that
|
|
|
|
shouldn't actually be called as methods, or not find methods that can
|
|
|
|
actually be called. In particular, even if you import an object from a
|
|
|
|
purely object oriented module, it can find non-method subs imported from
|
|
|
|
other (non-OO) modules.
|
|
|
|
|
|
|
|
If you do give a list of methods to export, Object::Import trusts you know
|
|
|
|
what you mean, so it exports all those subs even if it has to replace
|
|
|
|
existing subs or break something else.
|
|
|
|
|
|
|
|
%prep
|
|
|
|
%setup -q -n %{cpan_name}-%{version}
|
|
|
|
|
|
|
|
%build
|
|
|
|
%{__perl} Makefile.PL INSTALLDIRS=vendor
|
|
|
|
%{__make} %{?_smp_mflags}
|
|
|
|
|
|
|
|
%check
|
|
|
|
%{__make} test
|
|
|
|
|
|
|
|
%install
|
|
|
|
%perl_make_install
|
|
|
|
%perl_process_packlist
|
|
|
|
%perl_gen_filelist
|
|
|
|
|
|
|
|
%files -f %{name}.files
|
|
|
|
%defattr(-,root,root,755)
|
|
|
|
%doc ARTISTIC CHANGES GPL README TODO
|
|
|
|
|
|
|
|
%changelog
|