Sha256: c96e4ed5cce41ffb99bf874895c6a005c898e68dc6dea423d1a68bcce9d28c20
Contents?: true
Size: 896 Bytes
Versions: 2
Compression:
Stored size: 896 Bytes
Contents
require 'chamber/errors/decryption_failure' module Chamber module Filters class FailedDecryptionFilter SECURE_KEY_TOKEN = /\A_secure_/ BASE64_STRING_PATTERN = %r{\A[A-Za-z0-9\+/]{342}==\z} def initialize(options = {}) self.data = options.fetch(:data).dup end def self.execute(options = {}) new(options).send(:execute) end protected attr_accessor :data def execute(raw_data = data) settings = raw_data raw_data.each_pair do |key, value| if value.respond_to? :each_pair execute(value) elsif key.match(SECURE_KEY_TOKEN) && value.respond_to?(:match) && value.match(BASE64_STRING_PATTERN) fail Chamber::Errors::DecryptionFailure, "Failed to decrypt #{key} (with an encrypted value of '#{value}') " \ 'in your settings.' end end settings end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
chamber-2.8.0 | lib/chamber/filters/failed_decryption_filter.rb |
chamber-2.7.1 | lib/chamber/filters/failed_decryption_filter.rb |