Class: JsonCompleter

Inherits:
Object
  • Object
show all
Includes:
CompletionEngine, ParserEngine
Defined in:
lib/json_completer.rb,
lib/json_completer/scanners.rb,
lib/json_completer/parser_engine.rb,
lib/json_completer/completion_engine.rb

Defined Under Namespace

Modules: CompletionEngine, ParserEngine, Scanners Classes: ArrayContext, ObjectContext, ParseSlot, ParseState, ParsingState

Constant Summary collapse

ParseError =
Class.new(StandardError)
STRUCTURE_CHARS =
['[', '{', ',', ':'].to_set.freeze
KEYWORD_MAP =
{ 't' => 'true', 'f' => 'false', 'n' => 'null' }.freeze
VALID_PRIMITIVES =
%w[true false null].to_set.freeze

Class Method Summary collapse

Instance Method Summary collapse

Methods included from CompletionEngine

#complete

Methods included from ParserEngine

#parse

Constructor Details

#initialize(state = self.class.new_state, parse_state = self.class.new_parse_state) ⇒ JsonCompleter

Returns a new instance of JsonCompleter.



66
67
68
69
# File 'lib/json_completer.rb', line 66

def initialize(state = self.class.new_state, parse_state = self.class.new_parse_state)
  @state = state
  @parse_state = parse_state
end

Class Method Details

.complete(partial_json) ⇒ Object



50
51
52
# File 'lib/json_completer.rb', line 50

def self.complete(partial_json)
  new.complete(partial_json)
end

.new_parse_state ⇒ Object



62
63
64
# File 'lib/json_completer.rb', line 62

def self.new_parse_state
  ParseState.new
end

.new_state ⇒ Object



58
59
60
# File 'lib/json_completer.rb', line 58

def self.new_state
  ParsingState.new
end

.parse(partial_json) ⇒ Object



54
55
56
# File 'lib/json_completer.rb', line 54

def self.parse(partial_json)
  new.parse(partial_json)
end