spec/templates/helpers/shared_signature_examples.rb in yard-0.9.18 vs spec/templates/helpers/shared_signature_examples.rb in yard-0.9.19
- old
+ new
@@ -1,126 +1,126 @@
-# frozen_string_literal: true
-RSpec.shared_examples_for "signature" do
- before do
- YARD::Registry.clear
- @options = Templates::TemplateOptions.new
- @options.reset_defaults
- allow(self).to receive(:options).and_return(@options)
- end
-
- def trim(sig) sig.gsub(/\s+/, ' ') end
-
- it "shows signature for regular instance method" do
- YARD.parse_string "def foo; end"
- expect(trim(signature(Registry.at('#foo')))).to eq @results[:regular]
- end
-
- it "allows default return type to be changed" do
- @options.default_return = "Hello"
- YARD.parse_string "def foo; end"
- expect(trim(signature(Registry.at('#foo')))).to eq @results[:default_return]
- end
-
- it "allows default return type to be omitted" do
- @options.default_return = ""
- YARD.parse_string "def foo; end"
- expect(trim(signature(Registry.at('#foo')))).to eq @results[:no_default_return]
- end
-
- it "shows signature for private class method" do
- YARD.parse_string "class A; private; def self.foo; end end"
- expect(trim(signature(Registry.at('A.foo')))).to eq @results[:private_class]
- end
-
- it "shows return type for single type" do
- YARD.parse_string <<-'eof'
- # @return [String]
- def foo; end
- eof
- expect(trim(signature(Registry.at('#foo')))).to eq @results[:single]
- end
-
- it "shows return type for 2 types" do
- YARD.parse_string <<-'eof'
- # @return [String, Symbol]
- def foo; end
- eof
- expect(trim(signature(Registry.at('#foo')))).to eq @results[:two_types]
- end
-
- it "shows return type for 2 types over multiple tags" do
- YARD.parse_string <<-'eof'
- # @return [String]
- # @return [Symbol]
- def foo; end
- eof
- expect(trim(signature(Registry.at('#foo')))).to eq @results[:two_types_multitag]
- end
-
- it "shows 'Type?' if return types are [Type, nil]" do
- YARD.parse_string <<-'eof'
- # @return [Type, nil]
- def foo; end
- eof
- expect(trim(signature(Registry.at('#foo')))).to eq @results[:type_nil]
- end
-
- it "shows 'Type?' if return types are [Type, nil, nil] (extra nil)" do
- YARD.parse_string <<-'eof'
- # @return [Type, nil]
- # @return [nil]
- def foo; end
- eof
- expect(trim(signature(Registry.at('#foo')))).to eq @results[:type_nil]
- end
-
- it "shows 'Type+' if return types are [Type, Array<Type>]" do
- YARD.parse_string <<-'eof'
- # @return [Type, <Type>]
- def foo; end
- eof
- expect(trim(signature(Registry.at('#foo')))).to eq @results[:type_array]
- end
-
- it "shows (Type, ...) for more than 2 return types" do
- YARD.parse_string <<-'eof'
- # @return [Type, <Type>]
- # @return [AnotherType]
- def foo; end
- eof
- expect(trim(signature(Registry.at('#foo')))).to eq @results[:multitype]
- end
-
- it "shows (void) for @return [void] by default" do
- YARD.parse_string <<-'eof'
- # @return [void]
- def foo; end
- eof
- expect(trim(signature(Registry.at('#foo')))).to eq @results[:void]
- end
-
- it "does not show return for @return [void] if :hide_void_return is true" do
- @options.hide_void_return = true
- YARD.parse_string <<-'eof'
- # @return [void]
- def foo; end
- eof
- expect(trim(signature(Registry.at('#foo')))).to eq @results[:hide_void]
- end
-
- it "shows block for method with yield" do
- YARD.parse_string <<-'eof'
- def foo; yield(a, b, c) end
- eof
- expect(trim(signature(Registry.at('#foo')))).to eq @results[:block]
- end
-
- it "uses regular return tag if the @overload is empty" do
- YARD.parse_string <<-'eof'
- # @overload foobar
- # Hello world
- # @return [String]
- def foo; end
- eof
- expect(trim(signature(Registry.at('#foo').tag(:overload)))).to eq @results[:empty_overload]
- end
-end
+# frozen_string_literal: true
+RSpec.shared_examples_for "signature" do
+ before do
+ YARD::Registry.clear
+ @options = Templates::TemplateOptions.new
+ @options.reset_defaults
+ allow(self).to receive(:options).and_return(@options)
+ end
+
+ def trim(sig) sig.gsub(/\s+/, ' ') end
+
+ it "shows signature for regular instance method" do
+ YARD.parse_string "def foo; end"
+ expect(trim(signature(Registry.at('#foo')))).to eq @results[:regular]
+ end
+
+ it "allows default return type to be changed" do
+ @options.default_return = "Hello"
+ YARD.parse_string "def foo; end"
+ expect(trim(signature(Registry.at('#foo')))).to eq @results[:default_return]
+ end
+
+ it "allows default return type to be omitted" do
+ @options.default_return = ""
+ YARD.parse_string "def foo; end"
+ expect(trim(signature(Registry.at('#foo')))).to eq @results[:no_default_return]
+ end
+
+ it "shows signature for private class method" do
+ YARD.parse_string "class A; private; def self.foo; end end"
+ expect(trim(signature(Registry.at('A.foo')))).to eq @results[:private_class]
+ end
+
+ it "shows return type for single type" do
+ YARD.parse_string <<-'eof'
+ # @return [String]
+ def foo; end
+ eof
+ expect(trim(signature(Registry.at('#foo')))).to eq @results[:single]
+ end
+
+ it "shows return type for 2 types" do
+ YARD.parse_string <<-'eof'
+ # @return [String, Symbol]
+ def foo; end
+ eof
+ expect(trim(signature(Registry.at('#foo')))).to eq @results[:two_types]
+ end
+
+ it "shows return type for 2 types over multiple tags" do
+ YARD.parse_string <<-'eof'
+ # @return [String]
+ # @return [Symbol]
+ def foo; end
+ eof
+ expect(trim(signature(Registry.at('#foo')))).to eq @results[:two_types_multitag]
+ end
+
+ it "shows 'Type?' if return types are [Type, nil]" do
+ YARD.parse_string <<-'eof'
+ # @return [Type, nil]
+ def foo; end
+ eof
+ expect(trim(signature(Registry.at('#foo')))).to eq @results[:type_nil]
+ end
+
+ it "shows 'Type?' if return types are [Type, nil, nil] (extra nil)" do
+ YARD.parse_string <<-'eof'
+ # @return [Type, nil]
+ # @return [nil]
+ def foo; end
+ eof
+ expect(trim(signature(Registry.at('#foo')))).to eq @results[:type_nil]
+ end
+
+ it "shows 'Type+' if return types are [Type, Array<Type>]" do
+ YARD.parse_string <<-'eof'
+ # @return [Type, <Type>]
+ def foo; end
+ eof
+ expect(trim(signature(Registry.at('#foo')))).to eq @results[:type_array]
+ end
+
+ it "shows (Type, ...) for more than 2 return types" do
+ YARD.parse_string <<-'eof'
+ # @return [Type, <Type>]
+ # @return [AnotherType]
+ def foo; end
+ eof
+ expect(trim(signature(Registry.at('#foo')))).to eq @results[:multitype]
+ end
+
+ it "shows (void) for @return [void] by default" do
+ YARD.parse_string <<-'eof'
+ # @return [void]
+ def foo; end
+ eof
+ expect(trim(signature(Registry.at('#foo')))).to eq @results[:void]
+ end
+
+ it "does not show return for @return [void] if :hide_void_return is true" do
+ @options.hide_void_return = true
+ YARD.parse_string <<-'eof'
+ # @return [void]
+ def foo; end
+ eof
+ expect(trim(signature(Registry.at('#foo')))).to eq @results[:hide_void]
+ end
+
+ it "shows block for method with yield" do
+ YARD.parse_string <<-'eof'
+ def foo; yield(a, b, c) end
+ eof
+ expect(trim(signature(Registry.at('#foo')))).to eq @results[:block]
+ end
+
+ it "uses regular return tag if the @overload is empty" do
+ YARD.parse_string <<-'eof'
+ # @overload foobar
+ # Hello world
+ # @return [String]
+ def foo; end
+ eof
+ expect(trim(signature(Registry.at('#foo').tag(:overload)))).to eq @results[:empty_overload]
+ end
+end