class MWO::Mech

Public Class Methods

all() click to toggle source
# File lib/mwo/mech.rb, line 9
def self.all

  mechs = []
  all_raw["Mechs"].each do |name, attrs|

    # Remove the loadout from the index.
    attrs.delete('Loadout')

    # The mech classification value is broken in the API
    attrs.delete('Class')
    attrs["WeightClass"] = case attrs['MaxTons']
    when 0..35
      'Light'
    when 36..55
      'Medium'
    when 56..75
      'Heavy'
    when 76..100
      'Assault'
    when 101.300
      'Experimental'
    end

    # Remove the 'class' attribute, it is bugged from the API
    attrs.delete('Loadout')

    mech = {}
    attrs.each do |k,v|
      mech[to_symbol(k)] = v
    end

    # set override the invalid classification
    mechs << new(mech)
  end

  return mechs.extend MWO::CollectionUtils
end
all_raw(overrides: {}) click to toggle source
# File lib/mwo/mech.rb, line 4
def self.all_raw(overrides: {})
  client = MWO::Client.new(overrides: {})
  fetch(client.mechs_url)
end
assaults() click to toggle source
# File lib/mwo/mech.rb, line 59
def self.assaults
  all.filter({weight_class: 'Assault'})
end
dictionary() click to toggle source
# File lib/mwo/mech.rb, line 63
def self.dictionary
  client = MWO::Client.new(overrides: {})
  raw = fetch(client.mech_ids_url)
  raw["Mechs"]
end
heavies() click to toggle source
# File lib/mwo/mech.rb, line 55
def self.heavies
  all.filter({weight_class: 'Heavy'})
end
lights() click to toggle source
# File lib/mwo/mech.rb, line 47
def self.lights
  all.filter({weight_class: 'Light'})
end
mediums() click to toggle source
# File lib/mwo/mech.rb, line 51
def self.mediums
  all.filter({weight_class: 'Medium'})
end