heroku-nav 0.1.19 → 0.1.20

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/Rakefile CHANGED
@@ -21,7 +21,7 @@ begin
21
21
  gemspec.add_dependency(%q<rest-client>, [">= 1.0"])
22
22
  gemspec.add_dependency(%q<json>, [">= 0"])
23
23
 
24
- gemspec.version = '0.1.19'
24
+ gemspec.version = '0.1.20'
25
25
  end
26
26
  rescue LoadError
27
27
  puts "Jeweler not available. Install it with: gem install jeweler"
data/heroku-nav.gemspec CHANGED
@@ -1,46 +1,43 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{heroku-nav}
8
- s.version = "0.1.19"
8
+ s.version = "0.1.20"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["David Dollar", "Pedro Belo", "Todd Matthews"]
12
- s.date = %q{2010-10-21}
12
+ s.date = %q{2011-01-10}
13
13
  s.description = %q{}
14
14
  s.email = ["david@heroku.com", "pedro@heroku.com", "todd@heroku.com"]
15
15
  s.extra_rdoc_files = [
16
16
  "README.md"
17
17
  ]
18
18
  s.files = [
19
- ".gitignore",
20
- "README.md",
21
- "Rakefile",
22
- "heroku-nav.gemspec",
23
- "lib/heroku/nav.rb",
24
- "spec/api_spec.rb",
25
- "spec/base.rb",
26
- "spec/nav_spec.rb"
19
+ "README.md",
20
+ "Rakefile",
21
+ "heroku-nav.gemspec",
22
+ "lib/heroku/nav.rb",
23
+ "spec/api_spec.rb",
24
+ "spec/base.rb",
25
+ "spec/nav_spec.rb"
27
26
  ]
28
27
  s.homepage = %q{http://heroku.com}
29
- s.rdoc_options = ["--charset=UTF-8"]
30
28
  s.require_paths = ["lib"]
31
- s.rubygems_version = %q{1.3.6}
29
+ s.rubygems_version = %q{1.4.2}
32
30
  s.summary = %q{}
33
31
  s.test_files = [
34
32
  "spec/api_spec.rb",
35
- "spec/base.rb",
36
- "spec/nav_spec.rb"
33
+ "spec/base.rb",
34
+ "spec/nav_spec.rb"
37
35
  ]
38
36
 
39
37
  if s.respond_to? :specification_version then
40
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
41
38
  s.specification_version = 3
42
39
 
43
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
40
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
44
41
  s.add_development_dependency(%q<baconmocha>, [">= 0"])
45
42
  s.add_development_dependency(%q<sinatra>, [">= 0"])
46
43
  s.add_development_dependency(%q<rack-test>, [">= 0"])
data/lib/heroku/nav.rb CHANGED
@@ -8,8 +8,7 @@ module Heroku
8
8
  def initialize(app, options={})
9
9
  @app = app
10
10
  @options = options
11
- @options[:only] = [@options[:only]].compact unless @options[:only].is_a?(Array)
12
- @options[:except] = [@options[:except]].compact unless @options[:except].is_a?(Array)
11
+ @options[:except] = [@options[:except]] unless @options[:except].is_a?(Array)
13
12
  @options[:status] ||= [200]
14
13
  refresh
15
14
  end
@@ -17,31 +16,18 @@ module Heroku
17
16
  def call(env)
18
17
  @status, @headers, @body = @app.call(env)
19
18
  @body.extend(Enumerable)
20
- @body = @body.map.join
19
+ @body = @body.to_a.join
21
20
  insert! if can_insert?(env)
22
21
  [@status, @headers, [@body]]
23
22
  end
24
23
 
25
24
  def can_insert?(env)
26
25
  return unless @options[:status].include?(@status)
27
- return unless @headers['Content-Type'] =~ /text\/html/
28
- return if !@options[:only].empty? && !@options[:only].any? { |route| match_route(route, env['PATH_INFO']) }
29
- return if @options[:except].any? { |route| match_route(route, env['PATH_INFO']) }
26
+ return unless @headers['Content-Type'] =~ /text\/html/ || @headers['content-type'] =~ /text\/html/
27
+ return if @options[:except].any? { |route| env['PATH_INFO'] =~ route }
30
28
  true
31
29
  end
32
30
 
33
- def match_route(route, path)
34
- return unless route
35
- case route.class.name
36
- when 'Regexp'
37
- path =~ route
38
- when 'String'
39
- path.chomp('/') == route.chomp('/')
40
- else
41
- raise "Don't know how to match the route: #{route} (#{route.class.name})"
42
- end
43
- end
44
-
45
31
  def refresh
46
32
  @nav = self.class.fetch
47
33
  end
@@ -79,7 +65,7 @@ module Heroku
79
65
  class Header < Base
80
66
  def insert!
81
67
  if @nav['html']
82
- @body.gsub!(/(<head>)/i, "\\1<link href='#{self.class.api_url}/header.css' media='all' rel='stylesheet' type='text/css' />")
68
+ @body.gsub!(/(<head>)/i, "\\1<link href='#{self.class.api_url}/header.css' media='all' rel='stylesheet' type='text/css' />")
83
69
  @body.gsub!(/(<body.*?>\s*(<div .*?class=["'].*?container.*?["'].*?>)?)/i, "\\1#{@nav['html']}")
84
70
  @headers['Content-Length'] = @body.length.to_s
85
71
  end
@@ -89,7 +75,7 @@ module Heroku
89
75
  class Footer < Base
90
76
  def insert!
91
77
  if @nav['html']
92
- @body.gsub!(/(<head>)/i, "\\1<link href='#{self.class.api_url}/footer.css' media='all' rel='stylesheet' type='text/css' />")
78
+ @body.gsub!(/(<head>)/i, "\\1<link href='#{self.class.api_url}/footer.css' media='all' rel='stylesheet' type='text/css' />")
93
79
  @body.gsub!(/(<\/body>)/i, "#{@nav['html']}\\1")
94
80
  @headers['Content-Length'] = @body.length.to_s
95
81
  end
data/spec/nav_spec.rb CHANGED
@@ -65,17 +65,6 @@ describe Heroku::Nav::Header do
65
65
  last_response.body.should.not =~ /<!-- header -->/
66
66
  end
67
67
  end
68
-
69
- describe "only including certain paths" do
70
- def app
71
- make_app { use Heroku::Nav::Header, :only => /x/ }
72
- end
73
-
74
- it "respects the :only option" do
75
- get '/alternate', :body => '<html><body>hi'
76
- last_response.body.should.not =~ /<!-- header -->/
77
- end
78
- end
79
68
  end
80
69
 
81
70
  describe Heroku::Nav::Footer do
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: heroku-nav
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
4
+ hash: 51
5
+ prerelease:
5
6
  segments:
6
7
  - 0
7
8
  - 1
8
- - 19
9
- version: 0.1.19
9
+ - 20
10
+ version: 0.1.20
10
11
  platform: ruby
11
12
  authors:
12
13
  - David Dollar
@@ -16,16 +17,18 @@ autorequire:
16
17
  bindir: bin
17
18
  cert_chain: []
18
19
 
19
- date: 2010-10-21 00:00:00 -07:00
20
+ date: 2011-01-10 00:00:00 -05:00
20
21
  default_executable:
21
22
  dependencies:
22
23
  - !ruby/object:Gem::Dependency
23
24
  name: baconmocha
24
25
  prerelease: false
25
26
  requirement: &id001 !ruby/object:Gem::Requirement
27
+ none: false
26
28
  requirements:
27
29
  - - ">="
28
30
  - !ruby/object:Gem::Version
31
+ hash: 3
29
32
  segments:
30
33
  - 0
31
34
  version: "0"
@@ -35,9 +38,11 @@ dependencies:
35
38
  name: sinatra
36
39
  prerelease: false
37
40
  requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
38
42
  requirements:
39
43
  - - ">="
40
44
  - !ruby/object:Gem::Version
45
+ hash: 3
41
46
  segments:
42
47
  - 0
43
48
  version: "0"
@@ -47,9 +52,11 @@ dependencies:
47
52
  name: rack-test
48
53
  prerelease: false
49
54
  requirement: &id003 !ruby/object:Gem::Requirement
55
+ none: false
50
56
  requirements:
51
57
  - - ">="
52
58
  - !ruby/object:Gem::Version
59
+ hash: 3
53
60
  segments:
54
61
  - 0
55
62
  version: "0"
@@ -59,9 +66,11 @@ dependencies:
59
66
  name: rest-client
60
67
  prerelease: false
61
68
  requirement: &id004 !ruby/object:Gem::Requirement
69
+ none: false
62
70
  requirements:
63
71
  - - ">="
64
72
  - !ruby/object:Gem::Version
73
+ hash: 15
65
74
  segments:
66
75
  - 1
67
76
  - 0
@@ -72,9 +81,11 @@ dependencies:
72
81
  name: json
73
82
  prerelease: false
74
83
  requirement: &id005 !ruby/object:Gem::Requirement
84
+ none: false
75
85
  requirements:
76
86
  - - ">="
77
87
  - !ruby/object:Gem::Version
88
+ hash: 3
78
89
  segments:
79
90
  - 0
80
91
  version: "0"
@@ -92,7 +103,6 @@ extensions: []
92
103
  extra_rdoc_files:
93
104
  - README.md
94
105
  files:
95
- - .gitignore
96
106
  - README.md
97
107
  - Rakefile
98
108
  - heroku-nav.gemspec
@@ -105,28 +115,32 @@ homepage: http://heroku.com
105
115
  licenses: []
106
116
 
107
117
  post_install_message:
108
- rdoc_options:
109
- - --charset=UTF-8
118
+ rdoc_options: []
119
+
110
120
  require_paths:
111
121
  - lib
112
122
  required_ruby_version: !ruby/object:Gem::Requirement
123
+ none: false
113
124
  requirements:
114
125
  - - ">="
115
126
  - !ruby/object:Gem::Version
127
+ hash: 3
116
128
  segments:
117
129
  - 0
118
130
  version: "0"
119
131
  required_rubygems_version: !ruby/object:Gem::Requirement
132
+ none: false
120
133
  requirements:
121
134
  - - ">="
122
135
  - !ruby/object:Gem::Version
136
+ hash: 3
123
137
  segments:
124
138
  - 0
125
139
  version: "0"
126
140
  requirements: []
127
141
 
128
142
  rubyforge_project:
129
- rubygems_version: 1.3.6
143
+ rubygems_version: 1.4.2
130
144
  signing_key:
131
145
  specification_version: 3
132
146
  summary: ""
data/.gitignore DELETED
@@ -1 +0,0 @@
1
- pkg/