gcm_middleware 0.0.1 → 0.0.2

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: fc7668b6b374a402eb48242976980c89934f56f5
4
- data.tar.gz: 23873b9160246094485e34826fa579af29e3b2ed
3
+ metadata.gz: ac61ade0afe4dbe472d9eadd91962d9f52e1df20
4
+ data.tar.gz: 2747f613ef9131048a6658c7372260d6254f949a
5
5
  SHA512:
6
- metadata.gz: 6a4eff5600ad2e560fe4ebbe0eeb7f6c1affa7152abbe64a97e606a7cc009bbd3c85976cf499276e5304e887299b0469809d9ca083ff56de2e4f971d28689fc0
7
- data.tar.gz: a0df42a0aafd8228d73b480c1ea238e3d3d12b6cfe02fc7bb6f67c4bd4518b2e80ecd8cb718adf4faa69174fbd4069fea2acf20b0753c2968a3ac38fbf0d8d6d
6
+ metadata.gz: 218463a6fe419556cee7aeef96708a7f6e93b95061141e171389349f59b1c73dd04ca2bec760260c86d68d5dd2a9d9335517653dfec2ce413559bd55674d0986
7
+ data.tar.gz: b8c545b3d5504c40535a9a831e77e1d4f0acc484c2bfc53d16581572253d54f28d7ce9c66393caf3f1fdd3ee9510ac0c6770b8a4ae929c36a3907ac14f4e5912
@@ -1,21 +1,26 @@
1
+ require 'faraday'
2
+
1
3
  module GCMMiddleware
2
- class Authentication
4
+ class Authentication < Faraday::Middleware
3
5
  def initialize(app, options = {})
4
- @app, @options = app, options
6
+ super(app)
7
+ @key = options.fetch(:key, '')
8
+
9
+ raise ArgumentError.new('No api key was provided') if @key.nil? || @key.empty?
5
10
  end
6
11
 
7
12
  def call(env)
8
13
  env.request_headers['Authorization'] = auth_key
9
14
 
10
- app.call(env).on_complete { |env| }
15
+ @app.call(env).on_complete { |env| }
11
16
  end
12
17
 
13
18
  private
14
19
 
15
- attr_reader :app, :options
20
+ attr_reader :key
16
21
 
17
22
  def auth_key
18
- @auth_key ||= "key=#{options[:key]}".freeze
23
+ @auth_key ||= "key=#{key}".freeze
19
24
  end
20
25
  end
21
26
  end
@@ -1,20 +1,18 @@
1
- module GCMMiddleware
2
- class CanonicalId
3
- def initialize(app, options = {})
4
- @app = app
5
- end
1
+ require 'faraday'
6
2
 
3
+ module GCMMiddleware
4
+ class CanonicalId < Faraday::Middleware
7
5
  def call(env)
8
6
  save_ids(env.body)
9
7
 
10
- app.call(env).on_complete do |env|
8
+ @app.call(env).on_complete do |env|
11
9
  inject_original_ids(env.body) if has_registration_ids && env.body
12
10
  end
13
11
  end
14
12
 
15
13
  private
16
14
 
17
- attr_reader :registration_ids, :app
15
+ attr_reader :registration_ids
18
16
 
19
17
  def inject_original_ids(body)
20
18
  body['results'].each_with_index do |result, i|
@@ -1,3 +1,3 @@
1
1
  module GCMMiddleware
2
- VERSION = "0.0.1"
2
+ VERSION = '0.0.2'
3
3
  end
@@ -1,7 +1,7 @@
1
1
  describe GCMMiddleware::Authentication do
2
2
  let(:faraday) do
3
3
  Faraday.new('http://www.example.com') do |builder|
4
- builder.use GCMMiddleware::Authentication, key: 'auth-key'
4
+ builder.use GCMMiddleware::Authentication, key: auth_key
5
5
 
6
6
  builder.adapter :test do |stub|
7
7
  stub.get('/test') { |env| [ 200, {}, {} ] }
@@ -9,10 +9,35 @@ describe GCMMiddleware::Authentication do
9
9
  end
10
10
  end
11
11
 
12
- it 'injects the key into the header' do
13
- response = faraday.get '/test'
12
+ context 'with auth key' do
13
+ let(:auth_key) { 'auth-key' }
14
14
 
15
- expect(response.env.request_headers['Authorization']).to eq('key=auth-key')
15
+ it 'injects the key into the header' do
16
+ response = faraday.get '/test'
17
+
18
+ expect(response.env.request_headers['Authorization']).to eq('key=auth-key')
19
+ end
16
20
  end
17
- end
18
21
 
22
+ context 'with no auth key' do
23
+ context 'with nil auth key' do
24
+ let(:auth_key) { nil }
25
+
26
+ it 'throws a error if no api key is provided' do
27
+ expect {
28
+ faraday.get '/test'
29
+ }.to raise_error(ArgumentError, 'No api key was provided')
30
+ end
31
+ end
32
+
33
+ context 'with empty api key' do
34
+ let(:auth_key) { '' }
35
+
36
+ it 'throws a error if no api key is provided' do
37
+ expect {
38
+ faraday.get '/test'
39
+ }.to raise_error(ArgumentError, 'No api key was provided')
40
+ end
41
+ end
42
+ end
43
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gcm_middleware
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Trevor John
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-21 00:00:00.000000000 Z
11
+ date: 2014-09-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday