Class: Shangrila::Sora

Inherits:
Object
  • Object
show all
Defined in:
lib/shangrila/sora.rb

Instance Method Summary collapse

Constructor Details

#initialize(hostname = 'api.moemoe.tokyo') ⇒ Sora

Returns a new instance of Sora.



10
11
12
# File 'lib/shangrila/sora.rb', line 10

def initialize(hostname = 'api.moemoe.tokyo')
  @url = "http://#{hostname}/anime/v1/master"
end

Instance Method Details

#get_flat_data(year, cours, property_list) ⇒ Array

Returns 1タイトル1配列としたフラット配列.

Parameters:

  • year (Int)

    データ取得対象のアニメの年

  • cours (Int)

    データ取得対象のアニメの年のクール番号 1-4

  • データ取得対象のプロパティリスト (property)

Returns:

  • (Array)

    1タイトル1配列としたフラット配列



69
70
71
72
73
74
# File 'lib/shangrila/sora.rb', line 69

def get_flat_data(year, cours, property_list)
  master_list = get_master_data(year, cours)
  records = master_list.map{|master| property_list.map{|p|master[p]} }

  records
end

#get_map_key_id(year, cours) ⇒ HASH

Returns idをkeyとしたハッシュデータ.

Parameters:

  • year (Int)

    データ取得対象のアニメの年

  • cours (Int)

    データ取得対象のアニメの年のクール番号 1-4

Returns:

  • (HASH)

    idをkeyとしたハッシュデータ



55
56
57
58
59
60
61
62
63
# File 'lib/shangrila/sora.rb', line 55

def get_map_key_id(year, cours)
  master_list = get_master_data(year, cours)

  master_map = {}

  master_list.each{|master| master_map[master['id']] = master}

  master_map
end

#get_map_with_key_title(year, cours, property) ⇒ HASH

Returns タイトルをkey、propertyに対応する値をValueとしたハッシュ.

Parameters:

  • year (Int)

    データ取得対象のアニメの年

  • cours (Int)

    データ取得対象のアニメの年のクール番号 1-4

  • データ取得対象のプロパティ (property)

Returns:

  • (HASH)

    タイトルをkey、propertyに対応する値をValueとしたハッシュ



42
43
44
45
46
47
48
49
50
# File 'lib/shangrila/sora.rb', line 42

def get_map_with_key_title(year, cours, property)
  master_list = get_master_data(year, cours)

  master_map = {}

  master_list.each{|master| master_map[master['title']] = master[property]}

  master_map
end

#get_master_data(year, cours) ⇒ JSON-

Returns RubyHash] アニメのマスターデータすべて.

Parameters:

  • year (Int)

    データ取得対象のアニメの年

  • cours (Int)

    データ取得対象のアニメの年のクール番号 1-4

Returns:

  • (JSON-)

    RubyHash] アニメのマスターデータすべて



25
26
27
28
# File 'lib/shangrila/sora.rb', line 25

def get_master_data(year, cours)
  response = HTTPClient.get(sprintf("%s/%s/%s", @url, year, cours))
  JSON.load(response.body)
end

#get_master_data_raw(year, cours) ⇒ JSON

Returns アニメのマスターデータすべて.

Parameters:

  • year (Int)

    データ取得対象のアニメの年

  • cours (Int)

    データ取得対象のアニメの年のクール番号 1-4

Returns:

  • (JSON)

    アニメのマスターデータすべて



17
18
19
20
# File 'lib/shangrila/sora.rb', line 17

def get_master_data_raw(year, cours)
  response = HTTPClient.get(sprintf("%s/%s/%s", @url, year, cours))
  response.body
end

#get_title_list(year, cours) ⇒ JSON

Returns アニメのマスターデータのタイトルリスト.

Parameters:

  • year (Int)

    データ取得対象のアニメの年

  • cours (Int)

    データ取得対象のアニメの年のクール番号 1-4

Returns:

  • (JSON)

    アニメのマスターデータのタイトルリスト



33
34
35
36
# File 'lib/shangrila/sora.rb', line 33

def get_title_list(year, cours)
  master_list = get_master_data(year, cours)
  master_list.map{|master| master['title']}
end