質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

1308閲覧

[質問] ruby optparse helpのoption説明 複数行時の説明開始桁位置を揃えるスマートな記述

roswell

総合スコア17

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

1クリップ

投稿2018/12/02 00:28

bash

1~$ uname -a 2CYGWIN_NT-6.1 JPC20316739 2.10.0(0.325/5/3) 2018-02-02 15:16 x86_64 3Cygwin 4~$ ruby --version 5ruby 2.3.6p384 (2017-12-14 revision 9808) [x86_64-cygwin] 6last_commit=ruby 2.3.3

の環境で、
optparse ライブラリの help
https://docs.ruby-lang.org/ja/2.3.0/library/optparse.html#help
「OptionParser#on の引数にそのオプションの説明を加えると --help の 出力に反映されます。」 の部分で、
説明を複数行に渡って表示させる際、ソースのコメント(*)部分のようにすれば、
前の行の説明文の開始位置と改行後の説明文の開始位置が一致するのですが、
もっとスマートな記述が出来ないものでしょうか?

なにかよい方法があれば、ご教示お願いします。

[ソース]

bash

1~$ cat optparse.rb 2#! /usr/bin/env ruby 3 4# coding: utf-8 5require 'optparse' 6opt = OptionParser.new 7 8help_d = <<'HELP_D' 9bar 10hoge 11HELP_D 12 13opt.on('-a','foo') {|v| v } 14opt.on('-b',"bar\nhoge") {|v| v } # 2行目の説明文が行頭からになる fail 15opt.on('-c',\ 16"bar 17 hoge") {|v| v } # (*) 2行目の説明文が、1行目の説明文の開始位置と合うが… 18opt.parse(ARGV)

[実行結果]

~$ ./optparse.rb --help Usage: optparse [options] -a foo -b bar hoge -c bar hoge

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

rb

1require 'optparse' 2 3opt = OptionParser.new 4 5opt.on('-b', 'bar', 'hoge'){|v| v} 6opt.on('-c', *<<~DESC.split){|v| v} 7 bar 8 hoge 9DESC 10 11opt.parse(ARGV)

コレはドキュメント読むだけだと分かりづらい仕様ですね
一応、
https://docs.ruby-lang.org/ja/latest/method/OptionParser/i/on.html

on(short, *rest) {|v| ...} -> self
[PARAM] rest:

可能な引数を列挙した配列やハッシュを与えます。文字列を与えた場合は、 サマリに表示されるオプションの説明と見なします。

あたりから推測できるようなできないような

投稿2018/12/02 15:20

asm

総合スコア15147

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

roswell

2018/12/03 14:06

asm さん、ご教示大変ありがとうございます。 マニュアル見落としていました。が... 私の理解力では無理でした。 望み通りです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問