Sha256: 783aedf02fb9f16c214ae6198a541f31d7466c3ba1462e89cf3a1a2889441705
Contents?: true
Size: 1.04 KB
Versions: 3
Compression:
Stored size: 1.04 KB
Contents
module Safemode class Blankslate @@allow_instance_methods = ['class', 'inspect', 'methods', 'respond_to?', 'respond_to_missing?', 'to_s', 'instance_variable_get'] @@allow_class_methods = ['methods', 'new', 'name', 'inspect', '<', 'ancestors', '=='] # < needed in Rails Object#subclasses_of silently { undef_methods(*instance_methods.map(&:to_s) - @@allow_instance_methods) } class << self silently { undef_methods(*instance_methods.map(&:to_s) - @@allow_class_methods) } def method_added(name) end # ActiveSupport needs this def inherited(subclass) subclass.init_allowed_methods(@allowed_methods) end def init_allowed_methods(allowed_methods) @allowed_methods = allowed_methods end def allowed_methods @allowed_methods ||= [] end def allow(*names) @allowed_methods = allowed_methods + names.map{|name| name.to_s} @allowed_methods.uniq! end def allowed?(name) allowed_methods.include? name.to_s end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
safemode-1.2.3 | lib/safemode/blankslate.rb |
safemode-1.2.2 | lib/safemode/blankslate.rb |
safemode-1.2.1 | lib/safemode/blankslate.rb |