pebbles-lovelive 0.0.2 → 0.1.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 +4 -4
- data/.gitignore +1 -0
- data/README.md +32 -3
- data/config/story_season_1.yml +40 -0
- data/config/story_season_2.yml +39 -0
- data/lib/pebbles/lovelive/cli.rb +9 -4
- data/lib/pebbles/lovelive/core.rb +19 -5
- data/lib/pebbles/lovelive/member.rb +4 -2
- data/lib/pebbles/lovelive/story.rb +51 -0
- data/lib/pebbles/lovelive/version.rb +1 -1
- data/lib/pebbles/lovelive.rb +2 -1
- data/pebbles-lovelive.gemspec +7 -7
- data/spec/lovelive/member_spec.rb +33 -4
- data/spec/lovelive/story_spec.rb +47 -0
- data/spec/lovelive_spec.rb +17 -9
- data/spec/spec_helper.rb +11 -0
- metadata +27 -22
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 83b5ee54bea8d1cf7607aff060392e127f647597
|
|
4
|
+
data.tar.gz: 81b12e680b8d8278d709ff00e897c664cbecfe8f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 83cde71ed0b875a6942961d60ebaa88720777bd9d637952a0bd38ed4a18be59e3b7db8134442b1a8d105751741c8ed7323b74aeb0dc13212f9e14adb23ef4cf3
|
|
7
|
+
data.tar.gz: 16d666db62e4e4fc3e572eb36e7e07871e32d4ceb02df65099b2793ebb72e9b097ffcef42cb5b4538e663c312e17a632738b954d2eef6aae28d2bf8eaa6539d8
|
data/.gitignore
CHANGED
data/README.md
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
# Pebbles::
|
|
1
|
+
# Pebbles::LoveLive
|
|
2
2
|
|
|
3
3
|
[](https://travis-ci.org/STAR-ZERO/pebbles-lovelive)
|
|
4
4
|
[](https://coveralls.io/r/STAR-ZERO/pebbles-lovelive?branch=master)
|
|
5
5
|
[](https://codeclimate.com/github/STAR-ZERO/pebbles-lovelive)
|
|
6
|
+
[](https://gemnasium.com/STAR-ZERO/pebbles-lovelive)
|
|
6
7
|
|
|
7
|
-
Show the profile of LoveLive μ's members.
|
|
8
|
+
Show the profile of LoveLive μ's members and story of TV.
|
|
8
9
|
|
|
9
10
|
[LoveLive!](http://www.lovelive-anime.jp/) is Japanese Animation.
|
|
10
11
|
|
|
@@ -129,7 +130,7 @@ s`d/ ````:N..y `...:. .- `./+:-`.:-::-oo```...``yy.o+.--` s-``` /o.
|
|
|
129
130
|
o::hs/d/-+ .h .o -h.+so+Mh-/./s.
|
|
130
131
|
```
|
|
131
132
|
|
|
132
|
-
|
|
133
|
+
### Members and aliases
|
|
133
134
|
|
|
134
135
|
| name | alias |
|
|
135
136
|
|------------|--------|
|
|
@@ -143,6 +144,30 @@ s`d/ ````:N..y `...:. .- `./+:-`.:-::-oo```...``yy.o+.--` s-``` /o.
|
|
|
143
144
|
| 小泉花陽 | hanayo |
|
|
144
145
|
| 矢澤にこ | nico |
|
|
145
146
|
|
|
147
|
+
### Show story
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
$ lovelive story
|
|
151
|
+
1期
|
|
152
|
+
------------------------------------
|
|
153
|
+
第1話「叶え!私たちの夢——」
|
|
154
|
+
第2話「アイドルを始めよう!」
|
|
155
|
+
...
|
|
156
|
+
...
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
show story description
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
$ lovelive story --desc
|
|
163
|
+
1期
|
|
164
|
+
------------------------------------
|
|
165
|
+
第1話「叶え!私たちの夢——」
|
|
166
|
+
東京都千代田区にある伝統校「国立音ノ木坂学院」。ここに通う高校2年の高坂穂乃果は、....
|
|
167
|
+
...
|
|
168
|
+
...
|
|
169
|
+
```
|
|
170
|
+
|
|
146
171
|
## Contributing
|
|
147
172
|
|
|
148
173
|
1. Fork it ( http://github.com/STAR-ZERO/pebbles-lovelive/fork )
|
|
@@ -150,3 +175,7 @@ s`d/ ````:N..y `...:. .- `./+:-`.:-::-oo```...``yy.o+.--` s-``` /o.
|
|
|
150
175
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
|
151
176
|
4. Push to the branch (`git push origin my-new-feature`)
|
|
152
177
|
5. Create new Pull Request
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
[](https://bitdeli.com/free "Bitdeli Badge")
|
|
181
|
+
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
- number: 1
|
|
2
|
+
title: 叶え!私たちの夢——
|
|
3
|
+
description: 東京都千代田区にある伝統校「国立音ノ木坂学院」。ここに通う高校2年の高坂穂乃果は、学校が3年後には廃校になることを知る。廃校を免れるには入学希望者を増やすしかない。そう考えた彼女は親友の南ことりや園田海未と学校の長所を探すが、これといってアピールできるような特徴はなかった。翌朝、穂乃果は人気校のUTX学院を偵察に行き、そこで見たスクールアイドルの姿に衝撃を受ける。そして彼女は学校を救う秘策を思い付くが——。
|
|
4
|
+
- number: 2
|
|
5
|
+
title: アイドルを始めよう!
|
|
6
|
+
description: 入学希望者を増やすためにスクールアイドルグループを結成することにした穂乃果たちは、生徒会長の絢瀬絵里の反対を受けるも、初ライブのために講堂の使用許可を得ることに成功。 グループ名は募集することにして、衣装デザインはことり、作詞は海未が担当することに。そして始まるトレーニング。そんな中、穂乃果は歌とピアノが得意な1年生の西木野真姫に作曲を依頼するが断られてしまう。 さらには絵里から逆効果を指摘され、穂乃果は意気消沈してしまうが……。
|
|
7
|
+
- number: 3
|
|
8
|
+
title: ファーストライブ
|
|
9
|
+
description: グループ名が「μ's(ミューズ)」に決まり、デビュー曲も完成した穂乃果たち。学校内での認知度も高まり、努力の甲斐あってかアイドルランキングも僅かに上昇して3人は大喜び。そして迎えたライブ当日。穂乃果たちはクラスメイトの協力を得て本番に挑むことに。これまでの練習の日々を思いだし、決意を新たにする穂乃果たち。μ'sのファーストライブがついに始まるが……。
|
|
10
|
+
- number: 4
|
|
11
|
+
title: まきりんぱな
|
|
12
|
+
description: 誰もいない講堂で初ライブを終えたμ's。だが3人はいつか大勢の客を前に歌うことを誓う。そのためにはメンバーを5人に増やし、生徒会に部として認めてもらわなければならない。さっそくメンバー募集を始めた穂乃果は、1年生の花陽を勧誘するも逃げられてしまう。しかし花陽は、本心ではアイドルに憧れを抱いていた。親友の凛に勧められるも、決心できず悩み続ける花陽。そんなとき、彼女はメンバー募集のチラシを手にする真姫と遭遇し……。
|
|
13
|
+
- number: 5
|
|
14
|
+
title: にこ襲来
|
|
15
|
+
description: 花陽、凛、真姫を迎え総勢6名となったμ's。しかし梅雨入りのために雨天が続き、彼女たちは思うように練習できずにいた。せめて部として認められれば教室が借りられるのに……ここで穂乃果がようやく気付く。すでにμ'sは部を設立する条件である5人を超えていたのだ。さっそく生徒会に申請に行った穂乃果たちだが、この学校には既に「アイドル研究部」なる部が存在し、無闇に部を増やすことはできないと告げられてしまう。やむをえず、穂乃果たちはアイドル研究部との交渉に向かうが……!
|
|
16
|
+
- number: 6
|
|
17
|
+
title: センターは誰だ?
|
|
18
|
+
description: 矢澤にこを新メンバーに迎え、正式に部として活動を始めたμ’s。そんな彼女たちを、部活紹介の映像をとるために、生徒会副会長の希が取材することに。一通り取材を終えた希は、ある疑問を穂乃果にぶつける。海未は作詞を担当し、ことりはダンスのステップを考えたりしているが、これといった役割のない穂乃果がなぜリーダーなのか?希の指摘を受け、新リーダーを決めるべく歌とダンスで競うことになったμ'sの面々。はたして新リーダーの座は誰の手に!?
|
|
19
|
+
- number: 7
|
|
20
|
+
title: エリーチカ
|
|
21
|
+
description: アイドルの祭典「ラブライブ!」の開催を知った穂乃果たちは早速出場を目指すことに。エントリーの許可を得ようと理事長への直談判を強行した穂乃果たちは、期末テストで赤点をとらないことを条件にエントリーを許される。一方、海未は校門でμ’sのライブ動画に見入る少女に遭遇。なんと動画を撮影してサイトに上げたのは、彼女の姉、絵里だった。絵里が頑なにμ’sの活動を認めようとしない理由がわからず、海未は副会長の希に相談するが――。
|
|
22
|
+
- number: 8
|
|
23
|
+
title: やりたいことは
|
|
24
|
+
description: ついに廃校決定!?だがそれは、二週間後のオープンキャンパスの評判次第とのこと。祖母の母校でもある音ノ木坂学院を守るため、オープンキャンパスを成功させる方法を模索する絵里。一方、穂乃果たちもオープンキャンパスに向けて練習を始めるが、絵里の実力を知った海未は、自分たちのダンスのレベルについて思い悩む。そこで海未はこれまでの経緯を穂乃果たちに話し、絵里にダンスを教えてもらうことを提案するが……。
|
|
25
|
+
- number: 9
|
|
26
|
+
title: ワンダーゾーン
|
|
27
|
+
description: 絵里と希を迎えて総勢9名となったμ's。新編成で臨んだオープンキャンパスでのライブも好評で、廃校決定はしばらく様子見ということに。一方、μ’sのスクールアイドルランキングは50位にまで上昇していたが、「ラブライブ!」出場の条件である20位以内に入るのは至難の業で、そのためには思い切ったことをすべきと絵里は考える。そんな中、練習の一環でアキバにやってきた穂乃果たちは、スクールアイドルショップでμ'sとは違う衣装で歌うことりの写真を発見してしまい……。
|
|
28
|
+
- number: 10
|
|
29
|
+
title: 先輩禁止!
|
|
30
|
+
description: 「ラブライブ!」出場枠選考まで一ヶ月を切ったある日、穂乃果は真姫の家の別荘を借りた合宿を提案。一方、先輩後輩を意識することが障害になると考えた絵里は、この合宿を機にμ's内での「先輩」禁止令を発案する。慣れない会話に緊張する1、2年生。そうして一行は海辺の別荘に到着するが、穂乃果たちは練習そっちのけで海に遊びに行ってしまう。そんな中、真姫だけが皆から離れて一人読書に耽っていた。それに気付いた希は・・・!
|
|
31
|
+
- number: 11
|
|
32
|
+
title: 最高のライブ
|
|
33
|
+
description: 夏休みを終えた新学期、μ’sのランキングは「ラブライブ!」出場圏内の19位にまで浮上していた。出場枠が決まるまで残り二週間。各地のスクールアイドルも最後の追い込みに入るはずと、気を引き締めるμ’sの面々。そんな彼女たちの次なる活動は学園祭でのライブだったが、クジに外れて屋上でやることに。それでも、μ'sの集大成的なライブにしようと、俄然張り切る穂乃果。そんな中、海未はことりの様子がおかしいことに気付き・・・。
|
|
34
|
+
- number: 12
|
|
35
|
+
title: ともだち
|
|
36
|
+
description: 穂乃果が倒れたことで中止となってしまったμ'sの学園祭ライブ。数日後、療養中の穂乃果は、絵里からμ'sの「ラブライブ!」エントリー辞退を知らされる。やがて学校に復帰した穂乃果であったが、「ラブライブ!」という目標を失いいつもの調子が出ない。一方、彼女達の活動で音ノ木坂学院の入学希望者は急増し、来年度の新入生募集が決定。アイドル研究部は学園存続を祝うパーティーを開くが、その最中、海未の口から衝撃の事実が明かされ……!
|
|
37
|
+
- number: 13
|
|
38
|
+
title: μ’s ミュージックスタート!
|
|
39
|
+
description: ことりの悩みに気付けなかった自分を責め、スクールアイドル引退を決意した穂乃果。それを受けてμ'sは活動を休止し、目的を失った穂乃果は海未ともすれ違ってしまう。そんな中、スクールアイドルを続けようと練習に励むにこに素っ気無いながらも励まされ、絵里からは思いもよらぬ告白をされた穂乃果はある決心をする。翌朝、呼び出しに応じて講堂にやってきた海未に、穂乃果は素直な思いを伝える。それを聞いた海未は――。
|
|
40
|
+
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
- number: 1
|
|
2
|
+
title: もう一度ラブライブ!
|
|
3
|
+
description: 廃校を免れた音ノ木坂学院で、相変わらずの日々を過ごすμ’sのメンバー。そんな彼女たちのもとに、「ラブライブ!」が再び開催されるというニュースが舞い込む。今回は地区予選を勝ち進んだチームが本選に進めるシステムだ。強豪チーム「A-RISE」と地区予選でぶつかることに弱音を吐くも、諦めるのはまだ早いと意気込むメンバーたち。そんな中、穂乃果が「出場しなくてもいいと思う」と言い出して――!?
|
|
4
|
+
- number: 2
|
|
5
|
+
title: 優勝をめざして
|
|
6
|
+
description: 「ラブライブ!」に向けて再び走り始めたμ's。そんな矢先、地区予選で歌えるのは未発表の曲に限る、という新しいルールが発表された。そこで、一ヵ月足らずという短い期間で新曲を完成させるべく、9人は山へ合宿に行くことに!宿泊先はもちろん真姫の別荘だ。いつものようにことりが衣装、海未が作詞、真姫が作曲を進めようとするが、3人は地区予選突破のプレッシャーからスランプに陥ってしまい……。
|
|
7
|
+
- number: 3
|
|
8
|
+
title: ユメノトビラ
|
|
9
|
+
description: ついに「ラブライブ!」の地区予選が目前に迫ってきた。パフォーマンスをする場所は自由に決められるため、穂乃果は学校にステージを作ろうと提案するが、にこと花陽は、もっとインパクトのあるものにしなければ勝ち抜けないと一蹴する。しかし、学校周辺にはそれに見合う場所がなかなか見つからない。そんな中、穂乃果たちはUTX高校の巨大なモニターに映るA-RISEの堂々とした姿を見て身が引き締まる。そのとき目の前に、本物のA-RISEが現れて――!
|
|
10
|
+
- number: 4
|
|
11
|
+
title: 宇宙No.1アイドル
|
|
12
|
+
description: 地区予選を見事突破したμ's。ライバルのA-RISEも同じく地区予選を突破したと知り、ますます気合いが入る。そんななか、なぜかにこが練習に参加せず帰宅してしまう。怪しく思った穂乃果たちはにこを尾行し、スーパーで買い物をしているところを目撃する。追いかけるものの、振り切られてしまうメンバー。釈然としない一同だったが、そんな彼女たちの前を、にこによく似た少女が通りかかった。その少女は、にこの妹だと名乗るのだが!?
|
|
13
|
+
- number: 5
|
|
14
|
+
title: 新しいわたし
|
|
15
|
+
description: 2年生が修学旅行へ行っている間、リーダー代理として抜擢された凛。しかし、メンバーからの推薦とは裏腹に、どこか乗り気でなく、戸惑った様子の凛。練習で起こった些細な意見の食い違いも、リーダーだからと判断を迫られるが、うまくまとめることができない。花陽と真姫は凛を励まそうとするが、自分はリーダーに向いていないし、可愛くもないと頑なに言い張る凛。どうやらその原因は小学校の頃の出来事が原因になっているようで……。
|
|
16
|
+
- number: 6
|
|
17
|
+
title: ハッピーハロウィーン
|
|
18
|
+
description: 秋葉原のハロウィーンイベントにゲストとして招待されたμ's。「ラブライブ!」で優勝するには、地域の応援も欠かせない。観客の印象に残るパフォーマンスを行い、最終予選の前に少しでもA-RISEとの差を縮めたい。そんなμ’sを尻目に、早速インパクト充分にイベントの開幕を盛り上げたA-RISE。先手を取られたμ’sは、自分たちも従来のイメージを変え、強いインパクトを与えなければと思い悩む。すると海未が、やるからには思い切って変える必要があると言い出して――
|
|
19
|
+
- number: 7
|
|
20
|
+
title: なんとかしなきゃ!
|
|
21
|
+
description: 身体測定の結果、体重が増えていた穂乃果。海未にだらしないと一喝され、久々にファーストライブの衣装を着てみると……。事実を目の当たりにした穂乃果は、ダイエットを余儀なくされる。それを他人事のように見ていた花陽も同じ状況に陥っていた。一緒に頑張ろうと手を取り合う2人。しかし、生徒会には部活動の予算会議が迫っていた。生徒会の仕事もこなしながらダイエットをしなくてはならない穂乃果だったが――。
|
|
22
|
+
- number: 8
|
|
23
|
+
title: 私の望み
|
|
24
|
+
description: 最終予選で歌う曲を決めようとするが、なかなか意見がまとまらないμ’s。そんなとき、希がラブソングの作曲を提案する。メンバーたちは慣れないジャンルに動揺するが、意外にも絵里はそれを支持していた。しかし、試しにラブソングに役立ちそうな場面をシミュレーションしてみたものの、いまいちピンとこない。やはり無理をしないほうがという一同に対し、絵里はもう少し考えてみようと提案し、結局結論は持ち越しに。そんな絵里に真姫は疑問を抱くが――。
|
|
25
|
+
- number: 9
|
|
26
|
+
title: 心のメロディ
|
|
27
|
+
description: 最終予選の当日、学校説明会で生徒会からの挨拶をしてから会場へ向かおうとしていた穂乃果たち2年生だったが、雪の影響で交通機関が麻痺し、移動手段を失ってしまう。とにかく会場へ向かおうと3人は雪の中を歩きだすが――。その頃、先に会場に到着したメンバーは、ステージの大きさに圧倒されていた。さらにA-RISEからは勝利宣言され、不安を募らせる6人。果たして穂乃果たちは間に合うのか?そして最終予選の行方は――!?
|
|
28
|
+
- number: 10
|
|
29
|
+
title: μ’s
|
|
30
|
+
description: 新年を迎え、初詣にやってきた穂乃果たちは、偶然A-RISEのメンバーと出会い、本大会への激励の言葉をかけられる。そう、東京地区の最終予選は見事μ’sが制したのだ。その本大会に出場するチームは、チーム紹介ページにキャッチフレーズを載せることができるという。μ’sを一言で言い表す言葉がないか思案する穂乃果たちだが、なかなかいい案が出てこない。そんな彼女のもとに、突然A-RISEのリーダーのツバサが現れて――。
|
|
31
|
+
- number: 11
|
|
32
|
+
title: 私たちが決めたこと
|
|
33
|
+
description: 雪穂と亜里沙が無事に音ノ木坂学院に合格したことで、μ’sの今後について話し合うことになった9人。誰かがいなくなっても名前を変えずに続けるのがアイドルだというにこと、この9人じゃないとμ’sと言えないという花陽。結論を出せずにいるμ’sの面々だったが、残るメンバーが決めるべきだという絵里の言葉を受け、6人で答えを出すことに。それぞれにμ’sのこれからを考え、眠れぬ夜を過ごすメンバーたちだったが――。
|
|
34
|
+
- number: 12
|
|
35
|
+
title: ラストライブ
|
|
36
|
+
description: ラブライブ!が終わったらμ'sはおしまいにする。全員でそう決め、本大会前日を迎えたメンバーたち。いつもと同じように屋上に集まり、和やかな雰囲気のうちに練習を終えるが、こうして9人で練習するのが最後だと思うとなかなか家路につけず、結局穂乃果の提案で最後の夜を学校で一緒に過ごすことに。合宿の時のような雰囲気にはしゃぎながらも、決意を新たに眠りにつく9人。そして翌朝、遂に本大会当日がやってきた――!
|
|
37
|
+
- number: 13
|
|
38
|
+
title: 叶え!みんなの夢――
|
|
39
|
+
description: 今日は卒業式。やっと送辞を作り終えた穂乃果は、意気揚々と学校へ向かう。校門前で出会った凛たちとやってきた部室には、トロフィーと旗が。そう、μ'sは見事に優勝を果たしたのだ。卒業式の準備も終わり、ついに本番。穂乃果は、こういうのは苦手だからと、真姫の伴奏で歌を歌い始める。それはいつしか全校生徒による大合唱になっていた。そうして卒業式を終え、9人は最後に一緒に校舎を見て回ることになり――。
|
data/lib/pebbles/lovelive/cli.rb
CHANGED
|
@@ -29,9 +29,7 @@ module Pebbles
|
|
|
29
29
|
def member(name)
|
|
30
30
|
member = LoveLive.send(name)
|
|
31
31
|
if member
|
|
32
|
-
|
|
33
|
-
puts member.aa if options[:aa]
|
|
34
|
-
puts member.big_aa if options[:bigaa]
|
|
32
|
+
member.print(options[:aa], options[:bigaa])
|
|
35
33
|
else
|
|
36
34
|
puts "Error: unknown member"
|
|
37
35
|
puts ""
|
|
@@ -39,7 +37,14 @@ module Pebbles
|
|
|
39
37
|
end
|
|
40
38
|
end
|
|
41
39
|
|
|
42
|
-
desc '
|
|
40
|
+
desc 'story [option]', 'show story'
|
|
41
|
+
option :desc, type: :boolean, :desc => "show description"
|
|
42
|
+
def story
|
|
43
|
+
story = LoveLive.story
|
|
44
|
+
story.print(options[:desc])
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
desc 'help [COMMAND]', 'show help. COMMAND is "member" or "story".'
|
|
43
48
|
def help(command = nil, subcommand = false)
|
|
44
49
|
super(command, subcommand)
|
|
45
50
|
end
|
|
@@ -7,16 +7,30 @@ module Pebbles
|
|
|
7
7
|
include Singleton
|
|
8
8
|
|
|
9
9
|
def initialize
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
initialize_member
|
|
11
|
+
initialize_story
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def story
|
|
15
|
+
@@story
|
|
15
16
|
end
|
|
16
17
|
|
|
17
18
|
def method_missing(method, *args)
|
|
18
19
|
@@members[method]
|
|
19
20
|
end
|
|
21
|
+
|
|
22
|
+
private
|
|
23
|
+
def initialize_member
|
|
24
|
+
yaml = YAML.load_file(File.join(CONFIG_PATH, 'members.yml'))
|
|
25
|
+
@@members = {}
|
|
26
|
+
yaml.each do |k, v|
|
|
27
|
+
@@members[k] = Member.new(k, v)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def initialize_story
|
|
32
|
+
@@story = Story.new
|
|
33
|
+
end
|
|
20
34
|
end
|
|
21
35
|
end
|
|
22
36
|
end
|
|
@@ -27,8 +27,8 @@ module Pebbles
|
|
|
27
27
|
"B#{bust}・W#{waste}・H#{hip}"
|
|
28
28
|
end
|
|
29
29
|
|
|
30
|
-
def
|
|
31
|
-
<<-EOS.gsub(/^\s+/, '')
|
|
30
|
+
def print(is_aa, is_big_aa)
|
|
31
|
+
puts <<-EOS.gsub(/^\s+/, '')
|
|
32
32
|
名前: #{name}
|
|
33
33
|
CV: #{cv}
|
|
34
34
|
年齢: #{age}歳
|
|
@@ -40,6 +40,8 @@ module Pebbles
|
|
|
40
40
|
嫌いな食べ物: #{dislike_food}
|
|
41
41
|
プロフィール: #{profile}
|
|
42
42
|
EOS
|
|
43
|
+
puts aa if is_aa
|
|
44
|
+
puts big_aa if is_big_aa
|
|
43
45
|
end
|
|
44
46
|
end
|
|
45
47
|
end
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
module Pebbles
|
|
2
|
+
module LoveLive
|
|
3
|
+
class Story
|
|
4
|
+
|
|
5
|
+
attr_reader :story
|
|
6
|
+
|
|
7
|
+
def initialize
|
|
8
|
+
@story = {}
|
|
9
|
+
read_story_yaml(1)
|
|
10
|
+
read_story_yaml(2)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def read_story_yaml(season_number)
|
|
14
|
+
yaml = YAML.load_file(File.join(CONFIG_PATH, "story_season_#{season_number}.yml"))
|
|
15
|
+
stories = []
|
|
16
|
+
yaml.each do |story|
|
|
17
|
+
stories << StoryItem.new(story)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
@story["season#{season_number}".to_sym] = stories
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def print(desc)
|
|
24
|
+
out = "1期\n------------------------------------\n"
|
|
25
|
+
@story[:season1].each do |story_item|
|
|
26
|
+
out << "第#{story_item.number}話「#{story_item.title}」\n"
|
|
27
|
+
out << " #{story_item.description}\n\n" if desc
|
|
28
|
+
end
|
|
29
|
+
out << "\n"
|
|
30
|
+
|
|
31
|
+
out << "2期\n------------------------------------\n"
|
|
32
|
+
@story[:season2].each do |story_item|
|
|
33
|
+
out << "第#{story_item.number}話「#{story_item.title}」\n"
|
|
34
|
+
out << " #{story_item.description}\n\n" if desc
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
puts out
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
class StoryItem
|
|
41
|
+
def initialize(hash)
|
|
42
|
+
hash.each do |k, v|
|
|
43
|
+
self.instance_variable_set("@#{k}", v)
|
|
44
|
+
self.class.send(:define_method, k, proc { self.instance_variable_get("@#{k}") })
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
data/lib/pebbles/lovelive.rb
CHANGED
|
@@ -2,11 +2,12 @@ require "pebbles/lovelive/version"
|
|
|
2
2
|
require "pebbles/lovelive/config"
|
|
3
3
|
require "pebbles/lovelive/core"
|
|
4
4
|
require "pebbles/lovelive/member"
|
|
5
|
+
require "pebbles/lovelive/story"
|
|
5
6
|
|
|
6
7
|
module Pebbles
|
|
7
8
|
module LoveLive
|
|
8
9
|
def self.method_missing(method, *args)
|
|
9
|
-
LoveLive::Core.instance.send(method, args)
|
|
10
|
+
LoveLive::Core.instance.send(method, *args)
|
|
10
11
|
end
|
|
11
12
|
end
|
|
12
13
|
end
|
data/pebbles-lovelive.gemspec
CHANGED
|
@@ -8,8 +8,8 @@ Gem::Specification.new do |spec|
|
|
|
8
8
|
spec.version = Pebbles::LoveLive::VERSION
|
|
9
9
|
spec.authors = ["Kenji Abe"]
|
|
10
10
|
spec.email = ["kenji.01.star@gmail.com"]
|
|
11
|
-
spec.summary = %q{ Show the profile of LoveLive μ's members }
|
|
12
|
-
spec.description = %q{ Show the profile of LoveLive μ's members }
|
|
11
|
+
spec.summary = %q{ Show the profile of LoveLive μ's members and story of TV }
|
|
12
|
+
spec.description = %q{ Show the profile of LoveLive μ's members and story of TV }
|
|
13
13
|
spec.homepage = "https://github.com/STAR-ZERO/pebbles-lovelive"
|
|
14
14
|
spec.license = "MIT"
|
|
15
15
|
|
|
@@ -22,9 +22,9 @@ Gem::Specification.new do |spec|
|
|
|
22
22
|
|
|
23
23
|
spec.add_runtime_dependency 'thor'
|
|
24
24
|
|
|
25
|
-
spec.add_development_dependency "bundler",
|
|
26
|
-
spec.add_development_dependency "rake"
|
|
27
|
-
spec.add_development_dependency "rspec"
|
|
28
|
-
spec.add_development_dependency "simplecov"
|
|
29
|
-
spec.add_development_dependency "coveralls"
|
|
25
|
+
spec.add_development_dependency "bundler", '~> 1.6.2'
|
|
26
|
+
spec.add_development_dependency "rake", '~> 10.3.2'
|
|
27
|
+
spec.add_development_dependency "rspec", '~> 3.0.0'
|
|
28
|
+
spec.add_development_dependency "simplecov", '~> 0.9.0'
|
|
29
|
+
spec.add_development_dependency "coveralls", '~> 0.7.0'
|
|
30
30
|
end
|
|
@@ -17,11 +17,40 @@ module Pebbles
|
|
|
17
17
|
|
|
18
18
|
describe 'eli' do
|
|
19
19
|
before { @eli = @members[:eli] }
|
|
20
|
-
subject { @eli }
|
|
20
|
+
subject(:eli) { @eli }
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
it "#name is full name" do
|
|
23
|
+
expect(eli.name).to eq(@eli.last_name + @eli.first_name)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it "#birth is format of birthday" do
|
|
27
|
+
expect(eli.birth).to eq("#{@eli.birth_month}月#{@eli.birth_day}日")
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it "#three_size is format of three size" do
|
|
31
|
+
expect(eli.three_size).to eq("B#{@eli.bust}・W#{@eli.waste}・H#{@eli.hip}")
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
describe "#print" do
|
|
35
|
+
it "show member profile" do
|
|
36
|
+
output = capture_stdout { @eli.print(false, false) }
|
|
37
|
+
expect(output).to include "名前: 絢瀬絵里"
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
context "aa flag ture" do
|
|
41
|
+
it "show aa" do
|
|
42
|
+
output = capture_stdout { @eli.print(true, false) }
|
|
43
|
+
expect(output).to include " , 、 , -‐- 、"
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
context "big aa flag ture" do
|
|
48
|
+
it "show big aa" do
|
|
49
|
+
output = capture_stdout { @eli.print(false, true) }
|
|
50
|
+
expect(output).to include " .-+o/+o+-`. "
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
25
54
|
end
|
|
26
55
|
end
|
|
27
56
|
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
module Pebbles
|
|
4
|
+
describe LoveLive::Story do
|
|
5
|
+
|
|
6
|
+
before do
|
|
7
|
+
@story = LoveLive::Story.new
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
it 'story is 2 season' do
|
|
11
|
+
expect(@story.story.size).to eq(2)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
describe 'season 1' do
|
|
15
|
+
it '13 stories' do
|
|
16
|
+
expect(@story.story[:season1].size).to eq(13)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
describe 'season 2' do
|
|
21
|
+
it '13 stories' do
|
|
22
|
+
expect(@story.story[:season2].size).to eq(13)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
describe '#print' do
|
|
27
|
+
it "show story number and title" do
|
|
28
|
+
output = capture_stdout { @story.print(false) }
|
|
29
|
+
expect(output).to include "第1話「叶え!私たちの夢——」"
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
context 'desc argument is false' do
|
|
33
|
+
it 'not show description' do
|
|
34
|
+
output = capture_stdout { @story.print(false) }
|
|
35
|
+
expect(output).not_to include "東京都千代田区にある伝統校「国立音ノ木坂学院」。"
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
context 'desc argument is true' do
|
|
40
|
+
it 'show description' do
|
|
41
|
+
output = capture_stdout { @story.print(true) }
|
|
42
|
+
expect(output).to include "東京都千代田区にある伝統校「国立音ノ木坂学院」。"
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
data/spec/lovelive_spec.rb
CHANGED
|
@@ -3,19 +3,27 @@ require 'spec_helper'
|
|
|
3
3
|
module Pebbles
|
|
4
4
|
describe LoveLive do
|
|
5
5
|
it 'should have a version number' do
|
|
6
|
-
Pebbles::LoveLive::VERSION.
|
|
6
|
+
expect(Pebbles::LoveLive::VERSION).not_to be_nil
|
|
7
7
|
end
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
describe '#member' do
|
|
10
|
+
context 'exists member' do
|
|
11
|
+
before { @member = Pebbles::LoveLive.eli }
|
|
12
|
+
subject { @member }
|
|
13
|
+
it { should_not be_nil }
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
context 'not exists member' do
|
|
17
|
+
before { @member = Pebbles::LoveLive.alpaca }
|
|
18
|
+
subject { @member }
|
|
19
|
+
it { should be_nil }
|
|
20
|
+
end
|
|
13
21
|
end
|
|
14
22
|
|
|
15
|
-
|
|
16
|
-
before { @
|
|
17
|
-
subject { @
|
|
18
|
-
it {
|
|
23
|
+
describe '#story' do
|
|
24
|
+
before { @story = Pebbles::LoveLive.story }
|
|
25
|
+
subject { @story }
|
|
26
|
+
it { should_not be_nil }
|
|
19
27
|
end
|
|
20
28
|
end
|
|
21
29
|
end
|
data/spec/spec_helper.rb
CHANGED
|
@@ -9,3 +9,14 @@ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
|
|
|
9
9
|
|
|
10
10
|
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
|
11
11
|
require 'pebbles/lovelive'
|
|
12
|
+
|
|
13
|
+
def capture_stdout(&block)
|
|
14
|
+
original_stdout = $stdout
|
|
15
|
+
$stdout = fake = StringIO.new
|
|
16
|
+
begin
|
|
17
|
+
yield
|
|
18
|
+
ensure
|
|
19
|
+
$stdout = original_stdout
|
|
20
|
+
end
|
|
21
|
+
fake.string
|
|
22
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: pebbles-lovelive
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0
|
|
4
|
+
version: 0.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Kenji Abe
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2014-
|
|
11
|
+
date: 2014-08-13 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: thor
|
|
@@ -30,71 +30,71 @@ dependencies:
|
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version:
|
|
33
|
+
version: 1.6.2
|
|
34
34
|
type: :development
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version:
|
|
40
|
+
version: 1.6.2
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: rake
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
|
-
- - "
|
|
45
|
+
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version:
|
|
47
|
+
version: 10.3.2
|
|
48
48
|
type: :development
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
|
-
- - "
|
|
52
|
+
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version:
|
|
54
|
+
version: 10.3.2
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
56
|
name: rspec
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
|
-
- - "
|
|
59
|
+
- - "~>"
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version:
|
|
61
|
+
version: 3.0.0
|
|
62
62
|
type: :development
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
|
-
- - "
|
|
66
|
+
- - "~>"
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
|
-
version:
|
|
68
|
+
version: 3.0.0
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: simplecov
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
72
72
|
requirements:
|
|
73
|
-
- - "
|
|
73
|
+
- - "~>"
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
|
-
version:
|
|
75
|
+
version: 0.9.0
|
|
76
76
|
type: :development
|
|
77
77
|
prerelease: false
|
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
|
80
|
-
- - "
|
|
80
|
+
- - "~>"
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
|
-
version:
|
|
82
|
+
version: 0.9.0
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
84
84
|
name: coveralls
|
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
|
86
86
|
requirements:
|
|
87
|
-
- - "
|
|
87
|
+
- - "~>"
|
|
88
88
|
- !ruby/object:Gem::Version
|
|
89
|
-
version:
|
|
89
|
+
version: 0.7.0
|
|
90
90
|
type: :development
|
|
91
91
|
prerelease: false
|
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
93
|
requirements:
|
|
94
|
-
- - "
|
|
94
|
+
- - "~>"
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
|
-
version:
|
|
97
|
-
description: " Show the profile of LoveLive μ's members "
|
|
96
|
+
version: 0.7.0
|
|
97
|
+
description: " Show the profile of LoveLive μ's members and story of TV "
|
|
98
98
|
email:
|
|
99
99
|
- kenji.01.star@gmail.com
|
|
100
100
|
executables:
|
|
@@ -130,15 +130,19 @@ files:
|
|
|
130
130
|
- config/big_aa_rin.txt
|
|
131
131
|
- config/big_aa_umi.txt
|
|
132
132
|
- config/members.yml
|
|
133
|
+
- config/story_season_1.yml
|
|
134
|
+
- config/story_season_2.yml
|
|
133
135
|
- lib/pebbles/lovelive.rb
|
|
134
136
|
- lib/pebbles/lovelive/cli.rb
|
|
135
137
|
- lib/pebbles/lovelive/config.rb
|
|
136
138
|
- lib/pebbles/lovelive/core.rb
|
|
137
139
|
- lib/pebbles/lovelive/member.rb
|
|
140
|
+
- lib/pebbles/lovelive/story.rb
|
|
138
141
|
- lib/pebbles/lovelive/version.rb
|
|
139
142
|
- pebbles-lovelive.gemspec
|
|
140
143
|
- spec/lovelive/core_spec.rb
|
|
141
144
|
- spec/lovelive/member_spec.rb
|
|
145
|
+
- spec/lovelive/story_spec.rb
|
|
142
146
|
- spec/lovelive_spec.rb
|
|
143
147
|
- spec/spec_helper.rb
|
|
144
148
|
homepage: https://github.com/STAR-ZERO/pebbles-lovelive
|
|
@@ -164,9 +168,10 @@ rubyforge_project:
|
|
|
164
168
|
rubygems_version: 2.2.2
|
|
165
169
|
signing_key:
|
|
166
170
|
specification_version: 4
|
|
167
|
-
summary: Show the profile of LoveLive μ's members
|
|
171
|
+
summary: Show the profile of LoveLive μ's members and story of TV
|
|
168
172
|
test_files:
|
|
169
173
|
- spec/lovelive/core_spec.rb
|
|
170
174
|
- spec/lovelive/member_spec.rb
|
|
175
|
+
- spec/lovelive/story_spec.rb
|
|
171
176
|
- spec/lovelive_spec.rb
|
|
172
177
|
- spec/spec_helper.rb
|