Safemode

Public Class Methods

core_classes() click to toggle source
# File lib/safemode/core_jails.rb, line 16
def core_classes
  klasses = [ Array, Bignum, Fixnum, Float, Hash, 
              Range, String, Symbol, Time ]
  klasses << Date if defined? Date
  klasses << DateTime if defined? DateTime
  klasses
end
core_jail_methods(klass) click to toggle source
# File lib/safemode/core_jails.rb, line 24
def core_jail_methods(klass)
  @@methods_whitelist[klass.name] + (@@default_methods & klass.instance_methods.map(&:to_s))
end
define_core_jail_classes() click to toggle source
# File lib/safemode/core_jails.rb, line 3
def define_core_jail_classes        
  core_classes.each do |klass|
    define_jail_class(klass).allow *core_jail_methods(klass).uniq
  end
end
define_jail_class(klass) click to toggle source
# File lib/safemode/core_jails.rb, line 9
def define_jail_class(klass)
  unless klass.const_defined?("Jail")
    klass.const_set("Jail", jail = Class.new(Safemode::Jail))
  end
  klass.const_get('Jail')          
end
find_jail_class(klass) click to toggle source
# File lib/safemode.rb, line 30
def find_jail_class(klass)
  while klass != Object
    return klass.const_get('Jail') if klass.const_defined?('Jail')
    klass = klass.superclass
  end
  Jail
end
jail(obj) click to toggle source
# File lib/safemode.rb, line 26
def jail(obj)
  find_jail_class(obj.class).new obj
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.