Class | Spec::Runner::SpecParser |
In: |
lib/spec/runner/spec_parser.rb
|
Parent: | Object |
# File lib/spec/runner/spec_parser.rb, line 4 4: def spec_name_for(io, line_number) 5: source = io.read 6: context = context_at_line(source, line_number) 7: spec = spec_at_line(source, line_number) 8: if context && spec 9: "#{context} #{spec}" 10: elsif context 11: context 12: else 13: nil 14: end 15: end
# File lib/spec/runner/spec_parser.rb, line 19 19: def context_at_line(source, line_number) 20: find_above(source, line_number, /^\s*context\s+['|"](.*)['|"]/) 21: end
# File lib/spec/runner/spec_parser.rb, line 27 27: def find_above(source, line_number, pattern) 28: lines_above_reversed(source, line_number).each do |line| 29: return $1 if line =~ pattern 30: end 31: nil 32: end
# File lib/spec/runner/spec_parser.rb, line 34 34: def lines_above_reversed(source, line_number) 35: lines = source.split("\n") 36: lines[0...line_number].reverse 37: end