Sha256: 339d58a0972e9417b9e5ac3865d2c61033b688ed13c6ecb14b164ae0d3da0629

Contents?: true

Size: 1.06 KB

Versions: 10

Compression:

Stored size: 1.06 KB

Contents

# TITLE:
#
#   Require / Load Module Extensions
#
# SUMMARY:
#
#   In module require and load.
#
# AUTHORS:
#
#   - Thomas Sawyer

class Module

  # Load file into module/class namespace.

  def module_load( path )
    if path =~ /^[\/~.]/
      file = File.expand_path(path)
    else
      $LOAD_PATH.each do |lp|
        file = File.join(lp,path)
        break if File.exist?(file)
        file = nil
      end
    end

    module_eval(File.read(file))
  end

  # Require file into module/class namespace.

  def module_require( path )
    if path =~ /^[\/~.]/
      file = File.expand_path(path)
    else
      $LOAD_PATH.each do |lp|
        file = File.join(lp,path)
        break if File.exist?(file)
        file += '.rb'
        break if File.exist?(file)
        file = nil
      end
    end
    @loaded ||= {}
    if @loaded.key?(file)
      false
    else
      @loaded[file] = true
      script = File.read(file)
      module_eval(script)
      true
    end
  end
end


class Class
  alias_method :class_load, :module_load
  alias_method :class_require, :module_require
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
facets-2.0.1 lib/core/facets/module/require.rb
facets-2.0.0 lib/core/facets/module/require.rb
facets-2.0.2 lib/core/facets/module/require.rb
facets-2.0.5 lib/core/facets/module/require.rb
facets-2.1.0 lib/core/facets/module/require.rb
facets-2.1.1 lib/core/facets/module/require.rb
facets-2.1.2 lib/core/facets/module/require.rb
facets-2.0.4 lib/core/facets/module/require.rb
facets-2.0.3 lib/core/facets/module/require.rb
facets-2.1.3 lib/core/facets/module/require.rb