summaryrefslogtreecommitdiff
path: root/lib/irb/cmd/show_source.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/irb/cmd/show_source.rb')
-rw-r--r--lib/irb/cmd/show_source.rb13
1 files changed, 5 insertions, 8 deletions
diff --git a/lib/irb/cmd/show_source.rb b/lib/irb/cmd/show_source.rb
index 9a0364e3eb..826cb11ed2 100644
--- a/lib/irb/cmd/show_source.rb
+++ b/lib/irb/cmd/show_source.rb
@@ -27,17 +27,14 @@ module IRB
puts "Error: Expected a string but got #{str.inspect}"
return
end
- if str.include? " -s"
- str, esses = str.split(" -")
- s_count = esses.count("^s").zero? ? esses.size : 1
- source = SourceFinder.new(@irb_context).find_source(str, s_count)
- else
- source = SourceFinder.new(@irb_context).find_source(str)
- end
+
+ str, esses = str.split(" -")
+ super_level = esses ? esses.count("s") : 0
+ source = SourceFinder.new(@irb_context).find_source(str, super_level)
if source
show_source(source)
- elsif s_count
+ elsif super_level > 0
puts "Error: Couldn't locate a super definition for #{str}"
else
puts "Error: Couldn't locate a definition for #{str}"