Sha256: 29652a8fd5d4ac3d459926be9c91b1bc986c4c3ee6698b7c33ef956e2433d7f5

Contents?: true

Size: 1.39 KB

Versions: 2

Compression:

Stored size: 1.39 KB

Contents

require 'java-properties/encoding/special_chars'
require 'java-properties/encoding/separators'
require 'java-properties/encoding/unicode'

module JavaProperties
  # Module to encode and decode
  module Encoding

    # Flag for skipping separators encodings / decoding
    # @return [Symbol]
    SKIP_SEPARATORS=:skip_separators

    # Flag for skipping separators encodings / decoding
    # @return [Symbol]
    SKIP_UNICODE=:skip_unicode

    # Flag for skipping separators encodings / decoding
    # @return [Symbol]
    SKIP_SPECIAL_CHARS=:skip_special_chars

    # Encode a given text in place
    # @param text [String]
    # @param flags [Symbol] Optional flags to skip encoding steps
    # @return [String]
    def self.encode!(text, *flags)
      SpecialChars.encode!(text)  unless flags.include?(SKIP_SPECIAL_CHARS)
      Separators.encode!(text)    unless flags.include?(SKIP_SEPARATORS)
      Unicode.encode!(text)       unless flags.include?(SKIP_UNICODE)
      text
    end
    
    # Decodes a given text in place
    # @param text [String]
    # @param flags [Symbol] Optional flags to skip decoding steps
    # @return [String]
    def self.decode!(text, *flags)
      Unicode.decode!(text)       unless flags.include?(SKIP_UNICODE)
      Separators.decode!(text)    unless flags.include?(SKIP_SEPARATORS)
      SpecialChars.decode!(text)  unless flags.include?(SKIP_SPECIAL_CHARS)
      text
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
java-properties-0.0.2 lib/java-properties/encoding.rb
java-properties-0.0.1 lib/java-properties/encoding.rb