Module: HCL::Checker

Defined in:
lib/hcl/checker.rb,
lib/hcl/checker/parser.rb,
lib/hcl/checker/version.rb

Defined Under Namespace

Classes: Lexer, Parser

Constant Summary collapse

VALID_DUPLICATE_MODES =
%i(array merge).freeze
VERSION =
'2.0.0'.freeze

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.last_errorObject

Returns the value of attribute last_error.



10
11
12
# File 'lib/hcl/checker.rb', line 10

def last_error
  @last_error
end

Class Method Details

.parse(value, duplicate_mode = :array) ⇒ Object



20
21
22
23
24
25
26
27
28
# File 'lib/hcl/checker.rb', line 20

def parse(value, duplicate_mode = :array)
  raise ArgumentError, "Invalid duplicate mode #{duplicate_mode}, must be one of #{VALID_DUPLICATE_MODES}" unless VALID_DUPLICATE_MODES.include?(duplicate_mode)

  HCL::Checker::Parser.new.parse(value, duplicate_mode)
rescue Racc::ParseError, HCL::Checker::Lexer::ScanError => e
  @last_error = e.message

  e.message
end

.valid?(value) ⇒ Boolean

Returns:

  • (Boolean)


12
13
14
15
16
17
18
# File 'lib/hcl/checker.rb', line 12

def valid?(value)
  HCL::Checker::Parser.new.parse(value).is_a?(Hash)
rescue Racc::ParseError, HCL::Checker::Lexer::ScanError => e
  @last_error = e.message

  false
end