Module XTemplate::Util
In: lib/xtemplate/util.rb

Methods

Constants

PredefinedEntity = { '&lt;' => '<', '&gt;' => '>', '&amp;' => '&', '&quot;' => '"', '&apos;' => "'", }
RevPredefinedEntity = PredefinedEntity.invert
PredefinedEntities = PredefinedEntity.keys
PredefinedEntitiesRegex = Regexp.new("(#{PredefinedEntities.join('|')})")
PredefinedStrings = PredefinedEntity.values
PredefinedStringsRegex = Regexp.new("[#{PredefinedStrings.join}]")
EntityAmp = '&'
SanitizedAmp = '&amp;'

Public Instance methods

sanitize() is also implemented in xtemplate_ext.so.

[Source]

# File lib/xtemplate/util.rb, line 56
    def sanitize(obj)
      if( obj.is_a?(SanitizedString) )
        obj
      else
        str = obj.to_s.gsub(EntityAmp, SanitizedAmp).gsub(PredefinedStringsRegex){|s|
          if( s == EntityAmp )
            s
          else
            RevPredefinedEntity[s]
          end
        }
        SanitizedString.new(str)
      end
    end

unsanitize() is also implemented in xtemplate_ext.so.

[Source]

# File lib/xtemplate/util.rb, line 72
    def unsanitize(str)
      if( str.is_a?(SanitizedString) )
        str = str.gsub(PredefinedEntitiesRegex){|s|
          PredefinedEntity[s]
        }
        String.new(str)
      else
        str
      end
    end

[Validate]