[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