Hello community,
here is the log from the commit of package perl-IO-stringy for openSUSE:Factory checked in at 2015-05-07 08:29:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-IO-stringy (Old)
and /work/SRC/openSUSE:Factory/.perl-IO-stringy.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-IO-stringy"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-IO-stringy/perl-IO-stringy.changes 2013-04-16 06:52:41.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-IO-stringy.new/perl-IO-stringy.changes 2015-05-07 08:29:20.000000000 +0200
@@ -1,0 +2,11 @@
+Wed May 6 11:11:29 UTC 2015 - coolo@suse.com
+
+- fix license to be perl's
+
+-------------------------------------------------------------------
+Sat May 2 09:26:25 UTC 2015 - coolo@suse.com
+
+- updated to 2.111
+ see /usr/share/doc/packages/perl-IO-stringy/
+
+-------------------------------------------------------------------
Old:
----
IO-stringy-2.110.tar.gz
New:
----
IO-stringy-2.111.tar.gz
cpanspec.yml
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-IO-stringy.spec ++++++
--- /var/tmp/diff_new_pack.Hf5AL9/_old 2015-05-07 08:29:20.000000000 +0200
+++ /var/tmp/diff_new_pack.Hf5AL9/_new 2015-05-07 08:29:20.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-IO-stringy
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# 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
@@ -17,51 +17,43 @@
Name: perl-IO-stringy
+Version: 2.111
+Release: 0
+#Upstream: CHECK(GPL-1.0+ or Artistic-1.0)
%define cpan_name IO-stringy
-Url: http://search.cpan.org/perldoc?IO::Stringy
-Provides: p_iostrn
-Obsoletes: p_iostrn
-Summary: I/O on in-core objects like strings and arrays
-License: Artistic-1.0
+Summary: IO::stringy Perl module
+License: Artistic-1.0 or GPL-1.0+
Group: Development/Libraries/Perl
-Version: 2.110
-Release: 0
-Source: http://search.cpan.org/CPAN/authors/id/D/DS/DSKOLL/%{cpan_name}-%{version}.tar.gz
+Url: http://search.cpan.org/dist/IO-stringy/
+Source0: http://www.cpan.org/authors/id/D/DS/DSKOLL/%{cpan_name}-%{version}.tar.gz
+Source1: cpanspec.yml
+BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-%{perl_requires}
BuildRequires: perl
BuildRequires: perl-macros
+%{perl_requires}
%description
-I/O on in-core objects like strings and arrays
-
-
-
-Authors:
---------
- Eryq
+IO::stringy Perl module
%prep
-%setup -n %{cpan_name}-%{version}
+%setup -q -n %{cpan_name}-%{version}
+find . -type f -print0 | xargs -0 chmod 644
%build
-perl Makefile.PL
-make %{?_smp_mflags}
+%{__perl} Makefile.PL INSTALLDIRS=vendor
+%{__make} %{?_smp_mflags}
%check
-make test
+%{__make} test
%install
-[ "$RPM_BUILD_ROOT" != "/" ] && [ -d $RPM_BUILD_ROOT ] && rm -rf $RPM_BUILD_ROOT;
-make DESTDIR=$RPM_BUILD_ROOT install_vendor
+%perl_make_install
%perl_process_packlist
+%perl_gen_filelist
-%files
-%defattr(-,root,root)
-%{perl_vendorlib}/IO
-%{perl_vendorarch}/auto/IO
-%{perl_vendorarch}/auto/IO/Stringy
-%doc %{_mandir}/man3/*.gz
-%doc MANIFEST COPYING README*
+%files -f %{name}.files
+%defattr(-,root,root,755)
+%doc COPYING examples README
%changelog
++++++ IO-stringy-2.110.tar.gz -> IO-stringy-2.111.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-stringy-2.110/MANIFEST new/IO-stringy-2.111/MANIFEST
--- old/IO-stringy-2.110/MANIFEST 2005-02-10 22:22:10.000000000 +0100
+++ new/IO-stringy-2.111/MANIFEST 2011-03-02 17:24:00.000000000 +0100
@@ -14,6 +14,7 @@
lib/IO/WrapTie.pm
t/Common.pm
t/ExtUtils/TBone.pm
+t/IO_InnerFile.t
t/IO_Lines.t
t/IO_Scalar.t
t/IO_ScalarArray.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-stringy-2.110/META.yml new/IO-stringy-2.111/META.yml
--- old/IO-stringy-2.110/META.yml 2005-02-10 21:08:29.000000000 +0100
+++ new/IO-stringy-2.111/META.yml 2015-04-22 19:26:51.000000000 +0200
@@ -1,10 +1,20 @@
-# http://module-build.sourceforge.net/META-spec.html
-#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#
-name: IO-stringy
-version: 2.110
-version_from: lib/IO/Stringy.pm
-installdirs: site
-requires:
-
-distribution_type: module
-generated_by: ExtUtils::MakeMaker version 6.17
+--- #YAML:1.0
+name: IO-stringy
+version: 2.111
+abstract: ~
+author: []
+license: unknown
+distribution_type: module
+configure_requires:
+ ExtUtils::MakeMaker: 0
+build_requires:
+ ExtUtils::MakeMaker: 0
+requires: {}
+no_index:
+ directory:
+ - t
+ - inc
+generated_by: ExtUtils::MakeMaker version 6.57_05
+meta-spec:
+ url: http://module-build.sourceforge.net/META-spec-v1.4.html
+ version: 1.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-stringy-2.110/README new/IO-stringy-2.111/README
--- old/IO-stringy-2.110/README 2005-02-10 22:24:05.000000000 +0100
+++ new/IO-stringy-2.111/README 2015-04-22 19:25:41.000000000 +0200
@@ -94,6 +94,10 @@
like an IO::Scalar in its use of globrefs.
CHANGE LOG
+ Version 2.111 (2015/04/22)
+
+ Update maintainer's name, which is now Dianne Skoll.
+
Version 2.110 (2005/02/10)
Maintainership taken over by DSKOLL
@@ -289,7 +293,7 @@
AUTHOR
Primary Maintainer
- David F. Skoll (dfs@roaringpenguin.com).
+ Dianne Skoll (dfs@roaringpenguin.com).
Original Author
Eryq (eryq@zeegee.com). President, ZeeGee Software Inc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-stringy-2.110/lib/IO/AtomicFile.pm new/IO-stringy-2.111/lib/IO/AtomicFile.pm
--- old/IO-stringy-2.110/lib/IO/AtomicFile.pm 2005-02-10 22:21:53.000000000 +0100
+++ new/IO-stringy-2.111/lib/IO/AtomicFile.pm 2015-04-22 19:26:15.000000000 +0200
@@ -17,7 +17,7 @@
use vars qw($VERSION @ISA);
# The package version, both in 1.23 style *and* usable by MakeMaker:
-$VERSION = "2.110";
+$VERSION = "2.111";
# Inheritance:
@ISA = qw(IO::File);
@@ -86,10 +86,13 @@
sub close {
my ($self, $die) = @_;
unless ($self->_closed(1)) { ### sentinel...
- $self->SUPER::close();
- rename(${*$self}{'io_atomicfile_temp'},
- ${*$self}{'io_atomicfile_path'})
- or ($die ? die "close atomic file: $!\n" : return undef);
+ if ($self->SUPER::close()) {
+ rename(${*$self}{'io_atomicfile_temp'},
+ ${*$self}{'io_atomicfile_path'})
+ or ($die ? die "close (rename) atomic file: $!\n" : return undef);
+ } else {
+ ($die ? die "close atomic file: $!\n" : return undef);
+ }
}
1;
}
@@ -174,14 +177,14 @@
fails. The explicit close() just returns undef.
You can also decide at any point to trash the file you've been
-building.
+building.
=head1 AUTHOR
=head2 Primary Maintainer
-David F. Skoll (F).
+Dianne Skoll (F).
=head2 Original Author
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-stringy-2.110/lib/IO/InnerFile.pm new/IO-stringy-2.111/lib/IO/InnerFile.pm
--- old/IO-stringy-2.110/lib/IO/InnerFile.pm 2005-02-10 22:21:53.000000000 +0100
+++ new/IO-stringy-2.111/lib/IO/InnerFile.pm 2015-04-22 19:26:14.000000000 +0200
@@ -30,7 +30,7 @@
use Symbol;
# The package version, both in 1.23 style *and* usable by MakeMaker:
-$VERSION = "2.110";
+$VERSION = "2.111";
#------------------------------
@@ -146,10 +146,12 @@
sub print { shift->PRINT(@_) }
sub printf { shift->PRINTF(@_) }
sub flush { "0 but true"; }
+sub fileno { }
sub binmode { 1; }
sub getc { return GETC(tied(${$_[0]}) ); }
sub read { return READ( tied(${$_[0]}), @_[1,2,3] ); }
sub readline { return READLINE( tied(${$_[0]}) ); }
+
sub getline { return READLINE( tied(${$_[0]}) ); }
sub close { return CLOSE(tied(${$_[0]}) ); }
@@ -226,10 +228,27 @@
return $lg;
}
-sub READLINE {
+sub READLINE {
+ my ($self) = @_;
+ return $self->_readline_helper() unless wantarray;
+ my @arr;
+ while(defined(my $line = $self->_readline_helper())) {
+ push(@arr, $line);
+ }
+ return @arr;
+}
+
+sub _readline_helper {
my ($self) = @_;
return undef if ($self->{CRPOS} >= $self->{LG});
+ # Handle slurp mode (CPAN ticket #72710)
+ if (! defined($/)) {
+ my $text;
+ $self->READ($text, $self->{LG} - $self->{CRPOS});
+ return $text;
+ }
+
### Save and seek...
my $old_pos = $self->{FH}->tell;
$self->{FH}->seek($self->{CRPOS}+$self->{START}, 0);
@@ -275,7 +294,7 @@
Documentation and by Eryq (eryq@zeegee.com).
-Currently maintained by David F. Skoll (dfs@roaringpenguin.com).
+Currently maintained by Dianne Skoll (dfs@roaringpenguin.com).
=cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-stringy-2.110/lib/IO/Lines.pm new/IO-stringy-2.111/lib/IO/Lines.pm
--- old/IO-stringy-2.110/lib/IO/Lines.pm 2005-02-10 22:21:53.000000000 +0100
+++ new/IO-stringy-2.111/lib/IO/Lines.pm 2015-04-22 19:26:14.000000000 +0200
@@ -40,7 +40,7 @@
use vars qw($VERSION @ISA);
# The package version, both in 1.23 style *and* usable by MakeMaker:
-$VERSION = "2.110";
+$VERSION = "2.111";
# Inheritance:
@ISA = qw(IO::ScalarArray); ### also gets us new_tie :-)
@@ -161,7 +161,7 @@
=head2 Primary Maintainer
-David F. Skoll (F).
+Dianne Skoll (F).
=head2 Principal author
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-stringy-2.110/lib/IO/Scalar.pm new/IO-stringy-2.111/lib/IO/Scalar.pm
--- old/IO-stringy-2.110/lib/IO/Scalar.pm 2005-02-10 22:21:53.000000000 +0100
+++ new/IO-stringy-2.111/lib/IO/Scalar.pm 2015-04-22 19:26:12.000000000 +0200
@@ -158,7 +158,7 @@
use overload 'bool' => sub { 1 }; ### have to do this, so object is true!
### The package version, both in 1.23 style *and* usable by MakeMaker:
-$VERSION = "2.110";
+$VERSION = "2.111";
### Inheritance:
@ISA = qw(IO::Handle);
@@ -279,6 +279,17 @@
#------------------------------
+=item fileno
+
+I<Instance method.>
+No-op, returns undef
+
+=cut
+
+sub fileno { }
+
+#------------------------------
+
=item getc
I<Instance method.>
@@ -316,7 +327,7 @@
my $i = *$self->{Pos}; ### Start matching at this point.
### Minimal impact implementation!
- ### We do the fast fast thing (no regexps) if using the
+ ### We do the fast thing (no regexps) if using the
### classic input record separator.
### Case 1: $/ is undef: slurp all...
@@ -619,7 +630,7 @@
# use_RS [YESNO]
#
# I<Instance method.>
-# Obey the curent setting of $/, like IO::Handle does?
+# Obey the current setting of $/, like IO::Handle does?
# Default is false in 1.x, but cold-welded true in 2.x and later.
#
sub use_RS {
@@ -682,6 +693,7 @@
sub SEEK { shift->seek(@_); }
sub TELL { shift->tell(@_); }
sub EOF { shift->eof(@_); }
+sub BINMODE { 1; }
#------------------------------------------------------------
@@ -725,7 +737,7 @@
=head2 Primary Maintainer
-David F. Skoll (F).
+Dianne Skoll (F).
=head2 Principal author
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-stringy-2.110/lib/IO/ScalarArray.pm new/IO-stringy-2.111/lib/IO/ScalarArray.pm
--- old/IO-stringy-2.110/lib/IO/ScalarArray.pm 2005-02-10 22:21:53.000000000 +0100
+++ new/IO-stringy-2.111/lib/IO/ScalarArray.pm 2015-04-22 19:26:15.000000000 +0200
@@ -150,7 +150,7 @@
use IO::Handle;
# The package version, both in 1.23 style *and* usable by MakeMaker:
-$VERSION = "2.110";
+$VERSION = "2.111";
# Inheritance:
@ISA = qw(IO::Handle);
@@ -270,6 +270,17 @@
#------------------------------
+=item fileno
+
+I<Instance method.>
+No-op, returns undef
+
+=cut
+
+sub fileno { }
+
+#------------------------------
+
=item getc
I<Instance method.>
@@ -300,7 +311,7 @@
### Minimal impact implementation!
- ### We do the fast fast thing (no regexps) if using the
+ ### We do the fast thing (no regexps) if using the
### classic input record separator.
### Case 1: $/ is undef: slurp all...
@@ -323,7 +334,7 @@
### Case 2: $/ is "\n":
elsif ($/ eq "\012") {
- ### Until we hit EOF (or exitted because of a found line):
+ ### Until we hit EOF (or exited because of a found line):
until ($self->eof) {
### If at end of current string, go fwd to next one (won't be EOF):
if ($self->_eos) {++*$self->{Str}, *$self->{Pos}=0};
@@ -710,6 +721,7 @@
sub SEEK { shift->seek(@_); }
sub TELL { shift->tell(@_); }
sub EOF { shift->eof(@_); }
+sub BINMODE { 1; }
#------------------------------------------------------------
@@ -759,7 +771,7 @@
=head2 Primary Maintainer
-David F. Skoll (F).
+Dianne Skoll (F).
=head2 Principal author
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-stringy-2.110/lib/IO/Stringy.pm new/IO-stringy-2.111/lib/IO/Stringy.pm
--- old/IO-stringy-2.110/lib/IO/Stringy.pm 2005-02-10 22:24:05.000000000 +0100
+++ new/IO-stringy-2.111/lib/IO/Stringy.pm 2015-04-22 19:26:15.000000000 +0200
@@ -1,7 +1,7 @@
package IO::Stringy;
use vars qw($VERSION);
-$VERSION = "2.110";
+$VERSION = "2.111";
1;
__END__
@@ -417,7 +417,7 @@
=item Primary Maintainer
-David F. Skoll (F).
+Dianne Skoll (F).
=item Original Author
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-stringy-2.110/lib/IO/Wrap.pm new/IO-stringy-2.111/lib/IO/Wrap.pm
--- old/IO-stringy-2.110/lib/IO/Wrap.pm 2005-02-10 22:21:53.000000000 +0100
+++ new/IO-stringy-2.111/lib/IO/Wrap.pm 2015-04-22 19:26:15.000000000 +0200
@@ -13,7 +13,7 @@
use Carp;
# The package version, both in 1.23 style *and* usable by MakeMaker:
-$VERSION = "2.110";
+$VERSION = "2.111";
#------------------------------
@@ -49,6 +49,12 @@
my $self = shift;
return close($$self);
}
+sub fileno {
+ my $self = shift;
+ my $fh = $$self;
+ return fileno($fh);
+}
+
sub getline {
my $self = shift;
my $fh = $$self;
@@ -211,7 +217,7 @@
=item Primary Maintainer
-David F. Skoll (F).
+Dianne Skoll (F).
=item Original Author
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-stringy-2.110/lib/IO/WrapTie.pm new/IO-stringy-2.111/lib/IO/WrapTie.pm
--- old/IO-stringy-2.110/lib/IO/WrapTie.pm 2005-02-10 22:21:53.000000000 +0100
+++ new/IO-stringy-2.111/lib/IO/WrapTie.pm 2015-04-22 19:26:14.000000000 +0200
@@ -12,7 +12,7 @@
# Inheritance, exporting, and package version:
@ISA = qw(Exporter);
@EXPORT = qw(wraptie);
-$VERSION = "2.110";
+$VERSION = "2.111";
# Function, exported.
sub wraptie {
@@ -480,7 +480,7 @@
=item Primary Maintainer
-David F. Skoll (F).
+Dianne Skoll (F).
=item Original Author
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-stringy-2.110/t/IO_InnerFile.t new/IO-stringy-2.111/t/IO_InnerFile.t
--- old/IO-stringy-2.110/t/IO_InnerFile.t 1970-01-01 01:00:00.000000000 +0100
+++ new/IO-stringy-2.111/t/IO_InnerFile.t 2011-11-25 17:25:47.000000000 +0100
@@ -0,0 +1,75 @@
+#!/usr/bin/perl -w #-*-Perl-*-
+
+use lib "./t", "./lib";
+use IO::InnerFile;
+use IO::File;
+
+use ExtUtils::TBone;
+use Common;
+
+
+#--------------------
+#
+# TEST...
+#
+#--------------------
+
+# Make a tester:
+my $T = typical ExtUtils::TBone;
+Common->test_init(TBone=>$T);
+
+$T->begin(7);
+
+# Create a test file
+open(OUT, '>t/dummy-test-file') || die("Cannot write t/dummy-test-file: $!");
+print OUT <<'EOF';
+Here is some dummy content.
+Here is some more dummy content
+Here is yet more dummy content.
+And finally another line.
+EOF
+close(OUT);
+
+# Open it as a regular file handle
+my $fh = IO::File->new('new($fh, 28, 64); # Second and third lines
+
+my $line;
+$line = <$inner>;
+$T->ok_eq($line, "Here is some more dummy content\n");
+$line = <$inner>;
+$T->ok_eq($line, "Here is yet more dummy content.\n");
+$line = <$inner>;
+$T->ok(!defined($line));
+
+$inner->close();
+
+$inner = IO::InnerFile->new($fh, 28, 64); # Second and third lines
+
+# Test list context (CPAN ticket #66186)
+my @arr;
+@arr = <$inner>;
+$T->ok(scalar(@arr) == 2);
+$T->ok_eq($arr[0], "Here is some more dummy content\n");
+$T->ok_eq($arr[1], "Here is yet more dummy content.\n");
+
+# Make sure slurp mode works as expected
+$inner->seek(0, 0);
+{
+ local $/;
+ my $contents = <$inner>;
+ $T->ok_eq($contents, "Here is some more dummy content\nHere is yet more dummy content.\n");
+}
+
+# So we know everything went well...
+$T->end;
+unlink('t/dummy-test-file');
+
+
+
+
+
+
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-stringy-2.110/t/IO_Scalar.t new/IO-stringy-2.111/t/IO_Scalar.t
--- old/IO-stringy-2.110/t/IO_Scalar.t 2001-08-09 09:42:40.000000000 +0200
+++ new/IO-stringy-2.111/t/IO_Scalar.t 2011-05-17 17:51:51.000000000 +0200
@@ -21,7 +21,7 @@
$T->log_warnings;
### Set the counter:
-my $main_tests = 1 + 1;
+my $main_tests = 1 + 1 + 1;
my $common_tests = (1 + 1 + 4 + 4 + 3 + 4
+ Common->test_recordsep_count($RECORDSEP_TESTS));
$T->begin($main_tests + $common_tests);
@@ -31,6 +31,9 @@
my $SH = IO::Scalar->new(\$s);
$T->ok($SH, "OPEN: open a scalar on a ref to a string");
+### Make sure fileno does not die
+$T->ok(!defined($SH->fileno()), "fileno() returns undef");
+
### Run standard tests:
Common->test_print($SH);
$T->ok(($s eq $Common::FDATA_S), "FULL",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/IO-stringy-2.110/t/IO_ScalarArray.t new/IO-stringy-2.111/t/IO_ScalarArray.t
--- old/IO-stringy-2.110/t/IO_ScalarArray.t 2001-08-09 10:00:46.000000000 +0200
+++ new/IO-stringy-2.111/t/IO_ScalarArray.t 2011-05-17 17:51:51.000000000 +0200
@@ -20,7 +20,7 @@
Common->test_init(TBone=>$T);
# Set the counter:
-my $main_tests = 1;
+my $main_tests = 1+1;
my $common_tests = (1 + 1 + 4 + 4 + 3 + 4
+ Common->test_recordsep_count($RECORDSEP_TESTS));
$T->begin($main_tests + $common_tests);
@@ -29,6 +29,7 @@
my @sa = @Common::DATA_SA;
my $SAH = IO::ScalarArray->new(\@sa);
$T->ok($SAH, "OPEN: open a scalar on a ref to an array");
+$T->ok(!defined($SAH->fileno()), 'fileno() returns undef');
# Run standard tests:
Common->test_print($SAH);
++++++ cpanspec.yml ++++++
---
#description_paragraphs: 3
#no_testing: broken upstream
#sources:
# - source1
# - source2
#patches:
# foo.patch: -p1
# bar.patch:
#preamble: |-
# BuildRequires: gcc-c++
#post_prep: |-
# hunspell=`pkg-config --libs hunspell | sed -e 's,-l,,; s, *,,g'`
# sed -i -e "s,hunspell-X,$hunspell," t/00-prereq.t Makefile.PL
#post_install: |-
# sed on %{name}.files
license: Perl License
#skip_noarch: 1
#custom_build: |-
#./Build build flags=%{?_smp_mflags} --myflag
#custom_test: |-
#startserver && make test
#ignore_requires: Bizarre::Module