Class: GemCheckUpdates::Gem
- Inherits:
-
Object
- Object
- GemCheckUpdates::Gem
- Defined in:
- lib/gem_check_updates/gem.rb
Constant Summary collapse
- DEFAULT_SCOPE =
GemCheckUpdates::VersionScope::MAJOR
Instance Attribute Summary collapse
-
#current_version ⇒ Object
Returns the value of attribute current_version.
-
#name ⇒ Object
Returns the value of attribute name.
-
#version_range ⇒ Object
Returns the value of attribute version_range.
-
#versions ⇒ Object
Returns the value of attribute versions.
Instance Method Summary collapse
- #highlighted_latest_version ⇒ Object
-
#initialize(name: nil, current_version: nil, versions: [], version_range: nil, update_scope: DEFAULT_SCOPE) ⇒ Gem
constructor
A new instance of Gem.
- #latest_version ⇒ Object
- #update_available? ⇒ Boolean
Constructor Details
#initialize(name: nil, current_version: nil, versions: [], version_range: nil, update_scope: DEFAULT_SCOPE) ⇒ Gem
Returns a new instance of Gem.
12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/gem_check_updates/gem.rb', line 12 def initialize(name: nil, current_version: nil, versions: [], version_range: nil, update_scope: DEFAULT_SCOPE) @name = name @current_version = current_version @versions = versions @version_range = version_range @update_scope = update_scope end |
Instance Attribute Details
#current_version ⇒ Object
Returns the value of attribute current_version.
8 9 10 |
# File 'lib/gem_check_updates/gem.rb', line 8 def current_version @current_version end |
#name ⇒ Object
Returns the value of attribute name.
7 8 9 |
# File 'lib/gem_check_updates/gem.rb', line 7 def name @name end |
#version_range ⇒ Object
Returns the value of attribute version_range.
10 11 12 |
# File 'lib/gem_check_updates/gem.rb', line 10 def version_range @version_range end |
#versions ⇒ Object
Returns the value of attribute versions.
9 10 11 |
# File 'lib/gem_check_updates/gem.rb', line 9 def versions @versions end |
Instance Method Details
#highlighted_latest_version ⇒ Object
50 51 52 53 54 55 56 |
# File 'lib/gem_check_updates/gem.rb', line 50 def highlighted_latest_version major = @current_version.major == latest_version.major ? latest_version.major : latest_version.major.green minor = @current_version.minor == latest_version.minor ? latest_version.minor : latest_version.minor.green patch = @current_version.patch == latest_version.patch ? latest_version.patch : latest_version.patch.green [major, minor, patch].join('.') end |
#latest_version ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/gem_check_updates/gem.rb', line 31 def latest_version # Ignore pre release version (ex. beta, rc), and sort desc versions = @versions.reject(&:pre_release) .sort_by { |v| [v.major, v.minor, v.patch] } .reverse case @update_scope when GemCheckUpdates::VersionScope::MINOR versions.select { |v| v.major == @current_version.major }.first when GemCheckUpdates::VersionScope::PATCH versions.select do |v| v.major == @current_version.major && v.minor == @current_version.minor end.first else # This branch is equal to specifying major updates versions.first end end |
#update_available? ⇒ Boolean
24 25 26 27 28 29 |
# File 'lib/gem_check_updates/gem.rb', line 24 def update_available? !latest_version.nil? && !@current_version.nil? && @current_version.version_specified? && latest_version > @current_version end |