Module: Dispersion
- Defined in:
- lib/dispersion.rb,
lib/dispersion/tokens.rb,
lib/dispersion/version.rb,
lib/dispersion/annotator.rb
Defined Under Namespace
Modules: Tokens
Classes: Annotator
Constant Summary
collapse
- THEME =
{
Tokens::COMMENT => "\e[90m",
Tokens::KEYWORD => "\e[31m",
Tokens::CONSTANT => "\e[34m",
Tokens::FUNCTION => "\e[33m",
Tokens::PUNCTUATION => "\e[37m",
Tokens::LOCAL_VARIABLE => "\e[32m",
Tokens::INSTANCE_VARIABLE => "\e[35m",
Tokens::OPERATOR => "\e[33m",
Tokens::STRING => "\e[32m",
Tokens::SYMBOL => "\e[36m",
Tokens::INTEGER => "\e[33m",
Tokens::FLOAT => "\e[33m",
}.freeze
- VERSION =
"0.2.0"
Class Method Summary
collapse
Class Method Details
.annotate(code) ⇒ Object
24
25
26
|
# File 'lib/dispersion.rb', line 24
def self.annotate(code)
Annotator.call(code)
end
|
.ansi(code) ⇒ Object
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/dispersion.rb', line 28
def self.ansi(code)
code.dup.tap do |buffer|
offset = 0
for start_offset, end_offset, token in annotate(code)
start = THEME.fetch(token)
buffer.bytesplice(start_offset + offset, 0, start)
offset += start.bytesize
buffer.bytesplice(end_offset + offset, 0, "\e[0m")
offset += 4
end
end
end
|