Sha256: 6733fc78bbea57a212b8b24d9efb65f77af71d63bb66a97c03c0e7c527db8a31

Contents?: true

Size: 646 Bytes

Versions: 1

Compression:

Stored size: 646 Bytes

Contents

#require 'singleton'
require 'delegate'
require 'raspberry/new/binding'

class TopLevelClass < DelegateClass(TOPLEVEL_BINDING.self.class)
  #include Singleton  # doesn't seem to work with delegate
  class << self
    private :new
    def instance
      @singleton ||= new
    end
  end
  def initialize()
    super(TOPLEVEL_BINDING.self)
  end
  def binding()
    TOPLEVEL_BINDING
  end
  #def method_missing(sym, *args, &blk)
  #  TOPLEVEL_BINDING.self.send(sym, *args, &blk)
  #end
end

module Kernel
  # perhaps just call this top() ?
  def toplevel()
    TopLevelClass.instance
  end
end

# assign constant
TOPLEVEL = TopLevelClass.instance

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
carats-0.3.0 lib/carat-dev/main/toplevel.rb