Skip to content

Commit

Permalink
Fix releases sorting glitch with beta and rc releases
Browse files Browse the repository at this point in the history
closes #20

Signed-off-by: Dominique Rose-Rosette <drose-rosette@af83.com>
  • Loading branch information
Dominique Rose-Rosette committed Feb 24, 2014
1 parent bc1f61a commit 718c09d
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 2 deletions.
1 change: 1 addition & 0 deletions desi.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ an Elastic Search local install for development purposes.}
gem.add_dependency "boson"
gem.add_dependency "cocaine", "~> 0.5.3"
gem.add_dependency "addressable"
gem.add_dependency "semantic", "~> 1.3.0"

gem.add_development_dependency "rake"
gem.add_development_dependency "rspec"
Expand Down
3 changes: 2 additions & 1 deletion lib/desi/upstream.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

require "desi/http_client"
require "json"
require "semantic"

module Desi
class Upstream
Expand Down Expand Up @@ -34,7 +35,7 @@ def version
protected

def sortable_version
version.split('.').map {|c| c.to_i }
@sortable_version ||= Semantic::Version.new(version.sub(%r{.(beta|alpha|rc)}i, '-\1'))
end
end

Expand Down
18 changes: 17 additions & 1 deletion spec/desi/upstream_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,24 @@
let(:v1) { Desi::Upstream::Release.new("v1.0.0", "") }
let(:v09) { Desi::Upstream::Release.new("v0.90.10", "") }

it "sort the v1.0.0 before v0.90.10" do
it "sorts the v1.0.0 before v0.90.10" do
expect([v09, v1].sort).to eql([v1, v09])
end

it "sorts 1.0.0.RC2 before 1.0.0" do
expect([
Desi::Upstream::Release.new("v1.0.0.Beta1", ""),
Desi::Upstream::Release.new("v1.0.0.RC2", ""),
Desi::Upstream::Release.new("v1.0.0", ""),
Desi::Upstream::Release.new("v1.0.0.Beta2", ""),
Desi::Upstream::Release.new("v1.0.0.RC1", ""),
].sort).to eql([
Desi::Upstream::Release.new("v1.0.0", ""),
Desi::Upstream::Release.new("v1.0.0.RC2", ""),
Desi::Upstream::Release.new("v1.0.0.RC1", ""),
Desi::Upstream::Release.new("v1.0.0.Beta2", ""),
Desi::Upstream::Release.new("v1.0.0.Beta1", "")
])
end
end
end

0 comments on commit 718c09d

Please sign in to comment.