Module: StateMachines::SyntaxValidator

Defined in:
lib/state_machines/syntax_validator.rb

Overview

Cross-platform syntax validation for eval strings Supports CRuby, JRuby, TruffleRuby via pluggable backends

Defined Under Namespace

Modules: RipperBackend, RubyVmBackend

Class Method Summary collapse

Class Method Details

.backendObject

Lazily pick the best backend for this platform Prefer RubyVM for performance on CRuby, fallback to Ripper for compatibility



19
20
21
22
23
24
25
# File 'lib/state_machines/syntax_validator.rb', line 19

def backend
  @backend ||= if RubyVmBackend.available?
                 RubyVmBackend
               else
                 RipperBackend
               end
end

.validate!(code, filename = '(eval)') ⇒ Object

Public API: raises SyntaxError if code is invalid



10
11
12
# File 'lib/state_machines/syntax_validator.rb', line 10

def validate!(code, filename = '(eval)')
  backend.validate!(code, filename)
end