core_ex.rb

Path: lib/core_ex.rb
Last Update: Wed Aug 15 15:06:12 +0200 2007
Copyright:Copyright (c) 2005 Nicolas Pouillard. All rights reserved.
Author:Nicolas Pouillard <ertai@lrde.epita.fr>.
License:Gnu General Public License.
Revision:$Id: /w/fey/ruby_ex/trunk/core_ex/lib/core_ex.rb 55620 2007-03-07T13:45:42.313358Z ertai $

Required files

English   pathname   set   rubygems   core_ex/embedded_tests   fileutils   time   pp  

Methods

Constants

CORE_EX_LOADED = true
CORE_EX_DIR = Pathname.new(__FILE__).dirname.expand_path.cleanpath
HAVE_YAML_TAGURI = true
HAVE_YAML_TAGURI = false

Public Instance methods

[Source]

# File lib/core_ex.rb, line 43
    def core_ex_debug &block
      STDERR.puts block[].inspect
    end

[Source]

# File lib/core_ex.rb, line 47
    def core_ex_debug &block
    end

[Source]

# File lib/core_ex.rb, line 91
    def core_ex_gem_require ( *a, &b )
      core_ex_debug { :nogem2 }
    end

[Source]

# File lib/core_ex.rb, line 81
    def core_ex_gem_require ( gem_name, gem_version=nil )
      if gem_version
        gem gem_name, gem_version
      else
        gem gem_name
      end
      core_ex_debug { [:gem, gem_name, gem_version] }
    end

[Source]

# File lib/core_ex.rb, line 71
  def core_ex_register_vendor ( dir )
    $CORE_EX_VENDORS << dir unless $CORE_EX_VENDORS.include? dir
  end

[Source]

# File lib/core_ex.rb, line 96
  def core_ex_require name, opts=nil
    core_ex_debug { [:core_ex_require, name, opts] }
    opts ||= {}
    begin
      core_ex_vendor_require(opts[:dir_name] || name,
                             opts[:sub_dir]  || 'lib')
    rescue LoadError => ex
      begin
        core_ex_gem_require(opts[:gem_name] || name, opts[:gem_version])
      rescue LoadError
      end
    end
    core_ex_debug { [:require, name] }
    unless require name
      core_ex_debug { [:require, name, :has_returned_false] }
    end
  end

[Source]

# File lib/core_ex.rb, line 51
  def core_ex_vendor_require ( dir_name, sub_dir='lib' )
    if $CORE_EX_VENDORS.any? { |dir| dir.exist? }
      dir = Pathname.glob("{#{$CORE_EX_VENDORS.join(',')}}/#{dir_name}/{#{sub_dir},}").first
      if dir and dir.directory?
        if defined? CoreEx::Pathname and Pathname.include? CoreEx::Pathname
          dir.load_path!
        else
          $LOAD_PATH << dir.to_s
        end
        core_ex_debug { [:vendor, dir_name, sub_dir] }
      else
        core_ex_debug { [:novendor, dir] }
        raise LoadError, "no vendor dir #{dir}"
      end
    else
      core_ex_debug { [:novendor, $CORE_EX_VENDORS] }
      raise LoadError, "no valid vendor dir among #{$CORE_EX_VENDORS.inspect}"
    end
  end

[Validate]