acme-smileage 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|