Sha256: 3a1c740e8c9b9906a3b48dd17727aebdfe3974631e7882ffc07f2e1b5e550b1a
Contents?: true
Size: 781 Bytes
Versions: 5
Compression:
Stored size: 781 Bytes
Contents
# frozen_string_literal: true require 'hashie/mash' module Chamber module Filters class SecureFilter SECURE_KEY_TOKEN = /\A_secure_/ def initialize(options = {}) self.data = Hashie::Mash.new(options.fetch(:data)) end def self.execute(options = {}) new(options).__send__(:execute) end protected attr_accessor :data def execute(raw_data = data) settings = Hashie::Mash.new raw_data.each_pair do |key, value| secure_value = if value.respond_to? :each_pair execute(value) elsif key.respond_to? :match value if key.match(SECURE_KEY_TOKEN) end settings[key] = secure_value unless secure_value.nil? end settings end end end end
Version data entries
5 entries across 5 versions & 1 rubygems