module Kernel

encoding: utf-8

Constants

Modules

Public Instance Methods

__require__(name, *opts)
Alias for: require
__sprintf__(format, *args)
Alias for: sprintf
rdoba(*options) click to toggle source
# File lib/rdoba.rb, line 6
def rdoba *options
   options.each do |option|
      ( option.is_a?( Hash ) &&
            option || { option.to_s.to_sym => {} }
      ).each_pair do |key, value|
         if Modules.include? key
            require "rdoba/#{key}"
            if Rdoba.methods.include? key
               if !value.is_a? Hash
                  value = { :value => value } ; end
               value.replace( { :self => self }.merge value )
               Rdoba.send key, value ; end ; end ; end; end ; end
require(name, *opts) click to toggle source
# File lib/rdoba/require.rb, line 48
def require(name, *opts)
  v = parse_opts(opts)
  dbp11 "[require] <<< name = #{name}"
  begin
    res = __require__ name
  rescue => bang
    puts "Lib internal error: #{$!.class} -> #{$!}\n\t#{$@.join("\n\t")}"
    exit
  end
  dbp14 "[require]> Loaded? #{name}... #{res}"
  res = sub_require(name) if res and v[:recursive]
  res
end
Also aliased as: __require__
sprintf(format, *args) click to toggle source
# File lib/rdoba/io.rb, line 11
def sprintf(format, *args)
  nargs = []
  nformat = ''

  fmt = format.split('%')
  nformat = fmt.shift

  while (not fmt.empty?)
    part = fmt.shift
    part = '%' + fmt.shift unless part
    if part =~ /([0-9 #+\-*.]*)([bcdEefGgiopsuXxP])(.*)/ and $2 == 'P'
      keys = $1 || ''
      str = $3 || ''
      if keys =~ /(-)?([0-9*]*)\.?([0-9\*]*)(\+?)/
        value = args.shift
        indent = ' ' * ($2 == '*' ? args.shift : $2).to_i
        plain = value && value.to_p(
            :padding => ($3 == '*' ? args.shift : $3.empty? ? 1 : $3).to_i,
            :be => $4.empty? ? nil : true) || ''
        nformat += ($1 ? plain + indent : indent + plain) + str
      else
        nformat += '%' + keys + 'c' + str
        nargs.push args.shift
      end
    else
      nformat += '%' + part
      l = $1 =~ /\*/ ? 2 : 1
      while l > 0
        nargs.push args.shift
        l -= 1
      end
    end
  end
  __sprintf__(nformat, *nargs).to_p
end
Also aliased as: __sprintf__

Private Instance Methods

require_dir(dir, name) click to toggle source
# File lib/rdoba/require.rb, line 9
def require_dir(dir, name)
  dbp11 "[require_dir] <<< dir = #{dir}, name = #{name}"
  begin
    rdir = File.join(dir, name)
    return false unless File.directory?(rdir)
    rdir = File.join(dir, name)
    $: << rdir unless $:.include?(rdir)
    dbp14 "[require_dir]> Found dir #{rdir}"
    Dir.foreach(rdir) do |file|
      next unless file =~ /(.*)\.(rb|so)$/
      dbp14 "[require_dir]> Loading ... #{$1}"
      require $1
    end
    true
  rescue
    false
  end
end
sub_require(name) click to toggle source
# File lib/rdoba/require.rb, line 28
def sub_require(name)
  dbp11 "[sub_require] <<< name = #{name} "
  $:.each do |dir|
    begin
      Dir.foreach(dir) do |file|
        next unless file =~ /^#{name}\.(rb|so)$/
        dbp14 "[sub_require]> Require Dir #{dir}/#{name} for #{file}"
        r1 = require_dir(dir, name + '.modules')
        r2 = require_dir(dir, name)
        dbp14 "[sub_require]> Require Dir #{(r1 || r2) && 'passed' || 'failed'} ... #{name}"
      end
    rescue
    end
  end unless $".include?(name)
  true
end