class Smogon::Type::Base

Public Class Methods

new(response = nil) click to toggle source
# File lib/smogon/types/base.rb, line 23
def initialize(response = nil)
  return unless response

  attributes.each do |attr|
    public_send("#{attr}=", response[attr])
  end
end

Public Instance Methods

to_h() click to toggle source
# File lib/smogon/types/base.rb, line 31
def to_h
  attributes.zip(
    attributes.map { |attr| public_send(attr) }
  ).to_h
end
to_s() click to toggle source
# File lib/smogon/types/base.rb, line 37
def to_s
  attributes.map do |attr|
    key = attr.capitalize.gsub('_', ' ')
    val = public_send(attr)
    val = val.join(', ') if val.is_a?(Array)
    val == '' ? nil : "#{key}: #{val}"
  end.compact.join("\n")
end
url() click to toggle source
# File lib/smogon/types/base.rb, line 46
def url
  [
    'http://www.smogon.com/dex',
    ::Smogon::API::METAGAME,
    self.class::TYPE,
    name.gsub(' ', '_')
  ].join('/')
end

Private Instance Methods

attributes() click to toggle source
# File lib/smogon/types/base.rb, line 57
def attributes
  self.class::ATTRIBUTES
end