Sha256: 368f6bade51c72d5f64068ede6591a629f7928e9d064d2db48dd13d7a269c808

Contents?: true

Size: 681 Bytes

Versions: 22

Compression:

Stored size: 681 Bytes

Contents

require 'opal-parser'

module Kernel
  def __prepare_require__(path)
    name = `Opal.normalize(#{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

22 entries across 22 versions & 1 rubygems

Version Path
opal-0.11.4 stdlib/nodejs/require.rb
opal-0.11.3 stdlib/nodejs/require.rb
opal-0.11.2 stdlib/nodejs/require.rb
opal-0.11.1 stdlib/nodejs/require.rb
opal-0.11.1.pre stdlib/nodejs/require.rb
opal-0.10.6 stdlib/nodejs/require.rb
opal-0.10.6.beta stdlib/nodejs/require.rb
opal-0.11.0 stdlib/nodejs/require.rb
opal-0.10.5 stdlib/nodejs/require.rb
opal-0.10.4 stdlib/nodejs/require.rb
opal-0.11.0.rc1 stdlib/nodejs/require.rb
opal-0.10.3 stdlib/nodejs/require.rb
opal-0.10.2 stdlib/nodejs/require.rb
opal-0.10.1 stdlib/nodejs/require.rb
opal-0.10.0 stdlib/nodejs/require.rb
opal-0.10.0.rc2 stdlib/nodejs/require.rb
opal-0.10.0.rc1 stdlib/nodejs/require.rb
opal-0.10.0.beta5 stdlib/nodejs/require.rb
opal-0.10.0.beta4 stdlib/nodejs/require.rb
opal-0.10.0.beta3 stdlib/nodejs/require.rb