module Findable
Constants
- BASE_URL
Public Instance Methods
find_by_name(name)
click to toggle source
# File lib/concerns/findable.rb, line 14 def find_by_name(name) self.all.find{|i| i.name == name} end
find_by_type(type)
click to toggle source
# File lib/concerns/findable.rb, line 18 def find_by_type(type) output = [] data = JSON.parse(RestClient.get("#{BASE_URL}/type/#{type}/")) if self.tag == "pokemon" data["#{self.tag}"].each{|i| output << i["#{self.tag}"]["name"]} elsif self.tag == "move" data["#{self.tag}s"].each{|i| output << i["name"]} end output end
find_from_array(array)
click to toggle source
# File lib/concerns/findable.rb, line 54 def find_from_array(array) output = [] array.each do |i| output << self.find_or_create_by_name(i["#{self.tag}"]["name"]) end output end
find_list_by_type(type)
click to toggle source
# File lib/concerns/findable.rb, line 38 def find_list_by_type(type) output = [] url = "#{BASE_URL}/type/#{type}" data = JSON.parse(RestClient.get(url)) if self.tag == "move" data["moves"].each{|i| output << i["name"].capitalize} else data["pokemon"].each{|i| output << i["pokemon"]["name"].capitalize} end output end
find_or_create_by_name(name)
click to toggle source
# File lib/concerns/findable.rb, line 5 def find_or_create_by_name(name) url = "#{BASE_URL}/#{self.tag}/#{name}" if self.find_by_name(name).nil? self.new(name, url) else self.find_by_name(name) end end
find_random()
click to toggle source
# File lib/concerns/findable.rb, line 50 def find_random self.find_or_create_by_name(self.find_with_offset_and_limit()[0].downcase) end
find_with_offset_and_limit(offset = rand(0...self.limit), limit = 1)
click to toggle source
# File lib/concerns/findable.rb, line 30 def find_with_offset_and_limit(offset = rand(0...self.limit), limit = 1) output = [] url = "#{BASE_URL}/#{self.tag}?limit=#{limit}&offset=#{offset}" data = JSON.parse(RestClient.get(url)) data["results"].each{|i|output << i["name"].capitalize} output end