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 =
[:latest, :newest]
Instance Attribute Summary collapse
-
#gemspec ⇒ Object
Returns the value of attribute gemspec.
- #name ⇒ String readonly
-
#platform ⇒ Object
readonly
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
34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/gemirro/gem.rb', line 34 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.
17 18 19 |
# File 'lib/gemirro/gem.rb', line 17 def gemspec @gemspec end |
#name ⇒ String (readonly)
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 107 |
# File 'lib/gemirro/gem.rb', line 15 class Gem attr_reader :name, :requirement, :platform, :version attr_accessor :gemspec ONLY_LATEST = [:latest, :newest] ## # 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, 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 { |s| s == 0 }.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 (readonly)
Returns the value of attribute platform.
16 17 18 |
# File 'lib/gemirro/gem.rb', line 16 def platform @platform end |
#requirement ⇒ Gem::Requirement (readonly)
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 107 |
# File 'lib/gemirro/gem.rb', line 15 class Gem attr_reader :name, :requirement, :platform, :version attr_accessor :gemspec ONLY_LATEST = [:latest, :newest] ## # 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, 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 { |s| s == 0 }.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
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 107 |
# File 'lib/gemirro/gem.rb', line 15 class Gem attr_reader :name, :requirement, :platform, :version attr_accessor :gemspec ONLY_LATEST = [:latest, :newest] ## # 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, 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 { |s| s == 0 }.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.
26 27 28 |
# File 'lib/gemirro/gem.rb', line 26 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 gem file.
88 89 90 91 92 93 |
# File 'lib/gemirro/gem.rb', line 88 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
78 79 80 |
# File 'lib/gemirro/gem.rb', line 78 def gemspec? @gemspec == true end |
#gemspec_filename(gem_version = nil) ⇒ String
Returns the filename of the gemspec file.
101 102 103 104 105 106 |
# File 'lib/gemirro/gem.rb', line 101 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
69 70 71 |
# File 'lib/gemirro/gem.rb', line 69 def only_latest? @requirement.is_a?(Symbol) && ONLY_LATEST.include?(@requirement) end |
#version? ⇒ TrueClass|FalseClass
Define if version exists
60 61 62 |
# File 'lib/gemirro/gem.rb', line 60 def version? version && !version.segments.reject { |s| s == 0 }.empty? end |