Class: Transpec::BaseRewriter
- Inherits:
-
Object
- Object
- Transpec::BaseRewriter
show all
- Defined in:
- lib/transpec/base_rewriter.rb
Defined Under Namespace
Classes: OverlappedRewriteError
Instance Method Summary
collapse
Instance Method Details
#rewrite(processed_source) ⇒ Object
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/transpec/base_rewriter.rb', line 26
def rewrite(processed_source)
fail processed_source.error if processed_source.error
source_rewriter = create_source_rewriter(processed_source)
incomplete = false
begin
process(processed_source.ast, source_rewriter)
rescue OverlappedRewriteError
incomplete = true
end
rewritten_source = source_rewriter.process
rewritten_source = rewrite_source(rewritten_source, processed_source.path) if incomplete
rewritten_source
end
|
#rewrite_file!(arg) ⇒ Object
7
8
9
10
11
12
13
14
15
16
17
18
19
|
# File 'lib/transpec/base_rewriter.rb', line 7
def rewrite_file!(arg)
processed_source = case arg
when String then ProcessedSource.from_file(arg)
when ProcessedSource then arg
else fail "Invalid argument: #{arg}"
end
fail 'ProcessedSource must be derived from a file' unless processed_source.path
rewritten_source = rewrite(processed_source)
return if processed_source.to_s == rewritten_source
File.write(processed_source.path, rewritten_source)
end
|
#rewrite_source(source, path = nil) ⇒ Object
21
22
23
24
|
# File 'lib/transpec/base_rewriter.rb', line 21
def rewrite_source(source, path = nil)
processed_source = ProcessedSource.new(source, path)
rewrite(processed_source)
end
|