acme-smileage 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/.travis.yml +3 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +215 -0
- data/Rakefile +9 -0
- data/acme-smileage.gemspec +29 -0
- data/bin/smileage +3 -0
- data/lib/acme/smileage/blog/ameblo.rb +49 -0
- data/lib/acme/smileage/blog/ameblo_downloader.rb +171 -0
- data/lib/acme/smileage/blog/entry.rb +51 -0
- data/lib/acme/smileage/commands/base.rb +10 -0
- data/lib/acme/smileage/commands/oricon.rb +47 -0
- data/lib/acme/smileage/commands/soundscan.rb +18 -0
- data/lib/acme/smileage/commands.rb +16 -0
- data/lib/acme/smileage/discography/albums/2009/I001_amanojaku.rb +35 -0
- data/lib/acme/smileage/discography/albums/2009/I002_asuha_date_nanoni_imasugu_koe_ga_kikitai.rb +35 -0
- data/lib/acme/smileage/discography/albums/2009/I003_sukichan.rb +35 -0
- data/lib/acme/smileage/discography/albums/2010/A001_waru_gaki_(1).rb +50 -0
- data/lib/acme/smileage/discography/albums/2010/D001_yumemiru_15sai_(pax_japonica_groove_remix).rb +35 -0
- data/lib/acme/smileage/discography/albums/2010/D002_gambaranakutemo_eenende_(topnude_remix_version_01).rb +35 -0
- data/lib/acme/smileage/discography/albums/2010/D003_onaji_jikyuu_de_hataraku_tomodachi_no_bijin_mama_(remix_type1).rb +35 -0
- data/lib/acme/smileage/discography/albums/2010/I004_otona_ni_narutte_muzukashii.rb +35 -0
- data/lib/acme/smileage/discography/albums/2010/S001_yumemiru_15sai.rb +42 -0
- data/lib/acme/smileage/discography/albums/2010/S002_gambaranakutemo_eenende.rb +47 -0
- data/lib/acme/smileage/discography/albums/2010/S003_onaji_jikyuu_de_hataraku_tomodachi_no_bijin_mama.rb +46 -0
- data/lib/acme/smileage/discography/albums/2011/D004_shortcut_(remixver).rb +35 -0
- data/lib/acme/smileage/discography/albums/2011/D005_uchouten_love_rocketman_mix.rb +35 -0
- data/lib/acme/smileage/discography/albums/2011/S004_shortcut.rb +51 -0
- data/lib/acme/smileage/discography/albums/2011/S005_koi_ni_booing_boo.rb +51 -0
- data/lib/acme/smileage/discography/albums/2011/S006_uchouten_love.rb +51 -0
- data/lib/acme/smileage/discography/albums/2011/S007_tachiagirl.rb +56 -0
- data/lib/acme/smileage/discography/albums/2011/S008_please_minisuka_post_woman.rb +52 -0
- data/lib/acme/smileage/discography/albums/2012/A002_smleage_best_album_complete_(1).rb +54 -0
- data/lib/acme/smileage/discography/albums/2012/S009_choto_mate_kudasai.rb +52 -0
- data/lib/acme/smileage/discography/albums/2012/S010_dotbikini.rb +51 -0
- data/lib/acme/smileage/discography/albums/2012/S011_sukiyo_junjou_hankouki.rb +50 -0
- data/lib/acme/smileage/discography/albums/2012/S012_samuine.rb +50 -0
- data/lib/acme/smileage/discography/albums/2013/A003_(2)_smile_sensation.rb +48 -0
- data/lib/acme/smileage/discography/albums/2013/S013_tabidachi_no_haru_ga_kita.rb +50 -0
- data/lib/acme/smileage/discography/albums/2013/S014_atarashii_watashini_nare_yattaruchan.rb +50 -0
- data/lib/acme/smileage/discography/albums/2013/S015_eeka_iiyatsu.rb +50 -0
- data/lib/acme/smileage/discography/albums/2014/S016_mystery_night_eighteen_emotion.rb +54 -0
- data/lib/acme/smileage/discography/albums/base.rb +37 -0
- data/lib/acme/smileage/discography/albums.rb +28 -0
- data/lib/acme/smileage/discography/hello_project_music_award.rb +22 -0
- data/lib/acme/smileage/discography/lyrics_downloader.rb +48 -0
- data/lib/acme/smileage/discography/sales.rb +43 -0
- data/lib/acme/smileage/discography/tracks/2009/001_amanojaku.rb +57 -0
- data/lib/acme/smileage/discography/tracks/2009/002_asuha_date_nanoni_imasugu_koe_ga_kikitai.rb +57 -0
- data/lib/acme/smileage/discography/tracks/2009/003_sukichan.rb +57 -0
- data/lib/acme/smileage/discography/tracks/2010/004_otona_ni_narutte_muzukashii.rb +57 -0
- data/lib/acme/smileage/discography/tracks/2010/005_yumemiru_15sai.rb +77 -0
- data/lib/acme/smileage/discography/tracks/2010/006_thank_you_creme_brulee_no_yuujou.rb +37 -0
- data/lib/acme/smileage/discography/tracks/2010/007_yumemiru_15sai_(pax_japonica_groove_remix).rb +38 -0
- data/lib/acme/smileage/discography/tracks/2010/008_gambaranakutemo_eenende.rb +85 -0
- data/lib/acme/smileage/discography/tracks/2010/009_gambaranakutemo_iindayo.rb +44 -0
- data/lib/acme/smileage/discography/tracks/2010/010_smile_bijin.rb +36 -0
- data/lib/acme/smileage/discography/tracks/2010/011_gambaranakutemo_eenende_(topnude_remix_version_01).rb +38 -0
- data/lib/acme/smileage/discography/tracks/2010/012_onaji_jikyuu_de_hataraku_tomodachi_no_bijin_mama.rb +85 -0
- data/lib/acme/smileage/discography/tracks/2010/013_chokotto_love.rb +38 -0
- data/lib/acme/smileage/discography/tracks/2010/014_onaji_jikyuu_de_hataraku_tomodachi_no_bijin_mama_(remix_type1).rb +38 -0
- data/lib/acme/smileage/discography/tracks/2010/015_odorouyo.rb +36 -0
- data/lib/acme/smileage/discography/tracks/2010/016_onna_bakari_no_nichiyoubi.rb +36 -0
- data/lib/acme/smileage/discography/tracks/2010/017_shooting_star.rb +36 -0
- data/lib/acme/smileage/discography/tracks/2010/018_gakkyuu_iinchou.rb +36 -0
- data/lib/acme/smileage/discography/tracks/2010/019_shikkari_shiteyo_mou.rb +36 -0
- data/lib/acme/smileage/discography/tracks/2011/020_shortcut.rb +69 -0
- data/lib/acme/smileage/discography/tracks/2011/021_panyasan_no_arbeit.rb +36 -0
- data/lib/acme/smileage/discography/tracks/2011/022_otome_pasta_ni_kandou.rb +38 -0
- data/lib/acme/smileage/discography/tracks/2011/023_koi_ni_booing_boo.rb +69 -0
- data/lib/acme/smileage/discography/tracks/2011/024_hatukoi_no_anatahe.rb +36 -0
- data/lib/acme/smileage/discography/tracks/2011/025_koi_wo_shichaimashita.rb +38 -0
- data/lib/acme/smileage/discography/tracks/2011/026_uchouten_love.rb +77 -0
- data/lib/acme/smileage/discography/tracks/2011/027_jitensha_chiririn.rb +36 -0
- data/lib/acme/smileage/discography/tracks/2011/028_chu_natsu_party.rb +38 -0
- data/lib/acme/smileage/discography/tracks/2011/029_shortcut_(remixver).rb +37 -0
- data/lib/acme/smileage/discography/tracks/2011/030_uchouten_love_rocketman_mix.rb +38 -0
- data/lib/acme/smileage/discography/tracks/2011/031_tachiagirl.rb +73 -0
- data/lib/acme/smileage/discography/tracks/2011/032_smile_ondon.rb +35 -0
- data/lib/acme/smileage/discography/tracks/2011/033_boogie_train11.rb +38 -0
- data/lib/acme/smileage/discography/tracks/2011/034_smileage_singles_gekimoe_remix.rb +35 -0
- data/lib/acme/smileage/discography/tracks/2011/035_please_minisuka_post_woman.rb +45 -0
- data/lib/acme/smileage/discography/tracks/2011/036_konnichiwa_konbanwa.rb +36 -0
- data/lib/acme/smileage/discography/tracks/2011/037_smileage_singles_gekiyaba_remix.rb +35 -0
- data/lib/acme/smileage/discography/tracks/2011/038_tewo_nigitte_arukitai.rb +38 -0
- data/lib/acme/smileage/discography/tracks/2012/039_choto_mate_kudasai.rb +45 -0
- data/lib/acme/smileage/discography/tracks/2012/040_chance_tourai.rb +36 -0
- data/lib/acme/smileage/discography/tracks/2012/041_smileage_singles_gekiatsu_remix.rb +35 -0
- data/lib/acme/smileage/discography/tracks/2012/042_namida_girl.rb +38 -0
- data/lib/acme/smileage/discography/tracks/2012/043_dotbikini.rb +45 -0
- data/lib/acme/smileage/discography/tracks/2012/044_smile_blues.rb +36 -0
- data/lib/acme/smileage/discography/tracks/2012/045_koibito_ha_kokoro_no_ouendan.rb +38 -0
- data/lib/acme/smileage/discography/tracks/2012/046_kiiroi_jitensha_to_sandwich.rb +36 -0
- data/lib/acme/smileage/discography/tracks/2012/047_sukiyo_junjou_hankouki.rb +45 -0
- data/lib/acme/smileage/discography/tracks/2012/048_kimi_ha_jitensha_watasi_ha_densya_de_kitaku.rb +38 -0
- data/lib/acme/smileage/discography/tracks/2012/049_samuine.rb +49 -0
- data/lib/acme/smileage/discography/tracks/2012/050_watashi_choito_kawaii_urabancho.rb +36 -0
- data/lib/acme/smileage/discography/tracks/2013/051_tabidachi_no_haru_ga_kita.rb +45 -0
- data/lib/acme/smileage/discography/tracks/2013/052_doushiyou.rb +36 -0
- data/lib/acme/smileage/discography/tracks/2013/053_shin_nihon_no_susume.rb +36 -0
- data/lib/acme/smileage/discography/tracks/2013/054_otona_no_tochuu.rb +36 -0
- data/lib/acme/smileage/discography/tracks/2013/055_tenshin_ramman.rb +36 -0
- data/lib/acme/smileage/discography/tracks/2013/056_watashi_no_kokoro.rb +36 -0
- data/lib/acme/smileage/discography/tracks/2013/057_yuugure_koi_no_jikan.rb +36 -0
- data/lib/acme/smileage/discography/tracks/2013/058_nee_sempai.rb +36 -0
- data/lib/acme/smileage/discography/tracks/2013/059_sayonara_sayonara_sayonara.rb +36 -0
- data/lib/acme/smileage/discography/tracks/2013/060_atarashii_watashini_nare.rb +45 -0
- data/lib/acme/smileage/discography/tracks/2013/061_yattaruchan.rb +45 -0
- data/lib/acme/smileage/discography/tracks/2013/062_eeka.rb +44 -0
- data/lib/acme/smileage/discography/tracks/2013/063_iiyatsu.rb +44 -0
- data/lib/acme/smileage/discography/tracks/2014/064_mystery_night.rb +44 -0
- data/lib/acme/smileage/discography/tracks/2014/065_eighteen_emotion.rb +44 -0
- data/lib/acme/smileage/discography/tracks/base.rb +39 -0
- data/lib/acme/smileage/discography/tracks.rb +65 -0
- data/lib/acme/smileage/discography.rb +101 -0
- data/lib/acme/smileage/members/base.rb +56 -0
- data/lib/acme/smileage/members/fukuda_kanon.rb +29 -0
- data/lib/acme/smileage/members/katsuta_rina.rb +29 -0
- data/lib/acme/smileage/members/kosuga_fuyuka.rb +29 -0
- data/lib/acme/smileage/members/maeda_yuuka.rb +29 -0
- data/lib/acme/smileage/members/nakanishi_kana.rb +29 -0
- data/lib/acme/smileage/members/ogawa_saki.rb +29 -0
- data/lib/acme/smileage/members/takeuchi_akari.rb +29 -0
- data/lib/acme/smileage/members/tamura_meimi.rb +29 -0
- data/lib/acme/smileage/members/wada_ayaka.rb +29 -0
- data/lib/acme/smileage/members.rb +40 -0
- data/lib/acme/smileage/utils/base_downloader.rb +38 -0
- data/lib/acme/smileage/utils/matcher.rb +64 -0
- data/lib/acme/smileage/version.rb +5 -0
- data/lib/acme/smileage/version.rb~ +5 -0
- data/lib/acme/smileage.rb +55 -0
- data/test/acme/test_album.rb +204 -0
- data/test/acme/test_member.rb +45 -0
- data/test/acme/test_smileage.rb +144 -0
- data/test/acme/test_track.rb +57 -0
- data/test/minitest_helper.rb +5 -0
- metadata +287 -0
@@ -0,0 +1,204 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
require "date"
|
4
|
+
|
5
|
+
require "minitest_helper"
|
6
|
+
|
7
|
+
class Acme::TestAlbum < Minitest::Test
|
8
|
+
def test_single
|
9
|
+
s = ::Acme::Smileage.new
|
10
|
+
|
11
|
+
a = s.discography.find {|e| e.name =~ /夢見る/ }
|
12
|
+
assert_equal "夢見る 15歳", a.name
|
13
|
+
assert_equal "yumemiru 15sai", a.name_romaji
|
14
|
+
assert_equal Date.new(2010, 5, 26), a.release_date
|
15
|
+
assert_equal 2010, a.release_year
|
16
|
+
assert_equal [20438, 24936, 5, 4], a.oricon.to_a
|
17
|
+
assert_equal [8494, 8494, 17, 1], a.soundscan.to_a
|
18
|
+
|
19
|
+
artwork_links = [
|
20
|
+
{
|
21
|
+
:title => "夢見る 15歳 【通常盤】",
|
22
|
+
:link => "http://s-mileage.jp/discography/obj/img/000/009/100517-1512_01l.jpg",
|
23
|
+
},
|
24
|
+
{
|
25
|
+
:title => "夢見る 15歳 【初回生産限定盤A】",
|
26
|
+
:link => "http://s-mileage.jp/discography/obj/img/000/009/100517-1512_02l.jpg",
|
27
|
+
},
|
28
|
+
{
|
29
|
+
:title => "夢見る 15歳 【初回生産限定盤B】",
|
30
|
+
:link => "http://s-mileage.jp/discography/obj/img/000/009/100517-1512_03l.jpg",
|
31
|
+
},
|
32
|
+
]
|
33
|
+
assert_equal artwork_links, a.artwork_links
|
34
|
+
|
35
|
+
tracks = []
|
36
|
+
tracks << Acme::Smileage::Discography::Tracks::Yumemiru15sai.instance
|
37
|
+
tracks << Acme::Smileage::Discography::Tracks::ThankYouCremeBruleeNoYuujou.instance
|
38
|
+
assert_equal tracks, a.tracks
|
39
|
+
|
40
|
+
assert_equal true, a.single?
|
41
|
+
assert_equal false, a.album?
|
42
|
+
assert_equal false, a.best_album?
|
43
|
+
assert_equal false, a.original_album?
|
44
|
+
assert_equal true, a.major?
|
45
|
+
assert_equal false, a.indies?
|
46
|
+
assert_equal false, a.download_only?
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_indies
|
50
|
+
s = ::Acme::Smileage.new
|
51
|
+
|
52
|
+
a = s.discography.find {|e| e.name =~ /ぁまのじゃく/ }
|
53
|
+
assert_equal "ぁまのじゃく", a.name
|
54
|
+
assert_equal "amanojaku", a.name_romaji
|
55
|
+
assert_equal Date.new(2009, 6, 7), a.release_date
|
56
|
+
assert_equal 2009, a.release_year
|
57
|
+
assert_equal [0, 0, 0, 0], a.oricon.to_a
|
58
|
+
assert_equal [0, 0, 0, 0], a.soundscan.to_a
|
59
|
+
artwork_links = [
|
60
|
+
{
|
61
|
+
:title => "ぁまのじゃく",
|
62
|
+
:link => "http://s-mileage.jp/discography/obj/img/000/012/100922-1209_01l.jpg",
|
63
|
+
},
|
64
|
+
]
|
65
|
+
assert_equal artwork_links, a.artwork_links
|
66
|
+
|
67
|
+
tracks = []
|
68
|
+
tracks << Acme::Smileage::Discography::Tracks::Amanojaku.instance
|
69
|
+
assert_equal tracks, a.tracks
|
70
|
+
|
71
|
+
assert_equal true, a.single?
|
72
|
+
assert_equal false, a.album?
|
73
|
+
assert_equal false, a.best_album?
|
74
|
+
assert_equal false, a.original_album?
|
75
|
+
assert_equal false, a.major?
|
76
|
+
assert_equal true, a.indies?
|
77
|
+
assert_equal false, a.download_only?
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_download_only
|
81
|
+
s = ::Acme::Smileage.new
|
82
|
+
|
83
|
+
a = s.discography.find {|e| e.name =~ /PAX JAPONICA/ }
|
84
|
+
assert_equal "夢見る 15歳 (PAX JAPONICA GROOVE REMIX)", a.name
|
85
|
+
assert_equal "yumemiru 15sai (pax japonica groove remix)", a.name_romaji
|
86
|
+
assert_equal Date.new(2010, 6, 18), a.release_date
|
87
|
+
assert_equal 2010, a.release_year
|
88
|
+
artwork_links = [
|
89
|
+
{
|
90
|
+
:title => "夢見る 15歳 (PAX JAPONICA GROOVE REMIX)",
|
91
|
+
:link => "http://s-mileage.jp/discography/obj/img/000/032/100709-1334_01l.jpg",
|
92
|
+
},
|
93
|
+
]
|
94
|
+
assert_equal artwork_links, a.artwork_links
|
95
|
+
|
96
|
+
tracks = []
|
97
|
+
tracks << Acme::Smileage::Discography::Tracks::Yumemiru15saiPaxJaponicaGrooveRemix.instance
|
98
|
+
assert_equal tracks, a.tracks
|
99
|
+
|
100
|
+
assert_equal false, a.single?
|
101
|
+
assert_equal false, a.album?
|
102
|
+
assert_equal false, a.best_album?
|
103
|
+
assert_equal false, a.original_album?
|
104
|
+
assert_equal true, a.major?
|
105
|
+
assert_equal false, a.indies?
|
106
|
+
assert_equal true, a.download_only?
|
107
|
+
end
|
108
|
+
|
109
|
+
def test_album
|
110
|
+
s = ::Acme::Smileage.new
|
111
|
+
|
112
|
+
a = s.discography.find {|e| e.name =~ /悪ガキ/ }
|
113
|
+
assert_equal "悪ガキッ①", a.name
|
114
|
+
assert_equal "waru gaki (1)", a.name_romaji
|
115
|
+
assert_equal Date.new(2010, 12, 8), a.release_date
|
116
|
+
assert_equal 2010, a.release_year
|
117
|
+
assert_equal [8905, 11848, 18, 5], a.oricon.to_a
|
118
|
+
assert_equal [0, 0, 0, 0], a.soundscan.to_a
|
119
|
+
|
120
|
+
artwork_links = [
|
121
|
+
{
|
122
|
+
:title => "悪ガキッ① 【通常盤】",
|
123
|
+
:link => "http://s-mileage.jp/discography/obj/img/000/047/101118-1624_01l.jpg",
|
124
|
+
},
|
125
|
+
{
|
126
|
+
:title => "悪ガキッ① 【初回生産限定盤】",
|
127
|
+
:link => "http://s-mileage.jp/discography/obj/img/000/047/101118-1624_02l.jpg",
|
128
|
+
},
|
129
|
+
]
|
130
|
+
assert_equal artwork_links, a.artwork_links
|
131
|
+
|
132
|
+
tracks = []
|
133
|
+
tracks << Acme::Smileage::Discography::Tracks::OnajiJikyuuDeHatarakuTomodachiNoBijinMama.instance
|
134
|
+
tracks << Acme::Smileage::Discography::Tracks::Odorouyo.instance
|
135
|
+
tracks << Acme::Smileage::Discography::Tracks::OnnaBakariNoNichiyoubi.instance
|
136
|
+
tracks << Acme::Smileage::Discography::Tracks::Yumemiru15sai.instance
|
137
|
+
tracks << Acme::Smileage::Discography::Tracks::ShootingStar.instance
|
138
|
+
tracks << Acme::Smileage::Discography::Tracks::GambaranakutemoEenende.instance
|
139
|
+
tracks << Acme::Smileage::Discography::Tracks::Sukichan.instance
|
140
|
+
tracks << Acme::Smileage::Discography::Tracks::GakkyuuIinchou.instance
|
141
|
+
tracks << Acme::Smileage::Discography::Tracks::ShikkariShiteyoMou.instance
|
142
|
+
tracks << Acme::Smileage::Discography::Tracks::OtonaNiNarutteMuzukashii.instance
|
143
|
+
tracks << Acme::Smileage::Discography::Tracks::AsuhaDateNanoniImasuguKoeGaKikitai.instance
|
144
|
+
tracks << Acme::Smileage::Discography::Tracks::Amanojaku.instance
|
145
|
+
assert_equal tracks, a.tracks
|
146
|
+
|
147
|
+
assert_equal false, a.single?
|
148
|
+
assert_equal true, a.album?
|
149
|
+
assert_equal false, a.best_album?
|
150
|
+
assert_equal true, a.original_album?
|
151
|
+
assert_equal true, a.major?
|
152
|
+
assert_equal false, a.indies?
|
153
|
+
assert_equal false, a.download_only?
|
154
|
+
end
|
155
|
+
|
156
|
+
def test_best_album
|
157
|
+
s = ::Acme::Smileage.new
|
158
|
+
|
159
|
+
a = s.discography.find {|e| e.name =~ /ベスト/ }
|
160
|
+
assert_equal "スマイレージ ベストアルバム完全版①", a.name
|
161
|
+
assert_equal "smleage best album complete (1)", a.name_romaji
|
162
|
+
assert_equal [], a.nicknames
|
163
|
+
assert_equal Date.new(2012, 5, 30), a.release_date
|
164
|
+
assert_equal [6339, 8095, 13, 3], a.oricon.to_a
|
165
|
+
assert_equal [0, 0, 0, 0], a.soundscan.to_a
|
166
|
+
artwork_links = [
|
167
|
+
{
|
168
|
+
:title => "スマイレージ ベストアルバム完全版① 【通常盤】",
|
169
|
+
:link => "http://s-mileage.jp/discography/obj/img/000/114/120502-2111_01l.jpg",
|
170
|
+
},
|
171
|
+
{
|
172
|
+
:title => "スマイレージ ベストアルバム完全版① 【初回生産限定盤】",
|
173
|
+
:link => "http://s-mileage.jp/discography/obj/img/000/114/120502-2111_02l.jpg",
|
174
|
+
},
|
175
|
+
]
|
176
|
+
assert_equal artwork_links, a.artwork_links
|
177
|
+
|
178
|
+
tracks = []
|
179
|
+
tracks << Acme::Smileage::Discography::Tracks::Dotbikini.instance
|
180
|
+
tracks << Acme::Smileage::Discography::Tracks::ChotoMateKudasai.instance
|
181
|
+
tracks << Acme::Smileage::Discography::Tracks::PleaseMinisukaPostWoman.instance
|
182
|
+
tracks << Acme::Smileage::Discography::Tracks::Tachiagirl.instance
|
183
|
+
tracks << Acme::Smileage::Discography::Tracks::UchoutenLove.instance
|
184
|
+
tracks << Acme::Smileage::Discography::Tracks::KoiNiBooingBoo.instance
|
185
|
+
tracks << Acme::Smileage::Discography::Tracks::Shortcut.instance
|
186
|
+
tracks << Acme::Smileage::Discography::Tracks::OnajiJikyuuDeHatarakuTomodachiNoBijinMama.instance
|
187
|
+
tracks << Acme::Smileage::Discography::Tracks::GambaranakutemoEenende.instance
|
188
|
+
tracks << Acme::Smileage::Discography::Tracks::Yumemiru15sai.instance
|
189
|
+
tracks << Acme::Smileage::Discography::Tracks::OtonaNiNarutteMuzukashii.instance
|
190
|
+
tracks << Acme::Smileage::Discography::Tracks::Sukichan.instance
|
191
|
+
tracks << Acme::Smileage::Discography::Tracks::AsuhaDateNanoniImasuguKoeGaKikitai.instance
|
192
|
+
tracks << Acme::Smileage::Discography::Tracks::Amanojaku.instance
|
193
|
+
tracks << Acme::Smileage::Discography::Tracks::KiiroiJitenshaToSandwich.instance
|
194
|
+
assert_equal tracks, a.tracks
|
195
|
+
|
196
|
+
assert_equal false, a.single?
|
197
|
+
assert_equal true, a.album?
|
198
|
+
assert_equal true, a.best_album?
|
199
|
+
assert_equal false, a.original_album?
|
200
|
+
assert_equal true, a.major?
|
201
|
+
assert_equal false, a.indies?
|
202
|
+
assert_equal false, a.download_only?
|
203
|
+
end
|
204
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
require "date"
|
4
|
+
|
5
|
+
require "minitest_helper"
|
6
|
+
|
7
|
+
class Acme::TestMember < Minitest::Test
|
8
|
+
def test_member_all
|
9
|
+
s = ::Acme::Smileage.new
|
10
|
+
rp = s.members.select {|e| e.name =~ /Rina/ }.first
|
11
|
+
|
12
|
+
assert_equal "勝田", rp.family_name_ja
|
13
|
+
assert_equal "里奈", rp.first_name_ja
|
14
|
+
assert_equal "Katsuta", rp.family_name_en
|
15
|
+
assert_equal "Rina", rp.first_name_en
|
16
|
+
assert_equal Date.new(1998, 4, 6), rp.birthday
|
17
|
+
assert_equal "A", rp.blood_type
|
18
|
+
assert_equal "東京", rp.hometown
|
19
|
+
assert_equal "リナp´ v`)", rp.emoticon
|
20
|
+
assert_equal ["りなぷ~"], rp.nicknames
|
21
|
+
assert_equal ["りなぷ~"], rp.nick
|
22
|
+
assert_equal "Yellow", rp.member_color
|
23
|
+
assert_equal "Yellow", rp.color
|
24
|
+
assert_equal "http://ameblo.jp/smileage-submember/", rp.blog_link
|
25
|
+
assert_equal ["@smileage_newmem", "@smileage_715"], rp.twitter_accounts
|
26
|
+
assert_equal 2, rp.generation
|
27
|
+
assert_equal Date.new(2011, 8, 14), rp.join_date
|
28
|
+
assert_equal nil, rp.graduate_date
|
29
|
+
|
30
|
+
assert_equal 15, rp.age(Date.new(2014, 4, 5))
|
31
|
+
assert_equal 16, rp.age(Date.new(2014, 4, 6))
|
32
|
+
|
33
|
+
assert_equal false, rp.active?(Date.new(2011, 8, 13))
|
34
|
+
assert_equal true, rp.active?(Date.new(2011, 8, 14))
|
35
|
+
assert_equal true, rp.active?(Date.new(2014, 4, 6))
|
36
|
+
|
37
|
+
assert_equal false, rp.graduated?(Date.new(2011, 8, 13))
|
38
|
+
assert_equal false, rp.graduated?(Date.new(2011, 8, 14))
|
39
|
+
assert_equal false, rp.graduated?(Date.new(2014, 4, 6))
|
40
|
+
|
41
|
+
assert_equal "Rina Katsuta", rp.name
|
42
|
+
assert_equal "Rina Katsuta", rp.name_en
|
43
|
+
assert_equal "勝田里奈", rp.name_ja
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,144 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
require "date"
|
4
|
+
|
5
|
+
require "minitest_helper"
|
6
|
+
|
7
|
+
class Acme::TestSmileage < Minitest::Test
|
8
|
+
def test_version_number
|
9
|
+
refute_nil ::Acme::Smileage::VERSION
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_member_invalid_type
|
13
|
+
s = ::Acme::Smileage.new
|
14
|
+
assert_raises(ArgumentError) { s.members(:hoge) }
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_member_all
|
18
|
+
s = ::Acme::Smileage.new
|
19
|
+
assert_equal ["Ayaka", "Yuuka", "Kanon", "Saki", "Kana", "Fuyuka", "Akari", "Rina", "Meimi"], s.members.map{|e| e.first_name_en }
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_member_active
|
23
|
+
s = ::Acme::Smileage.new
|
24
|
+
assert_equal ["Ayaka", "Kanon", "Kana", "Akari", "Rina", "Meimi"], s.members {|e| e.active? }.map{|e| e.first_name_en }
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_member_graduate
|
28
|
+
s = ::Acme::Smileage.new
|
29
|
+
assert_equal ["Yuuka", "Saki", "Fuyuka"], s.members {|e| e.graduated? }.map{|e| e.first_name_en }
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_member_date
|
33
|
+
s = ::Acme::Smileage.new
|
34
|
+
|
35
|
+
assert_equal ["Ayaka", "Yuuka", "Kanon", "Saki"], s.members {|e| e.active?(Date.new(2011, 8, 13)) }.map{|e| e.first_name_en }
|
36
|
+
assert_equal ["Ayaka", "Yuuka", "Kanon", "Saki", "Kana", "Fuyuka", "Akari", "Rina", "Meimi"], s.members {|e| e.active?(Date.new(2011, 8, 14)) }.map{|e| e.first_name_en }
|
37
|
+
|
38
|
+
assert_equal ["Ayaka", "Yuuka", "Kanon", "Saki", "Kana", "Fuyuka", "Akari", "Rina", "Meimi"], s.members {|e| e.active?(Date.new(2011, 8, 27)) }.map{|e| e.first_name_en }
|
39
|
+
assert_equal ["Ayaka", "Yuuka", "Kanon", "Kana", "Fuyuka", "Akari", "Rina", "Meimi"], s.members {|e| e.active?(Date.new(2011, 8, 28)) }.map{|e| e.first_name_en }
|
40
|
+
|
41
|
+
assert_equal ["Ayaka", "Yuuka", "Kanon", "Kana", "Fuyuka", "Akari", "Rina", "Meimi"], s.members {|e| e.active?(Date.new(2011, 9, 9)) }.map{|e| e.first_name_en }
|
42
|
+
assert_equal ["Ayaka", "Yuuka", "Kanon", "Kana", "Akari", "Rina", "Meimi"], s.members {|e| e.active?(Date.new(2011, 9, 10)) }.map{|e| e.first_name_en }
|
43
|
+
|
44
|
+
assert_equal ["Ayaka", "Yuuka", "Kanon", "Kana", "Akari", "Rina", "Meimi"], s.members {|e| e.active?(Date.new(2011, 12, 31)) }.map{|e| e.first_name_en }
|
45
|
+
assert_equal ["Ayaka", "Kanon", "Kana", "Akari", "Rina", "Meimi"], s.members {|e| e.active?(Date.new(2012, 1, 1)) }.map{|e| e.first_name_en }
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_member_select
|
49
|
+
s = ::Acme::Smileage.new
|
50
|
+
|
51
|
+
assert_equal ["Ayaka", "Yuuka", "Kanon", "Saki"], s.members.select {|e| e.generation == 1 }.map{|e| e.first_name_en }
|
52
|
+
assert_equal ["Kana", "Fuyuka", "Akari", "Rina", "Meimi"], s.members.select {|e| e.generation == 2 }.map{|e| e.first_name_en }
|
53
|
+
assert_equal ["Kana", "Akari", "Rina", "Meimi"], s.members.select {|e| e.generation == 2 && e.active? }.map{|e| e.first_name_en }
|
54
|
+
|
55
|
+
assert_equal ["Ayaka", "Meimi"], s.members.select {|e| e.hometown == "群馬" }.map{|e| e.first_name_en }
|
56
|
+
assert_equal ["Kanon", "Saki", "Akari"], s.members.select {|e| e.hometown == "埼玉" }.map{|e| e.first_name_en }
|
57
|
+
|
58
|
+
assert_equal ["Ayaka", "Kanon", "Saki", "Kana", "Rina"], s.members.select {|e| e.blood_type == "A" }.map{|e| e.first_name_en }
|
59
|
+
assert_equal ["Yuuka"], s.members.select {|e| e.blood_type == "B" }.map{|e| e.first_name_en }
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_member_sort_by
|
63
|
+
s = ::Acme::Smileage.new
|
64
|
+
assert_equal ["Akari", "Ayaka", "Fuyuka", "Kana", "Kanon", "Meimi", "Rina", "Saki", "Yuuka"], s.members.sort_by {|e| e.name }.map{|e| e.first_name_en }
|
65
|
+
end
|
66
|
+
|
67
|
+
def test_discography
|
68
|
+
s = ::Acme::Smileage.new
|
69
|
+
|
70
|
+
assert_equal 28, s.discography.length
|
71
|
+
|
72
|
+
# discography に直接ブロック指定してフィルタ
|
73
|
+
assert_equal 4, s.discography {|e| e.indies? }.length
|
74
|
+
assert_equal 24, s.discography {|e| e.major? }.length
|
75
|
+
|
76
|
+
assert_equal 3, s.discography {|e| e.album? }.length
|
77
|
+
assert_equal 20, s.discography {|e| e.single? }.length
|
78
|
+
|
79
|
+
assert_equal 16, s.discography {|e| e.single? and e.major? }.length
|
80
|
+
|
81
|
+
# select でフィルタ
|
82
|
+
assert_equal 4, s.discography.select {|e| e.indies? }.length
|
83
|
+
assert_equal 24, s.discography.select {|e| e.major? }.length
|
84
|
+
|
85
|
+
assert_equal 3, s.discography.select {|e| e.album? }.length
|
86
|
+
assert_equal 20, s.discography.select {|e| e.single? }.length
|
87
|
+
|
88
|
+
assert_equal 16, s.discography.select {|e| e.single? and e.major? }.length
|
89
|
+
end
|
90
|
+
|
91
|
+
def test_tracks
|
92
|
+
s = ::Acme::Smileage.new
|
93
|
+
assert_equal 65, s.tracks.length
|
94
|
+
assert_equal 9, s.tracks.select {|e| e.cover? }.length
|
95
|
+
assert_equal 8, s.tracks.select {|e| e.remix? }.length
|
96
|
+
end
|
97
|
+
|
98
|
+
def test_find_discography
|
99
|
+
s = ::Acme::Smileage.new
|
100
|
+
|
101
|
+
a = s.discography.find {|e| e.name =~ /夢見る/ }
|
102
|
+
assert_equal a, s.find_discography("夢15")
|
103
|
+
assert_equal a, s.find_discography("夢 15")
|
104
|
+
assert_equal a, s.find_discography("夢15")
|
105
|
+
assert_equal a, s.find_discography("夢フィフ")
|
106
|
+
|
107
|
+
a = s.discography.find {|e| e.name =~ /スマイルセンセーション/ }
|
108
|
+
assert_equal a, s.find_discography("スマセン")
|
109
|
+
assert_equal a, s.find_discography("スマイルセンセーション")
|
110
|
+
assert_equal a, s.find_discography("スマイル センセーション")
|
111
|
+
end
|
112
|
+
|
113
|
+
def test_find_track
|
114
|
+
s = ::Acme::Smileage.new
|
115
|
+
|
116
|
+
a = s.tracks.find {|e| e.name =~ /夢見る/ }
|
117
|
+
assert_equal a, s.find_track("夢15")
|
118
|
+
assert_equal a, s.find_track("夢 15")
|
119
|
+
assert_equal a, s.find_track("夢15")
|
120
|
+
assert_equal a, s.find_track("夢フィフ")
|
121
|
+
|
122
|
+
a = s.tracks.find {|e| e.name =~ /ちょいと/ }
|
123
|
+
assert_equal a, s.find_track("ちょいかわ")
|
124
|
+
assert_equal a, s.find_track("チョイカワ")
|
125
|
+
assert_equal a, s.find_track("裏番長")
|
126
|
+
assert_equal a, s.find_track("ちょいかわ番長")
|
127
|
+
assert_equal a, s.find_track("チョイカワ番長")
|
128
|
+
assert_equal a, s.find_track("私、ちょいとかわいい裏番長")
|
129
|
+
assert_equal a, s.find_track("私、ちょいとカワイイ裏番長")
|
130
|
+
assert_equal a, s.find_track("私、チョイトカワイイ裏番長")
|
131
|
+
end
|
132
|
+
|
133
|
+
def test_oricon_total_sales
|
134
|
+
s = ::Acme::Smileage.new
|
135
|
+
|
136
|
+
assert_equal 399, s.oricon_total_sales {|e| e.single? and e.release_year == 2009 }
|
137
|
+
assert_equal 81248, s.oricon_total_sales {|e| e.single? and e.release_year == 2010 }
|
138
|
+
assert_equal 140449, s.oricon_total_sales {|e| e.single? and e.release_year == 2011 }
|
139
|
+
assert_equal 89867, s.oricon_total_sales {|e| e.single? and e.release_year == 2012 }
|
140
|
+
assert_equal 89365, s.oricon_total_sales {|e| e.single? and e.release_year == 2013 }
|
141
|
+
|
142
|
+
assert_equal 428362, s.oricon_total_sales {|e| e.release_date < Date.new(2014, 1, 1) }
|
143
|
+
end
|
144
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
require "date"
|
4
|
+
|
5
|
+
require "minitest_helper"
|
6
|
+
|
7
|
+
class Acme::TestTrack < Minitest::Test
|
8
|
+
def test_tracks
|
9
|
+
s = ::Acme::Smileage.new
|
10
|
+
|
11
|
+
a = s.tracks.find {|e| e.name =~ /クレームブリュレ/ }
|
12
|
+
assert_equal "サンキュ! クレームブリュレの友情", a.name
|
13
|
+
assert_equal "thank you! creme brulee no yuujou", a.name_romaji
|
14
|
+
assert_equal ["クレームブリュレ"], a.nicknames
|
15
|
+
assert_equal ["亜伊林"], a.lyricists
|
16
|
+
assert_equal ["つんく♂"], a.composers
|
17
|
+
assert_equal ["高橋諭一"], a.arrangers
|
18
|
+
assert_equal [], a.youtube_links
|
19
|
+
assert_equal [{:title => "夢見る 15歳", :link => "https://itunes.apple.com/jp/album/id372351545"}], a.itunes_links
|
20
|
+
assert_equal false, a.cover?
|
21
|
+
assert_equal false, a.remix?
|
22
|
+
assert_equal [2010, 42, 49.0, 31], a.hpma.to_a
|
23
|
+
assert_equal 230, a.play_time
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_tracks_cover
|
27
|
+
s = ::Acme::Smileage.new
|
28
|
+
|
29
|
+
a = s.tracks.find {|e| e.name =~ /ちょこっと/ }
|
30
|
+
assert_equal "ちょこっとLOVE", a.name
|
31
|
+
assert_equal "chokotto love", a.name_romaji
|
32
|
+
assert_equal ["ちょこラブ", "ちょこLOVE"], a.nicknames
|
33
|
+
assert_equal ["鈴木俊介"], a.arrangers
|
34
|
+
assert_equal [], a.youtube_links
|
35
|
+
assert_equal [{:title => "同じ時給で働く友達の美人ママ", :link => "https://itunes.apple.com/jp/album/id390851470"}], a.itunes_links
|
36
|
+
assert_equal true, a.cover?
|
37
|
+
assert_equal false, a.remix?
|
38
|
+
assert_equal [2010, 121, 4.0, 3], a.hpma.to_a
|
39
|
+
assert_equal 243, a.play_time
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_tracks_remix
|
43
|
+
s = ::Acme::Smileage.new
|
44
|
+
|
45
|
+
a = s.tracks.find {|e| e.name =~ /激萌え/ }
|
46
|
+
assert_equal "スマイレージ シングルス 激萌えリミックス", a.name
|
47
|
+
assert_equal "smileage singles gekimoe remix", a.name_romaji
|
48
|
+
assert_equal [], a.nicknames
|
49
|
+
assert_equal ["田中直"], a.arrangers
|
50
|
+
assert_equal [], a.youtube_links
|
51
|
+
assert_equal [{:title => "タチアガール", :link => "https://itunes.apple.com/jp/album/id464723016"}], a.itunes_links
|
52
|
+
assert_equal false, a.cover?
|
53
|
+
assert_equal true, a.remix?
|
54
|
+
assert_equal [2011, 121, 4.5, 3], a.hpma.to_a
|
55
|
+
assert_equal 336, a.play_time
|
56
|
+
end
|
57
|
+
end
|