From 7f915e0d903edbed4e778328818ff2914be06ef7 Mon Sep 17 00:00:00 2001
From: Alexander Olofsson <alexander.olofsson@liu.se>
Date: Tue, 22 Oct 2019 16:48:52 +0200
Subject: [PATCH] Add support for bare resource retrieval

This is useful in cases where the object is only required as a reference
for looking up other resources.

For example;
`client.password_lists.get(5, _bare: true).passwords.search(user_name: 'root')`
---
 lib/passwordstate/resource.rb | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/lib/passwordstate/resource.rb b/lib/passwordstate/resource.rb
index eb173f3..7ad6a4b 100644
--- a/lib/passwordstate/resource.rb
+++ b/lib/passwordstate/resource.rb
@@ -44,10 +44,15 @@ module Passwordstate
     end
 
     def self.get(client, object, query = {})
+      object = object.send(object.class.send(index_field)) if object.is_a? Resource
+
+      if query[:_bare]
+        return new _client: client, index_field => object
+      end
+
       path = query.fetch(:_api_path, api_path)
       query = passwordstateify_hash query.reject { |k| k.to_s.start_with? '_' }
 
-      object = object.send(object.class.send(index_field)) if object.is_a? Resource
       resp = client.request(:get, "#{path}/#{object}", query: query).map do |data|
         new data.merge(_client: client)
       end
-- 
GitLab