Sha256: edefcc359db1bfee6754b3cc4f07b1b7d6b4bd671b296671102dd439b380de6d

Contents?: true

Size: 1.06 KB

Versions: 4

Compression:

Stored size: 1.06 KB

Contents

# encoding: utf-8

if RUBY_VERSION < "1.9"
  STDERR.puts "Rouge will probably not run on anything less than Ruby 1.9."
end

module Rouge; end

start = Time.now
Rouge.define_singleton_method :start, lambda {start}

class << Rouge
  require 'rouge/version'
  require 'rouge/wrappers'
  require 'rouge/symbol'
  require 'rouge/seq'
  require 'rouge/reader'
  require 'rouge/printer'
  require 'rouge/context'
  require 'rouge/repl'

  def print(form, out)
    Rouge::Printer.print form, out
  end

  def [](ns)
    Rouge::Namespace[ns]
  end

  def boot!
    return if @booted
    @booted = true

    core = Rouge[:"rouge.core"]
    core.refer Rouge[:"rouge.builtin"]

    user = Rouge[:user]
    user.refer Rouge[:"rouge.builtin"]
    user.refer Rouge[:"rouge.core"]
    user.refer Rouge[:ruby]

    Rouge::Context.new(user).readeval(
        File.read(Rouge.relative_to_lib('boot.rg')))
  end

  def repl(argv)
    boot!
    Rouge::REPL.repl(argv)
  end

  def relative_to_lib name
    File.join(File.dirname(File.absolute_path(__FILE__)), name)
  end
end

# vim: set sw=2 et cc=80:

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rouge-lang-0.0.4 lib/rouge.rb
rouge-lang-0.0.3 lib/rouge.rb
rouge-lang-0.0.2 lib/rouge.rb
rouge-lang-0.0.1 lib/rouge.rb