Sha256: 1f7db4117da0cb5c00246123d5b9bc57e33f168ef630994b8b2da5246279c166

Contents?: true

Size: 926 Bytes

Versions: 8

Compression:

Stored size: 926 Bytes

Contents

# frozen_string_literal: true

module Geminabox

  class GemVersion
    attr_accessor :name, :number, :platform

    def initialize(name, number, platform)
      @name = name
      @number = number
      @platform = platform
    end

    def ruby?
      !!(platform =~ /ruby/i)
    end

    def version
      Gem::Version.create(number)
    end

    def <=>(other)
      sort = other.name <=> name
      sort = version <=>  other.version       if sort.zero?
      sort = (other.ruby? && !ruby?) ? 1 : -1 if sort.zero? && ruby? != other.ruby?
      sort = other.platform <=> platform      if sort.zero?

      sort
    end

    def ==(other)
      return false unless other.class == self.class
      [name, number, platform] == [other.name, other.number, other.platform]
    end

    def gemfile_name
      included_platform = ruby? ? nil : platform
      [name, number, included_platform].compact.join('-')
    end
  end

end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
geminabox-2.1.0 lib/geminabox/gem_version.rb
geminabox-2.1.0.rc.1 lib/geminabox/gem_version.rb
geminabox-2.0.0 lib/geminabox/gem_version.rb
geminabox-2.0.0.rc.1 lib/geminabox/gem_version.rb
geminabox-1.5.0 lib/geminabox/gem_version.rb
geminabox-1.5.0.rc.1 lib/geminabox/gem_version.rb
geminabox-1.4.3 lib/geminabox/gem_version.rb
geminabox-1.4.3.rc lib/geminabox/gem_version.rb