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.
Files changed (139) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +17 -17
  3. data/.travis.yml +3 -3
  4. data/Gemfile +4 -4
  5. data/LICENSE.txt +22 -22
  6. data/README.md +215 -215
  7. data/Rakefile +9 -9
  8. data/acme-smileage.gemspec +29 -29
  9. data/bin/smileage +3 -3
  10. data/lib/acme/smileage.rb +55 -55
  11. data/lib/acme/smileage/blog/ameblo.rb +49 -49
  12. data/lib/acme/smileage/blog/ameblo_downloader.rb +171 -171
  13. data/lib/acme/smileage/blog/entry.rb +51 -51
  14. data/lib/acme/smileage/commands.rb +16 -16
  15. data/lib/acme/smileage/commands/base.rb +10 -10
  16. data/lib/acme/smileage/commands/oricon.rb +47 -47
  17. data/lib/acme/smileage/commands/soundscan.rb +18 -18
  18. data/lib/acme/smileage/discography.rb +101 -101
  19. data/lib/acme/smileage/discography/albums.rb +28 -28
  20. data/lib/acme/smileage/discography/albums/2009/I001_amanojaku.rb +35 -35
  21. data/lib/acme/smileage/discography/albums/2009/I002_asuha_date_nanoni_imasugu_koe_ga_kikitai.rb +35 -35
  22. data/lib/acme/smileage/discography/albums/2009/I003_sukichan.rb +35 -35
  23. data/lib/acme/smileage/discography/albums/2010/A001_waru_gaki_(1).rb +50 -50
  24. data/lib/acme/smileage/discography/albums/2010/D001_yumemiru_15sai_(pax_japonica_groove_remix).rb +35 -35
  25. data/lib/acme/smileage/discography/albums/2010/D002_gambaranakutemo_eenende_(topnude_remix_version_01).rb +35 -35
  26. data/lib/acme/smileage/discography/albums/2010/D003_onaji_jikyuu_de_hataraku_tomodachi_no_bijin_mama_(remix_type1).rb +35 -35
  27. data/lib/acme/smileage/discography/albums/2010/I004_otona_ni_narutte_muzukashii.rb +35 -35
  28. data/lib/acme/smileage/discography/albums/2010/S001_yumemiru_15sai.rb +42 -42
  29. data/lib/acme/smileage/discography/albums/2010/S002_gambaranakutemo_eenende.rb +47 -47
  30. data/lib/acme/smileage/discography/albums/2010/S003_onaji_jikyuu_de_hataraku_tomodachi_no_bijin_mama.rb +46 -46
  31. data/lib/acme/smileage/discography/albums/2011/D004_shortcut_(remixver).rb +35 -35
  32. data/lib/acme/smileage/discography/albums/2011/D005_uchouten_love_rocketman_mix.rb +35 -35
  33. data/lib/acme/smileage/discography/albums/2011/S004_shortcut.rb +51 -51
  34. data/lib/acme/smileage/discography/albums/2011/S005_koi_ni_booing_boo.rb +51 -51
  35. data/lib/acme/smileage/discography/albums/2011/S006_uchouten_love.rb +51 -51
  36. data/lib/acme/smileage/discography/albums/2011/S007_tachiagirl.rb +56 -56
  37. data/lib/acme/smileage/discography/albums/2011/S008_please_minisuka_post_woman.rb +52 -52
  38. data/lib/acme/smileage/discography/albums/2012/A002_smleage_best_album_complete_(1).rb +54 -54
  39. data/lib/acme/smileage/discography/albums/2012/S009_choto_mate_kudasai.rb +52 -52
  40. data/lib/acme/smileage/discography/albums/2012/S010_dotbikini.rb +51 -51
  41. data/lib/acme/smileage/discography/albums/2012/S011_sukiyo_junjou_hankouki.rb +50 -50
  42. data/lib/acme/smileage/discography/albums/2012/S012_samuine.rb +50 -50
  43. data/lib/acme/smileage/discography/albums/2013/A003_(2)_smile_sensation.rb +48 -48
  44. data/lib/acme/smileage/discography/albums/2013/S013_tabidachi_no_haru_ga_kita.rb +50 -50
  45. data/lib/acme/smileage/discography/albums/2013/S014_atarashii_watashini_nare_yattaruchan.rb +50 -50
  46. data/lib/acme/smileage/discography/albums/2013/S015_eeka_iiyatsu.rb +50 -50
  47. data/lib/acme/smileage/discography/albums/2014/S016_mystery_night_eighteen_emotion.rb +56 -54
  48. data/lib/acme/smileage/discography/albums/base.rb +37 -37
  49. data/lib/acme/smileage/discography/hello_project_music_award.rb +22 -22
  50. data/lib/acme/smileage/discography/lyrics_downloader.rb +48 -48
  51. data/lib/acme/smileage/discography/sales.rb +43 -43
  52. data/lib/acme/smileage/discography/tracks.rb +65 -65
  53. data/lib/acme/smileage/discography/tracks/2009/001_amanojaku.rb +57 -57
  54. data/lib/acme/smileage/discography/tracks/2009/002_asuha_date_nanoni_imasugu_koe_ga_kikitai.rb +57 -57
  55. data/lib/acme/smileage/discography/tracks/2009/003_sukichan.rb +57 -57
  56. data/lib/acme/smileage/discography/tracks/2010/004_otona_ni_narutte_muzukashii.rb +57 -57
  57. data/lib/acme/smileage/discography/tracks/2010/005_yumemiru_15sai.rb +77 -77
  58. data/lib/acme/smileage/discography/tracks/2010/006_thank_you_creme_brulee_no_yuujou.rb +37 -37
  59. data/lib/acme/smileage/discography/tracks/2010/007_yumemiru_15sai_(pax_japonica_groove_remix).rb +38 -38
  60. data/lib/acme/smileage/discography/tracks/2010/008_gambaranakutemo_eenende.rb +85 -85
  61. data/lib/acme/smileage/discography/tracks/2010/009_gambaranakutemo_iindayo.rb +44 -44
  62. data/lib/acme/smileage/discography/tracks/2010/010_smile_bijin.rb +36 -36
  63. data/lib/acme/smileage/discography/tracks/2010/011_gambaranakutemo_eenende_(topnude_remix_version_01).rb +38 -38
  64. data/lib/acme/smileage/discography/tracks/2010/012_onaji_jikyuu_de_hataraku_tomodachi_no_bijin_mama.rb +85 -85
  65. data/lib/acme/smileage/discography/tracks/2010/013_chokotto_love.rb +38 -38
  66. data/lib/acme/smileage/discography/tracks/2010/014_onaji_jikyuu_de_hataraku_tomodachi_no_bijin_mama_(remix_type1).rb +38 -38
  67. data/lib/acme/smileage/discography/tracks/2010/015_odorouyo.rb +36 -36
  68. data/lib/acme/smileage/discography/tracks/2010/016_onna_bakari_no_nichiyoubi.rb +36 -36
  69. data/lib/acme/smileage/discography/tracks/2010/017_shooting_star.rb +36 -36
  70. data/lib/acme/smileage/discography/tracks/2010/018_gakkyuu_iinchou.rb +36 -36
  71. data/lib/acme/smileage/discography/tracks/2010/019_shikkari_shiteyo_mou.rb +36 -36
  72. data/lib/acme/smileage/discography/tracks/2011/020_shortcut.rb +69 -69
  73. data/lib/acme/smileage/discography/tracks/2011/021_panyasan_no_arbeit.rb +36 -36
  74. data/lib/acme/smileage/discography/tracks/2011/022_otome_pasta_ni_kandou.rb +38 -38
  75. data/lib/acme/smileage/discography/tracks/2011/023_koi_ni_booing_boo.rb +69 -69
  76. data/lib/acme/smileage/discography/tracks/2011/024_hatukoi_no_anatahe.rb +36 -36
  77. data/lib/acme/smileage/discography/tracks/2011/025_koi_wo_shichaimashita.rb +38 -38
  78. data/lib/acme/smileage/discography/tracks/2011/026_uchouten_love.rb +77 -77
  79. data/lib/acme/smileage/discography/tracks/2011/027_jitensha_chiririn.rb +36 -36
  80. data/lib/acme/smileage/discography/tracks/2011/028_chu_natsu_party.rb +38 -38
  81. data/lib/acme/smileage/discography/tracks/2011/029_shortcut_(remixver).rb +37 -37
  82. data/lib/acme/smileage/discography/tracks/2011/030_uchouten_love_rocketman_mix.rb +38 -38
  83. data/lib/acme/smileage/discography/tracks/2011/031_tachiagirl.rb +73 -73
  84. data/lib/acme/smileage/discography/tracks/2011/032_smile_ondon.rb +35 -35
  85. data/lib/acme/smileage/discography/tracks/2011/033_boogie_train11.rb +38 -38
  86. data/lib/acme/smileage/discography/tracks/2011/034_smileage_singles_gekimoe_remix.rb +35 -35
  87. data/lib/acme/smileage/discography/tracks/2011/035_please_minisuka_post_woman.rb +45 -45
  88. data/lib/acme/smileage/discography/tracks/2011/036_konnichiwa_konbanwa.rb +36 -36
  89. data/lib/acme/smileage/discography/tracks/2011/037_smileage_singles_gekiyaba_remix.rb +35 -35
  90. data/lib/acme/smileage/discography/tracks/2011/038_tewo_nigitte_arukitai.rb +38 -38
  91. data/lib/acme/smileage/discography/tracks/2012/039_choto_mate_kudasai.rb +45 -45
  92. data/lib/acme/smileage/discography/tracks/2012/040_chance_tourai.rb +36 -36
  93. data/lib/acme/smileage/discography/tracks/2012/041_smileage_singles_gekiatsu_remix.rb +35 -35
  94. data/lib/acme/smileage/discography/tracks/2012/042_namida_girl.rb +38 -38
  95. data/lib/acme/smileage/discography/tracks/2012/043_dotbikini.rb +45 -45
  96. data/lib/acme/smileage/discography/tracks/2012/044_smile_blues.rb +36 -36
  97. data/lib/acme/smileage/discography/tracks/2012/045_koibito_ha_kokoro_no_ouendan.rb +38 -38
  98. data/lib/acme/smileage/discography/tracks/2012/046_kiiroi_jitensha_to_sandwich.rb +36 -36
  99. data/lib/acme/smileage/discography/tracks/2012/047_sukiyo_junjou_hankouki.rb +45 -45
  100. data/lib/acme/smileage/discography/tracks/2012/048_kimi_ha_jitensha_watasi_ha_densya_de_kitaku.rb +38 -38
  101. data/lib/acme/smileage/discography/tracks/2012/049_samuine.rb +49 -49
  102. data/lib/acme/smileage/discography/tracks/2012/050_watashi_choito_kawaii_urabancho.rb +36 -36
  103. data/lib/acme/smileage/discography/tracks/2013/051_tabidachi_no_haru_ga_kita.rb +45 -45
  104. data/lib/acme/smileage/discography/tracks/2013/052_doushiyou.rb +36 -36
  105. data/lib/acme/smileage/discography/tracks/2013/053_shin_nihon_no_susume.rb +36 -36
  106. data/lib/acme/smileage/discography/tracks/2013/054_otona_no_tochuu.rb +36 -36
  107. data/lib/acme/smileage/discography/tracks/2013/055_tenshin_ramman.rb +36 -36
  108. data/lib/acme/smileage/discography/tracks/2013/056_watashi_no_kokoro.rb +36 -36
  109. data/lib/acme/smileage/discography/tracks/2013/057_yuugure_koi_no_jikan.rb +36 -36
  110. data/lib/acme/smileage/discography/tracks/2013/058_nee_sempai.rb +36 -36
  111. data/lib/acme/smileage/discography/tracks/2013/059_sayonara_sayonara_sayonara.rb +36 -36
  112. data/lib/acme/smileage/discography/tracks/2013/060_atarashii_watashini_nare.rb +45 -45
  113. data/lib/acme/smileage/discography/tracks/2013/061_yattaruchan.rb +45 -45
  114. data/lib/acme/smileage/discography/tracks/2013/062_eeka.rb +44 -44
  115. data/lib/acme/smileage/discography/tracks/2013/063_iiyatsu.rb +44 -44
  116. data/lib/acme/smileage/discography/tracks/2014/064_mystery_night.rb +44 -44
  117. data/lib/acme/smileage/discography/tracks/2014/065_eighteen_emotion.rb +44 -44
  118. data/lib/acme/smileage/discography/tracks/base.rb +39 -39
  119. data/lib/acme/smileage/members.rb +40 -40
  120. data/lib/acme/smileage/members/base.rb +56 -56
  121. data/lib/acme/smileage/members/fukuda_kanon.rb +29 -29
  122. data/lib/acme/smileage/members/katsuta_rina.rb +29 -29
  123. data/lib/acme/smileage/members/kosuga_fuyuka.rb +29 -29
  124. data/lib/acme/smileage/members/maeda_yuuka.rb +29 -29
  125. data/lib/acme/smileage/members/nakanishi_kana.rb +29 -29
  126. data/lib/acme/smileage/members/ogawa_saki.rb +29 -29
  127. data/lib/acme/smileage/members/takeuchi_akari.rb +29 -29
  128. data/lib/acme/smileage/members/tamura_meimi.rb +29 -29
  129. data/lib/acme/smileage/members/wada_ayaka.rb +29 -29
  130. data/lib/acme/smileage/utils/base_downloader.rb +38 -38
  131. data/lib/acme/smileage/utils/matcher.rb +64 -64
  132. data/lib/acme/smileage/version.rb +5 -5
  133. data/lib/acme/smileage/version.rb~ +5 -5
  134. data/test/acme/test_album.rb +204 -204
  135. data/test/acme/test_member.rb +45 -45
  136. data/test/acme/test_smileage.rb +144 -144
  137. data/test/acme/test_track.rb +57 -57
  138. data/test/minitest_helper.rb +5 -5
  139. metadata +20 -20
@@ -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
@@ -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
@@ -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