acme-smileage 4.0.0 → 4.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +17 -17
- data/.travis.yml +3 -3
- data/Gemfile +4 -4
- data/LICENSE.txt +22 -22
- data/README.md +215 -215
- data/Rakefile +9 -9
- data/acme-smileage.gemspec +29 -29
- data/bin/smileage +3 -3
- data/lib/acme/smileage.rb +55 -55
- data/lib/acme/smileage/blog/ameblo.rb +49 -49
- data/lib/acme/smileage/blog/ameblo_downloader.rb +171 -171
- data/lib/acme/smileage/blog/entry.rb +51 -51
- data/lib/acme/smileage/commands.rb +16 -16
- data/lib/acme/smileage/commands/base.rb +10 -10
- data/lib/acme/smileage/commands/oricon.rb +47 -47
- data/lib/acme/smileage/commands/soundscan.rb +18 -18
- data/lib/acme/smileage/discography.rb +101 -101
- data/lib/acme/smileage/discography/albums.rb +28 -28
- data/lib/acme/smileage/discography/albums/2009/I001_amanojaku.rb +35 -35
- data/lib/acme/smileage/discography/albums/2009/I002_asuha_date_nanoni_imasugu_koe_ga_kikitai.rb +35 -35
- data/lib/acme/smileage/discography/albums/2009/I003_sukichan.rb +35 -35
- data/lib/acme/smileage/discography/albums/2010/A001_waru_gaki_(1).rb +50 -50
- data/lib/acme/smileage/discography/albums/2010/D001_yumemiru_15sai_(pax_japonica_groove_remix).rb +35 -35
- data/lib/acme/smileage/discography/albums/2010/D002_gambaranakutemo_eenende_(topnude_remix_version_01).rb +35 -35
- data/lib/acme/smileage/discography/albums/2010/D003_onaji_jikyuu_de_hataraku_tomodachi_no_bijin_mama_(remix_type1).rb +35 -35
- data/lib/acme/smileage/discography/albums/2010/I004_otona_ni_narutte_muzukashii.rb +35 -35
- data/lib/acme/smileage/discography/albums/2010/S001_yumemiru_15sai.rb +42 -42
- data/lib/acme/smileage/discography/albums/2010/S002_gambaranakutemo_eenende.rb +47 -47
- data/lib/acme/smileage/discography/albums/2010/S003_onaji_jikyuu_de_hataraku_tomodachi_no_bijin_mama.rb +46 -46
- data/lib/acme/smileage/discography/albums/2011/D004_shortcut_(remixver).rb +35 -35
- data/lib/acme/smileage/discography/albums/2011/D005_uchouten_love_rocketman_mix.rb +35 -35
- data/lib/acme/smileage/discography/albums/2011/S004_shortcut.rb +51 -51
- data/lib/acme/smileage/discography/albums/2011/S005_koi_ni_booing_boo.rb +51 -51
- data/lib/acme/smileage/discography/albums/2011/S006_uchouten_love.rb +51 -51
- data/lib/acme/smileage/discography/albums/2011/S007_tachiagirl.rb +56 -56
- data/lib/acme/smileage/discography/albums/2011/S008_please_minisuka_post_woman.rb +52 -52
- data/lib/acme/smileage/discography/albums/2012/A002_smleage_best_album_complete_(1).rb +54 -54
- data/lib/acme/smileage/discography/albums/2012/S009_choto_mate_kudasai.rb +52 -52
- data/lib/acme/smileage/discography/albums/2012/S010_dotbikini.rb +51 -51
- data/lib/acme/smileage/discography/albums/2012/S011_sukiyo_junjou_hankouki.rb +50 -50
- data/lib/acme/smileage/discography/albums/2012/S012_samuine.rb +50 -50
- data/lib/acme/smileage/discography/albums/2013/A003_(2)_smile_sensation.rb +48 -48
- data/lib/acme/smileage/discography/albums/2013/S013_tabidachi_no_haru_ga_kita.rb +50 -50
- data/lib/acme/smileage/discography/albums/2013/S014_atarashii_watashini_nare_yattaruchan.rb +50 -50
- data/lib/acme/smileage/discography/albums/2013/S015_eeka_iiyatsu.rb +50 -50
- data/lib/acme/smileage/discography/albums/2014/S016_mystery_night_eighteen_emotion.rb +56 -54
- data/lib/acme/smileage/discography/albums/base.rb +37 -37
- data/lib/acme/smileage/discography/hello_project_music_award.rb +22 -22
- data/lib/acme/smileage/discography/lyrics_downloader.rb +48 -48
- data/lib/acme/smileage/discography/sales.rb +43 -43
- data/lib/acme/smileage/discography/tracks.rb +65 -65
- data/lib/acme/smileage/discography/tracks/2009/001_amanojaku.rb +57 -57
- data/lib/acme/smileage/discography/tracks/2009/002_asuha_date_nanoni_imasugu_koe_ga_kikitai.rb +57 -57
- data/lib/acme/smileage/discography/tracks/2009/003_sukichan.rb +57 -57
- data/lib/acme/smileage/discography/tracks/2010/004_otona_ni_narutte_muzukashii.rb +57 -57
- data/lib/acme/smileage/discography/tracks/2010/005_yumemiru_15sai.rb +77 -77
- data/lib/acme/smileage/discography/tracks/2010/006_thank_you_creme_brulee_no_yuujou.rb +37 -37
- data/lib/acme/smileage/discography/tracks/2010/007_yumemiru_15sai_(pax_japonica_groove_remix).rb +38 -38
- data/lib/acme/smileage/discography/tracks/2010/008_gambaranakutemo_eenende.rb +85 -85
- data/lib/acme/smileage/discography/tracks/2010/009_gambaranakutemo_iindayo.rb +44 -44
- data/lib/acme/smileage/discography/tracks/2010/010_smile_bijin.rb +36 -36
- data/lib/acme/smileage/discography/tracks/2010/011_gambaranakutemo_eenende_(topnude_remix_version_01).rb +38 -38
- data/lib/acme/smileage/discography/tracks/2010/012_onaji_jikyuu_de_hataraku_tomodachi_no_bijin_mama.rb +85 -85
- data/lib/acme/smileage/discography/tracks/2010/013_chokotto_love.rb +38 -38
- data/lib/acme/smileage/discography/tracks/2010/014_onaji_jikyuu_de_hataraku_tomodachi_no_bijin_mama_(remix_type1).rb +38 -38
- data/lib/acme/smileage/discography/tracks/2010/015_odorouyo.rb +36 -36
- data/lib/acme/smileage/discography/tracks/2010/016_onna_bakari_no_nichiyoubi.rb +36 -36
- data/lib/acme/smileage/discography/tracks/2010/017_shooting_star.rb +36 -36
- data/lib/acme/smileage/discography/tracks/2010/018_gakkyuu_iinchou.rb +36 -36
- data/lib/acme/smileage/discography/tracks/2010/019_shikkari_shiteyo_mou.rb +36 -36
- data/lib/acme/smileage/discography/tracks/2011/020_shortcut.rb +69 -69
- data/lib/acme/smileage/discography/tracks/2011/021_panyasan_no_arbeit.rb +36 -36
- data/lib/acme/smileage/discography/tracks/2011/022_otome_pasta_ni_kandou.rb +38 -38
- data/lib/acme/smileage/discography/tracks/2011/023_koi_ni_booing_boo.rb +69 -69
- data/lib/acme/smileage/discography/tracks/2011/024_hatukoi_no_anatahe.rb +36 -36
- data/lib/acme/smileage/discography/tracks/2011/025_koi_wo_shichaimashita.rb +38 -38
- data/lib/acme/smileage/discography/tracks/2011/026_uchouten_love.rb +77 -77
- data/lib/acme/smileage/discography/tracks/2011/027_jitensha_chiririn.rb +36 -36
- data/lib/acme/smileage/discography/tracks/2011/028_chu_natsu_party.rb +38 -38
- data/lib/acme/smileage/discography/tracks/2011/029_shortcut_(remixver).rb +37 -37
- data/lib/acme/smileage/discography/tracks/2011/030_uchouten_love_rocketman_mix.rb +38 -38
- data/lib/acme/smileage/discography/tracks/2011/031_tachiagirl.rb +73 -73
- data/lib/acme/smileage/discography/tracks/2011/032_smile_ondon.rb +35 -35
- data/lib/acme/smileage/discography/tracks/2011/033_boogie_train11.rb +38 -38
- data/lib/acme/smileage/discography/tracks/2011/034_smileage_singles_gekimoe_remix.rb +35 -35
- data/lib/acme/smileage/discography/tracks/2011/035_please_minisuka_post_woman.rb +45 -45
- data/lib/acme/smileage/discography/tracks/2011/036_konnichiwa_konbanwa.rb +36 -36
- data/lib/acme/smileage/discography/tracks/2011/037_smileage_singles_gekiyaba_remix.rb +35 -35
- data/lib/acme/smileage/discography/tracks/2011/038_tewo_nigitte_arukitai.rb +38 -38
- data/lib/acme/smileage/discography/tracks/2012/039_choto_mate_kudasai.rb +45 -45
- data/lib/acme/smileage/discography/tracks/2012/040_chance_tourai.rb +36 -36
- data/lib/acme/smileage/discography/tracks/2012/041_smileage_singles_gekiatsu_remix.rb +35 -35
- data/lib/acme/smileage/discography/tracks/2012/042_namida_girl.rb +38 -38
- data/lib/acme/smileage/discography/tracks/2012/043_dotbikini.rb +45 -45
- data/lib/acme/smileage/discography/tracks/2012/044_smile_blues.rb +36 -36
- data/lib/acme/smileage/discography/tracks/2012/045_koibito_ha_kokoro_no_ouendan.rb +38 -38
- data/lib/acme/smileage/discography/tracks/2012/046_kiiroi_jitensha_to_sandwich.rb +36 -36
- data/lib/acme/smileage/discography/tracks/2012/047_sukiyo_junjou_hankouki.rb +45 -45
- data/lib/acme/smileage/discography/tracks/2012/048_kimi_ha_jitensha_watasi_ha_densya_de_kitaku.rb +38 -38
- data/lib/acme/smileage/discography/tracks/2012/049_samuine.rb +49 -49
- data/lib/acme/smileage/discography/tracks/2012/050_watashi_choito_kawaii_urabancho.rb +36 -36
- data/lib/acme/smileage/discography/tracks/2013/051_tabidachi_no_haru_ga_kita.rb +45 -45
- data/lib/acme/smileage/discography/tracks/2013/052_doushiyou.rb +36 -36
- data/lib/acme/smileage/discography/tracks/2013/053_shin_nihon_no_susume.rb +36 -36
- data/lib/acme/smileage/discography/tracks/2013/054_otona_no_tochuu.rb +36 -36
- data/lib/acme/smileage/discography/tracks/2013/055_tenshin_ramman.rb +36 -36
- data/lib/acme/smileage/discography/tracks/2013/056_watashi_no_kokoro.rb +36 -36
- data/lib/acme/smileage/discography/tracks/2013/057_yuugure_koi_no_jikan.rb +36 -36
- data/lib/acme/smileage/discography/tracks/2013/058_nee_sempai.rb +36 -36
- data/lib/acme/smileage/discography/tracks/2013/059_sayonara_sayonara_sayonara.rb +36 -36
- data/lib/acme/smileage/discography/tracks/2013/060_atarashii_watashini_nare.rb +45 -45
- data/lib/acme/smileage/discography/tracks/2013/061_yattaruchan.rb +45 -45
- data/lib/acme/smileage/discography/tracks/2013/062_eeka.rb +44 -44
- data/lib/acme/smileage/discography/tracks/2013/063_iiyatsu.rb +44 -44
- data/lib/acme/smileage/discography/tracks/2014/064_mystery_night.rb +44 -44
- data/lib/acme/smileage/discography/tracks/2014/065_eighteen_emotion.rb +44 -44
- data/lib/acme/smileage/discography/tracks/base.rb +39 -39
- data/lib/acme/smileage/members.rb +40 -40
- data/lib/acme/smileage/members/base.rb +56 -56
- data/lib/acme/smileage/members/fukuda_kanon.rb +29 -29
- data/lib/acme/smileage/members/katsuta_rina.rb +29 -29
- data/lib/acme/smileage/members/kosuga_fuyuka.rb +29 -29
- data/lib/acme/smileage/members/maeda_yuuka.rb +29 -29
- data/lib/acme/smileage/members/nakanishi_kana.rb +29 -29
- data/lib/acme/smileage/members/ogawa_saki.rb +29 -29
- data/lib/acme/smileage/members/takeuchi_akari.rb +29 -29
- data/lib/acme/smileage/members/tamura_meimi.rb +29 -29
- data/lib/acme/smileage/members/wada_ayaka.rb +29 -29
- data/lib/acme/smileage/utils/base_downloader.rb +38 -38
- data/lib/acme/smileage/utils/matcher.rb +64 -64
- data/lib/acme/smileage/version.rb +5 -5
- data/lib/acme/smileage/version.rb~ +5 -5
- data/test/acme/test_album.rb +204 -204
- data/test/acme/test_member.rb +45 -45
- data/test/acme/test_smileage.rb +144 -144
- data/test/acme/test_track.rb +57 -57
- data/test/minitest_helper.rb +5 -5
- metadata +20 -20
data/test/acme/test_member.rb
CHANGED
@@ -1,45 +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
|
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
|
data/test/acme/test_smileage.rb
CHANGED
@@ -1,144 +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
|
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
|
data/test/acme/test_track.rb
CHANGED
@@ -1,57 +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
|
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
|