Sha256: 760f6fb7a403b793340b77de508aa1706d4a799c489017414e0b9896a9ca2996
Contents?: true
Size: 1.28 KB
Versions: 2
Compression:
Stored size: 1.28 KB
Contents
module JavaProperties module Encoding # Module to escape and unescape special chars # @see JavaProperties::Encoding 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] The escaped text for chaining 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] The unescaped text for chaining 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.3.0 | lib/java-properties/encoding/special_chars.rb |
java-properties-0.2.1 | lib/java-properties/encoding/special_chars.rb |