From 72de4e624b466b69b4f4f0a90e64b252cbe82174 Mon Sep 17 00:00:00 2001 From: Loren Segal Date: Sat, 14 Jul 2012 12:39:17 -0400 Subject: [PATCH] Fix Docstring#to_raw for `@option` tags Implementation by @ConradIrwin --- lib/yard/docstring.rb | 7 +++++++ spec/docstring_spec.rb | 12 ++++++++++++ 2 files changed, 19 insertions(+) diff --git a/lib/yard/docstring.rb b/lib/yard/docstring.rb index 8555aa6e4..645dca2b6 100644 --- a/lib/yard/docstring.rb +++ b/lib/yard/docstring.rb @@ -191,6 +191,13 @@ def to_raw unless tag.docstring.blank? tag_text += "\n" + tag.docstring.all.gsub(/\r?\n/, "\n ") end + when Tags::OptionTag + tag_text = "@#{tag.tag_name} #{tag.name}" + tag_text += ' [' + tag.pair.types.join(', ') + ']' if tag.pair.types + tag_text += ' ' + tag.pair.name.to_s if tag.pair.name + tag_text += "\n " if tag.name && tag.text + tag_text += ' (' + tag.pair.defaults.join(', ') + ')' if tag.pair.defaults + tag_text += " " + tag.pair.text.strip.gsub(/\n/, "\n ") if tag.pair.text else tag_text = '@' + tag.tag_name tag_text += ' [' + tag.types.join(', ') + ']' if tag.types diff --git a/spec/docstring_spec.rb b/spec/docstring_spec.rb index a2456c853..1a1170356 100644 --- a/spec/docstring_spec.rb +++ b/spec/docstring_spec.rb @@ -250,6 +250,18 @@ doc = Docstring.new("123\n@param") doc.to_raw.should == doc.all end + + # @bug gh-563 + it "should handle full @option tags" do + doc = Docstring.new("@option foo [String] bar (nil) baz") + doc.to_raw.should == "@option foo [String] bar (nil) baz" + end + + # @bug gh-563 + it "should handle simple @option tags" do + doc = Docstring.new("@option foo :key bar") + doc.to_raw.should == "@option foo :key bar" + end end describe '#dup' do