[SCM] ci-tooling packaging branch, master, updated. d136fcce5d4d58c0238cdae0b72fb60090fd051e

Harald Sitter apachelogger-guest at moszumanska.debian.org
Thu Oct 15 13:41:05 UTC 2015


Gitweb-URL: http://git.debian.org/?p=pkg-kde/ci-tooling.git;a=commitdiff;h=d136fcc

The following commit has been merged in the master branch:
commit d136fcce5d4d58c0238cdae0b72fb60090fd051e
Author: Harald Sitter <sitter at kde.org>
Date:   Thu Oct 15 15:39:53 2015 +0200

    add debian::version parser class I wrote months ago
    
    eventually should go into a changelog rewrite. until then I best not lose
    it though
---
 lib/debian/version.rb       | 32 ++++++++++++++++++++++++++++++++
 test/test_debian_version.rb | 29 +++++++++++++++++++++++++++++
 2 files changed, 61 insertions(+)

diff --git a/lib/debian/version.rb b/lib/debian/version.rb
new file mode 100644
index 0000000..4053504
--- /dev/null
+++ b/lib/debian/version.rb
@@ -0,0 +1,32 @@
+module Debian
+  class Version
+    attr_reader :full
+    attr_reader :epoch
+    attr_reader :upstream
+    attr_reader :revision
+
+    def initialize(string)
+      @full = string
+      @epoch = nil
+      @upstream = nil
+      @revision = nil
+      parse
+    end
+
+    def to_s
+      @full
+    end
+
+    private
+
+    def parse
+      regex = /^(?:(?<epoch>\d+):)?
+                (?<upstream>[A-Za-z0-9.+:~-]+?)
+                (?:-(?<revision>[A-Za-z0-9.~+]+))?$/x
+      match = @full.match(regex)
+      @epoch = match[:epoch]
+      @upstream = match[:upstream]
+      @revision = match[:revision]
+    end
+  end
+end
diff --git a/test/test_debian_version.rb b/test/test_debian_version.rb
new file mode 100644
index 0000000..310bb10
--- /dev/null
+++ b/test/test_debian_version.rb
@@ -0,0 +1,29 @@
+require_relative '../lib/debian/version'
+require_relative 'lib/testcase'
+
+# Test debian version
+class DebianVersionTest < TestCase
+  def test_native
+    s = '5.0'
+    v = Debian::Version.new(s)
+    assert_equal(nil, v.epoch)
+    assert_equal('5.0', v.upstream)
+    assert_equal(nil, v.revision)
+  end
+
+  def test_native_epoch
+    s = '1:5.0'
+    v = Debian::Version.new(s)
+    assert_equal('1', v.epoch)
+    assert_equal('5.0', v.upstream)
+    assert_equal(nil, v.revision)
+  end
+
+  def test_full
+    s = '1:5.0-0ubuntu1'
+    v = Debian::Version.new(s)
+    assert_equal('1', v.epoch)
+    assert_equal('5.0', v.upstream)
+    assert_equal('0ubuntu1', v.revision)
+  end
+end

-- 
ci-tooling packaging



More information about the pkg-kde-commits mailing list