summaryrefslogtreecommitdiff
path: root/lib/coderay/scanners/ruby.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/coderay/scanners/ruby.rb')
-rw-r--r--lib/coderay/scanners/ruby.rb13
1 files changed, 12 insertions, 1 deletions
diff --git a/lib/coderay/scanners/ruby.rb b/lib/coderay/scanners/ruby.rb
index a2e5fed..923d681 100644
--- a/lib/coderay/scanners/ruby.rb
+++ b/lib/coderay/scanners/ruby.rb
@@ -28,11 +28,19 @@ module Scanners
protected
+ def setup
+ @state = :initial
+ end
+
def scan_tokens encoder, options
patterns = Patterns # avoid constant lookup
- state = :initial
+ state = @state
+ if state.instance_of? patterns::StringState
+ encoder.begin_group state.type
+ end
+
last_state = nil
method_call_expected = false
@@ -414,6 +422,9 @@ module Scanners
end
# cleaning up
+ if options[:keep_state]
+ @state = state
+ end
if state.is_a? patterns::StringState
encoder.end_group state.type
end