Sha256: a96c0c4c79590721cefc5fbef2fcfb9404a9165521bd37847f38a56cc092bba9

Contents?: true

Size: 1.72 KB

Versions: 2

Compression:

Stored size: 1.72 KB

Contents

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)
        response = Request.get("series/#{id}")
        response ? new(response['serie']) : 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 to_s
      "#{titel} (serieid #{serie_id_nebo})"
    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

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
zelda-1.4.0 lib/zelda/serie.rb
zelda-1.3.0 lib/zelda/serie.rb