inch 0.4.4.rc1 → 0.4.4.rc2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f7dd851b019ec788a43552657ad1b35493956676
4
- data.tar.gz: 3653aae1e38341b48df225a67b1334d6cb667c3b
3
+ metadata.gz: 939665081ef1fae175405f3e47c6aab33b96449a
4
+ data.tar.gz: 384311683a56411b6408f0206af6e5428c828d04
5
5
  SHA512:
6
- metadata.gz: edcdc37b91816acdd782a9f0a40d569bb9009ca0119d60fad5c1e0fdb6d2555e57f74a93fbb5b5cba409f19e601f2617b7eb07ff09100c68ceff756a12037842
7
- data.tar.gz: 0e5d86540f4ef8cf5fe45ef76ce4bfda05159e56668114b00e0d2fd5066ddfab30ad664d6779e7cd80fe0fd5532b9bbfe043007072bc34bac20f53195797d0d3
6
+ metadata.gz: 38867d8c71272f70cc7195cc2e65a1830b0cd63a88738ee23bc1cc04d4a5ee90e28ecdfb511f442655708841a1cb747919c4adec8596a194daee63cfb4f8e241
7
+ data.tar.gz: dc096ab206cc711c66203426303b5e44aff321dbcf849a7579da4ba91db842b1fc320c88206de44858a3aaa3ee9527a2bb6a3b823f3fe598097ac89102276c10
@@ -3,6 +3,22 @@ module Inch
3
3
  module Provider
4
4
  module YARD
5
5
  class Docstring
6
+ # Returns +true+ if the docstring was generated by YARD
7
+ #
8
+ # @param docstring [Docstring,String]
9
+ # @param method [MethodObject]
10
+ def self.implicit?(docstring, method)
11
+ name = method.name
12
+ if method.getter?
13
+ docstring.to_s == "Returns the value of attribute #{name}"
14
+ elsif method.setter?
15
+ basename = name.to_s.gsub(/(\=)$/, '')
16
+ docstring.to_s == "Sets the attribute #{basename}"
17
+ else
18
+ false
19
+ end
20
+ end
21
+
6
22
  def initialize(text)
7
23
  @text = text.to_s
8
24
  end
@@ -64,12 +64,12 @@ module Inch
64
64
  end
65
65
 
66
66
  def return_mentioned?
67
- !return_tags.empty? || docstring.mentions_return?
67
+ !return_tags.empty? || docstring.mentions_return? && !implicit_docstring?
68
68
  end
69
69
 
70
70
  def return_described?
71
71
  return_tags.any? { |t| !t.text.empty? } ||
72
- docstring.describes_return?
72
+ docstring.describes_return? && !implicit_docstring?
73
73
  end
74
74
 
75
75
  def return_typed?
@@ -98,6 +98,11 @@ module Inch
98
98
 
99
99
  private
100
100
 
101
+ # Returns +true+ if the docstring was generated by YARD
102
+ def implicit_docstring?
103
+ Docstring.implicit?(docstring, self)
104
+ end
105
+
101
106
  def overload_tags
102
107
  object.tags(:overload)
103
108
  end
@@ -5,13 +5,14 @@ module Inch
5
5
  module Object
6
6
  # Utility class to describe (overloaded) method signatures
7
7
  class MethodSignature < Struct.new(:method, :yard_tag)
8
- attr_reader :method
8
+ attr_reader :method, :docstring
9
9
 
10
10
  # @param method [Provider::YARD::Object::MethodObject]
11
11
  # @param method [::YARD::Tags::Tag,nil] if nil, the method's normal signature is used
12
12
  def initialize(method, yard_tag = nil)
13
13
  @method = method
14
14
  @yard_tag = yard_tag
15
+ @docstring = Provider::YARD::Docstring.new(relevant_object.docstring)
15
16
  end
16
17
 
17
18
  def all_signature_parameter_names
@@ -67,21 +68,9 @@ module Inch
67
68
  end.compact.uniq
68
69
  end
69
70
 
70
- def docstring
71
- @docstring ||= Docstring.new(relevant_object.docstring)
72
- end
73
-
74
71
  # Returns +true+ if the docstring was generated by YARD
75
72
  def implicit_docstring?
76
- name = method.name
77
- if method.getter?
78
- docstring.to_s == "Returns the value of attribute #{name}"
79
- elsif method.setter?
80
- basename = name.to_s.gsub(/(\=)$/, '')
81
- docstring.to_s == "Sets the attribute #{basename}"
82
- else
83
- false
84
- end
73
+ Docstring.implicit?(docstring, method)
85
74
  end
86
75
 
87
76
  # Returns how the given parameter is noted in the method's
data/lib/inch/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Inch
2
- VERSION = "0.4.4.rc1"
2
+ VERSION = "0.4.4.rc2"
3
3
  end
@@ -220,30 +220,40 @@ describe ::Inch::CodeObject::Proxy::MethodObject do
220
220
  m = @objects.find("InchTest#getter")
221
221
  assert m.getter?, "should be a getter"
222
222
  refute m.setter?
223
+ refute m.has_doc?
224
+ assert_equal 0, m.score
223
225
  end
224
226
 
225
227
  def test_setter
226
228
  m = @objects.find("InchTest#attr_setter=")
227
229
  refute m.getter?
228
230
  assert m.setter?, "should be a setter"
231
+ refute m.has_doc?
232
+ assert_equal 0, m.score
229
233
  end
230
234
 
231
235
  def test_setter2
232
236
  m = @objects.find("InchTest#manual_setter=")
233
237
  refute m.getter?
234
238
  assert m.setter?, "should be a setter"
239
+ refute m.has_doc?
240
+ assert_equal 0, m.score
235
241
  end
236
242
 
237
243
  def test_manual_getset
238
244
  m = @objects.find("InchTest#manual_getset")
239
245
  assert m.getter?, "should be a getter"
240
246
  refute m.setter?
247
+ refute m.has_doc?
248
+ assert_equal 0, m.score
241
249
  end
242
250
 
243
251
  def test_manual_getset2
244
252
  m = @objects.find("InchTest#manual_getset=")
245
253
  refute m.getter?
246
254
  assert m.setter?, "should be a setter"
255
+ refute m.has_doc?
256
+ assert_equal 0, m.score
247
257
  end
248
258
 
249
259
  def test_attr_getset
@@ -251,6 +261,7 @@ describe ::Inch::CodeObject::Proxy::MethodObject do
251
261
  assert m.getter?, "should be a getter"
252
262
  refute m.setter?
253
263
  refute m.has_doc?
264
+ assert_equal 0, m.score
254
265
  end
255
266
 
256
267
  def test_attr_getset2
@@ -258,6 +269,7 @@ describe ::Inch::CodeObject::Proxy::MethodObject do
258
269
  refute m.getter?
259
270
  assert m.setter?, "should be a setter"
260
271
  refute m.has_doc?
272
+ assert_equal 0, m.score
261
273
  end
262
274
 
263
275
  def test_splat_parameter_notation
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inch
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4.rc1
4
+ version: 0.4.4.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - René Föhring