Stephan Kulow
2011-04-21 10:38:39 +00:00
committed by Git OBS Bridge
commit add8cb306e
5 changed files with 209 additions and 0 deletions

23
.gitattributes vendored Normal file
View 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
View File

@@ -0,0 +1 @@
.osc

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e904e235a33b57f86acc5ffaeadd676d5b8a55e6b05385524fd13f83e9bfc8e8
size 119036

View 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
View 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