wp-hmac 0.1.1 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 803b79ca1b59726cc4c853a13831d65f4e2a63e7
4
- data.tar.gz: 0107c029b7d51c9a6272fef49557b5d360ff536f
3
+ metadata.gz: 7890c63aaa7a52e55fae583b772d0fdd4ed2f09e
4
+ data.tar.gz: 9de22c8167a45b4a20f45edc6daeb69e1a1fb53e
5
5
  SHA512:
6
- metadata.gz: b839d3bf6dd843dff393a606058b7b28b51b0b8f207f4ac7397fd1b452e5e9958421283aba15e70bcd7c41be7e79a0b6faec2e54c1f33a6d7a9fa0ce1c71b061
7
- data.tar.gz: c8b94d52230bfea5d18aea7409532e24e5a43ef1eaa089ee712b7ba16e1a3ffa67e13edb027bd103c8122c260690e0403fff2d76d37d6f9297e41a715ab0c85e
6
+ metadata.gz: 4d2230ec01a97d7b2e18595ff3d6f4e16564c907c4f720c8a81d5042b629351366e649514cc38f4bfe27d5638dc12d7a85f5c055537cd98e666e7942443efff0
7
+ data.tar.gz: 50f840e23e5aa29b9a3e71d45e9ef0728cdc2b5f56b83454a6b7a2d312e9d4db3d0d1cd924e077162534f6ca165995f9a333e4c1290ee4ca76b15da385e43eeb
@@ -12,9 +12,20 @@ module WP
12
12
  end
13
13
 
14
14
  def find_by_auth_id(id)
15
- key = @keys[id]
16
- raise KeyNotFound, 'Ensure all secret keys are loaded with `HMAC::KeyCabinet.add_key`' if key.nil?
17
- OpenStruct.new(key)
15
+ hash = lookup(id) || @keys[id]
16
+ raise KeyNotFound, 'Ensure all secret keys are loaded with `HMAC::KeyCabinet.add_key`' if hash.nil?
17
+ OpenStruct.new(hash)
18
+ end
19
+
20
+ def lookup(id)
21
+ return unless @lookup_block
22
+ if key = @lookup_block.call(id)
23
+ return { id: id, auth_key: key }
24
+ end
25
+ end
26
+
27
+ def lookup_block=(block)
28
+ @lookup_block = block
18
29
  end
19
30
  end
20
31
  end
@@ -1,5 +1,5 @@
1
1
  module Wp
2
2
  module Hmac
3
- VERSION = "0.1.1"
3
+ VERSION = "0.2.1"
4
4
  end
5
5
  end
data/lib/wp/hmac.rb CHANGED
@@ -1,4 +1,4 @@
1
- require "wp/hmac/version"
1
+ require 'wp/hmac/version'
2
2
  require 'rubygems'
3
3
  require 'bundler/setup'
4
4
  Bundler.require
@@ -34,8 +34,13 @@ module WP
34
34
  @callable.call
35
35
  end
36
36
 
37
+ def self.lookup_auth_key_with(&block)
38
+ KeyCabinet.lookup_block = block
39
+ end
40
+
37
41
  def self.reset
38
42
  KeyCabinet.keys = {}
43
+ KeyCabinet.lookup_block = nil
39
44
  Server.hmac_enabled_routes = []
40
45
  end
41
46
  end
data/spec/hmac_spec.rb CHANGED
@@ -79,4 +79,22 @@ RSpec.describe WP::HMAC, type: :request do
79
79
  expect(rack_response.body).to include('Hello, world!')
80
80
  end
81
81
  end
82
+
83
+ context 'with a key configured via a block' do
84
+ before do
85
+ WP::HMAC.configure do
86
+ lookup_auth_key_with { |id| id == 'account2' ? 'mykey' : nil }
87
+ end
88
+ end
89
+
90
+ it 'looks up the key via the block' do
91
+ key = WP::HMAC::KeyCabinet.find_by_auth_id('account2')
92
+ expect(key.auth_key).to eq 'mykey'
93
+ end
94
+
95
+ it 'still finds keys from the add_key method' do
96
+ key = WP::HMAC::KeyCabinet.find_by_auth_id('esso')
97
+ expect(key.auth_key).to eq 'secret_key'
98
+ end
99
+ end
82
100
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wp-hmac
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Nagi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-05 00:00:00.000000000 Z
11
+ date: 2015-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ey_api_hmac