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

Harald Sitter apachelogger-guest at moszumanska.debian.org
Tue May 12 09:13:51 UTC 2015


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

The following commit has been merged in the master branch:
commit 23ffb47808904094e59b909ed921764e3e37dbdd
Author: Harald Sitter <sitter at kde.org>
Date:   Tue May 12 11:07:20 2015 +0200

    add sorting capability to kci series
---
 lib/kci.rb       | 20 ++++++++++++--------
 test/test_kci.rb |  4 ++++
 2 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/lib/kci.rb b/lib/kci.rb
index 67505f0..f56c95f 100644
--- a/lib/kci.rb
+++ b/lib/kci.rb
@@ -3,8 +3,14 @@ require 'ostruct'
 
 # Kubuntu CI specific stuff.
 module KCI
-  # @return [OpenStruct] distribution series
-  def self.series
+  # @param sort [Symbol] sorting applied to hash
+  #   - *:none* No sorting, arbitrary order as in config itself (fastest)
+  #   - *:ascending* Oldest version comes first (i.e. [15.04, 15.10])
+  #   - *:descending* Oldest version comes last (i.e. [15.10, 15.04])
+  # @return [Hash] distribution series
+  def self.series(sort: :none)
+    return sort_version_hash(data['series']).to_h if sort == :ascending
+    return sort_version_hash(data['series']).reverse.to_h if sort == :descending
     data['series']
   end
 
@@ -26,10 +32,8 @@ module KCI
     @data = YAML.load(File.read(file))
   end
 
-  # def self.data
-  #   return @data if defined?(@data)
-  #   base = File.expand_path(File.dirname(File.dirname(__FILE__)))
-  #   file = File.join(base, 'data', 'kci.json')
-  #   @data = JSON.parse(File.read(file), object_class: OpenStruct)
-  # end
+  # @return [Array] array can be converted back with to_h
+  def self.sort_version_hash(hash)
+    hash.sort_by { |_, version| Gem::Version.new(version) }
+  end
 end
diff --git a/test/test_kci.rb b/test/test_kci.rb
index c711ced..ed61ba9 100644
--- a/test/test_kci.rb
+++ b/test/test_kci.rb
@@ -23,5 +23,9 @@ class KCITest < TestCase
     assert_equal_collection(%w(15.10 15.04), KCI.series.values)
     assert_equal('15.10', KCI.series['wily'])
     assert_equal('15.04', KCI.series['vivid'])
+
+    # With sorting
+    assert_equal('vivid', KCI.series(sort: :ascending).keys.first)
+    assert_equal('wily', KCI.series(sort: :descending).keys.first)
   end
 end

-- 
ci-tooling packaging



More information about the pkg-kde-commits mailing list