commit add8cb306e93d4d383d5f1e3439dbfd6f6e2bb2dbbbd3465b35277010b1cb53e Author: Stephan Kulow Date: Thu Apr 21 10:38:39 2011 +0000 initial package OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl-Object-InsideOut?expand=0&rev=1 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -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 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/Object-InsideOut-3.81.tar.gz b/Object-InsideOut-3.81.tar.gz new file mode 100644 index 0000000..6539c11 --- /dev/null +++ b/Object-InsideOut-3.81.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e904e235a33b57f86acc5ffaeadd676d5b8a55e6b05385524fd13f83e9bfc8e8 +size 119036 diff --git a/perl-Object-InsideOut.changes b/perl-Object-InsideOut.changes new file mode 100644 index 0000000..1349fab --- /dev/null +++ b/perl-Object-InsideOut.changes @@ -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 + diff --git a/perl-Object-InsideOut.spec b/perl-Object-InsideOut.spec new file mode 100644 index 0000000..7937ab7 --- /dev/null +++ b/perl-Object-InsideOut.spec @@ -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