Sha256: 81c1347b374747899666507fe782fe93c8e97e343a060d99ca20692b2d53a7ea

Contents?: true

Size: 840 Bytes

Versions: 5

Compression:

Stored size: 840 Bytes

Contents

module MuchKeys
  class KeyValidator

    class << self

      # key should pass validation rules
      def valid? keyname
        exists?(keyname) &&
        secret_key_has_namespace?(keyname)
      end

      def secret_key_namespace keyname
        match = keyname.match(/^secrets\/(.*?)\/.*/)
        if match
          match[1]
        else
          ""
        end
      end

      def secret_key_has_namespace? keyname
        if is_secret?(keyname)
          namespace = secret_key_namespace(keyname)
          exists?(namespace)
        else
          # a plain key passes, it doesn't need a namespace
          true
        end
      end

      def is_secret? keyname
        keyname.match(/^secret/) != nil
      end


      private
      def exists? keyname
        !keyname.nil? && !keyname.empty?
      end

    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
muchkeys-0.5.0 lib/muchkeys/key_validator.rb
muchkeys-0.4.0 lib/muchkeys/key_validator.rb
muchkeys-0.3.7 lib/muchkeys/key_validator.rb
muchkeys-0.3.6 lib/muchkeys/key_validator.rb
muchkeys-0.3.3 lib/muchkeys/key_validator.rb