class NHApi::Doujin

Attributes

cover[R]
id[R]
media_id[R]
num_favorites[R]
num_pages[R]
pages[R]
tags[R]
thumbnail[R]
title[R]
upload_date[R]

Public Class Methods

all(page = 1) click to toggle source
# File lib/nh_api/doujin.rb, line 29
def self.all(page = 1)
  response = Faraday.get("#{API_URL}galleries/all?page=#{page}")
  doujins = JSON.parse(response.body)["result"]
  doujins.map { |attributes| new(attributes) }
end
find(id) click to toggle source
# File lib/nh_api/doujin.rb, line 23
def self.find(id)
  response = Faraday.get("#{API_URL}/gallery/#{id}")
  attributes = JSON.parse(response.body)
  new(attributes)
end
new(attributes) click to toggle source
# File lib/nh_api/doujin.rb, line 10
def initialize(attributes)
  @id = attributes["id"]
  @media_id = attributes["media_id"]
  @title = attributes["title"]
  @pages = build_pages(attributes["images"]["pages"])
  @thumbnail = NHApi::Thumbnail.new(attributes["images"]["thumbnail"].merge(media_id: media_id))
  @cover = NHApi::Cover.new(attributes["images"]["cover"].merge(media_id: media_id))
  @upload_date = attributes["upload_date"]
  @tags = attributes["tags"]
  @num_pages = attributes["num_pages"]
  @num_favorites = attributes["num_favorites"]
end

Public Instance Methods

Private Instance Methods

build_pages(attributes) click to toggle source
# File lib/nh_api/doujin.rb, line 43
def build_pages(attributes)
  attributes.map.with_index do |page_data, page_index|
    NHApi::Page.new(page_data.merge(page_index: page_index + 1, media_id: media_id))
  end
end