Sha256: 55fc29e99ed85e256673940f3ebdbf5ba01ca4d83aa4de27709a2a8f02630088

Contents?: true

Size: 695 Bytes

Versions: 21

Compression:

Stored size: 695 Bytes

Contents

require 'opal-parser'

module Kernel
  def __prepare_require__(path)
    name = `Opal.normalize_loadable_path(#{path})`
    full_path = name.end_with?('.rb') ? name : name+'.rb'

    if `!Opal.modules[#{name}]`
      ruby = File.read(full_path)
      compiler = Opal::Compiler.new(ruby, requirable: true, file: name)
      js = compiler.compile
      compiler.requires.each do |sub_path|
        __prepare_require__(sub_path)
      end
      `eval(#{js})`
    end

    name
  rescue => e
    raise [path, name, full_path].inspect+e.message
  end

  def require(path)
    `Opal.require(#{__prepare_require__(path)})`
  end

  def load path
    `Opal.load(#{__prepare_require__(path)})`
  end
end

Version data entries

21 entries across 21 versions & 2 rubygems

Version Path
opal-0.9.4 stdlib/nodejs/require.rb
opal-0.9.3 stdlib/nodejs/require.rb
opal-0.9.2 stdlib/nodejs/require.rb
opal-0.9.0 stdlib/nodejs/require.rb
opal-0.9.0.rc1 stdlib/nodejs/require.rb
opal-0.9.0.beta2 stdlib/nodejs/require.rb
opal-0.9.0.beta1 stdlib/nodejs/require.rb
opal-0.8.1 stdlib/nodejs/require.rb
opal-0.8.1.rc1 stdlib/nodejs/require.rb
opal-wedge-0.9.0.dev stdlib/nodejs/require.rb
opal-0.8.0 stdlib/nodejs/require.rb
opal-0.8.0.rc3 stdlib/nodejs/require.rb
opal-0.8.0.rc2 stdlib/nodejs/require.rb
opal-0.8.0.rc1 stdlib/nodejs/require.rb
opal-0.8.0.beta1 stdlib/nodejs/require.rb
opal-0.7.2 stdlib/nodejs/require.rb
opal-0.7.1 stdlib/nodejs/require.rb
opal-0.7.0 stdlib/nodejs/require.rb
opal-0.7.0.rc1 stdlib/nodejs/require.rb
opal-0.7.0.beta3 stdlib/nodejs/require.rb