class Smogon::API
Constants
- ENDPOINT
- METAGAME
Public Class Methods
request(what, name, remote = false)
click to toggle source
# File lib/smogon/api.rb, line 26 def request(what, name, remote = false) name = aliasize(name) if remote return JSON.parse(req( URI(ENDPOINT + what.to_s), { gen: METAGAME, alias: name } )) end unless @_basics @_basics = JSON.parse(req( URI(ENDPOINT + 'basics'), { gen: METAGAME } )) end @_basics[what.to_s].find do |x| aliasize(x['name']) == name end end
using_metagame(metagame, &block)
click to toggle source
# File lib/smogon/api.rb, line 48 def using_metagame(metagame, &block) default_metagame = METAGAME.dup METAGAME.replace aliasize(metagame) instance_eval(&block).tap do METAGAME.replace default_metagame end end
Private Class Methods
aliasize(string)
click to toggle source
# File lib/smogon/api.rb, line 58 def aliasize(string) string.downcase.gsub(' ', '_').gsub(/[^a-z0-9_\-]/i, '') end
req(uri, body)
click to toggle source
# File lib/smogon/api.rb, line 62 def req(uri, body) request = Net::HTTP::Post.new(uri) request.body = body.to_json request.content_type = 'application/json; charset=utf-8' Net::HTTP.start(uri.hostname, uri.port) do |http| http.request(request) end.body end