Class: Smogon::API

Inherits:
Object
  • Object
show all
Defined in:
lib/smogon/api.rb

Constant Summary collapse

METAGAME =
'xy'
ENDPOINT =
'http://www.smogon.com/dex/api/query?q='

Class Method Summary collapse

Class Method Details

.request(what, name, fields) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/smogon/api.rb', line 26

def request(what, name, fields)
  query = {
    what => { 'gen' => METAGAME, 'alias' => aliasize(name) },
    '$'  => fields
  }

  query = JSON.generate(query)
  query = URI.escape(query, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
  response = JSON.parse open("#{ENDPOINT}#{query}").read
  response['status'] == 'success' ? response['result'] : response['message']
end

.using_metagame(metagame, &block) ⇒ Object



38
39
40
41
42
43
44
# File 'lib/smogon/api.rb', line 38

def using_metagame(metagame, &block)
  default_metagame = METAGAME.dup
  METAGAME.replace aliasize(metagame)
  instance_eval(&block).tap do
    METAGAME.replace default_metagame
  end
end