Sha256: bfc541f818246b3e0d6877bc0c7cb94d74d728be1b650b7d1552adccb971bb34

Contents?: true

Size: 756 Bytes

Versions: 4

Compression:

Stored size: 756 Bytes

Contents

# frozen_string_literal: true

require 'hashie/mash'

module  Chamber
module  Filters
class   TranslateSecureKeysFilter
  def self.execute(**args)
    new(**args).__send__(:execute)
  end

  attr_accessor :data,
                :secure_key_token

  def initialize(data:, secure_key_prefix:, **_args)
    self.data             = data.dup
    self.secure_key_token = /\A#{Regexp.escape(secure_key_prefix)}/
  end

  protected

  def execute(raw_data = data)
    settings = Hashie::Mash.new

    raw_data.each_pair do |key, value|
      value = execute(value) if value.respond_to? :each_pair
      key   = key.to_s
      key   = key.sub(secure_key_token, '') if key.match(secure_key_token)

      settings[key] = value
    end

    settings
  end
end
end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
chamber-2.14.3 lib/chamber/filters/translate_secure_keys_filter.rb
chamber-2.14.2 lib/chamber/filters/translate_secure_keys_filter.rb
chamber-2.14.1 lib/chamber/filters/translate_secure_keys_filter.rb
chamber-2.14.0 lib/chamber/filters/translate_secure_keys_filter.rb