heroku_header 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # HerokuHeader
2
2
 
3
- TODO: Write a gem description
3
+ Rack middleware that will insert Heroku's navigation header on a specified subdomain.
4
4
 
5
5
  ## Installation
6
6
 
@@ -18,7 +18,31 @@ Or install it yourself as:
18
18
 
19
19
  ## Usage
20
20
 
21
- TODO: Write usage instructions here
21
+ `HerokuHeader::MiddleWare` takes a few config options, all optional:
22
+
23
+ * `:subdomain` => The subdomain to show the header on, defaults to `heroku`.
24
+ * `:timeout` => How many seconds until the request to get the header is cancelled, default is 5. (It fails silently when it can't fetch the header).
25
+ * `:cache` => This expects an object which conforms to the `ActiveSupport::Cache::Store` API. It is not reccomended to leave this out, in which case the header will be fetched from Heroku on each request (when required).
26
+ * `:cache_key` => This is the key which is used to store and retrieve the header from `:cache`. Defaults to 'heroku_header_html'.
27
+
28
+ ### Rails
29
+
30
+ ```ruby
31
+ # application.rb
32
+ config.middleware.use HerokuHeader::MiddleWare, :subdomain => 'heroku', :timeout => 5, :cache => lambda { Rails.cache }
33
+ ```
34
+
35
+ ### Sinatra
36
+
37
+ ```ruby
38
+ require 'sinatra'
39
+
40
+ use HerokuHeader::MiddleWare, :subdomain => 'heroku', :timeout => 5
41
+
42
+ get '/' do
43
+ ....
44
+ end
45
+ ```
22
46
 
23
47
  ## Contributing
24
48
 
@@ -28,7 +28,7 @@ module HerokuHeader
28
28
 
29
29
  private
30
30
  def html_response?
31
- @headers['Content-Type'].include?('text/html')
31
+ @headers['Content-Type'] && @headers['Content-Type'].include?('text/html')
32
32
  end
33
33
 
34
34
  def heroku_subdomain?
@@ -76,4 +76,4 @@ module HerokuHeader
76
76
  end
77
77
 
78
78
  end
79
- end
79
+ end
@@ -1,3 +1,3 @@
1
1
  module HerokuHeader
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -54,6 +54,13 @@ describe HerokuHeader::MiddleWare do
54
54
  @heroku_header.send(:html_response?).should be_false
55
55
  end
56
56
 
57
+ it "should not crash if Content-Type is nil" do
58
+ @heroku_header.instance_variable_set(:@headers, {})
59
+ lambda {
60
+ @heroku_header.send(:html_response?)
61
+ }.should_not raise_error
62
+ end
63
+
57
64
  end
58
65
 
59
66
  context "inserting the header" do
@@ -82,4 +89,4 @@ describe HerokuHeader::MiddleWare do
82
89
 
83
90
  end
84
91
 
85
- end
92
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: heroku_header
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-26 00:00:00.000000000 Z
12
+ date: 2012-10-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -108,7 +108,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
108
108
  version: '0'
109
109
  segments:
110
110
  - 0
111
- hash: 1351836858524438971
111
+ hash: -2037551427770845354
112
112
  required_rubygems_version: !ruby/object:Gem::Requirement
113
113
  none: false
114
114
  requirements:
@@ -117,7 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
117
117
  version: '0'
118
118
  segments:
119
119
  - 0
120
- hash: 1351836858524438971
120
+ hash: -2037551427770845354
121
121
  requirements: []
122
122
  rubyforge_project:
123
123
  rubygems_version: 1.8.23