wp2txt 1.1.3 → 2.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.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/.dockerignore +12 -0
  3. data/.github/workflows/ci.yml +13 -13
  4. data/.gitignore +14 -0
  5. data/CHANGELOG.md +284 -0
  6. data/DEVELOPMENT.md +415 -0
  7. data/DEVELOPMENT_ja.md +415 -0
  8. data/Dockerfile +19 -10
  9. data/Gemfile +2 -8
  10. data/README.md +259 -123
  11. data/README_ja.md +375 -0
  12. data/Rakefile +4 -0
  13. data/bin/wp2txt +863 -161
  14. data/lib/wp2txt/article.rb +98 -13
  15. data/lib/wp2txt/bz2_validator.rb +239 -0
  16. data/lib/wp2txt/category_cache.rb +313 -0
  17. data/lib/wp2txt/cli.rb +319 -0
  18. data/lib/wp2txt/cli_ui.rb +428 -0
  19. data/lib/wp2txt/config.rb +158 -0
  20. data/lib/wp2txt/constants.rb +134 -0
  21. data/lib/wp2txt/data/html_entities.json +2135 -0
  22. data/lib/wp2txt/data/language_metadata.json +4769 -0
  23. data/lib/wp2txt/data/language_tiers.json +59 -0
  24. data/lib/wp2txt/data/mediawiki_aliases.json +12366 -0
  25. data/lib/wp2txt/data/template_aliases.json +193 -0
  26. data/lib/wp2txt/data/wikipedia_entities.json +12 -0
  27. data/lib/wp2txt/extractor.rb +545 -0
  28. data/lib/wp2txt/file_utils.rb +91 -0
  29. data/lib/wp2txt/formatter.rb +352 -0
  30. data/lib/wp2txt/global_data_cache.rb +353 -0
  31. data/lib/wp2txt/index_cache.rb +258 -0
  32. data/lib/wp2txt/magic_words.rb +353 -0
  33. data/lib/wp2txt/memory_monitor.rb +236 -0
  34. data/lib/wp2txt/multistream.rb +1383 -0
  35. data/lib/wp2txt/output_writer.rb +182 -0
  36. data/lib/wp2txt/parser_functions.rb +606 -0
  37. data/lib/wp2txt/ractor_worker.rb +215 -0
  38. data/lib/wp2txt/regex.rb +396 -12
  39. data/lib/wp2txt/section_extractor.rb +354 -0
  40. data/lib/wp2txt/stream_processor.rb +271 -0
  41. data/lib/wp2txt/template_expander.rb +830 -0
  42. data/lib/wp2txt/text_processing.rb +337 -0
  43. data/lib/wp2txt/utils.rb +629 -270
  44. data/lib/wp2txt/version.rb +1 -1
  45. data/lib/wp2txt.rb +53 -26
  46. data/scripts/benchmark_regex.rb +161 -0
  47. data/scripts/fetch_html_entities.rb +94 -0
  48. data/scripts/fetch_language_metadata.rb +180 -0
  49. data/scripts/fetch_mediawiki_data.rb +334 -0
  50. data/scripts/fetch_template_data.rb +186 -0
  51. data/scripts/profile_memory.rb +139 -0
  52. data/spec/article_spec.rb +402 -0
  53. data/spec/auto_download_spec.rb +314 -0
  54. data/spec/bz2_validator_spec.rb +193 -0
  55. data/spec/category_cache_spec.rb +226 -0
  56. data/spec/category_fetcher_spec.rb +504 -0
  57. data/spec/cleanup_spec.rb +197 -0
  58. data/spec/cli_options_spec.rb +678 -0
  59. data/spec/cli_spec.rb +876 -0
  60. data/spec/config_spec.rb +194 -0
  61. data/spec/constants_spec.rb +138 -0
  62. data/spec/file_utils_spec.rb +170 -0
  63. data/spec/fixtures/samples.rb +181 -0
  64. data/spec/formatter_sections_spec.rb +382 -0
  65. data/spec/global_data_cache_spec.rb +186 -0
  66. data/spec/index_cache_spec.rb +210 -0
  67. data/spec/integration_spec.rb +543 -0
  68. data/spec/magic_words_spec.rb +261 -0
  69. data/spec/markers_spec.rb +476 -0
  70. data/spec/memory_monitor_spec.rb +192 -0
  71. data/spec/multistream_spec.rb +690 -0
  72. data/spec/output_writer_spec.rb +400 -0
  73. data/spec/parser_functions_spec.rb +455 -0
  74. data/spec/ractor_worker_spec.rb +197 -0
  75. data/spec/regex_spec.rb +281 -0
  76. data/spec/section_extractor_spec.rb +397 -0
  77. data/spec/spec_helper.rb +63 -0
  78. data/spec/stream_processor_spec.rb +579 -0
  79. data/spec/template_data_spec.rb +246 -0
  80. data/spec/template_expander_spec.rb +472 -0
  81. data/spec/template_processing_spec.rb +217 -0
  82. data/spec/text_processing_spec.rb +312 -0
  83. data/spec/utils_spec.rb +195 -16
  84. data/spec/wp2txt_spec.rb +510 -0
  85. data/wp2txt.gemspec +5 -3
  86. metadata +146 -18
  87. data/.rubocop.yml +0 -80
  88. data/data/output_samples/testdata_en.txt +0 -23002
  89. data/data/output_samples/testdata_en_category.txt +0 -132
  90. data/data/output_samples/testdata_en_summary.txt +0 -1376
  91. data/data/output_samples/testdata_ja.txt +0 -22774
  92. data/data/output_samples/testdata_ja_category.txt +0 -206
  93. data/data/output_samples/testdata_ja_summary.txt +0 -1560
  94. data/data/testdata_en.bz2 +0 -0
  95. data/data/testdata_ja.bz2 +0 -0
  96. data/image/screenshot.png +0 -0
data/README_ja.md ADDED
@@ -0,0 +1,375 @@
1
+ <img src='https://raw.githubusercontent.com/yohasebe/wp2txt/master/image/wp2txt-logo.svg' width="400" />
2
+
3
+ Wikipediaダンプファイルからテキストコンテンツとカテゴリデータを抽出するコマンドラインツールキット
4
+
5
+ [English](README.md) | 日本語
6
+
7
+ ## クイックスタート
8
+
9
+ ```bash
10
+ # インストール
11
+ gem install wp2txt
12
+
13
+ # 日本語Wikipediaからテキストを抽出(自動ダウンロード)
14
+ wp2txt --lang=ja -o ./output
15
+
16
+ # 特定の記事を抽出
17
+ wp2txt --lang=ja --articles="東京,京都" -o ./articles
18
+
19
+ # カテゴリから記事を抽出
20
+ wp2txt --lang=ja --from-category="日本の都市" -o ./cities
21
+ ```
22
+
23
+ ## 概要
24
+
25
+ WP2TXTはWikipediaダンプファイルからプレーンテキストとカテゴリ情報を抽出します。XMLダンプ(bzip2圧縮)を処理し、MediaWikiマークアップを除去して、コーパス言語学やテキストマイニングなどの研究に適したクリーンなテキストを出力します。
26
+
27
+ ## 主な機能
28
+
29
+ - **自動ダウンロード** - 言語コード指定でダンプを自動ダウンロード
30
+ - **タイトル指定抽出** - フルダンプをダウンロードせずに特定記事を抽出
31
+ - **カテゴリベース抽出** - 特定のWikipediaカテゴリから全記事を抽出
32
+ - **カテゴリメタデータ抽出** - 記事のカテゴリ情報を出力に保持
33
+ - **テンプレート展開** - 日付・単位・座標などの一般的なテンプレートを可読テキストに変換
34
+ - **多言語対応** - 350以上のWikipedia言語でカテゴリ・リダイレクトを検出
35
+ - **ストリーミング処理** - 中間ファイルなしで大規模ダンプを処理
36
+ - **JSON出力** - データパイプライン向けの機械可読JSONL形式
37
+
38
+ ## ユースケース
39
+
40
+ wp2txtは以下の用途に適しています:
41
+
42
+ - カテゴリ情報を活用した分野別コーパスの構築
43
+ - トピック領域を横断した比較言語研究
44
+ - NLPタスク向けのメタデータ付きWikipediaテキスト抽出
45
+ - 並行カテゴリ構造を利用した対照言語研究
46
+
47
+ ## データアクセス
48
+
49
+ wp2txtは[公式Wikipediaダンプファイル](https://meta.wikimedia.org/wiki/Data_dumps)を使用します。これはバルクデータアクセスの推奨方法であり、Wikimediaのインフラガイドラインに準拠しています。
50
+
51
+ ## インストール
52
+
53
+ ### wp2txtのインストール
54
+
55
+ $ gem install wp2txt
56
+
57
+ ### システム要件
58
+
59
+ WP2TXTは`bz2`ファイルを解凍するために、以下のコマンドのいずれかが必要です:
60
+
61
+ - `lbzip2`(推奨 - 複数CPUコアを使用)
62
+ - `pbzip2`
63
+ - `bzip2`(ほとんどのシステムにプリインストール済み)
64
+
65
+ macOS(Homebrew):
66
+
67
+ $ brew install lbzip2
68
+
69
+ Windows:[Bzip2 for Windows](http://gnuwin32.sourceforge.net/packages/bzip2.htm)をインストールしてPATHに追加。
70
+
71
+ ### Docker(代替方法)
72
+
73
+ ```shell
74
+ docker run -it -v /path/to/localdata:/data yohasebe/wp2txt
75
+ ```
76
+
77
+ `wp2txt`コマンドはコンテナ内で使用可能です。入出力には`/data`ディレクトリを使用してください。
78
+
79
+ ## 基本的な使い方
80
+
81
+ ### 自動ダウンロードと処理(推奨)
82
+
83
+ $ wp2txt --lang=ja -o ./text
84
+
85
+ 日本語Wikipediaダンプを自動的にダウンロードし、プレーンテキストを抽出します。ダウンロードは`~/.wp2txt/cache/`にキャッシュされます。
86
+
87
+ ### タイトルで特定記事を抽出
88
+
89
+ $ wp2txt --lang=ja --articles="認知言語学,生成文法" -o ./articles
90
+
91
+ インデックスファイルと必要なデータストリームのみがダウンロードされるため、フルダンプの処理よりはるかに高速です。
92
+
93
+ ### カテゴリから記事を抽出
94
+
95
+ $ wp2txt --lang=ja --from-category="日本の都市" -o ./cities
96
+
97
+ `--depth`でサブカテゴリを含める:
98
+
99
+ $ wp2txt --lang=ja --from-category="日本の都市" --depth=2 -o ./cities
100
+
101
+ ダウンロードせずにプレビュー(記事数を表示):
102
+
103
+ $ wp2txt --lang=ja --from-category="日本の都市" --dry-run
104
+
105
+ ### ローカルダンプファイルを処理
106
+
107
+ $ wp2txt -i ./jawiki-20220801-pages-articles.xml.bz2 -o ./text
108
+
109
+ ### その他の抽出モード
110
+
111
+ # カテゴリ情報のみ(タイトル + カテゴリ)
112
+ $ wp2txt -g --lang=ja -o ./category
113
+
114
+ # サマリーのみ(タイトル + カテゴリ + 冒頭段落)
115
+ $ wp2txt -s --lang=ja -o ./summary
116
+
117
+ # メタデータのみ(タイトル + セクション見出し + カテゴリ)
118
+ $ wp2txt -M --lang=ja --format json -o ./metadata
119
+
120
+ # 特定セクションを抽出(カンマ区切り、'summary'で冒頭テキスト)
121
+ $ wp2txt --lang=ja --sections="概要,歴史,関連項目" --format json -o ./sections
122
+
123
+ # セクション見出しの統計
124
+ $ wp2txt --lang=ja --section-stats -o ./stats
125
+
126
+ # JSON/JSONL出力
127
+ $ wp2txt --format json --lang=ja -o ./json
128
+
129
+ ## 出力サンプル
130
+
131
+ ### テキスト出力
132
+
133
+ ```
134
+ [[記事タイトル]]
135
+
136
+ 記事の内容がセクションと段落で表示されます...
137
+
138
+ CATEGORIES: カテゴリ1, カテゴリ2, カテゴリ3
139
+ ```
140
+
141
+ ### JSON/JSONL出力
142
+
143
+ 各行に1つのJSONオブジェクト:
144
+
145
+ ```json
146
+ {"title": "記事タイトル", "categories": ["カテゴリ1", "カテゴリ2"], "text": "...", "redirect": null}
147
+ ```
148
+
149
+ リダイレクト記事の場合:
150
+
151
+ ```json
152
+ {"title": "NYC", "categories": [], "text": "", "redirect": "New York City"}
153
+ ```
154
+
155
+ ## キャッシュ管理
156
+
157
+ $ wp2txt --cache-status # キャッシュ状態を表示
158
+ $ wp2txt --cache-clear # 全キャッシュをクリア
159
+ $ wp2txt --cache-clear --lang=ja # 日本語のみクリア
160
+ $ wp2txt --update-cache # 強制的に新規ダウンロード
161
+
162
+ キャッシュが有効期限(デフォルト: 30日)を超えると、wp2txtは警告を表示しますが、キャッシュされたデータの使用は許可されます。
163
+
164
+ ## 詳細オプション
165
+
166
+ ### コンテンツタイプマーカー
167
+
168
+ 特殊コンテンツはデフォルトでマーカープレースホルダーに置き換えられます:
169
+
170
+ **インラインマーカー**(文中に出現):
171
+
172
+ | マーカー | コンテンツタイプ |
173
+ |----------|------------------|
174
+ | `[MATH]` | 数式 |
175
+ | `[CODE]` | インラインコード |
176
+ | `[CHEM]` | 化学式 |
177
+ | `[IPA]` | IPA発音記号 |
178
+
179
+ **ブロックマーカー**(独立したコンテンツ):
180
+
181
+ | マーカー | コンテンツタイプ |
182
+ |----------|------------------|
183
+ | `[CODEBLOCK]` | ソースコードブロック |
184
+ | `[TABLE]` | Wikiテーブル |
185
+ | `[INFOBOX]` | 情報ボックス |
186
+ | `[NAVBOX]` | ナビゲーションボックス |
187
+ | `[GALLERY]` | 画像ギャラリー |
188
+ | `[REFERENCES]` | 参考文献リスト |
189
+ | `[SCORE]` | 楽譜 |
190
+ | `[TIMELINE]` | タイムライングラフィック |
191
+ | `[GRAPH]` | グラフ/チャート |
192
+ | `[SIDEBAR]` | サイドバーテンプレート |
193
+ | `[MAPFRAME]` | インタラクティブ地図 |
194
+ | `[IMAGEMAP]` | クリッカブル画像マップ |
195
+
196
+ `--markers`で設定:
197
+
198
+ $ wp2txt --lang=ja --markers=all -o ./text # 全マーカー(デフォルト)
199
+ $ wp2txt --lang=ja --markers=math,code -o ./text # MATHとCODEのみ
200
+
201
+ **注意**: `--markers=none`は非推奨です。特殊コンテンツの完全な削除は周囲のテキストを意味不明にする可能性があります。
202
+
203
+ ### テンプレート展開
204
+
205
+ 一般的なMediaWikiテンプレートは自動的に展開されます(デフォルトで有効):
206
+
207
+ | テンプレート | 出力 |
208
+ |--------------|------|
209
+ | `{{birth date\|1990\|5\|15}}` | May 15, 1990 |
210
+ | `{{convert\|100\|km\|mi}}` | 100 km (62 mi) |
211
+ | `{{coord\|35\|41\|N\|139\|41\|E}}` | 35°41′N 139°41′E |
212
+ | `{{lang\|ja\|日本語}}` | 日本語 |
213
+ | `{{nihongo\|Tokyo\|東京\|Tōkyō}}` | Tokyo (東京, Tōkyō) |
214
+ | `{{frac\|1\|2}}` | 1/2 |
215
+ | `{{circa\|1900}}` | c. 1900 |
216
+
217
+ サポート対象:日付/年齢テンプレート、単位変換、座標、言語タグ、引用、分数など。パーサー関数(`{{#if:}}`、`{{#switch:}}`)とマジックワード(`{{PAGENAME}}`、`{{CURRENTYEAR}}`)もサポート。
218
+
219
+ `--no-expand-templates`で無効化。
220
+
221
+ ### 引用抽出
222
+
223
+ デフォルトでは引用テンプレートは削除されます。`--extract-citations`でフォーマットされた引用を抽出:
224
+
225
+ $ wp2txt --lang=ja --extract-citations -o ./text
226
+
227
+ サポート対象:`{{cite book}}`、`{{cite web}}`、`{{cite news}}`、`{{cite journal}}`、`{{Citation}}`など。
228
+
229
+ ## コマンドラインオプション
230
+
231
+ Usage: wp2txt [options]
232
+
233
+ 入力ソース(--input または --lang のいずれかが必須):
234
+ -i, --input=<s> 圧縮ファイル(bz2)またはXMLファイルへのパス
235
+ -L, --lang=<s> Wikipedia言語コード(例: ja, en, de)
236
+ -A, --articles=<s> 特定の記事タイトル(カンマ区切り)
237
+ -G, --from-category=<s> Wikipediaカテゴリから記事を抽出
238
+ -D, --depth=<i> サブカテゴリ再帰深度(デフォルト: 0)
239
+ -y, --yes 確認プロンプトをスキップ
240
+ --dry-run カテゴリ抽出をプレビュー
241
+ -U, --update-cache キャッシュファイルを強制更新
242
+
243
+ 出力オプション:
244
+ -o, --output-dir=<s> 出力ディレクトリ(デフォルト: カレント)
245
+ -j, --format=<s> 出力形式: text または json(デフォルト: text)
246
+ -f, --file-size=<i> 出力ファイルサイズ(MB)(デフォルト: 10, 0=単一)
247
+
248
+ キャッシュ管理:
249
+ --cache-dir=<s> キャッシュディレクトリ(デフォルト: ~/.wp2txt/cache)
250
+ --cache-status キャッシュ状態を表示して終了
251
+ --cache-clear キャッシュをクリアして終了
252
+
253
+ 設定:
254
+ --config-init デフォルト設定を作成(~/.wp2txt/config.yml)
255
+ --config-path=<s> 設定ファイルへのパス
256
+
257
+ 抽出モード(排他的):
258
+ -g, --category-only タイトルとカテゴリのみ抽出
259
+ -s, --summary-only タイトル、カテゴリ、サマリーを抽出
260
+ -M, --metadata-only タイトル、見出し、カテゴリのみ抽出
261
+
262
+ セクション抽出:
263
+ -S, --sections=<s> 特定セクションを抽出(カンマ区切り)
264
+ --section-output=<s> 出力モード: structured または combined(デフォルト: structured)
265
+ --min-section-length=<i> 最小セクション長(文字数)(デフォルト: 0)
266
+ --skip-empty 該当セクションのない記事をスキップ
267
+ --alias-file=<s> セクション別名定義ファイル(YAML形式)
268
+ --no-section-aliases セクション別名マッチングを無効化(完全一致のみ)
269
+ --section-stats セクション見出しの統計を収集・出力(JSON)
270
+ --show-matched-sections JSON出力にmatched_sectionsフィールドを含める
271
+
272
+ コンテンツフィルタリング:
273
+ -a, --category, --no-category カテゴリ情報を表示(デフォルト: true)
274
+ -t, --title, --no-title ページタイトルを保持(デフォルト: true)
275
+ -d, --heading, --no-heading セクションタイトルを保持(デフォルト: true)
276
+ -l, --list リスト項目を保持(デフォルト: false)
277
+ --table Wikiテーブルの内容を保持(デフォルト: false)
278
+ -p, --pre 整形済みテキストブロックを保持(デフォルト: false)
279
+ -r, --ref 参照を[ref]...[/ref]形式で保持(デフォルト: false)
280
+ --multiline 複数行テンプレートを保持(デフォルト: false)
281
+ -e, --redirect リダイレクト先を表示(デフォルト: false)
282
+ -m, --marker, --no-marker リストマーカーを表示(デフォルト: true)
283
+ -k, --markers=<s> コンテンツマーカー(デフォルト: all)
284
+ -C, --extract-citations フォーマットされた引用を抽出
285
+ -E, --expand-templates テンプレートを展開(デフォルト: true)
286
+ --no-expand-templates テンプレート展開を無効化
287
+
288
+ パフォーマンス:
289
+ -n, --num-procs=<i> 並列プロセス数(デフォルト: 自動)
290
+ --no-turbo ターボモードを無効化(ディスク容量節約、低速)
291
+ -R, --ractor Ractor並列処理を使用(Ruby 4.0+、ストリーミングのみ)
292
+ -b, --bz2-gem システムコマンドの代わりにbzip2-ruby gemを使用
293
+
294
+ 出力制御:
295
+ -q, --quiet 進捗出力を抑制(エラーのみ表示)
296
+ --no-color カラー出力を無効化
297
+
298
+ 情報:
299
+ -v, --version バージョンを表示
300
+ -h, --help ヘルプを表示
301
+
302
+ ## 設定ファイル
303
+
304
+ 永続的な設定を作成:
305
+
306
+ $ wp2txt --config-init
307
+
308
+ `~/.wp2txt/config.yml`が作成されます:
309
+
310
+ ```yaml
311
+ cache:
312
+ dump_expiry_days: 30 # ダンプが古いと見なされるまでの日数(1-365)
313
+ category_expiry_days: 7 # カテゴリキャッシュの有効期限(1-90)
314
+ directory: ~/.wp2txt/cache
315
+
316
+ defaults:
317
+ format: text # デフォルト出力形式
318
+ depth: 0 # デフォルトサブカテゴリ深度
319
+ ```
320
+
321
+ コマンドラインオプションは設定ファイルの設定を上書きします。
322
+
323
+ ## パフォーマンス
324
+
325
+ MacBook Air M4でのベンチマーク結果(7並列プロセス、ターボモード、ダウンロード時間除く):
326
+
327
+ | Wikipedia | ダンプサイズ | 記事数 | 処理時間 | 出力 |
328
+ |-----------|-------------|--------|----------|------|
329
+ | 日本語 | 4.37 GB | 1,485,937 | 約27分 | 463ファイル (4.5 GB) |
330
+ | 英語 | 24.2 GB | 約680万 | 約2時間 | 2,000ファイル (20 GB) |
331
+
332
+ ターボモード(デフォルト)はbz2をXMLチャンクに分割してから並列処理します。ディスク容量を節約するには`--no-turbo`を使用してください(処理速度は低下します)。
333
+
334
+ ## 注意事項
335
+
336
+ * 特殊コンテンツ(数式、コードなど)はデフォルトでプレースホルダーでマークされます。
337
+ * マークアップのバリエーションや言語固有のフォーマットにより、一部のテキストが正しく抽出されない場合があります。
338
+
339
+ ## 変更履歴
340
+
341
+ 詳細なリリースノートは[CHANGELOG.md](CHANGELOG.md)を参照してください。
342
+
343
+ **v2.1.0(2026年2月)**: SQLiteキャッシュ、Ractor並列処理(Ruby 4.0+)、テンプレート展開、コンテンツマーカー、Dockerイメージ更新。
344
+
345
+ **v2.0.0(2026年1月)**: 自動ダウンロードモード、カテゴリベース抽出、タイトル指定抽出、JSON出力、ストリーミング処理、Ruby 4.0サポート。
346
+
347
+ ## 便利なリンク
348
+
349
+ * [Wikipedia Database backup dumps](http://dumps.wikimedia.org/backup-index.html)
350
+
351
+ ## 著者
352
+
353
+ * 長谷部陽一郎 (<yohasebe@gmail.com>)
354
+
355
+ ## 参考文献
356
+
357
+ 研究で以下のいずれかを言及していただけると幸いです。
358
+
359
+ * Yoichiro HASEBE. 2006. [Method for using Wikipedia as Japanese corpus.](http://ci.nii.ac.jp/naid/110006226727) _Doshisha Studies in Language and Culture_ 9(2), 373-403.
360
+ * 長谷部陽一郎. 2006. [Wikipedia日本語版をコーパスとして用いた言語研究の手法](http://ci.nii.ac.jp/naid/110006226727). 『言語文化』9(2), 373-403.
361
+
362
+ BibTeX:
363
+
364
+ ```
365
+ @misc{wp2txt_2026,
366
+ author = {Yoichiro Hasebe},
367
+ title = {WP2TXT: A command-line toolkit to extract text content and category data from Wikipedia dump files},
368
+ url = {https://github.com/yohasebe/wp2txt},
369
+ year = {2026}
370
+ }
371
+ ```
372
+
373
+ ## ライセンス
374
+
375
+ このソフトウェアはMITライセンスの下で配布されています。LICENSEファイルを参照してください。
data/Rakefile CHANGED
@@ -17,6 +17,10 @@ end
17
17
 
18
18
  task default: :spec
19
19
 
20
+ # =============================================================================
21
+ # Docker
22
+ # =============================================================================
23
+
20
24
  desc "Push Docker images"
21
25
  task :push do
22
26
  sh <<-SCRIPT.strip_heredoc, { verbose: false }