Class: Doctest2::Core::Base
- Inherits:
-
Object
- Object
- Doctest2::Core::Base
- Defined in:
- lib/doctest2/core/base.rb
Constant Summary collapse
- CODE_AND_RESULT_REGEXP =
/^\s*#\s*>>\s*(?<code>.*)?#\s*=>\s*(?<result>.*)$/
- CODE_REGEXP =
/^\s*#\s*>>\s*(?<code>.*)/
- RESULT_REGEXP =
/#\s*=>\s*(?<result>.*)$/
Class Method Summary collapse
Instance Method Summary collapse
- #analyze ⇒ Object
-
#initialize(source) ⇒ Base
constructor
A new instance of Base.
Constructor Details
#initialize(source) ⇒ Base
Returns a new instance of Base.
13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/doctest2/core/base.rb', line 13 def initialize(source) if File.exist?(source) @filename = source @str = File.read(source) else @filename = nil @str = source end @state = :no_match @current = nil @doctests = [] end |
Class Method Details
.analyze(str) ⇒ Object
5 6 7 |
# File 'lib/doctest2/core/base.rb', line 5 def self.analyze(str) self.new(str).analyze end |
Instance Method Details
#analyze ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/doctest2/core/base.rb', line 26 def analyze @str.lines.each.with_index do |line, index| case line when CODE_AND_RESULT_REGEXP code = Regexp.last_match['code'] result = Regexp.last_match['result'] handle_code(code) handle_result(result, index) when CODE_REGEXP handle_code(Regexp.last_match['code']) when RESULT_REGEXP handle_result(Regexp.last_match['result'], index) else handle_no_doctest end end @doctests end |