initial package
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl-Object-InsideOut?expand=0&rev=1
This commit is contained in:
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
## Default LFS
|
||||||
|
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
.osc
|
3
Object-InsideOut-3.81.tar.gz
Normal file
3
Object-InsideOut-3.81.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:e904e235a33b57f86acc5ffaeadd676d5b8a55e6b05385524fd13f83e9bfc8e8
|
||||||
|
size 119036
|
6
perl-Object-InsideOut.changes
Normal file
6
perl-Object-InsideOut.changes
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Apr 21 10:38:33 UTC 2011 - coolo@opensuse.org
|
||||||
|
|
||||||
|
- initial package 3.81
|
||||||
|
* created by cpanspec 1.78.04
|
||||||
|
|
176
perl-Object-InsideOut.spec
Normal file
176
perl-Object-InsideOut.spec
Normal file
@@ -0,0 +1,176 @@
|
|||||||
|
#
|
||||||
|
# spec file for package perl-Object-InsideOut (Version 3.81)
|
||||||
|
#
|
||||||
|
# Copyright (c) 2010 SUSE LINUX Products 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-InsideOut
|
||||||
|
Version: 3.81
|
||||||
|
Release: 1
|
||||||
|
License: GPL+ or Artistic
|
||||||
|
%define cpan_name Object-InsideOut
|
||||||
|
Summary: Comprehensive inside-out object support module
|
||||||
|
Url: http://search.cpan.org/dist/Object-InsideOut/
|
||||||
|
Group: Development/Libraries/Perl
|
||||||
|
Source: http://www.cpan.org/authors/id/J/JD/JDHEDDEN/%{cpan_name}-%{version}.tar.gz
|
||||||
|
BuildArch: noarch
|
||||||
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
|
BuildRequires: perl
|
||||||
|
BuildRequires: perl(Module::Build)
|
||||||
|
BuildRequires: perl-macros
|
||||||
|
BuildRequires: perl(attributes)
|
||||||
|
BuildRequires: perl(B)
|
||||||
|
BuildRequires: perl(Config)
|
||||||
|
BuildRequires: perl(Data::Dumper)
|
||||||
|
BuildRequires: perl(Exception::Class) >= 1.29
|
||||||
|
BuildRequires: perl(ExtUtils::MakeMaker)
|
||||||
|
BuildRequires: perl(Module::Build)
|
||||||
|
BuildRequires: perl(overload)
|
||||||
|
BuildRequires: perl(Scalar::Util) >= 1.23
|
||||||
|
BuildRequires: perl(strict)
|
||||||
|
BuildRequires: perl(Test::More) >= 0.5
|
||||||
|
BuildRequires: perl(warnings)
|
||||||
|
Requires: perl(attributes)
|
||||||
|
Requires: perl(B)
|
||||||
|
Requires: perl(Config)
|
||||||
|
Requires: perl(Data::Dumper)
|
||||||
|
Requires: perl(Exception::Class) >= 1.29
|
||||||
|
Requires: perl(overload)
|
||||||
|
Requires: perl(Scalar::Util) >= 1.23
|
||||||
|
Requires: perl(strict)
|
||||||
|
Requires: perl(Test::More) >= 0.5
|
||||||
|
Requires: perl(warnings)
|
||||||
|
Recommends: perl(Math::Random::MT::Auto)
|
||||||
|
Recommends: perl(Want)
|
||||||
|
%{perl_requires}
|
||||||
|
|
||||||
|
%description
|
||||||
|
This module provides comprehensive support for implementing classes using
|
||||||
|
the inside-out object model.
|
||||||
|
|
||||||
|
Object::InsideOut implements inside-out objects as anonymous scalar
|
||||||
|
references that are blessed into a class with the scalar containing the ID
|
||||||
|
for the object (usually a sequence number). For Perl 5.8.3 and later, the
|
||||||
|
scalar reference is set as *read-only* to prevent _accidental_
|
||||||
|
modifications to the ID. Object data (i.e., fields) are stored within the
|
||||||
|
class's package in either arrays indexed by the object's ID, or hashes
|
||||||
|
keyed to the object's ID.
|
||||||
|
|
||||||
|
The virtues of the inside-out object model over the _blessed hash_ object
|
||||||
|
model have been extolled in detail elsewhere. See the informational links
|
||||||
|
under the /"SEE ALSO" manpage. Briefly, inside-out objects offer the
|
||||||
|
following advantages over _blessed hash_ objects:
|
||||||
|
|
||||||
|
* * Encapsulation
|
||||||
|
|
||||||
|
Object data is enclosed within the class's code and is accessible only
|
||||||
|
through the class-defined interface.
|
||||||
|
|
||||||
|
* * Field Name Collision Avoidance
|
||||||
|
|
||||||
|
Inheritance using _blessed hash_ classes can lead to conflicts if any
|
||||||
|
classes use the same name for a field (i.e., hash key). Inside-out
|
||||||
|
objects are immune to this problem because object data is stored inside
|
||||||
|
each class's package, and not in the object itself.
|
||||||
|
|
||||||
|
* * Compile-time Name Checking
|
||||||
|
|
||||||
|
A common error with _blessed hash_ classes is the misspelling of field
|
||||||
|
names:
|
||||||
|
|
||||||
|
$obj->{'coment'} = 'Say what?'; # Should be 'comment' not 'coment'
|
||||||
|
|
||||||
|
As there is no compile-time checking on hash keys, such errors do not
|
||||||
|
usually manifest themselves until runtime.
|
||||||
|
|
||||||
|
With inside-out objects, _text_ hash keys are not used for accessing
|
||||||
|
field data. Field names and the data index (i.e., $$self) are checked by
|
||||||
|
the Perl compiler such that any typos are easily caught using 'perl -c'.
|
||||||
|
|
||||||
|
$coment[$$self] = $value; # Causes a compile-time error
|
||||||
|
# or with hash-based fields
|
||||||
|
$comment{$$self} = $value; # Also causes a compile-time error
|
||||||
|
|
||||||
|
Object::InsideOut offers all the capabilities of other inside-out object
|
||||||
|
modules with the following additional key advantages:
|
||||||
|
|
||||||
|
* * Speed
|
||||||
|
|
||||||
|
When using arrays to store object data, Object::InsideOut objects are as
|
||||||
|
much as 40% faster than _blessed hash_ objects for fetching and setting
|
||||||
|
data, and even with hashes they are still several percent faster than
|
||||||
|
_blessed hash_ objects.
|
||||||
|
|
||||||
|
* * Threads
|
||||||
|
|
||||||
|
Object::InsideOut is thread safe, and thoroughly supports sharing objects
|
||||||
|
between threads using the threads::shared manpage.
|
||||||
|
|
||||||
|
* * Flexibility
|
||||||
|
|
||||||
|
Allows control over object ID specification, accessor naming, parameter
|
||||||
|
name matching, and much more.
|
||||||
|
|
||||||
|
* * Runtime Support
|
||||||
|
|
||||||
|
Supports classes that may be loaded at runtime (i.e., using 'eval {
|
||||||
|
require ...; };'). This makes it usable from within the mod_perl manpage,
|
||||||
|
as well. Also supports additions to class hierarchies, and dynamic
|
||||||
|
creation of object fields during runtime.
|
||||||
|
|
||||||
|
* * Exception Objects
|
||||||
|
|
||||||
|
Object::InsideOut uses the Exception::Class manpage for handling errors
|
||||||
|
in an OO-compatible manner.
|
||||||
|
|
||||||
|
* * Object Serialization
|
||||||
|
|
||||||
|
Object::InsideOut has built-in support for object dumping and reloading
|
||||||
|
that can be accomplished in either an automated fashion or through the
|
||||||
|
use of class-supplied subroutines. Serialization using the Storable
|
||||||
|
manpage is also supported.
|
||||||
|
|
||||||
|
* * Foreign Class Inheritance
|
||||||
|
|
||||||
|
Object::InsideOut allows classes to inherit from foreign (i.e.,
|
||||||
|
non-Object::InsideOut) classes, thus allowing you to sub-class other Perl
|
||||||
|
class, and access their methods from your own objects.
|
||||||
|
|
||||||
|
* * Introspection
|
||||||
|
|
||||||
|
Obtain constructor parameters and method metadata for Object::InsideOut
|
||||||
|
classes.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q -n %{cpan_name}-%{version}
|
||||||
|
|
||||||
|
%build
|
||||||
|
%{__perl} Build.PL installdirs=vendor
|
||||||
|
./Build build flags=%{?_smp_mflags}
|
||||||
|
|
||||||
|
%check
|
||||||
|
./Build test
|
||||||
|
|
||||||
|
%install
|
||||||
|
./Build install destdir=%{buildroot} create_packlist=0
|
||||||
|
%perl_gen_filelist
|
||||||
|
|
||||||
|
%clean
|
||||||
|
%{__rm} -rf %{buildroot}
|
||||||
|
|
||||||
|
%files -f %{name}.files
|
||||||
|
%defattr(-,root,root,755)
|
||||||
|
%doc Changes examples README
|
||||||
|
|
||||||
|
%changelog
|
Reference in New Issue
Block a user