class Storage

Attributes

db[RW]
file[RW]

Public Class Methods

new(file) click to toggle source
# File lib/botemon/storage.rb, line 23
def initialize(file)
  @file = file
  @db = [].tap { |db|
    (File.exists?(file) ? JSON.load(File.read(file)) : []).each { |p| db << Smogon::Type::Pokemon.to_pokemon(p) }
  }
end

Public Instance Methods

add(pokemon) click to toggle source
# File lib/botemon/storage.rb, line 46
def add(pokemon)
  return unless pokemon
  @db << pokemon unless is_cached?(pokemon.name)
end
Also aliased as: put
dump()
Alias for: get_all
get(name) click to toggle source
# File lib/botemon/storage.rb, line 36
def get(name)
  name = name.downcase
  @db.select { |p| p.name == name }.first
end
get_all() click to toggle source
# File lib/botemon/storage.rb, line 41
def get_all
  @db
end
Also aliased as: dump
include?(name)
Alias for: is_cached?
is_cached?(name) click to toggle source
# File lib/botemon/storage.rb, line 30
def is_cached?(name)
  name = name.downcase
  @db.select { |p| p.name == name }.any?
end
Also aliased as: include?
put(pokemon)
Alias for: add
save() click to toggle source
# File lib/botemon/storage.rb, line 52
def save
  [].tap { |ary|
    @db.each { |p| ary << p.to_ary }
    File.open(@file, 'wb') { |f|
      f.write JSON.dump(ary)
    }
  }
end