Class: Gemirro::Gem
- Inherits:
-
Object
- Object
- Gemirro::Gem
- Defined in:
- lib/gemirro/gem.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
- #requirement ⇒ Gem::Requirement readonly
Class Method Summary collapse
-
.version_for(requirement) ⇒ Gem::Version
Returns a ‘Gem::Version` instance based on the specified requirement.
Instance Method Summary collapse
-
#filename(gem_version = nil) ⇒ String
Returns the filename of the Gemfile.
-
#initialize(name, requirement = nil) ⇒ Gem
constructor
A new instance of Gem.
-
#version ⇒ Gem::Version
Returns the version.
-
#version? ⇒ TrueClass|FalseClass
Define if version exists.
Constructor Details
#initialize(name, requirement = nil) ⇒ Gem
Returns a new instance of Gem.
30 31 32 33 34 35 36 37 38 39 |
# File 'lib/gemirro/gem.rb', line 30 def initialize(name, requirement = nil) requirement ||= ::Gem::Requirement.default if requirement.is_a?(String) requirement = ::Gem::Requirement.new(requirement) end @name = name @requirement = requirement end |
Instance Attribute Details
#name ⇒ String (readonly)
13 14 15 16 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 |
# File 'lib/gemirro/gem.rb', line 13 class Gem attr_reader :name, :requirement ## # Returns a `Gem::Version` instance based on the specified requirement. # # @param [Gem::Requirement] requirement # @return [Gem::Version] # def self.version_for(requirement) ::Gem::Version.new(requirement.requirements.sort.last.last.version) end ## # @param [String] name # @param [Gem::Requirement|String] requirement # def initialize(name, requirement = nil) requirement ||= ::Gem::Requirement.default if requirement.is_a?(String) requirement = ::Gem::Requirement.new(requirement) end @name = name @requirement = requirement end ## # Returns the version # # @return [Gem::Version] # def version @version ||= self.class.version_for(requirement) end ## # Define if version exists # # @return [TrueClass|FalseClass] # def version? version && !version.segments.reject { |s| s == 0 }.empty? end ## # Returns the filename of the Gemfile. # # @param [String] gem_version # @return [String] # def filename(gem_version = nil) gem_version ||= version.to_s "#{name}-#{gem_version}.gem" end end |
#requirement ⇒ Gem::Requirement (readonly)
13 14 15 16 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 |
# File 'lib/gemirro/gem.rb', line 13 class Gem attr_reader :name, :requirement ## # Returns a `Gem::Version` instance based on the specified requirement. # # @param [Gem::Requirement] requirement # @return [Gem::Version] # def self.version_for(requirement) ::Gem::Version.new(requirement.requirements.sort.last.last.version) end ## # @param [String] name # @param [Gem::Requirement|String] requirement # def initialize(name, requirement = nil) requirement ||= ::Gem::Requirement.default if requirement.is_a?(String) requirement = ::Gem::Requirement.new(requirement) end @name = name @requirement = requirement end ## # Returns the version # # @return [Gem::Version] # def version @version ||= self.class.version_for(requirement) end ## # Define if version exists # # @return [TrueClass|FalseClass] # def version? version && !version.segments.reject { |s| s == 0 }.empty? end ## # Returns the filename of the Gemfile. # # @param [String] gem_version # @return [String] # def filename(gem_version = nil) gem_version ||= version.to_s "#{name}-#{gem_version}.gem" end end |
Class Method Details
.version_for(requirement) ⇒ Gem::Version
Returns a ‘Gem::Version` instance based on the specified requirement.
22 23 24 |
# File 'lib/gemirro/gem.rb', line 22 def self.version_for(requirement) ::Gem::Version.new(requirement.requirements.sort.last.last.version) end |
Instance Method Details
#filename(gem_version = nil) ⇒ String
Returns the filename of the Gemfile.
65 66 67 68 |
# File 'lib/gemirro/gem.rb', line 65 def filename(gem_version = nil) gem_version ||= version.to_s "#{name}-#{gem_version}.gem" end |
#version ⇒ Gem::Version
Returns the version
46 47 48 |
# File 'lib/gemirro/gem.rb', line 46 def version @version ||= self.class.version_for(requirement) end |
#version? ⇒ TrueClass|FalseClass
Define if version exists
55 56 57 |
# File 'lib/gemirro/gem.rb', line 55 def version? version && !version.segments.reject { |s| s == 0 }.empty? end |