Sha256: b24864007e1f80c9008c2b3c929d07003c9e8b2e8c44dea66b8a5561d2e341d3

Contents?: true

Size: 1.03 KB

Versions: 1

Compression:

Stored size: 1.03 KB

Contents

module Jikan
  class Search < BaseEntity

    def initialize(json, type)
      super(json)
      @type = type
      @search = true
    end

    def is_search?
      @search
    end

    def id
      iter { |i| i['id'] || i['mal_id'] }
    end

    def title
      iter { |i| i['title'] }
    end
    
    def url
      iter { |i| i['url'] }
    end

    # returns each result items wrapped in their respective objects
    def result
      case @type
      when :anime
        iter { |i| Jikan::AnimeResult.new(i) }
      when :manga
        iter { |i| Jikan::MangaResult.new(i) }
      when :character
        iter { |i| Jikan::CharacterResult.new(i) }
      when :person
        iter { |i| Jikan::PersonResult.new(i) }
      end
    end

    private

    def iter
      if @raw.respond_to? 'each'
        @raw['results'].map do |item|
          if block_given?
            yield item
          end
        end
      else
        raise ClientError, "#{@raw['error']}"
      end
    end   
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
jikan.rb-0.0.7 lib/jikan/models/search.rb