Class: PsychShield
- Inherits:
-
Object
- Object
- PsychShield
- Defined in:
- lib/psych_shield.rb
Defined Under Namespace
Classes: DeniedObject
Constant Summary collapse
- @@allowed_objects =
Generally regarded as safe for YAML loads
%W{ Hash Array String Range Numeric Fixnum Integer Bignum Float Rational Complex Time DateTime NilClass TrueClass FalseClass }
- @@callback =
nil
Class Method Summary collapse
- .add(name) ⇒ Object
- .allowed?(o) ⇒ Boolean
- .callback=(cb) ⇒ Object
- .clear ⇒ Object
- .remove(name) ⇒ Object
Class Method Details
.add(name) ⇒ Object
24 25 26 |
# File 'lib/psych_shield.rb', line 24 def self.add(name) @@allowed_objects << name end |
.allowed?(o) ⇒ Boolean
36 37 38 39 40 |
# File 'lib/psych_shield.rb', line 36 def self.allowed?(o) res = @@allowed_objects.include?(o.to_s) @@callback.call(o.to_s, res) if @@callback res end |
.callback=(cb) ⇒ Object
42 43 44 |
# File 'lib/psych_shield.rb', line 42 def self.callback=(cb) @@callback = cb end |
.clear ⇒ Object
32 33 34 |
# File 'lib/psych_shield.rb', line 32 def self.clear @@allowed_objects = [] end |
.remove(name) ⇒ Object
28 29 30 |
# File 'lib/psych_shield.rb', line 28 def self.remove(name) @@allowed_objects.delete(name) end |