class

Coverage::SourceFile

Inherits MacroUtils < Crystal::Visitor < Reference < Object

Constructors

new(path : String, source : String, required_at : Int32 = 0)
Source

Class methods

already_covered_file_name
Source
cover_file(file, &)
Source
file_list
Source
final_operations
Source
outputter
Source
outputter=(outputter : String)
Source
prelude_operations
Source
project_path
Source
project_path?
Source
register_file(f)
Source
relative_path_to_project(path)
Source
require_expanders
Source
use_require
Source
use_require=(use_require : String)
Source

Instance methods

already_covered_locations
Source
astree
Source
astree?
Source
enriched_source
Source
enriched_source?
Source
inject_cover(node : Crystal::ASTNode)
Source
lines
Source
md5_signature
Source
path
Source
process

Inject in AST tree if required.

Source
required_at
Source
source
Source
to_covered_source
Source
visit(node : Crystal::Require)

Management of required file is nasty and should be improved Since I've hard time to replace node on visit, I change the file argument to a number linked to an array of files Then on finalization, we replace each require "xxx" by the proper file.

Source
visit(node : Crystal::OpAssign | Crystal::BinaryOp)

Do not visit sub elements of inlined computations

Source
visit(node : Crystal::Arg)
Source
visit(node : Crystal::Assign)

Placeholder for bug #XXX

Source
visit(node : Crystal::Expressions)
Source
visit(node : Crystal::Block | Crystal::While)
Source
visit(node : Crystal::MacroExpression)
Source
visit(node : Crystal::MacroLiteral)
Source
visit(node : Crystal::MacroIf)
Source
visit(node : Crystal::MacroFor)
Source
visit(node : Crystal::MacroVar)
Source
visit(node : Crystal::Asm)
Source
visit(node : Crystal::Def)
Source
visit(node : Crystal::Select)
Source
visit(node : Crystal::Case)
Source
visit(node : Crystal::If)
Source
visit(node : Crystal::Unless)
Source
visit(node : Crystal::ASTNode)

Ignore other nodes for now

Source
visit(node : Macro)
Source