module Zelda class Serie < Zelda::Base class << self def search(query) series = [] Request.get("series/search/#{query}")['series'].each do |attrs| series << Serie.new(attrs) end series end def find(id) attrs = Request.get("series/#{id}")['serie'] rescue nil attrs ? new(attrs) : nil end def all series = [] Request.get("series")['series'].each do |attrs| series << Serie.new(attrs) end series end def current series = [] Request.get("current_series")['series'].each do |attrs| series << Serie.new(attrs) end series end end def afleveringen(van=nil, tot=nil) get_afleveringen(:van => van, :tot => tot) end def upcoming_afleveringen get_afleveringen(:collection => "upcoming") end def past_afleveringen get_afleveringen(:collection => "past") end private def get_afleveringen(*args) @options = args.last.is_a?(::Hash) ? args.pop : {} Request.get(url)["afleveringen"].map do |vars| Zelda::Aflevering.new(vars) end end def url if collection = @options[:collection] [ "series", serie_id_nebo, "afleveringen", collection ].join("/") elsif @options[:van] && @options[:tot] van, tot = @options[:van], @options[:tot] [ "series", serie_id_nebo, "afleveringen" ].join("/") + "?van=#{van.to_i}&tot=#{tot.to_i}" else [ "series", serie_id_nebo, "afleveringen" ].join("/") end end end end