Class: Gemirro::GemVersion
- Inherits:
-
Object
- Object
- Gemirro::GemVersion
- Includes:
- Comparable
- Defined in:
- lib/gemirro/gem_version.rb
Overview
The Gem class contains data about a Gem such as the name, requirement as well as providing some methods to more easily extract the specific version number.
Instance Attribute Summary collapse
- #name ⇒ String readonly
- #number ⇒ Integer readonly
- #platform ⇒ String readonly
-
#version ⇒ Gem::Version
readonly
Retrieve gem version.
Instance Method Summary collapse
-
#<=>(other) ⇒ Integer
Compare gem to another.
-
#gemfile_name ⇒ String
Gemfile name.
-
#initialize(name, number, platform) ⇒ GemVersion
constructor
A new instance of GemVersion.
-
#ruby? ⇒ Boolean
Is for ruby.
Constructor Details
#initialize(name, number, platform) ⇒ GemVersion
Returns a new instance of GemVersion.
26 27 28 29 30 |
# File 'lib/gemirro/gem_version.rb', line 26 def initialize(name, number, platform) @name = name @number = number @platform = platform end |
Instance Attribute Details
#name ⇒ String (readonly)
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/gemirro/gem_version.rb', line 17 class GemVersion include Comparable attr_reader :name, :number, :platform, :version ## # @param [String] name # @param [String] number # @param [String] platform # def initialize(name, number, platform) @name = name @number = number @platform = platform end ## # Is for ruby # # @return [Boolean] # def ruby? !(@platform =~ /^ruby$/i).nil? end ## # Retrieve gem version # # @return [Gem::Version] # def version @version ||= ::Gem::Version.create(number) end ## # Compare gem to another # # @return [Integer] # 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 ## # Gemfile name # # @return [String] # def gemfile_name platform = ruby? ? nil : @platform [@name, @number, platform].compact.join('-') end end |
#number ⇒ Integer (readonly)
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/gemirro/gem_version.rb', line 17 class GemVersion include Comparable attr_reader :name, :number, :platform, :version ## # @param [String] name # @param [String] number # @param [String] platform # def initialize(name, number, platform) @name = name @number = number @platform = platform end ## # Is for ruby # # @return [Boolean] # def ruby? !(@platform =~ /^ruby$/i).nil? end ## # Retrieve gem version # # @return [Gem::Version] # def version @version ||= ::Gem::Version.create(number) end ## # Compare gem to another # # @return [Integer] # 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 ## # Gemfile name # # @return [String] # def gemfile_name platform = ruby? ? nil : @platform [@name, @number, platform].compact.join('-') end end |
#platform ⇒ String (readonly)
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/gemirro/gem_version.rb', line 17 class GemVersion include Comparable attr_reader :name, :number, :platform, :version ## # @param [String] name # @param [String] number # @param [String] platform # def initialize(name, number, platform) @name = name @number = number @platform = platform end ## # Is for ruby # # @return [Boolean] # def ruby? !(@platform =~ /^ruby$/i).nil? end ## # Retrieve gem version # # @return [Gem::Version] # def version @version ||= ::Gem::Version.create(number) end ## # Compare gem to another # # @return [Integer] # 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 ## # Gemfile name # # @return [String] # def gemfile_name platform = ruby? ? nil : @platform [@name, @number, platform].compact.join('-') end end |
#version ⇒ Gem::Version (readonly)
Retrieve gem version
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/gemirro/gem_version.rb', line 17 class GemVersion include Comparable attr_reader :name, :number, :platform, :version ## # @param [String] name # @param [String] number # @param [String] platform # def initialize(name, number, platform) @name = name @number = number @platform = platform end ## # Is for ruby # # @return [Boolean] # def ruby? !(@platform =~ /^ruby$/i).nil? end ## # Retrieve gem version # # @return [Gem::Version] # def version @version ||= ::Gem::Version.create(number) end ## # Compare gem to another # # @return [Integer] # 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 ## # Gemfile name # # @return [String] # def gemfile_name platform = ruby? ? nil : @platform [@name, @number, platform].compact.join('-') end end |
Instance Method Details
#<=>(other) ⇒ Integer
Compare gem to another
55 56 57 58 59 60 61 62 63 |
# File 'lib/gemirro/gem_version.rb', line 55 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 |
#gemfile_name ⇒ String
Gemfile name
70 71 72 73 |
# File 'lib/gemirro/gem_version.rb', line 70 def gemfile_name platform = ruby? ? nil : @platform [@name, @number, platform].compact.join('-') end |
#ruby? ⇒ Boolean
Is for ruby
37 38 39 |
# File 'lib/gemirro/gem_version.rb', line 37 def ruby? !(@platform =~ /^ruby$/i).nil? end |