[paludis-commits] r4079 - in trunk: . ruby

rbrown at svn.pioto.org rbrown at svn.pioto.org
Sat Dec 15 21:22:52 UTC 2007


Author: rbrown
Date: 2007-12-15 21:22:51 +0000 (Sat, 15 Dec 2007)
New Revision: 4079

Modified:
   trunk/ChangeLog
   trunk/ruby/package_database.cc
   trunk/ruby/package_database_TEST.rb
Log:
(ruby) Add PackageDatabase.has_repository_named?


Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2007-12-15 19:25:10 UTC (rev 4078)
+++ trunk/ChangeLog	2007-12-15 21:22:51 UTC (rev 4079)
@@ -5,6 +5,10 @@
 only listed in SVN log. For a summary of what has changed between releases,
 see the NEWS file. This file is occasionally pruned to ChangeLog.old.bz2.
 
+2007-12-13 Richard Brown
+
+	* ruby/: (ruby) Add PackageDatabase.has_repository_named?
+
 2007-12-15 Piotr Jaroszyński
 
 	* paludis/repositories/e/ebuild_id.cc: Don't check the EAPI if not

Modified: trunk/ruby/package_database.cc
===================================================================
--- trunk/ruby/package_database.cc	2007-12-15 19:25:10 UTC (rev 4078)
+++ trunk/ruby/package_database.cc	2007-12-15 21:22:51 UTC (rev 4079)
@@ -204,6 +204,28 @@
         }
     }
 
+    /*
+     * call-seq:
+     *     has_repository_named?(repository_name) -> true or false
+     *
+     *  Do we have a named repository?
+     */
+    VALUE
+    package_database_has_repository_named(VALUE self, VALUE name)
+    {
+        try
+        {
+            tr1::shared_ptr<PackageDatabase> * self_ptr;
+            Data_Get_Struct(self, tr1::shared_ptr<PackageDatabase>, self_ptr);
+
+            return ((*self_ptr)->has_repository_named(RepositoryName(StringValuePtr(name)))) ? true : false;
+        }
+        catch (const std::exception & e)
+        {
+            exception_to_ruby_exception(e);
+        }
+    }
+
     void do_register_package_database()
     {
         /*
@@ -224,6 +246,8 @@
                 RUBY_FUNC_CAST(&package_database_fetch_repository), 1);
         rb_define_method(c_package_database, "more_important_than",
                 RUBY_FUNC_CAST(&package_database_more_important_than), 2);
+        rb_define_method(c_package_database, "has_repository_named?",
+                RUBY_FUNC_CAST(&package_database_has_repository_named), 1);
 
         /*
          * Document-module: Paludis::QueryOrder

Modified: trunk/ruby/package_database_TEST.rb
===================================================================
--- trunk/ruby/package_database_TEST.rb	2007-12-15 19:25:10 UTC (rev 4078)
+++ trunk/ruby/package_database_TEST.rb	2007-12-15 21:22:51 UTC (rev 4079)
@@ -232,6 +232,12 @@
             assert db.more_important_than('testrepo', 'virtuals')
             assert ! db.more_important_than('virtuals', 'testrepo')
         end
+
+        def test_has_repository_named?
+            assert db.has_repository_named? 'testrepo'
+            assert db.has_repository_named? 'virtuals'
+            assert ! db.has_repository_named?('foobarbaz')
+        end
     end
 end
 



More information about the paludis-commits mailing list