class Bunup::Gem

Easily access gem attributes

Constants

ALLOWED_CHARACTERS
NAME_PATTERN
SPECIAL_CHARACTERS

Gem name patterns taken from github.com/rubygems/rubygems.org/blob/master/lib/patterns.rb

Attributes

installed_version[RW]
name[RW]
newest_version[RW]

Public Class Methods

new(name: nil, installed_version: nil, newest_version: nil) click to toggle source
# File lib/bunup/gem.rb, line 15
def initialize(name: nil, installed_version: nil, newest_version: nil)
  @name = name
  @installed_version = Values::Version.new(installed_version)
  @newest_version = Values::Version.new(newest_version)
  validate
end

Public Instance Methods

installed_from_git?() click to toggle source
# File lib/bunup/gem.rb, line 22
def installed_from_git?
  installed_version.from_git? || newest_version.from_git?
end

Private Instance Methods

valid_name?() click to toggle source
# File lib/bunup/gem.rb, line 38
def valid_name?
  name =~ NAME_PATTERN
end
validate() click to toggle source
# File lib/bunup/gem.rb, line 28
def validate
  abort "Invalid gem name: #{name}" unless valid_name?
  unless installed_version.valid?
    abort "Invalid version for #{name}: #{installed_version}"
  end
  unless newest_version.valid?
    abort "Invalid version for #{name}: #{newest_version}"
  end
end