Skip to content

Commit 0fab4bd

Browse files
committed
コード中の省略を省略した内容がわかるように修正した、PDFの奥付の体裁を見直した
1 parent 94dbdfb commit 0fab4bd

28 files changed

+429
-226
lines changed

.gitignore

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
\#*\#
2+
\.\#*
3+
*~
4+
*.tmp
5+
output
6+
.DS_Store
7+
vendor/bundle
8+
log

.ruby-version

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
2.7.2

Gemfile.lock

+101
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
GEM
2+
remote: https://rubygems.org/
3+
specs:
4+
Ascii85 (1.1.0)
5+
addressable (2.8.0)
6+
public_suffix (>= 2.0.2, < 5.0)
7+
afm (0.2.2)
8+
asciidoctor (2.0.17)
9+
asciidoctor-pdf (1.6.2)
10+
asciidoctor (~> 2.0)
11+
concurrent-ruby (~> 1.1)
12+
prawn (~> 2.4.0)
13+
prawn-icon (~> 3.0.0)
14+
prawn-svg (~> 0.32.0)
15+
prawn-table (~> 0.2.0)
16+
prawn-templates (~> 0.1.0)
17+
safe_yaml (~> 1.0.0)
18+
treetop (~> 1.6.0)
19+
ast (2.4.2)
20+
awesome_print (1.9.2)
21+
coderay (1.1.3)
22+
concurrent-ruby (1.1.9)
23+
css_parser (1.11.0)
24+
addressable
25+
hashery (2.1.2)
26+
json (2.6.1)
27+
parallel (1.21.0)
28+
parser (3.1.1.0)
29+
ast (~> 2.4.1)
30+
pdf-core (0.9.0)
31+
pdf-reader (2.9.2)
32+
Ascii85 (~> 1.0)
33+
afm (~> 0.2.1)
34+
hashery (~> 2.0)
35+
ruby-rc4
36+
ttfunk
37+
polyglot (0.3.5)
38+
prawn (2.4.0)
39+
pdf-core (~> 0.9.0)
40+
ttfunk (~> 1.7)
41+
prawn-icon (3.0.0)
42+
prawn (>= 1.1.0, < 3.0.0)
43+
prawn-svg (0.32.0)
44+
css_parser (~> 1.6)
45+
prawn (>= 0.11.1, < 3)
46+
rexml (~> 3.2)
47+
prawn-table (0.2.2)
48+
prawn (>= 1.3.0, < 3.0.0)
49+
prawn-templates (0.1.2)
50+
pdf-reader (~> 2.0)
51+
prawn (~> 2.2)
52+
public_suffix (4.0.6)
53+
pygments.rb (2.3.0)
54+
rainbow (3.1.1)
55+
rake (13.0.6)
56+
regexp_parser (2.2.1)
57+
rexml (3.2.5)
58+
rouge (3.28.0)
59+
rubocop (1.25.1)
60+
parallel (~> 1.10)
61+
parser (>= 3.1.0.0)
62+
rainbow (>= 2.2.2, < 4.0)
63+
regexp_parser (>= 1.8, < 3.0)
64+
rexml
65+
rubocop-ast (>= 1.15.1, < 2.0)
66+
ruby-progressbar (~> 1.7)
67+
unicode-display_width (>= 1.4.0, < 3.0)
68+
rubocop-ast (1.16.0)
69+
parser (>= 3.1.1.0)
70+
ruby-progressbar (1.11.0)
71+
ruby-rc4 (0.1.5)
72+
safe_yaml (1.0.5)
73+
thor (1.2.1)
74+
thread_safe (0.3.6)
75+
treetop (1.6.11)
76+
polyglot (~> 0.3)
77+
ttfunk (1.7.0)
78+
unicode (0.4.4.4)
79+
unicode-display_width (2.1.0)
80+
81+
PLATFORMS
82+
arm64-darwin-20
83+
x86_64-darwin-20
84+
85+
DEPENDENCIES
86+
asciidoctor
87+
asciidoctor-pdf
88+
awesome_print
89+
coderay
90+
json
91+
pygments.rb
92+
rake
93+
rouge
94+
rubocop
95+
thor
96+
thread_safe
97+
unicode
98+
unicode-display_width
99+
100+
BUNDLED WITH
101+
2.3.22

Rakefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ def make_pdf(source, target)
116116
tag_lines = find_tag_lines('codes/score.rb',['main', 'test'])
117117
# `bundle exec asciidoctor-pdf -r asciidoctor-pdf-cjk -a revdate='#{revdate}' -r #{CODE_STYLE} -r #{LIB_EXT} -r #{LIB_EXT2} -r #{LIB_EXT3} -a pdf-stylesdir=#{THEME_DIR} -a pdf-style=#{THEME_FILE} -a pdf-fontsdir=#{FONTS_DIR} #{source} --out=#{target}` # 2>/dev/null`
118118
# `bundle exec asciidoctor-pdf -a scripts=cjk -a score_main_start=#{tag_lines[0]} -a score_test_start=#{tag_lines[1]} -a revdate='#{revdate}' -r #{CODE_STYLE} -r #{LIB_EXT} -r #{LIB_EXT2} -r #{LIB_EXT3} -a pdf-stylesdir=#{THEME_DIR} -a pdf-style=#{THEME_FILE} -a pdf-fontsdir=#{FONTS_DIR} #{source} --out=#{target}` # 2>/dev/null`
119-
`bundle exec asciidoctor-pdf -a scripts=cjk -a score_main_start=#{tag_lines[0]} -a score_test_start=#{tag_lines[1]} -a revdate='#{revdate}' -r #{CODE_STYLE} -r #{LIB_EXT} -r #{LIB_EXT2} -a pdf-stylesdir=#{THEME_DIR} -a pdf-style=#{THEME_FILE} -a pdf-fontsdir=#{FONTS_DIR} #{source} --out=#{target}` # 2>/dev/null`
119+
`bundle exec asciidoctor-pdf -a scripts=cjk -a score_main_start=#{tag_lines[0]} -a score_test_start=#{tag_lines[1]} -a revdate='#{revdate}' -r #{CODE_STYLE} -r #{LIB_EXT} -r #{LIB_EXT2} -r #{LIB_EXT3} -a pdf-stylesdir=#{THEME_DIR} -a pdf-style=#{THEME_FILE} -a pdf-fontsdir=#{FONTS_DIR} #{source} --out=#{target}` # 2>/dev/null`
120120
end
121121

122122
# コードのtagの(次の)行番号を返す

_appendix-01.html

+6-18
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
<h1>モデルを使ってソフトウェアを開発しよう: UML初学者向けチュートリアル</h1>
2121
<div class="details">
2222
<span id="author" class="author">株式会社チェンジビジョン</span><br>
23-
<span id="revnumber">バージョン html_0701,</span>
24-
<span id="revdate">2023-02-13</span>
23+
<span id="revnumber">バージョン html_0711,</span>
24+
<span id="revdate">2023-05-31</span>
2525
</div>
2626
<div id="toc" class="toc2">
2727
<div id="toctitle">目次</div>
@@ -61,30 +61,18 @@ <h2 id="_appendix-01"><a class="anchor" href="#_appendix-01"></a>付録 A: モ
6161
<dl>
6262
<dt class="hdlist1">ボウリングのゲームスコアのモデル図</dt>
6363
<dd>
64-
<p><code>bowling_score_yyyymmdd.asta</code></p>
64+
<p><code>bowling_score.asta</code></p>
6565
</dd>
6666
<dt class="hdlist1">Rubyで実装したプログラム</dt>
6767
<dd>
68-
<p><code>score_yyyymmdd.rb</code></p>
68+
<p><code>score.rb</code></p>
6969
</dd>
7070
<dt class="hdlist1">実行結果の動画</dt>
7171
<dd>
72-
<p><code>score_rb_demo_win_yyyymmdd.mp4</code><code>score_rb_demo_mac_yyyymmdd.mov</code></p>
72+
<p><code>score_rb_demo_win.mp4</code><code>score_rb_demo_mac.mov</code></p>
7373
</dd>
7474
</dl>
7575
</div>
76-
<div class="admonitionblock note">
77-
<table>
78-
<tr>
79-
<td class="icon">
80-
<i class="fa icon-note" title="注記"></i>
81-
</td>
82-
<td class="content">
83-
上記ファイル名を、提供方法に応じた配布先がわかるリンクに改める。
84-
</td>
85-
</tr>
86-
</table>
87-
</div>
8876
</div>
8977
</div>
9078
<div class="paragraph nav-footer">
@@ -93,7 +81,7 @@ <h2 id="_appendix-01"><a class="anchor" href="#_appendix-01"></a>付録 A: モ
9381
</div>
9482
<div id="footer">
9583
<div id="footer-text">
96-
バージョン html_0701<br>
84+
バージョン html_0711<br>
9785
最終更新 2023-02-06 13:59:37 +0900
9886
</div>
9987
</div>

_behavior_design.html

+29-26
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
<h1>モデルを使ってソフトウェアを開発しよう: UML初学者向けチュートリアル</h1>
2222
<div class="details">
2323
<span id="author" class="author">株式会社チェンジビジョン</span><br>
24-
<span id="revnumber">バージョン html_0701,</span>
25-
<span id="revdate">2023-02-13</span>
24+
<span id="revnumber">バージョン html_0711,</span>
25+
<span id="revdate">2023-05-31</span>
2626
</div>
2727
<div id="toc" class="toc2">
2828
<div id="toctitle">目次</div>
@@ -491,8 +491,6 @@ <h4 id="_フレームの処理をプログラムに変換する"><a class="ancho
491491
<span class="nb">puts</span> <span class="s1">'fixed.'</span>
492492
<span class="k">end</span>
493493
<span class="k">end</span>
494-
495-
<span class="c1"># 略</span>
496494
<span class="k">end</span></code></pre>
497495
</div>
498496
</div>
@@ -530,8 +528,13 @@ <h4 id="_フレームの処理をプログラムに変換する"><a class="ancho
530528
<div id="ruby_frame_code02" class="listingblock">
531529
<div class="title">リスト 4.2 【Ruby】score.rb(2)</div>
532530
<div class="content">
533-
<pre class="rouge highlight"><code data-lang="ruby"><span class="k">class</span> <span class="nc">Frame</span>
534-
<span class="c1"># 略</span>
531+
<pre class="rouge highlight"><code data-lang="ruby"><span class="c1"># frozen_string_literal: true</span>
532+
533+
<span class="nb">require</span> <span class="s1">'securerandom'</span>
534+
535+
<span class="c1"># Frameは1フレーム分のピン数やボーナスを記録する</span>
536+
<span class="k">class</span> <span class="nc">Frame</span>
537+
<span class="c1"># initialize、actionの定義がここにある</span>
535538

536539
<span class="k">def</span> <span class="nf">frame_score</span> <i class="conum" data-value="1"></i><b>(1)</b>
537540
<span class="vi">@first</span> <span class="o">+</span> <span class="vi">@second</span> <span class="o">+</span> <span class="vi">@spare_bonus</span> <span class="o">+</span> <span class="vi">@strike_bonus</span>
@@ -568,9 +571,9 @@ <h4 id="_フレームの処理をプログラムに変換する"><a class="ancho
568571
<span class="vi">@spare_bonus</span><span class="p">,</span> <span class="vi">@strike_bonus</span><span class="p">,</span> <span class="vi">@state</span>
569572
<span class="k">end</span>
570573

571-
<span class="kp">private</span>
574+
<span class="kp">private</span> <i class="conum" data-value="5"></i><b>(5)</b>
572575

573-
<span class="k">def</span> <span class="nf">before_1st_porc</span><span class="p">(</span><span class="n">evt</span><span class="p">,</span> <span class="n">pins</span><span class="p">)</span> <i class="conum" data-value="5"></i><b>(5)</b>
576+
<span class="k">def</span> <span class="nf">before_1st_porc</span><span class="p">(</span><span class="n">evt</span><span class="p">,</span> <span class="n">pins</span><span class="p">)</span> <i class="conum" data-value="6"></i><b>(6)</b>
574577
<span class="k">case</span> <span class="n">evt</span>
575578
<span class="k">when</span> <span class="ss">:PINS</span>
576579
<span class="nb">puts</span> <span class="s2">"invalid pins: </span><span class="si">#{</span><span class="n">pins</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">pins</span><span class="p">.</span><span class="nf">negative?</span> <span class="o">||</span> <span class="n">pins</span> <span class="o">&gt;</span> <span class="mi">10</span>
@@ -586,7 +589,7 @@ <h4 id="_フレームの処理をプログラムに変換する"><a class="ancho
586589
<span class="k">end</span>
587590
<span class="k">end</span>
588591

589-
<span class="k">def</span> <span class="nf">before_2nd_proc</span><span class="p">(</span><span class="n">evt</span><span class="p">,</span> <span class="n">pins</span><span class="p">)</span> <i class="conum" data-value="6"></i><b>(6)</b>
592+
<span class="k">def</span> <span class="nf">before_2nd_proc</span><span class="p">(</span><span class="n">evt</span><span class="p">,</span> <span class="n">pins</span><span class="p">)</span> <i class="conum" data-value="7"></i><b>(7)</b>
590593
<span class="k">case</span> <span class="n">evt</span>
591594
<span class="k">when</span> <span class="ss">:PINS</span>
592595
<span class="nb">puts</span> <span class="s2">"invalid pins: </span><span class="si">#{</span><span class="n">pins</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">pins</span><span class="p">.</span><span class="nf">negative?</span> <span class="o">||</span> <span class="n">pins</span> <span class="o">&gt;</span> <span class="p">(</span><span class="mi">10</span> <span class="o">-</span> <span class="vi">@first</span><span class="p">)</span>
@@ -623,10 +626,14 @@ <h4 id="_フレームの処理をプログラムに変換する"><a class="ancho
623626
</tr>
624627
<tr>
625628
<td><i class="conum" data-value="5"></i><b>5</b></td>
626-
<td>「1投目の投球を待っている」状態を担当するメソッド。イベント「PINS」を受け取り、1投目のピン数に保存する。その後ストライクかどうか調べ、次の状態へ遷移する</td>
629+
<td>これ以降のメソッドはプライベート</td>
627630
</tr>
628631
<tr>
629632
<td><i class="conum" data-value="6"></i><b>6</b></td>
633+
<td>「1投目の投球を待っている」状態を担当するメソッド。イベント「PINS」を受け取り、1投目のピン数に保存する。その後ストライクかどうか調べ、次の状態へ遷移する。</td>
634+
</tr>
635+
<tr>
636+
<td><i class="conum" data-value="7"></i><b>7</b></td>
630637
<td>「2投目の投球を待っている」状態を担当するメソッド。イベント「PINS」を受け取り、2投目のピン数に保存する。その後スペアかどうか調べ、次の状態へ遷移する。</td>
631638
</tr>
632639
</table>
@@ -941,9 +948,7 @@ <h4 id="_スコアの処理をプログラムに変換する"><a class="anchor"
941948

942949
<span class="nb">require</span> <span class="s1">'securerandom'</span> <i class="conum" data-value="1"></i><b>(1)</b>
943950

944-
<span class="k">class</span> <span class="nc">Frame</span>
945-
<span class="c1"># 略</span>
946-
<span class="k">end</span>
951+
<span class="c1"># Frameクラスの定義がここにある</span>
947952

948953
<span class="c1"># スコアは各人の10フレーム分のスコアを記録する</span>
949954
<span class="k">class</span> <span class="nc">Score</span> <i class="conum" data-value="2"></i><b>(2)</b>
@@ -977,8 +982,6 @@ <h4 id="_スコアの処理をプログラムに変換する"><a class="anchor"
977982
<span class="k">def</span> <span class="nf">current</span> <i class="conum" data-value="9"></i><b>(9)</b>
978983
<span class="n">frame</span><span class="p">(</span><span class="vi">@fno</span><span class="p">)</span>
979984
<span class="k">end</span>
980-
981-
<span class="c1"># 略</span>
982985
<span class="k">end</span></code></pre>
983986
</div>
984987
</div>
@@ -1028,12 +1031,12 @@ <h4 id="_スコアの処理をプログラムに変換する"><a class="anchor"
10281031
<div id="ruby_score_code02" class="listingblock">
10291032
<div class="title">リスト 4.4 【Ruby】score.rb(4)</div>
10301033
<div class="content">
1031-
<pre class="rouge highlight"><code data-lang="ruby"><span class="c1"># </span>
1034+
<pre class="rouge highlight"><code data-lang="ruby"><span class="c1"># Frameクラスの定義やそれ以前のコードがここにある</span>
10321035

10331036
<span class="c1"># スコアは各人の10フレーム分のスコアを記録する</span>
10341037
<span class="k">class</span> <span class="nc">Score</span>
1035-
1036-
<span class="c1"># </span>
1038+
<span class="c1"># アクセサーの定義がここにある</span>
1039+
<span class="c1"># initialize、fno2idx、frame、go_next_frame、currentメソッドの定義がここにある</span>
10371040

10381041
<span class="k">def</span> <span class="nf">prev</span> <i class="conum" data-value="1"></i><b>(1)</b>
10391042
<span class="n">frame</span><span class="p">(</span><span class="vi">@fno</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span>
@@ -1073,8 +1076,6 @@ <h4 id="_スコアの処理をプログラムに変換する"><a class="anchor"
10731076
<span class="k">def</span> <span class="nf">finished?</span> <i class="conum" data-value="7"></i><b>(7)</b>
10741077
<span class="n">frame</span><span class="p">(</span><span class="mi">10</span><span class="p">).</span><span class="nf">fixed?</span>
10751078
<span class="k">end</span>
1076-
1077-
<span class="c1"># 略</span>
10781079
<span class="k">end</span></code></pre>
10791080
</div>
10801081
</div>
@@ -1116,12 +1117,12 @@ <h4 id="_スコアの処理をプログラムに変換する"><a class="anchor"
11161117
<div id="ruby_score_code03" class="listingblock">
11171118
<div class="title">リスト 4.5 【Ruby】score.rb(5)</div>
11181119
<div class="content">
1119-
<pre class="rouge highlight"><code data-lang="ruby"><span class="c1"># </span>
1120+
<pre class="rouge highlight"><code data-lang="ruby"><span class="c1"># Frameクラスの定義やそれ以前のコードがここにある</span>
11201121

11211122
<span class="c1"># スコアは各人の10フレーム分のスコアを記録する</span>
11221123
<span class="k">class</span> <span class="nc">Score</span>
1123-
1124-
<span class="c1"># </span>
1124+
<span class="c1"># アクセサーの定義がここにある</span>
1125+
<span class="c1"># initializeからfinished?までのメソッドの定義がここにある</span>
11251126

11261127
<span class="k">def</span> <span class="nf">wait_for_1st_proc</span><span class="p">(</span><span class="n">pins</span><span class="p">)</span> <i class="conum" data-value="1"></i><b>(1)</b>
11271128
<span class="n">current</span><span class="p">.</span><span class="nf">action</span><span class="p">(</span><span class="ss">:PINS</span><span class="p">,</span> <span class="n">pins</span><span class="p">)</span> <i class="conum" data-value="2"></i><b>(2)</b>
@@ -1274,7 +1275,8 @@ <h4 id="_gameクラスの処理"><a class="anchor" href="#_gameクラスの処
12741275
<div id="ruby_game_code01" class="listingblock">
12751276
<div class="title">リスト 4.6 【Ruby】score.rb(6)</div>
12761277
<div class="content">
1277-
<pre class="rouge highlight"><code data-lang="ruby"><span class="c1"># 略</span>
1278+
<pre class="rouge highlight"><code data-lang="ruby"><span class="c1"># FrameクラスとScoreクラスの定義やそれ以前のコードがここにある</span>
1279+
12781280
<span class="c1"># Gameクラスは複数名の1ゲーム分のスコアのセットを構成する</span>
12791281
<span class="k">class</span> <span class="nc">Game</span>
12801282
<span class="nb">attr_reader</span> <span class="ss">:id</span><span class="p">,</span> <span class="ss">:turn</span><span class="p">,</span> <span class="ss">:scores</span>
@@ -1379,7 +1381,8 @@ <h4 id="_scoresheetクラスの処理"><a class="anchor" href="#_scoresheetク
13791381
<div id="ruby_scoresheet_code01" class="listingblock">
13801382
<div class="title">リスト 4.7 【Ruby】score.rb(7)</div>
13811383
<div class="content">
1382-
<pre class="rouge highlight"><code data-lang="ruby"><span class="c1"># 略</span>
1384+
<pre class="rouge highlight"><code data-lang="ruby"><span class="c1"># FrameクラスとScoreクラスとGameクラスの定義やそれ以前のコードがここにある</span>
1385+
13831386
<span class="c1"># ScoreSheetは、複数名の複数回のGameを記録する</span>
13841387
<span class="k">class</span> <span class="nc">ScoreSheet</span>
13851388
<span class="nb">attr_accessor</span> <span class="ss">:id</span><span class="p">,</span> <span class="ss">:time</span><span class="p">,</span> <span class="ss">:games</span>
@@ -1546,7 +1549,7 @@ <h4 id="_モデルとコードの対応づけは振る舞い設計の前に"><a
15461549
</div>
15471550
<div id="footer">
15481551
<div id="footer-text">
1549-
バージョン html_0701<br>
1552+
バージョン html_0711<br>
15501553
最終更新 2023-02-06 13:59:37 +0900
15511554
</div>
15521555
</div>

_bibliography.html

+3-3
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
<h1>モデルを使ってソフトウェアを開発しよう: UML初学者向けチュートリアル</h1>
2121
<div class="details">
2222
<span id="author" class="author">株式会社チェンジビジョン</span><br>
23-
<span id="revnumber">バージョン html_0701,</span>
24-
<span id="revdate">2023-02-13</span>
23+
<span id="revnumber">バージョン html_0711,</span>
24+
<span id="revdate">2023-05-31</span>
2525
</div>
2626
<div id="toc" class="toc2">
2727
<div id="toctitle">目次</div>
@@ -110,7 +110,7 @@ <h2 id="_bibliography"><a class="anchor" href="#_bibliography"></a>参考文献<
110110
</div>
111111
<div id="footer">
112112
<div id="footer-text">
113-
バージョン html_0701<br>
113+
バージョン html_0711<br>
114114
最終更新 2023-02-06 13:59:37 +0900
115115
</div>
116116
</div>

_colophon.html

+5-5
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
<h1>モデルを使ってソフトウェアを開発しよう: UML初学者向けチュートリアル</h1>
2121
<div class="details">
2222
<span id="author" class="author">株式会社チェンジビジョン</span><br>
23-
<span id="revnumber">バージョン html_0701,</span>
24-
<span id="revdate">2023-02-13</span>
23+
<span id="revnumber">バージョン html_0711,</span>
24+
<span id="revdate">2023-05-31</span>
2525
</div>
2626
<div id="toc" class="toc2">
2727
<div id="toctitle">目次</div>
@@ -61,8 +61,8 @@ <h2 id="_colophon"><a class="anchor" href="#_colophon"></a>奥付</h2>
6161
<p>「モデルを使ってソフトウェアを開発しよう: UML初学者向けチュートリアル」</p>
6262
</div>
6363
<div class="paragraph">
64-
<p>発行日 : 2023-02-13<br>
65-
バージョン : html_0701<br>
64+
<p>発行日 : 2023-05-31<br>
65+
バージョン : html_0711<br>
6666
作成者 : 株式会社チェンジビジョン<br>
6767
本書の内容に関する質問等がありましたら、作成者までお知らせください。</p>
6868
</div>
@@ -74,7 +74,7 @@ <h2 id="_colophon"><a class="anchor" href="#_colophon"></a>奥付</h2>
7474
</div>
7575
<div id="footer">
7676
<div id="footer-text">
77-
バージョン html_0701<br>
77+
バージョン html_0711<br>
7878
最終更新 2023-02-06 13:59:37 +0900
7979
</div>
8080
</div>

0 commit comments

Comments
 (0)