r2399 - in packages: . libstring-koremutake-perl libstring-koremutake-perl/branches libstring-koremutake-perl/branches/upstream libstring-koremutake-perl/branches/upstream/current libstring-koremutake-perl/branches/upstream/current/lib libstring-koremutake-perl/branches/upstream/current/lib/String libstring-koremutake-perl/branches/upstream/current/t

gregor herrmann gregoa-guest at costa.debian.org
Fri Mar 17 19:28:37 UTC 2006


Author: gregoa-guest
Date: 2006-03-17 19:28:37 +0000 (Fri, 17 Mar 2006)
New Revision: 2399

Added:
   packages/libstring-koremutake-perl/
   packages/libstring-koremutake-perl/branches/
   packages/libstring-koremutake-perl/branches/upstream/
   packages/libstring-koremutake-perl/branches/upstream/current/
   packages/libstring-koremutake-perl/branches/upstream/current/Build.PL
   packages/libstring-koremutake-perl/branches/upstream/current/CHANGES
   packages/libstring-koremutake-perl/branches/upstream/current/MANIFEST
   packages/libstring-koremutake-perl/branches/upstream/current/META.yml
   packages/libstring-koremutake-perl/branches/upstream/current/Makefile.PL
   packages/libstring-koremutake-perl/branches/upstream/current/README
   packages/libstring-koremutake-perl/branches/upstream/current/lib/
   packages/libstring-koremutake-perl/branches/upstream/current/lib/String/
   packages/libstring-koremutake-perl/branches/upstream/current/lib/String/Koremutake.pm
   packages/libstring-koremutake-perl/branches/upstream/current/t/
   packages/libstring-koremutake-perl/branches/upstream/current/t/pod.t
   packages/libstring-koremutake-perl/branches/upstream/current/t/pod_coverage.t
   packages/libstring-koremutake-perl/branches/upstream/current/t/simple.t
   packages/libstring-koremutake-perl/tags/
Log:
[svn-inject] Installing original source of libstring-koremutake-perl

Added: packages/libstring-koremutake-perl/branches/upstream/current/Build.PL
===================================================================
--- packages/libstring-koremutake-perl/branches/upstream/current/Build.PL	2006-03-17 19:13:56 UTC (rev 2398)
+++ packages/libstring-koremutake-perl/branches/upstream/current/Build.PL	2006-03-17 19:28:37 UTC (rev 2399)
@@ -0,0 +1,14 @@
+use Module::Build;
+use strict;
+
+my $build = Module::Build->new(
+  create_makefile_pl => 'traditional',
+  license     => 'perl',
+  module_name => 'String::Koremutake',
+  requires    => {
+    'Error' => '0.15',
+    'Test::Exception' => '0.15',
+    'Test::More' => '0.01',
+  },
+);
+$build->create_build_script;

Added: packages/libstring-koremutake-perl/branches/upstream/current/CHANGES
===================================================================
--- packages/libstring-koremutake-perl/branches/upstream/current/CHANGES	2006-03-17 19:13:56 UTC (rev 2398)
+++ packages/libstring-koremutake-perl/branches/upstream/current/CHANGES	2006-03-17 19:28:37 UTC (rev 2399)
@@ -0,0 +1,12 @@
+ChangeLog for String::Koremutake:
+
+0.30 Mon Apr  4 07:02:38 CST 2005
+	- throw an exception if you don't pass in a number or
+          koremutake string
+	- minor doc cleanup
+
+0.29 Fri Mar 25 04:25:48 GMT 2005
+	- 100% pod coverage
+
+0.28 Sat Jan  8 11:41:27 GMT 2005
+	- First released version

Added: packages/libstring-koremutake-perl/branches/upstream/current/MANIFEST
===================================================================
--- packages/libstring-koremutake-perl/branches/upstream/current/MANIFEST	2006-03-17 19:13:56 UTC (rev 2398)
+++ packages/libstring-koremutake-perl/branches/upstream/current/MANIFEST	2006-03-17 19:28:37 UTC (rev 2399)
@@ -0,0 +1,10 @@
+Build.PL
+CHANGES
+lib/String/Koremutake.pm
+Makefile.PL
+MANIFEST			This list of files
+META.yml
+README
+t/pod.t
+t/pod_coverage.t
+t/simple.t

Added: packages/libstring-koremutake-perl/branches/upstream/current/META.yml
===================================================================
--- packages/libstring-koremutake-perl/branches/upstream/current/META.yml	2006-03-17 19:13:56 UTC (rev 2398)
+++ packages/libstring-koremutake-perl/branches/upstream/current/META.yml	2006-03-17 19:28:37 UTC (rev 2399)
@@ -0,0 +1,17 @@
+--- #YAML:1.0
+name: String-Koremutake
+version: 0.30
+author:
+  - Leon Brocard C<acme at astray.com>
+abstract: |-
+  Convert to/from Koremutake Memorable Random Strings
+license: perl
+requires:
+  Error: 0.15
+  Test::Exception: 0.15
+  Test::More: 0.01
+provides:
+  String::Koremutake:
+    file: lib/String/Koremutake.pm
+    version: 0.30
+generated_by: Module::Build version 0.2605

Added: packages/libstring-koremutake-perl/branches/upstream/current/Makefile.PL
===================================================================
--- packages/libstring-koremutake-perl/branches/upstream/current/Makefile.PL	2006-03-17 19:13:56 UTC (rev 2398)
+++ packages/libstring-koremutake-perl/branches/upstream/current/Makefile.PL	2006-03-17 19:28:37 UTC (rev 2399)
@@ -0,0 +1,15 @@
+# Note: this file was auto-generated by Module::Build::Compat version 0.03
+use ExtUtils::MakeMaker;
+WriteMakefile
+(
+          'NAME' => 'String::Koremutake',
+          'VERSION_FROM' => 'lib/String/Koremutake.pm',
+          'PREREQ_PM' => {
+                           'Error' => '0.15',
+                           'Test::Exception' => '0.15',
+                           'Test::More' => '0.01'
+                         },
+          'INSTALLDIRS' => 'site',
+          'PL_FILES' => {}
+        )
+;

Added: packages/libstring-koremutake-perl/branches/upstream/current/README
===================================================================
--- packages/libstring-koremutake-perl/branches/upstream/current/README	2006-03-17 19:13:56 UTC (rev 2398)
+++ packages/libstring-koremutake-perl/branches/upstream/current/README	2006-03-17 19:28:37 UTC (rev 2399)
@@ -0,0 +1,58 @@
+NAME
+    String::Koremutake - Convert to/from Koremutake Memorable Random Strings
+
+SYNOPSIS
+      use String::Koremutake;
+      my $k = String::Koremutake->new;
+
+      my $s = $k->integer_to_koremutake(65535);        # botretre
+      my $i = $k->koremutake_to_integer('koremutake'); # 10610353957
+
+DESCRIPTION
+    The String::Koremutake module converts to and from Koremutake Memorable
+    Random Strings.
+
+    The term "Memorable Random String" was thought up by Sean B. Palmer as a
+    name for those strings like dopynl, glargen, glonknic, spoopwiddle, and
+    kebble etc. that don't have any conventional sense, but can be used as
+    random identifiers, especially in URIs to keep them persistent. See
+    http://infomesh.net/2001/07/MeRS/
+
+    Koremutake is a MeRS algorithm which is used by Shorl
+    (http://shorl.com/koremutake.php). As they explain: "It is, in plain
+    language, a way to express any large number as a sequence of syllables.
+    The general idea is that word-sounding pieces of information are a lot
+    easier to remember than a sequence of digits."
+
+INTERFACE
+  new()
+    The new() method is the constructor:
+
+  integer_to_koremutake($i)
+    The integer_to_koremutake method converts a positive integer to a
+    Koremutake string:
+
+      my $s = $k->integer_to_koremutake(65535);        # botretre
+
+  koremutake_to_integer($s)
+    The koremutake_to_integer method converts a Koremutake string to the
+    integer it represents:
+
+      my $i = $k->koremutake_to_integer('koremutake'); # 10610353957
+
+BUGS AND LIMITATIONS
+    No bugs have been reported.
+
+    Please report any bugs or feature requests to
+    "bug-String-Koremutake at rt.cpan.org", or through the web interface at
+    <http://rt.cpan.org>.
+
+AUTHOR
+    Leon Brocard "acme at astray.com"
+
+LICENCE AND COPYRIGHT
+    Copyright (c) 2005, Leon Brocard "acme at astray.com". All rights reserved.
+
+    This module is free software; you can redistribute it and/or modify it
+    under the same terms as Perl itself.
+

Added: packages/libstring-koremutake-perl/branches/upstream/current/lib/String/Koremutake.pm
===================================================================
--- packages/libstring-koremutake-perl/branches/upstream/current/lib/String/Koremutake.pm	2006-03-17 19:13:56 UTC (rev 2398)
+++ packages/libstring-koremutake-perl/branches/upstream/current/lib/String/Koremutake.pm	2006-03-17 19:28:37 UTC (rev 2399)
@@ -0,0 +1,159 @@
+package String::Koremutake;
+use strict;
+use warnings;
+use Error;
+our $VERSION = '0.30';
+
+my @phonemes = map { lc } qw{BA BE BI BO BU BY DA DE DI DO DU DY FA FE FI
+FO FU FY GA GE GI GO GU GY HA HE HI HO HU HY JA JE JI JO JU JY KA KE
+KI KO KU KY LA LE LI LO LU LY MA ME MI MO MU MY NA NE NI NO NU NY PA
+PE PI PO PU PY RA RE RI RO RU RY SA SE SI SO SU SY TA TE TI TO TU TY
+VA VE VI VO VU VY BRA BRE BRI BRO BRU BRY DRA DRE DRI DRO DRU DRY FRA
+FRE FRI FRO FRU FRY GRA GRE GRI GRO GRU GRY PRA PRE PRI PRO PRU PRY
+STA STE STI STO STU STY TRA TRE};
+
+my %phoneme_to_number;
+my %number_to_phoneme;
+
+my $number = 0;
+foreach my $phoneme (@phonemes) {
+  $phoneme_to_number{$phoneme} = $number;
+  $number_to_phoneme{$number}  = $phoneme;
+  $number++;
+}
+
+sub new {
+  my $class = shift;
+  my $self = {};
+  bless $self, $class;
+  return $self;
+}
+
+sub _numbers_to_koremutake {
+  my($self, $numbers) = @_;
+  my $string;
+  foreach my $n (@$numbers) {
+    throw Error::Simple("0 <= $n <= 127") unless (0 <= $n) && ($n <= 127);
+    $string .= $number_to_phoneme{$n};
+  }
+  return $string;
+}
+
+sub _koremutake_to_numbers {
+  my($self, $string) = @_;
+  my @numbers;
+  my $phoneme;
+  my @chars = split //, $string;
+  while (@chars) {
+    $phoneme .= shift @chars;
+    next unless $phoneme =~ /[aeiouy]/;
+    my $number = $phoneme_to_number{$phoneme};
+    throw Error::Simple("Phoneme $phoneme not valid") unless defined $number;
+    push @numbers, $number;
+    $phoneme = "";
+  }
+  return \@numbers;
+}
+
+sub integer_to_koremutake {
+  my($self, $integer) = @_;
+
+  throw Error::Simple("No integer given") unless defined $integer;
+  throw Error::Simple('Negative numbers not acceptable') if $integer < 0;
+
+  my @numbers;
+  
+  @numbers = (0) if $integer == 0;
+
+  while ($integer != 0) {
+    push @numbers, $integer % 128;
+    $integer = int($integer/128);
+  }
+  return $self->_numbers_to_koremutake([reverse @numbers]);
+}
+
+sub koremutake_to_integer {
+  my($self, $string) = @_;
+  throw Error::Simple("No koremutake string given") unless defined $string;
+
+  my $numbers = $self->_koremutake_to_numbers($string);
+  my $integer = 0;
+  while (@$numbers) {
+    my $n = shift @$numbers;
+    $integer = ($integer * 128) + $n;
+  }
+  return $integer;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+String::Koremutake - Convert to/from Koremutake Memorable Random Strings
+
+=head1 SYNOPSIS
+
+  use String::Koremutake;
+  my $k = String::Koremutake->new;
+
+  my $s = $k->integer_to_koremutake(65535);        # botretre
+  my $i = $k->koremutake_to_integer('koremutake'); # 10610353957
+
+=head1 DESCRIPTION
+
+The String::Koremutake module converts to and from Koremutake
+Memorable Random Strings.
+
+The term "Memorable Random String" was thought up by Sean B. Palmer as
+a name for those strings like dopynl, glargen, glonknic, spoopwiddle,
+and kebble etc. that don't have any conventional sense, but can be
+used as random identifiers, especially in URIs to keep them
+persistent. See http://infomesh.net/2001/07/MeRS/
+
+Koremutake is a MeRS algorithm which is used by Shorl
+(http://shorl.com/koremutake.php). As they explain: "It is, in plain
+language, a way to express any large number as a sequence of
+syllables. The general idea is that word-sounding pieces of
+information are a lot easier to remember than a sequence of digits."
+
+=head1 INTERFACE
+
+=head2 new()
+
+The new() method is the constructor:
+
+=head2 integer_to_koremutake($i)
+
+The integer_to_koremutake method converts a positive integer to a
+Koremutake string:
+
+  my $s = $k->integer_to_koremutake(65535);        # botretre
+
+=head2 koremutake_to_integer($s)
+
+The koremutake_to_integer method converts a Koremutake string to the
+integer it represents:
+
+  my $i = $k->koremutake_to_integer('koremutake'); # 10610353957
+
+=head1 BUGS AND LIMITATIONS                                                     
+                                                                                
+No bugs have been reported.                                                     
+                                                                                
+Please report any bugs or feature requests to                                   
+C<bug-String-Koremutake at rt.cpan.org>, or through the web interface at
+L<http://rt.cpan.org>.  
+
+=head1 AUTHOR
+
+Leon Brocard C<acme at astray.com>
+
+=head1 LICENCE AND COPYRIGHT                                                    
+                                                                                
+Copyright (c) 2005, Leon Brocard C<acme at astray.com>. All rights reserved.
+                                                                                
+This module is free software; you can redistribute it and/or                    
+modify it under the same terms as Perl itself.                                  
+                                                                                

Added: packages/libstring-koremutake-perl/branches/upstream/current/t/pod.t
===================================================================
--- packages/libstring-koremutake-perl/branches/upstream/current/t/pod.t	2006-03-17 19:13:56 UTC (rev 2398)
+++ packages/libstring-koremutake-perl/branches/upstream/current/t/pod.t	2006-03-17 19:28:37 UTC (rev 2399)
@@ -0,0 +1,6 @@
+#!perl -T
+
+use Test::More;
+eval "use Test::Pod 1.14";
+plan skip_all => "Test::Pod 1.14 required for testing POD" if $@;
+all_pod_files_ok();

Added: packages/libstring-koremutake-perl/branches/upstream/current/t/pod_coverage.t
===================================================================
--- packages/libstring-koremutake-perl/branches/upstream/current/t/pod_coverage.t	2006-03-17 19:13:56 UTC (rev 2398)
+++ packages/libstring-koremutake-perl/branches/upstream/current/t/pod_coverage.t	2006-03-17 19:28:37 UTC (rev 2399)
@@ -0,0 +1,6 @@
+#!perl -T
+
+use Test::More;
+eval "use Test::Pod::Coverage 1.04";
+plan skip_all => "Test::Pod::Coverage 1.04 required for testing POD coverage" if $@;
+all_pod_coverage_ok();

Added: packages/libstring-koremutake-perl/branches/upstream/current/t/simple.t
===================================================================
--- packages/libstring-koremutake-perl/branches/upstream/current/t/simple.t	2006-03-17 19:13:56 UTC (rev 2398)
+++ packages/libstring-koremutake-perl/branches/upstream/current/t/simple.t	2006-03-17 19:28:37 UTC (rev 2399)
@@ -0,0 +1,48 @@
+use strict;
+use warnings;
+use lib 'lib';
+use Test::More tests => 34;
+use Test::Exception;
+use_ok('String::Koremutake');
+
+my $k = String::Koremutake->new();
+is($k->_numbers_to_koremutake([39,67,52,78,37]), "koremutake");
+
+throws_ok { $k->_numbers_to_koremutake([-1]) } qr/0 <= -1 <= 127/;
+throws_ok { $k->_numbers_to_koremutake([128]) } qr/0 <= 128 <= 127/;
+
+is_deeply($k->_koremutake_to_numbers("koremutake"), [39,67,52,78,37]);
+throws_ok { $k->_koremutake_to_numbers("qwe") } qr/Phoneme qwe not valid/;
+
+dies_ok { $k->integer_to_koremutake(-1) };
+
+throws_ok { $k->integer_to_koremutake() } qr/No integer given/;
+throws_ok { $k->koremutake_to_integer() } qr/No koremutake string given/;
+
+is($k->integer_to_koremutake(0), 'ba');
+is($k->integer_to_koremutake(39), 'ko');
+is($k->integer_to_koremutake(67), 're');
+is($k->integer_to_koremutake(52), 'mu');
+is($k->integer_to_koremutake(78), 'ta');
+is($k->integer_to_koremutake(37), 'ke');
+is($k->integer_to_koremutake(128), 'beba');
+is($k->integer_to_koremutake(256), 'biba');
+is($k->integer_to_koremutake(65535), 'botretre');
+is($k->integer_to_koremutake(65536), 'bubaba');
+is($k->integer_to_koremutake(5059), 'kore');
+is($k->integer_to_koremutake(10610353957), 'koremutake');
+
+dies_ok { $k->koremutake_to_intger("Hello world") };
+
+is($k->koremutake_to_integer('ba'), 0);
+is($k->koremutake_to_integer('ko'), 39);
+is($k->koremutake_to_integer('re'), 67);
+is($k->koremutake_to_integer('mu'), 52);
+is($k->koremutake_to_integer('ta'), 78);
+is($k->koremutake_to_integer('ke'), 37);
+is($k->koremutake_to_integer('beba'), 128);
+is($k->koremutake_to_integer('biba'), 256);
+is($k->koremutake_to_integer('botretre'), 65535);
+is($k->koremutake_to_integer('bubaba'), 65536);
+is($k->koremutake_to_integer('kore'), 5059);
+is($k->koremutake_to_integer('koremutake'), 10610353957);




More information about the Pkg-perl-cvs-commits mailing list