GRAYBYTE WORDPRESS FILE MANAGER8853

Server IP : 198.54.121.189 / Your IP : 216.73.216.140
System : Linux premium69.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /opt/alt/ruby20/lib64/ruby/2.0.0/irb/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /opt/alt/ruby20/lib64/ruby/2.0.0/irb//inspector.rb
#
#   irb/inspector.rb - inspect methods
#   	$Release Version: 0.9.6$
#   	$Revision: 1.19 $
#   	$Date: 2002/06/11 07:51:31 $
#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
#
# --
#
#
#

module IRB # :nodoc:


  # Convenience method to create a new Inspector, using the given +inspect+
  # proc, and optional +init+ proc and passes them to Inspector.new
  #
  #     irb(main):001:0> ins = IRB::Inspector(proc{ |v| "omg! #{v}" })
  #     irb(main):001:0> IRB.CurrentContext.inspect_mode = ins # => omg! #<IRB::Inspector:0x007f46f7ba7d28>
  #     irb(main):001:0> "what?" #=> omg! what?
  #
  def IRB::Inspector(inspect, init = nil)
    Inspector.new(inspect, init)
  end

  # An irb inspector
  #
  # In order to create your own custom inspector there are two things you
  # should be aware of:
  #
  # Inspector uses #inspect_value, or +inspect_proc+, for output of return values.
  #
  # This also allows for an optional #init+, or +init_proc+, which is called
  # when the inspector is activated.
  #
  # Knowing this, you can create a rudimentary inspector as follows:
  #
  #     irb(main):001:0> ins = IRB::Inspector.new(proc{ |v| "omg! #{v}" })
  #     irb(main):001:0> IRB.CurrentContext.inspect_mode = ins # => omg! #<IRB::Inspector:0x007f46f7ba7d28>
  #     irb(main):001:0> "what?" #=> omg! what?
  #
  class Inspector
    # Default inspectors available to irb, this includes:
    #
    # +:pp+::       Using Kernel#pretty_inspect
    # +:yaml+::     Using YAML.dump
    # +:marshal+::  Using Marshal.dump
    INSPECTORS = {}

    # Determines the inspector to use where +inspector+ is one of the keys passed
    # during inspector definition.
    def self.keys_with_inspector(inspector)
      INSPECTORS.select{|k,v| v == inspector}.collect{|k, v| k}
    end

    # Example
    #
    #     Inspector.def_inspector(key, init_p=nil){|v| v.inspect}
    #     Inspector.def_inspector([key1,..], init_p=nil){|v| v.inspect}
    #     Inspector.def_inspector(key, inspector)
    #     Inspector.def_inspector([key1,...], inspector)
    def self.def_inspector(key, arg=nil, &block)
  #     if !block_given?
  #       case arg
  #       when nil, Proc
  # 	inspector = IRB::Inspector(init_p)
  #       when Inspector
  # 	inspector = init_p
  #       else
  # 	IRB.Raise IllegalParameter, init_p
  #       end
  #       init_p = nil
  #     else
  #       inspector = IRB::Inspector(block, init_p)
  #     end

      if block_given?
        inspector = IRB::Inspector(block, arg)
      else
        inspector = arg
      end

      case key
      when Array
        for k in key
          def_inspector(k, inspector)
        end
      when Symbol
        INSPECTORS[key] = inspector
        INSPECTORS[key.to_s] = inspector
      when String
        INSPECTORS[key] = inspector
        INSPECTORS[key.intern] = inspector
      else
        INSPECTORS[key] = inspector
      end
    end

    # Creates a new inspector object, using the given +inspect_proc+ when
    # output return values in irb.
    def initialize(inspect_proc, init_proc = nil)
      @init = init_proc
      @inspect = inspect_proc
    end

    # Proc to call when the inspector is activated, good for requiring
    # dependant libraries.
    def init
      @init.call if @init
    end

    # Proc to call when the input is evaluated and output in irb.
    def inspect_value(v)
      @inspect.call(v)
    end
  end

  Inspector.def_inspector([false, :to_s, :raw]){|v| v.to_s}
  Inspector.def_inspector([true, :p, :inspect]){|v|
    begin
      v.inspect
    rescue NoMethodError
      puts "(Object doesn't support #inspect)"
    end
  }
  Inspector.def_inspector([:pp, :pretty_inspect], proc{require "pp"}){|v| v.pretty_inspect.chomp}
  Inspector.def_inspector([:yaml, :YAML], proc{require "yaml"}){|v|
    begin
      YAML.dump(v)
    rescue
      puts "(can't dump yaml. use inspect)"
      v.inspect
    end
  }

  Inspector.def_inspector([:marshal, :Marshal, :MARSHAL, Marshal]){|v|
    Marshal.dump(v)
  }
end






[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
March 03 2024 22:53:08
root / root
0755
cmd
--
March 03 2024 22:43:33
root / linksafe
0755
ext
--
March 03 2024 22:43:33
root / linksafe
0755
lc
--
March 03 2024 22:43:33
root / linksafe
0755
completion.rb
6.119 KB
December 29 2012 12:59:06
root / linksafe
0644
context.rb
11.91 KB
February 04 2013 22:36:22
root / linksafe
0644
extend-command.rb
9.537 KB
December 21 2012 05:45:50
root / linksafe
0644
frame.rb
1.871 KB
December 21 2012 05:45:50
root / linksafe
0644
help.rb
0.599 KB
December 21 2012 05:45:50
root / linksafe
0644
init.rb
7.073 KB
December 26 2012 03:55:22
root / linksafe
0644
input-method.rb
4.58 KB
December 21 2012 17:29:18
root / linksafe
0644
inspector.rb
3.897 KB
December 26 2012 14:56:57
root / linksafe
0644
locale.rb
4.43 KB
December 13 2012 05:22:30
root / linksafe
0644
magic-file.rb
0.872 KB
December 10 2012 02:06:51
root / linksafe
0644
notifier.rb
6.872 KB
December 21 2012 05:45:50
root / linksafe
0644
output-method.rb
2.392 KB
December 25 2012 13:34:34
root / linksafe
0644
ruby-lex.rb
22.588 KB
December 27 2012 14:48:42
root / linksafe
0644
ruby-token.rb
7.299 KB
December 13 2012 05:22:30
root / linksafe
0644
slex.rb
5.951 KB
December 21 2012 17:36:14
root / linksafe
0644
src_encoding.rb
0.088 KB
October 02 2009 10:45:39
root / linksafe
0644
version.rb
0.245 KB
December 13 2012 05:22:30
root / linksafe
0644
workspace.rb
2.783 KB
December 25 2012 18:10:46
root / linksafe
0644
ws-for-case-2.rb
0.19 KB
November 08 2010 20:59:01
root / linksafe
0644
xmp.rb
4.031 KB
December 21 2012 05:45:50
root / linksafe
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF