ruby-reference-manual:1512
From: Kazuhiro NISHIYAMA <zn@m...>
Date: Thu, 11 Jun 2009 18:33:33 +0900
Subject: [ruby-reference-manual:1512] synopsis_source
西山和広です。 末尾につけたパッチのような感じで refe で synopsis_source の表示を 試してみたのですが、以下のようにメソッドの引数や返値までだったり、 それが複数行あったり、説明が1行だったり複数行だったりなかったりして います。 ドキュメントのソースをみると Array#join など、 http://doc.loveruby.net/wiki/HowToWriteMethodEntry.html に従って「メソッドを一言で説明する文を一段落で書」いているように 見えるのですが、これは synopsis_source の実装の方が間違っていると いうことで良いのでしょうか? % ./refe-1_9_1 -s join Array#join --- join(sep = $,) -> String File.join --- join(*item) -> String GServer#join --- join Pathname#join --- join(*args) Pathname.new(File.join(self.to_s, *args)) と同じです。 Shell#join --- join(*item) -> String Fileクラスにある同名のクラスメソッドと同じです. Shellwords.join --- join(array) -> String 配列の各要素である文字列に対して、Bourne シェルのコマンドライン中で安全に 使えるためのエスケープを適用し、空白文字を介してそれらを連結したコマンド ライン文字列を生成します。 Thread#join --- join -> self --- join(limit) -> self | nil ThreadsWait#join --- join(*threads) -> () URI.join --- join(uri_str, *path) -> object % -- |ZnZ(ゼット エヌ ゼット) |西山和広(Kazuhiro NISHIYAMA) diff --git a/lib/bitclust/searcher.rb b/lib/bitclust/searcher.rb index 2ad468e..daad44f 100644 --- a/lib/bitclust/searcher.rb +++ b/lib/bitclust/searcher.rb @@ -28,6 +28,7 @@ module BitClust @name = (/\Abitclust/ =~ cmd ? 'bitclust search' : 'refe') @describe_all = false @linep = false + @synopsis = false @encoding = nil @target_type = nil @listen_url = nil @@ -53,6 +54,9 @@ module BitClust opt.on('-l', '--line', 'Prints one entry in one line.') { @linep = true } + opt.on('-s', '--synopsis', 'Prints synopsis.') { + @synopsis = true + } opt.on('-e', '--encoding=ENCODING', 'Select encoding.') {|enc| @encoding = enc } @@ -133,6 +137,7 @@ module BitClust @view = TerminalView.new(compiler, {:describe_all => @describe_all, :line => @linep, + :synopsis => @synopsis, :encoding => @encoding}) end @@ -297,6 +302,7 @@ module BitClust @compiler = compiler @describe_all = opts[:describe_all] @line = opts[:line] + @synopsis = opts[:synopsis] @encoding = opts[:encoding] @database = nil end @@ -305,13 +311,19 @@ module BitClust def show_class(cs) if cs.size == 1 - if @line + if @synopsis + print_synopsis cs.first + elsif @line print_names [cs.first.label] else describe_class cs.first end else - if @describe_all + if @synopsis + cs.sort.each do |c| + print_synopsis c + end + elsif @describe_all cs.sort.each do |c| describe_class c end @@ -323,13 +335,19 @@ module BitClust def show_method(result) if result.determined? - if @line + if @synopsis + print_synopsis result.record.entry + elsif @line print_names result.names else describe_method result.record end else - if @describe_all + if @synopsis + result.each_record do |rec| + print_synopsis rec.entry + end + elsif @describe_all result.each_record do |rec| describe_method rec end @@ -368,6 +386,11 @@ module BitClust puts buf unless buf.empty? end + def print_synopsis(entry) + puts entry.label + puts entry.synopsis_source.gsub(/^/, " ") + end + def terminal_column (ENV['COLUMNS'] || 70).to_i end -- ML: ruby-reference-manual@m... 使い方: http://QuickML.com/