Sha256: 2d91353589e801290b7102b46681b5bb3c67f407d4ef86d1c6e1a59cdcca03db

Contents?: true

Size: 1.21 KB

Versions: 26

Compression:

Stored size: 1.21 KB

Contents

module Koala
  module Utils

    # Utility methods used by Koala.
    require 'logger'
    require 'forwardable'

    extend Forwardable
    extend self

    def_delegators :logger, :debug, :info, :warn, :error, :fatal, :level, :level=

    # The Koala logger, an instance of the standard Ruby logger, pointing to STDOUT by default.
    # In Rails projects, you can set this to Rails.logger.
    attr_accessor :logger
    self.logger = Logger.new(STDOUT)
    self.logger.level = Logger::ERROR

    # @private
    DEPRECATION_PREFIX = "KOALA: Deprecation warning: "

    # Prints a deprecation message.
    # Each individual message will only be printed once to avoid spamming.
    def deprecate(message)
      @posted_deprecations ||= []
      unless @posted_deprecations.include?(message)
        # only include each message once
        Kernel.warn("#{DEPRECATION_PREFIX}#{message}")
        @posted_deprecations << message
      end
    end

    # Ensures that a hash uses symbols as opposed to strings
    # Useful for allowing either syntax for end users
    def symbolize_hash(hash)
      return hash unless hash.is_a?(Hash)

      hash.inject({}){ |memo,(key,value)| memo[key.to_sym] = symbolize_hash(value); memo }
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
koala-3.6.0 lib/koala/utils.rb
koala-3.5.0 lib/koala/utils.rb
koala-3.4.0 lib/koala/utils.rb
koala-3.3.0 lib/koala/utils.rb
koala-3.2.0 lib/koala/utils.rb
koala-3.1.0 lib/koala/utils.rb
koala-3.0.0 lib/koala/utils.rb
koala-3.0.0.rc2 lib/koala/utils.rb
koala-3.0.0.rc lib/koala/utils.rb
koala-3.0.0.beta3 lib/koala/utils.rb
koala-3.0.0.beta2 lib/koala/utils.rb
koala-3.0.0.beta1 lib/koala/utils.rb
koala-2.5.0 lib/koala/utils.rb
koala-2.5.0rc1 lib/koala/utils.rb
koala-2.4.0 lib/koala/utils.rb
koala-2.3.0 lib/koala/utils.rb
koala-2.3.0rc1 lib/koala/utils.rb
koala-2.2.0 lib/koala/utils.rb
koala-2.2.0rc3 lib/koala/utils.rb
koala-2.2.0rc2 lib/koala/utils.rb