rogerdpack-desc_method 0.1.4 → 0.1.5
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.
- data/lib/method_describer/method_desc.rb +28 -17
- metadata +2 -3
@@ -18,29 +18,37 @@ module SourceLocationDesc
|
|
18
18
|
# TODO does this work with class methods?
|
19
19
|
def desc want_just_summary = false, want_the_description_returned = false
|
20
20
|
doc = []
|
21
|
-
|
21
|
+
#_dbg
|
22
22
|
# to_s is something like "#<Method: String#strip>"
|
23
23
|
# or #<Method: GiftCertsControllerTest(Test::Unit::TestCase)#get>
|
24
24
|
# or "#<Method: A.go>"
|
25
|
-
# or "#<Method: Order(id: integer, order_number: integer
|
25
|
+
# or "#<Method: Order(id: integer, order_number: integer).get_cc_processor>"
|
26
|
+
# or "#<Method: Order(id: integer, order_number: integer)(ActiveRecord::Base).get_cc_processor>"
|
26
27
|
|
27
28
|
string = to_s
|
28
29
|
|
29
|
-
|
30
|
+
# derive class_name
|
31
|
+
parenthese_count = string.count '('
|
32
|
+
|
33
|
+
if parenthese_count== 1
|
30
34
|
# case #<Method: GiftCertsControllerTest(Test::Unit::TestCase)#get>
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
35
|
+
# case #<Method: Order(id: integer, order_number: integer).get_cc_processor>
|
36
|
+
if string.include? "id: " # TODO huh?
|
37
|
+
string =~ /Method: (.+)\(/
|
38
|
+
else
|
39
|
+
string =~ /\(([^\(]+)\)[\.#]/ # extract out what is between last parentheses
|
40
|
+
end
|
36
41
|
class_name = $1
|
37
|
-
elsif
|
42
|
+
elsif parenthese_count == 0
|
38
43
|
# case "#<Method: A.go>"
|
44
|
+
string =~ /Method: ([^#\.]+)/
|
39
45
|
class_name = $1
|
40
|
-
|
41
|
-
# case "#<Method:
|
42
|
-
string =~
|
46
|
+
elsif parenthese_count == 2
|
47
|
+
# case "#<Method: Order(id: integer, order_number: integer)(ActiveRecord::Base).get_cc_processor>"
|
48
|
+
string =~ /\(([^\(]+)\)[\.#]/
|
43
49
|
class_name = $1
|
50
|
+
else
|
51
|
+
raise 'bad ' + string
|
44
52
|
end
|
45
53
|
|
46
54
|
# now get method name, type
|
@@ -48,7 +56,7 @@ module SourceLocationDesc
|
|
48
56
|
joiner = $1
|
49
57
|
method_name = $2
|
50
58
|
full_name = "#{class_name}#{joiner}#{method_name}"
|
51
|
-
puts "#{to_s} arity: #{arity}"
|
59
|
+
puts "sig: #{to_s} arity: #{arity}"
|
52
60
|
# TODO add to doc, I want it before ri for now though, and only once, so not there yet :)
|
53
61
|
|
54
62
|
# now run default RI for it
|
@@ -76,12 +84,14 @@ module SourceLocationDesc
|
|
76
84
|
out = []
|
77
85
|
args.each{|arg_pair|
|
78
86
|
out << arg_pair.join(' = ')
|
79
|
-
}
|
87
|
+
} if args
|
80
88
|
out = out.join(', ')
|
81
89
|
return out if want_just_summary
|
82
90
|
|
83
|
-
|
91
|
+
param_string = "Parameters: #{method_name}(" + out + ")"
|
92
|
+
doc << param_string unless want_the_description_returned
|
84
93
|
rescue Exception => e
|
94
|
+
|
85
95
|
puts "fail to parse tree: #{class_name} #{e} #{e.backtrace}" if $VERBOSE
|
86
96
|
end
|
87
97
|
else
|
@@ -115,6 +125,7 @@ module SourceLocationDesc
|
|
115
125
|
else
|
116
126
|
doc << 'appears to be a c method'
|
117
127
|
end
|
128
|
+
param_string = to_s
|
118
129
|
if respond_to? :parameters
|
119
130
|
doc << "Original code signature: %s" % sig.to_s.strip if sig
|
120
131
|
doc << "#parameters signature: %s( %p )" % [name, parameters]
|
@@ -124,9 +135,9 @@ module SourceLocationDesc
|
|
124
135
|
puts doc # always output it since RI does currently [todo make optional I suppose, and non out-putty]
|
125
136
|
|
126
137
|
if want_the_description_returned # give them something they can examine
|
127
|
-
|
138
|
+
doc
|
128
139
|
else
|
129
|
-
|
140
|
+
param_string
|
130
141
|
end
|
131
142
|
end
|
132
143
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rogerdpack-desc_method
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Roger Pack
|
@@ -89,7 +89,6 @@ files:
|
|
89
89
|
- lib/method_describer/method_desc.rb
|
90
90
|
has_rdoc: false
|
91
91
|
homepage: http://github.com/rogerdpack/method_describer
|
92
|
-
licenses:
|
93
92
|
post_install_message:
|
94
93
|
rdoc_options: []
|
95
94
|
|
@@ -110,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
110
109
|
requirements: []
|
111
110
|
|
112
111
|
rubyforge_project:
|
113
|
-
rubygems_version: 1.
|
112
|
+
rubygems_version: 1.2.0
|
114
113
|
signing_key:
|
115
114
|
specification_version: 2
|
116
115
|
summary: ruby method describer to make it possible to inspect methods [rdoc, signature, etc.] at runtime, for example while debugging.
|