Sha256: 1946b9352fa68a041f045d9e82dc2650a6066c8fe650fb549a2931164c9b4c65
Contents?: true
Size: 1.16 KB
Versions: 2
Compression:
Stored size: 1.16 KB
Contents
module JavaProperties module Encoding # Module to escape and unescape special chars module SpecialChars # Lookup table for escaping special chars # @return [Hash] ESCAPING = { "\t" => '\\t', "\r" => '\\r', "\n" => '\\n', "\f" => '\\f' }.freeze # Lookup table to remove escaping from special chars # @return [Hash] DESCAPING = ESCAPING.invert.freeze # Marks a segment which has is an encoding special char # @return [Regexp] DESCAPING_MARKER = /\\./ # Encodes the content a text by escaping all special chars # @param text [String] # @return [String] def self.encode!(text) buffer = StringIO.new text.each_char do |char| buffer << ESCAPING.fetch(char, char) end text.replace buffer.string text end # Decodes the content a text by removing all escaping from special chars # @param text [String] # @return [String] def self.decode!(text) text.gsub!(DESCAPING_MARKER) do |match| DESCAPING.fetch(match, match) end text end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
java-properties-0.0.2 | lib/java-properties/encoding/special_chars.rb |
java-properties-0.0.1 | lib/java-properties/encoding/special_chars.rb |