Class: CodeRay::Encoders::JSON

Inherits:
Encoder
  • Object
show all
Defined in:
lib/coderay/encoders/json.rb

Overview

A simple JSON Encoder.

Example:

CodeRay.scan('puts "Hello world!"', :ruby).json

yields

[
  {"type"=>"text", "text"=>"puts", "kind"=>"ident"},
  {"type"=>"text", "text"=>" ", "kind"=>"space"},
  {"type"=>"block", "action"=>"open", "kind"=>"string"},
  {"type"=>"text", "text"=>"\"", "kind"=>"delimiter"},
  {"type"=>"text", "text"=>"Hello world!", "kind"=>"content"},
  {"type"=>"text", "text"=>"\"", "kind"=>"delimiter"},
  {"type"=>"block", "action"=>"close", "kind"=>"string"},
]

Constant Summary collapse

FILE_EXTENSION =
'json'

Constants inherited from Encoder

Encoder::DEFAULT_OPTIONS

Instance Attribute Summary

Attributes inherited from Encoder

#options, #scanner

Attributes included from Plugin

#plugin_id

Instance Method Summary collapse

Methods inherited from Encoder

#<<, const_missing, #encode, #encode_tokens, file_extension, #file_extension, #initialize, #token

Methods included from Plugin

#aliases, #plugin_host, #register_for, #title

Constructor Details

This class inherits a constructor from CodeRay::Encoders::Encoder

Instance Method Details

#begin_group(kind) ⇒ Object



64
65
66
# File 'lib/coderay/encoders/json.rb', line 64

def begin_group kind
  append :type => 'block', :action => 'open', :kind => kind
end

#begin_line(kind) ⇒ Object



72
73
74
# File 'lib/coderay/encoders/json.rb', line 72

def begin_line kind
  append :type => 'block', :action => 'begin_line', :kind => kind
end

#end_group(kind) ⇒ Object



68
69
70
# File 'lib/coderay/encoders/json.rb', line 68

def end_group kind
  append :type => 'block', :action => 'close', :kind => kind
end

#end_line(kind) ⇒ Object



76
77
78
# File 'lib/coderay/encoders/json.rb', line 76

def end_line kind
  append :type => 'block', :action => 'end_line', :kind => kind
end

#text_token(text, kind) ⇒ Object



60
61
62
# File 'lib/coderay/encoders/json.rb', line 60

def text_token text, kind
  append :type => 'text', :text => text, :kind => kind
end