[Cpan-forum-commit] rev 332 - in trunk: . lib/CPAN/Forum/DB lib/CPAN/Forum/RM

svn at pti.co.il svn at pti.co.il
Mon Aug 13 22:16:41 EEST 2007


Author: gabor
Date: 2007-08-13 22:16:41 +0300 (Mon, 13 Aug 2007)
New Revision: 332

Modified:
   trunk/
   trunk/lib/CPAN/Forum/DB/Groups.pm
   trunk/lib/CPAN/Forum/RM/Search.pm
Log:
add names_by_name and names_by_pauseidstr to the DB::Group module



Property changes on: trunk
___________________________________________________________________
Name: svk:merge
   - 7bc34947-122d-0410-bc5a-f898d2bb5f81:/local/cpan-forum:4416
8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:12752
   + 7bc34947-122d-0410-bc5a-f898d2bb5f81:/local/cpan-forum:4417
8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:12752

Modified: trunk/lib/CPAN/Forum/DB/Groups.pm
===================================================================
--- trunk/lib/CPAN/Forum/DB/Groups.pm	2007-08-13 19:16:05 UTC (rev 331)
+++ trunk/lib/CPAN/Forum/DB/Groups.pm	2007-08-13 19:16:41 UTC (rev 332)
@@ -69,5 +69,21 @@
     return $self->info_by(name => $args{name});
 }
 
+sub names_by_name {
+    my ($self, $value) = @_;
+    $value = '%' . $value . '%';
+    my $sql = "SELECT name FROM groups WHERE name LIKE ? ORDER BY name";
+    return $self->_fetch_arrayref_of_hashes($sql, $value);
+}
+
+sub names_by_pauseidstr {
+    my ($self, $value) = @_;
+    my $sql = "SELECT name FROM groups, authors WHERE authors.pauseid=? AND authors.id=groups.pauseid";
+    return $self->_fetch_arrayref_of_hashes($sql, $value);
+}
+
+
+#        my $author = CPAN::Forum::DB::Authors->get_author_by_pauseid($name);
+
 1;
 

Modified: trunk/lib/CPAN/Forum/RM/Search.pm
===================================================================
--- trunk/lib/CPAN/Forum/RM/Search.pm	2007-08-13 19:16:05 UTC (rev 331)
+++ trunk/lib/CPAN/Forum/RM/Search.pm	2007-08-13 19:16:41 UTC (rev 332)
@@ -109,34 +109,25 @@
     $t->output;
 }
 
+# $what: module or pauseid
 sub _search_modules {
     my ($self, $t, $name, $what) = @_;
 
-    my $it;
+    my $groups;
     if ($what eq "module") {
-        $it =  CPAN::Forum::DB::Groups->search_like(name => '%' . $name . '%');
+        $groups =  CPAN::Forum::DB::Groups->names_by_name($name); # SQL
     } else {
-        my $author = CPAN::Forum::DB::Authors->get_author_by_pauseid($name);
-        if ($author) {
-            $it =  CPAN::Forum::DB::Groups->search(pauseid => $author->{id});
-        } 
+        $groups =  CPAN::Forum::DB::Groups->names_by_pauseidstr(uc $name); # SQL
         $t->param(pauseid_name => uc $name)
     }
-    my @things;
-    if ($it) {
-        while (my $group  = $it->next) {
-            push @things, {name => $group->name};
-        }
-    }
-    $t->param(groups => \@things);
+    $t->param(groups => $groups);
     $t->param($what => 1);
-    return @things ? 1 : 0;
+    return @$groups ? 1 : 0;
 }
 
 sub _search_users {
     my ($self, $t, $name, $what) = @_;
 
-    my @things;
     my $users =  CPAN::Forum::DB::Users->list_users_like(lc($name)); # SQL
     $t->param(users => $users);
     $t->param($what => 1);



More information about the Cpan-forum-commit mailing list