heroku-nav 0.1.16 → 0.1.17
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 +3 -3
- data/heroku-nav.gemspec +4 -4
- data/lib/heroku/nav.rb +16 -17
- metadata +7 -5
    
        data/Rakefile
    CHANGED
    
    | @@ -12,8 +12,8 @@ begin | |
| 12 12 | 
             
                gemspec.summary = ""
         | 
| 13 13 | 
             
                gemspec.description = ""
         | 
| 14 14 | 
             
                gemspec.homepage = "http://heroku.com"
         | 
| 15 | 
            -
                gemspec.authors = [" | 
| 16 | 
            -
                gemspec.email = [" | 
| 15 | 
            +
                gemspec.authors = ["David Dollar", "Pedro Belo", "Todd Matthews"]
         | 
| 16 | 
            +
                gemspec.email = ["david@heroku.com", "pedro@heroku.com", "todd@heroku.com"]
         | 
| 17 17 |  | 
| 18 18 | 
             
                gemspec.add_development_dependency(%q<baconmocha>, [">= 0"])
         | 
| 19 19 | 
             
                gemspec.add_development_dependency(%q<sinatra>, [">= 0"])
         | 
| @@ -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. | 
| 24 | 
            +
                gemspec.version = '0.1.17'
         | 
| 25 25 | 
             
              end
         | 
| 26 26 | 
             
            rescue LoadError
         | 
| 27 27 | 
             
              puts "Jeweler not available. Install it with: gem install jeweler"
         | 
    
        data/heroku-nav.gemspec
    CHANGED
    
    | @@ -5,13 +5,13 @@ | |
| 5 5 |  | 
| 6 6 | 
             
            Gem::Specification.new do |s|
         | 
| 7 7 | 
             
              s.name = %q{heroku-nav}
         | 
| 8 | 
            -
              s.version = "0.1. | 
| 8 | 
            +
              s.version = "0.1.17"
         | 
| 9 9 |  | 
| 10 10 | 
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         | 
| 11 | 
            -
              s.authors = [" | 
| 12 | 
            -
              s.date = %q{2010- | 
| 11 | 
            +
              s.authors = ["David Dollar", "Pedro Belo", "Todd Matthews"]
         | 
| 12 | 
            +
              s.date = %q{2010-08-02}
         | 
| 13 13 | 
             
              s.description = %q{}
         | 
| 14 | 
            -
              s.email = [" | 
| 14 | 
            +
              s.email = ["david@heroku.com", "pedro@heroku.com", "todd@heroku.com"]
         | 
| 15 15 | 
             
              s.files = [
         | 
| 16 16 | 
             
                ".gitignore",
         | 
| 17 17 | 
             
                 "Rakefile",
         | 
    
        data/lib/heroku/nav.rb
    CHANGED
    
    | @@ -15,16 +15,15 @@ module Heroku | |
| 15 15 |  | 
| 16 16 | 
             
                  def call(env)
         | 
| 17 17 | 
             
                    @status, @headers, @body = @app.call(env)
         | 
| 18 | 
            +
                    @body.extend(Enumerable)
         | 
| 19 | 
            +
                    @body = @body.map.join
         | 
| 18 20 | 
             
                    insert! if can_insert?(env)
         | 
| 19 | 
            -
                    [@status, @headers, @body]
         | 
| 21 | 
            +
                    [@status, @headers, [@body]]
         | 
| 20 22 | 
             
                  end
         | 
| 21 23 |  | 
| 22 24 | 
             
                  def can_insert?(env)
         | 
| 23 25 | 
             
                    return unless @options[:status].include?(@status)
         | 
| 24 | 
            -
                    return unless @headers['Content-Type'] =~ /text\/html/ | 
| 25 | 
            -
                    @body_accessor = [:first, :body].detect { |m| @body.respond_to?(m) }
         | 
| 26 | 
            -
                    return unless @body_accessor
         | 
| 27 | 
            -
                    return unless @body.send(@body_accessor) =~ /<body.*?>/i
         | 
| 26 | 
            +
                    return unless @headers['Content-Type'] =~ /text\/html/
         | 
| 28 27 | 
             
                    return if @options[:except].any? { |route| env['PATH_INFO'] =~ route }
         | 
| 29 28 | 
             
                    true
         | 
| 30 29 | 
             
                  end
         | 
| @@ -66,9 +65,9 @@ module Heroku | |
| 66 65 | 
             
                class Header < Base
         | 
| 67 66 | 
             
                  def insert!
         | 
| 68 67 | 
             
                    if @nav['html']
         | 
| 69 | 
            -
                      @body. | 
| 70 | 
            -
                      @body. | 
| 71 | 
            -
                      @headers['Content-Length'] = @body. | 
| 68 | 
            +
                      @body.gsub!(/(<head>)/i, "\\1<link href='#{self.class.api_url}/header.css' media='all' rel='stylesheet' type='text/css' />") 
         | 
| 69 | 
            +
                      @body.gsub!(/(<body.*?>\s*(<div .*?class=["'].*?container.*?["'].*?>)?)/i, "\\1#{@nav['html']}")
         | 
| 70 | 
            +
                      @headers['Content-Length'] = @body.length.to_s
         | 
| 72 71 | 
             
                    end
         | 
| 73 72 | 
             
                  end
         | 
| 74 73 | 
             
                end
         | 
| @@ -76,9 +75,9 @@ module Heroku | |
| 76 75 | 
             
                class Footer < Base
         | 
| 77 76 | 
             
                  def insert!
         | 
| 78 77 | 
             
                    if @nav['html']
         | 
| 79 | 
            -
                      @body. | 
| 80 | 
            -
                      @body. | 
| 81 | 
            -
                      @headers['Content-Length'] = @body. | 
| 78 | 
            +
                      @body.gsub!(/(<head>)/i, "\\1<link href='#{self.class.api_url}/footer.css' media='all' rel='stylesheet' type='text/css' />") 
         | 
| 79 | 
            +
                      @body.gsub!(/(<\/body>)/i, "#{@nav['html']}\\1")
         | 
| 80 | 
            +
                      @headers['Content-Length'] = @body.length.to_s
         | 
| 82 81 | 
             
                    end
         | 
| 83 82 | 
             
                  end
         | 
| 84 83 | 
             
                end
         | 
| @@ -89,12 +88,12 @@ module Heroku | |
| 89 88 | 
             
                  end
         | 
| 90 89 | 
             
                  def insert!
         | 
| 91 90 | 
             
                    if @nav['head']
         | 
| 92 | 
            -
                      @body. | 
| 91 | 
            +
                      @body.gsub!(/(<head>)/i, "\\1#{@nav['head']}")
         | 
| 93 92 | 
             
                    end
         | 
| 94 93 | 
             
                    if @nav['body']
         | 
| 95 | 
            -
                      @body. | 
| 94 | 
            +
                      @body.gsub!(/(<\/body>)/i, "#{@nav['body']}\\1")
         | 
| 96 95 | 
             
                    end
         | 
| 97 | 
            -
                    @headers['Content-Length'] = @body. | 
| 96 | 
            +
                    @headers['Content-Length'] = @body.length.to_s
         | 
| 98 97 | 
             
                  end
         | 
| 99 98 | 
             
                end
         | 
| 100 99 |  | 
| @@ -121,10 +120,10 @@ module Heroku | |
| 121 120 |  | 
| 122 121 | 
             
                  def insert!
         | 
| 123 122 | 
             
                    if @nav
         | 
| 124 | 
            -
                      match = @body. | 
| 123 | 
            +
                      match = @body.match(/(\<body[^\>]*\>)/i)
         | 
| 125 124 | 
             
                      if match.size > 0
         | 
| 126 | 
            -
                        @body. | 
| 127 | 
            -
                        @headers['Content-Length'] = @body. | 
| 125 | 
            +
                        @body.insert(match.end(0), @nav)
         | 
| 126 | 
            +
                        @headers['Content-Length'] = @body.length.to_s
         | 
| 128 127 | 
             
                      end
         | 
| 129 128 | 
             
                    end
         | 
| 130 129 | 
             
                  end
         | 
    
        metadata
    CHANGED
    
    | @@ -5,17 +5,18 @@ version: !ruby/object:Gem::Version | |
| 5 5 | 
             
              segments: 
         | 
| 6 6 | 
             
              - 0
         | 
| 7 7 | 
             
              - 1
         | 
| 8 | 
            -
              -  | 
| 9 | 
            -
              version: 0.1. | 
| 8 | 
            +
              - 17
         | 
| 9 | 
            +
              version: 0.1.17
         | 
| 10 10 | 
             
            platform: ruby
         | 
| 11 11 | 
             
            authors: 
         | 
| 12 | 
            -
            -  | 
| 12 | 
            +
            - David Dollar
         | 
| 13 13 | 
             
            - Pedro Belo
         | 
| 14 | 
            +
            - Todd Matthews
         | 
| 14 15 | 
             
            autorequire: 
         | 
| 15 16 | 
             
            bindir: bin
         | 
| 16 17 | 
             
            cert_chain: []
         | 
| 17 18 |  | 
| 18 | 
            -
            date: 2010- | 
| 19 | 
            +
            date: 2010-08-02 00:00:00 -07:00
         | 
| 19 20 | 
             
            default_executable: 
         | 
| 20 21 | 
             
            dependencies: 
         | 
| 21 22 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| @@ -81,8 +82,9 @@ dependencies: | |
| 81 82 | 
             
              version_requirements: *id005
         | 
| 82 83 | 
             
            description: ""
         | 
| 83 84 | 
             
            email: 
         | 
| 84 | 
            -
            -  | 
| 85 | 
            +
            - david@heroku.com
         | 
| 85 86 | 
             
            - pedro@heroku.com
         | 
| 87 | 
            +
            - todd@heroku.com
         | 
| 86 88 | 
             
            executables: []
         | 
| 87 89 |  | 
| 88 90 | 
             
            extensions: []
         |