Module: KaiserRuby

Defined in:
lib/kaiser_ruby.rb,
lib/kaiser_ruby/cli.rb,
lib/kaiser_ruby/parser.rb,
lib/kaiser_ruby/version.rb,
lib/kaiser_ruby/refinements.rb,
lib/kaiser_ruby/transformer.rb

Overview

rubocop:disable Style/RedundantSelf

Defined Under Namespace

Modules: Refinements Classes: CLI, Mysterious, Parser, RockstarSyntaxError, Transformer

Constant Summary collapse

VERSION =
'0.8'

Class Method Summary collapse

Class Method Details

.execute(input) ⇒ Object



26
27
28
29
30
# File 'lib/kaiser_ruby.rb', line 26

def self.execute(input)
  with_captured_stdout do
    instance_eval transpile(input)
  end
end

.parse(input) ⇒ Object



14
15
16
17
# File 'lib/kaiser_ruby.rb', line 14

def self.parse(input)
  parser = KaiserRuby::Parser.new(input)
  parser.parse
end

.transpile(input) ⇒ Object



19
20
21
22
# File 'lib/kaiser_ruby.rb', line 19

def self.transpile(input)
  tree = parse(input)
  KaiserRuby::Transformer.new(tree).transform
end

.with_captured_stdoutObject



32
33
34
35
36
37
38
39
# File 'lib/kaiser_ruby.rb', line 32

def self.with_captured_stdout
  old_stdout = $stdout
  $stdout = StringIO.new
  yield
  $stdout.string
ensure
  $stdout = old_stdout
end