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.
Constant Summary collapse
- ONLY_LATEST =
%i[latest newest].freeze
Instance Attribute Summary collapse
-
#gemspec ⇒ Object
Returns the value of attribute gemspec.
- #name ⇒ String readonly
-
#platform ⇒ Object
Returns the value of attribute platform.
- #requirement ⇒ Gem::Requirement readonly
-
#version ⇒ Gem::Version
readonly
Returns the version.
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 gem file.
-
#gemspec? ⇒ TrueClass|FalseClass
Is gemspec.
-
#gemspec_filename(gem_version = nil) ⇒ String
Returns the filename of the gemspec file.
-
#initialize(name, requirement = nil, platform = 'ruby') ⇒ Gem
constructor
A new instance of Gem.
-
#only_latest? ⇒ TrueClass|FalseClass
Define if version exists.
-
#version? ⇒ TrueClass|FalseClass
Define if version exists.
Constructor Details
#initialize(name, requirement = nil, platform = 'ruby') ⇒ Gem
Returns a new instance of Gem.
33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/gemirro/gem.rb', line 33 def initialize(name, requirement = nil, platform = 'ruby') requirement ||= ::Gem::Requirement.default if requirement.is_a?(String) requirement = ::Gem::Requirement.new(requirement) end @name = name @requirement = requirement @platform = platform end |
Instance Attribute Details
#gemspec ⇒ Object
Returns the value of attribute gemspec.
16 17 18 |
# File 'lib/gemirro/gem.rb', line 16 def gemspec @gemspec end |
#name ⇒ String (readonly)
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 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/gemirro/gem.rb', line 14 class Gem attr_reader :name, :requirement attr_accessor :gemspec, :platform ONLY_LATEST = %i[latest newest].freeze ## # 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.max.last.version) end ## # @param [String] name # @param [Gem::Requirement|String] requirement # def initialize(name, requirement = nil, platform = 'ruby') requirement ||= ::Gem::Requirement.default if requirement.is_a?(String) requirement = ::Gem::Requirement.new(requirement) end @name = name @requirement = requirement @platform = platform 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(&:zero?).empty? end ## # Define if version exists # # @return [TrueClass|FalseClass] # def only_latest? @requirement.is_a?(Symbol) && ONLY_LATEST.include?(@requirement) end ## # Is gemspec # # @return [TrueClass|FalseClass] # def gemspec? @gemspec == true end ## # Returns the filename of the gem file. # # @param [String] gem_version # @return [String] # def filename(gem_version = nil) gem_version ||= version.to_s n = [name, gem_version] n.push(@platform) if @platform != 'ruby' "#{n.join('-')}.gem" end ## # Returns the filename of the gemspec file. # # @param [String] gem_version # @return [String] # def gemspec_filename(gem_version = nil) gem_version ||= version.to_s n = [name, gem_version] n.push(@platform) if @platform != 'ruby' "#{n.join('-')}.gemspec.rz" end end |
#platform ⇒ Object
Returns the value of attribute platform.
16 17 18 |
# File 'lib/gemirro/gem.rb', line 16 def platform @platform end |
#requirement ⇒ Gem::Requirement (readonly)
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 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/gemirro/gem.rb', line 14 class Gem attr_reader :name, :requirement attr_accessor :gemspec, :platform ONLY_LATEST = %i[latest newest].freeze ## # 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.max.last.version) end ## # @param [String] name # @param [Gem::Requirement|String] requirement # def initialize(name, requirement = nil, platform = 'ruby') requirement ||= ::Gem::Requirement.default if requirement.is_a?(String) requirement = ::Gem::Requirement.new(requirement) end @name = name @requirement = requirement @platform = platform 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(&:zero?).empty? end ## # Define if version exists # # @return [TrueClass|FalseClass] # def only_latest? @requirement.is_a?(Symbol) && ONLY_LATEST.include?(@requirement) end ## # Is gemspec # # @return [TrueClass|FalseClass] # def gemspec? @gemspec == true end ## # Returns the filename of the gem file. # # @param [String] gem_version # @return [String] # def filename(gem_version = nil) gem_version ||= version.to_s n = [name, gem_version] n.push(@platform) if @platform != 'ruby' "#{n.join('-')}.gem" end ## # Returns the filename of the gemspec file. # # @param [String] gem_version # @return [String] # def gemspec_filename(gem_version = nil) gem_version ||= version.to_s n = [name, gem_version] n.push(@platform) if @platform != 'ruby' "#{n.join('-')}.gemspec.rz" end end |
#version ⇒ Gem::Version (readonly)
Returns the version
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 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/gemirro/gem.rb', line 14 class Gem attr_reader :name, :requirement attr_accessor :gemspec, :platform ONLY_LATEST = %i[latest newest].freeze ## # 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.max.last.version) end ## # @param [String] name # @param [Gem::Requirement|String] requirement # def initialize(name, requirement = nil, platform = 'ruby') requirement ||= ::Gem::Requirement.default if requirement.is_a?(String) requirement = ::Gem::Requirement.new(requirement) end @name = name @requirement = requirement @platform = platform 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(&:zero?).empty? end ## # Define if version exists # # @return [TrueClass|FalseClass] # def only_latest? @requirement.is_a?(Symbol) && ONLY_LATEST.include?(@requirement) end ## # Is gemspec # # @return [TrueClass|FalseClass] # def gemspec? @gemspec == true end ## # Returns the filename of the gem file. # # @param [String] gem_version # @return [String] # def filename(gem_version = nil) gem_version ||= version.to_s n = [name, gem_version] n.push(@platform) if @platform != 'ruby' "#{n.join('-')}.gem" end ## # Returns the filename of the gemspec file. # # @param [String] gem_version # @return [String] # def gemspec_filename(gem_version = nil) gem_version ||= version.to_s n = [name, gem_version] n.push(@platform) if @platform != 'ruby' "#{n.join('-')}.gemspec.rz" end end |
Class Method Details
.version_for(requirement) ⇒ Gem::Version
Returns a ‘Gem::Version` instance based on the specified requirement.
25 26 27 |
# File 'lib/gemirro/gem.rb', line 25 def self.version_for(requirement) ::Gem::Version.new(requirement.requirements.max.last.version) end |
Instance Method Details
#filename(gem_version = nil) ⇒ String
Returns the filename of the gem file.
87 88 89 90 91 92 |
# File 'lib/gemirro/gem.rb', line 87 def filename(gem_version = nil) gem_version ||= version.to_s n = [name, gem_version] n.push(@platform) if @platform != 'ruby' "#{n.join('-')}.gem" end |
#gemspec? ⇒ TrueClass|FalseClass
Is gemspec
77 78 79 |
# File 'lib/gemirro/gem.rb', line 77 def gemspec? @gemspec == true end |
#gemspec_filename(gem_version = nil) ⇒ String
Returns the filename of the gemspec file.
100 101 102 103 104 105 |
# File 'lib/gemirro/gem.rb', line 100 def gemspec_filename(gem_version = nil) gem_version ||= version.to_s n = [name, gem_version] n.push(@platform) if @platform != 'ruby' "#{n.join('-')}.gemspec.rz" end |
#only_latest? ⇒ TrueClass|FalseClass
Define if version exists
68 69 70 |
# File 'lib/gemirro/gem.rb', line 68 def only_latest? @requirement.is_a?(Symbol) && ONLY_LATEST.include?(@requirement) end |
#version? ⇒ TrueClass|FalseClass
Define if version exists
59 60 61 |
# File 'lib/gemirro/gem.rb', line 59 def version? version && !version.segments.reject(&:zero?).empty? end |