Class: Katello::HostDebPresenter
- Inherits:
-
SimpleDelegator
- Object
- SimpleDelegator
- Katello::HostDebPresenter
- Defined in:
- app/presenters/katello/host_deb_presenter.rb
Instance Attribute Summary collapse
-
#deb_id ⇒ Object
Returns the value of attribute deb_id.
-
#installed_package ⇒ Object
Returns the value of attribute installed_package.
-
#upgradable_versions ⇒ Object
Returns the value of attribute upgradable_versions.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(installed_package, upgradable_versions, deb_id) ⇒ HostDebPresenter
constructor
A new instance of HostDebPresenter.
Constructor Details
#initialize(installed_package, upgradable_versions, deb_id) ⇒ HostDebPresenter
Returns a new instance of HostDebPresenter.
5 6 7 8 9 10 |
# File 'app/presenters/katello/host_deb_presenter.rb', line 5 def initialize(installed_package, upgradable_versions, deb_id) @installed_package = installed_package @upgradable_versions = upgradable_versions @deb_id = deb_id super(@installed_package) end |
Instance Attribute Details
#deb_id ⇒ Object
Returns the value of attribute deb_id.
3 4 5 |
# File 'app/presenters/katello/host_deb_presenter.rb', line 3 def deb_id @deb_id end |
#installed_package ⇒ Object
Returns the value of attribute installed_package.
3 4 5 |
# File 'app/presenters/katello/host_deb_presenter.rb', line 3 def installed_package @installed_package end |
#upgradable_versions ⇒ Object
Returns the value of attribute upgradable_versions.
3 4 5 |
# File 'app/presenters/katello/host_deb_presenter.rb', line 3 def upgradable_versions @upgradable_versions end |
Class Method Details
.with_latest(packages, host) ⇒ Object
12 13 14 15 16 17 18 19 20 21 |
# File 'app/presenters/katello/host_deb_presenter.rb', line 12 def self.with_latest(packages, host) upgradable_packages_map = ::Katello::Deb.installable_for_hosts([host]).select(:id, :name, :architecture, :version).order(version: :desc).group_by { |i| [i.name, i.architecture] } installed_packages_map = ::Katello::Deb.where(version: packages.map(&:version)).select(:id, :architecture, :name).group_by { |i| [i.name, i.architecture] } packages.map do |p| upgrades = upgradable_packages_map[[p.name, p.architecture]]&.pluck(:version) installed = installed_packages_map[[p.name, p.architecture]]&.first&.id HostDebPresenter.new(p, upgrades, installed) end end |