Sha256: 25e532d81a5848d5936a35eb9433312c0d4e36c13e68abe79f50a7d5684169c1

Contents?: true

Size: 1.17 KB

Versions: 7

Compression:

Stored size: 1.17 KB

Contents

module Sym
  # This class encapsulates application configuration, and exports
  # a familiar method +#configure+ for defining configuration in a
  # block.
  #
  # It's values are requested by the library upon encryption or
  # decryption, or any other operation.
  #
  # == Example
  #
  # The following is an actual initialization from the code of this
  # library. You may override any of the value defined below in your
  # code, but _before_ you _use_ library's encryption methods.
  #
  #     Sym::Configuration.configure do |config|
  #       config.password_cipher = 'AES-128-CBC'  #
  #       config.data_cipher = 'AES-256-CBC'
  #       config.private_key_cipher = config.data_cipher
  #       config.compression_enabled = true
  #       config.compression_level = Zlib::BEST_COMPRESSION
  #     end
  class Configuration
    class << self
      attr_accessor :config

      def configure
        self.config ||= Configuration.new
        yield config if block_given?
      end

      def property(name)
        self.config.send(name)
      end
    end

    attr_accessor :data_cipher, :password_cipher, :private_key_cipher
    attr_accessor :compression_enabled, :compression_level
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
sym-2.1.2 lib/sym/configuration.rb
sym-2.1.1 lib/sym/configuration.rb
sym-2.1.0 lib/sym/configuration.rb
sym-2.0.3 lib/sym/configuration.rb
sym-2.0.2 lib/sym/configuration.rb
sym-2.0.1 lib/sym/configuration.rb
sym-2.0.0 lib/sym/configuration.rb