Sha256: 9c7b77779b59e98bc147fea823c643454f739a4b170aaa44e5c3593f450d0822

Contents?: true

Size: 1.16 KB

Versions: 4

Compression:

Stored size: 1.16 KB

Contents

class EveApp::Type < EveApp::ApplicationRecord
  belongs_to :category
  belongs_to :group
  belongs_to :market_group
  belongs_to :market_group_root, class_name: 'EveApp::MarketGroup'

  has_many :activity_products

  scope :published, -> { where(published: true) }

  def blueprint?
    category_id == EveApp::Category::BLUEPRINT
  end

  def accessoire?
    category_id == EveApp::Category::ACCESSOIRE
  end

  def ship?
    category_id == EveApp::Category::SHIP
  end

  def image(size=64)
    "https://image.eveonline.com/Type/#{id}_#{size}.png"
  end

  def description
    category.name
  end

  def sort_key
    @_sort_key ||= [sort_index, name].join('-')
  end

  private

  def sort_index
    case category_id
    when EveApp::Category::SHIP
      return 1000
    when EveApp::Category::MODULE
      case market_group_root_id
      when EveApp::MarketGroup::SHIP_MODIFICATIONS
        return 1500
      else
        return 1100
      end
    when EveApp::Category::CHARGE
      case market_group_id
      when EveApp::MarketGroup::NANITE_PASTE
        return 1300
      else
        return 1200
      end
    when EveApp::Category::DRONE then 1500
    else 2000
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
eve_app-0.1.6 app/models/eve_app/type.rb
eve_app-0.1.5 app/models/eve_app/type.rb
eve_app-0.1.4 app/models/eve_app/type.rb
eve_app-0.1.3 app/models/eve_app/type.rb