class Lita::Handlers::Cat

Constants

BASE_URL
CATEGORIES

Attributes

url[RW]

Public Class Methods

fetch(count: nil, category: nil) click to toggle source
# File lib/lita/handlers/cat.rb, line 22
def fetch(count: nil, category: nil)
  url = "#{BASE_URL}/images/search?format=json"
  url += "&limit=#{count}" unless count.nil?
  if category.present?
    return [] unless valid_category?(category)
    url += "&category_ids=#{CATEGORIES[category.to_sym]}"
  end

  JSON.parse(open(url) { |io| io.read }).each_with_object([]) do |cat, cats|
    cats << new(cat["url"])
  end
end
fetch_categories() click to toggle source
# File lib/lita/handlers/cat.rb, line 35
def fetch_categories
  CATEGORIES.keys.map(&:to_s)
end
new(url) click to toggle source
# File lib/lita/handlers/cat.rb, line 46
def initialize(url)
  @url = url
end

Private Class Methods

valid_category?(category) click to toggle source
# File lib/lita/handlers/cat.rb, line 41
def valid_category?(category)
  fetch_categories.include?(category)
end