Sha256: 457904afb0c26252724adcded443592b55b13718879f437034f877c893a640b2

Contents?: true

Size: 1.5 KB

Versions: 3

Compression:

Stored size: 1.5 KB

Contents

class CartridgeTypesController < ConsoleController

  def index
    user_default_domain

    @application = @domain.find_application params[:application_id]
    installed_carts = @application.cartridges

    types = CartridgeType.cached.embedded

    @blocked = []

    @installed, types = types.partition{ |t| installed_carts.any?{ |c| c.name == t.name } }
    @blacklist, types = types.partition{ |t| t.tags.include?(:blacklist) }

    @conflicts, types = types.partition{ |t| conflicts? t }
    @requires, types  = types.partition{ |t| requires? t }

    @installed.sort!; @conflicts.sort!; @requires.sort!
    @carts = types.sort!
  end

  def show
    user_default_domain
    @application = @domain.find_application params[:application_id]

    @cartridge_type = CartridgeType.cached.find params[:id]
    @cartridge = Cartridge.new :as => current_user
  end

  def conflicts?(cart_type)
    t = cart_type

    return false if @installed.nil? || t.conflicts.empty?

    # if this cart can conflict and a conflicting cart is installed
    # add this cart to the conflicted list
    @installed.each { |c| return true if t.conflicts.include? c.name }
    return false
  end

  def requires?(cart_type)
    t = cart_type

    return true if @installed.nil? && !t.requires.empty?
    return false if t.requires.empty?

    # if this cart has requirements and the required cart is not
    # installed add this cart to the requires list
    @installed.each { |c| return false if t.requires.include? c.name }
    return true
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
openshift-origin-console-1.3.4 app/controllers/cartridge_types_controller.rb
openshift-origin-console-1.3.3 app/controllers/cartridge_types_controller.rb
openshift-origin-console-1.3.2 app/controllers/cartridge_types_controller.rb