Sha256: a2c912ea426d218e8ee9f5c5481c446a199fd42fd0bd22a47a5d4b8c76e64b22

Contents?: true

Size: 1.14 KB

Versions: 6

Compression:

Stored size: 1.14 KB

Contents

# frozen_string_literal: true

module RocketChat
  #
  # Rocket.Chat generic utility functions
  #
  module Util
    module_function

    #
    # Stringify symbolized hash keys
    # @param [Hash] hash A string/symbol keyed hash
    # @return Stringified hash
    #
    def stringify_hash_keys(hash)
      new_hash = {}
      hash.each do |key, value|
        new_hash[key.to_s] =
          if value.is_a? Hash
            stringify_hash_keys value
          else
            value
          end
      end
      new_hash
    end

    #
    # Slice keys from hash
    # @param [Hash] hash A hash to slice key/value pairs from
    # @param [Array] *keys The keys to be sliced
    # @return Hash filtered by keys
    #
    def slice_hash(hash, *keys)
      return {} if keys.length.zero?

      new_hash = {}
      hash.each do |key, value|
        new_hash[key] = value if keys.include? key
      end
      new_hash
    end

    #
    # Camelize a string or symbol
    # @param [String/Symbol] string A string or symbol
    # @return a camelized string
    #
    def camelize(string)
      string.to_s.gsub(/_([a-z])/) { Regexp.last_match(1).upcase }
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
rocketchat-0.2.1 lib/rocket_chat/util.rb
rocketchat-0.1.23 lib/rocket_chat/util.rb
rocketchat-0.1.22 lib/rocket_chat/util.rb
rocketchat-0.1.21 lib/rocket_chat/util.rb
rocketchat-0.1.20 lib/rocket_chat/util.rb
rocketchat-0.1.19 lib/rocket_chat/util.rb