class FactorioMods::Api::ModPortal
Information taken from wiki.factorio.com/Mod_portal_API
Constants
- BASE_URL
Public Class Methods
all_mods(data = {})
click to toggle source
# File lib/factorio_mods/api/mod_portal.rb, line 8 def self.all_mods(data = {}) paginate = data.delete :paginate uri = URI(BASE_URL + '/api/mods') uri.query = data.map { |k, v| "#{k}=#{v}" }.join '&' data = JSON.parse(Net::HTTP.get(uri), symbolize_names: true) puts data results = data.fetch(:results).map { |mod| FactorioMods::Mod.new mod } while paginate && data[:pagination][:links][:next] uri = URI(data[:pagination][:links][:next]) data = JSON.parse(Net::HTTP.get(uri), symbolize_names: true) results.concat(data.fetch(:results).map { |mod| FactorioMods::Mod.new mod }) end results end
mod(name)
click to toggle source
# File lib/factorio_mods/api/mod_portal.rb, line 26 def self.mod(name) uri = URI(BASE_URL + '/api/mods/' + name) FactorioMods::Mod.new JSON.parse(Net::HTTP.get(uri), symbolize_names: true) end
mods(*names)
click to toggle source
# File lib/factorio_mods/api/mod_portal.rb, line 31 def self.mods(*names) uri = URI(BASE_URL + '/api/mods') uri.query = 'page_size=max&' + names.map { |mod| "namelist=#{mod}" }.join('&') JSON.parse(Net::HTTP.get(uri), symbolize_names: true) .fetch(:results) .map { |mod| FactorioMods::Mod.new mod } end
raw_mod(name)
click to toggle source
# File lib/factorio_mods/api/mod_portal.rb, line 39 def self.raw_mod(name) uri = URI(BASE_URL + '/api/mods/' + name) JSON.parse(Net::HTTP.get(uri), symbolize_names: true) end