The gem seems to assume that the user is managing declaration of ssm_root_path and key values in such a way that eliding these values always results in a valid ssm parameter key. Also, it is not very clear whether or not ssm_root_path is required (it's not).
I propose we treat SSM_ROOT_PATH and key query strings much like filenames in unix shell:
- if a key starts with a forward slash, it is treadted as a fully qualified ssm object key
- if a key does not start with a forward slash, and
@ssm_root_path is defined, then @ssm_root_path is prefixed to it to form a fully qualified ssm object key
- if a key does not start with a forward slash, and
@ssm_root_path is NOT defined, then an exception is raised