emcee 0.1.1 → 0.1.2
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.
- checksums.yaml +4 -4
 - data/lib/emcee/processors/html_processor.rb +9 -84
 - data/lib/emcee/processors/processor_includes.rb +98 -0
 - data/lib/emcee/railtie.rb +1 -0
 - data/lib/emcee/version.rb +1 -1
 - data/test/compressors_test.rb +63 -19
 - data/test/dummy/app/assets/elements/application.html +0 -2
 - data/test/dummy/app/assets/elements/test/test3.css +3 -0
 - data/test/dummy/app/assets/elements/test/test3.html +1 -0
 - data/test/dummy/log/development.log +201 -0
 - data/test/dummy/log/test.log +5815 -0
 - data/test/dummy/tmp/cache/assets/development/sprockets/01abb54333b8d67888355b2f855692e8 +0 -0
 - data/test/dummy/tmp/cache/assets/development/sprockets/1e24025f59396708b3bb44543bed32fc +0 -0
 - data/test/dummy/tmp/cache/assets/development/sprockets/219d0afb67879a67bae32b4fe4c708ac +0 -0
 - data/test/dummy/tmp/cache/assets/development/sprockets/32cae461a9446107294c8a0230f5080c +0 -0
 - data/test/dummy/tmp/cache/assets/development/sprockets/4fd1effec4d6579ba9d4f03ed156a15b +0 -0
 - data/test/dummy/tmp/cache/assets/development/sprockets/63ab3ecb77a01edbed6db1aca4d690fc +0 -0
 - data/test/dummy/tmp/cache/assets/development/sprockets/6c9d8a21af4539e19a3462e79ac4d70c +0 -0
 - data/test/dummy/tmp/cache/assets/development/sprockets/a69c3d00e22ad6c0d6ece35c9fd5f316 +0 -0
 - data/test/dummy/tmp/cache/assets/development/sprockets/af6ba4ae23c6790e0f474b01ceee8dd9 +0 -0
 - data/test/dummy/tmp/cache/assets/development/sprockets/c04739a2061e8e023568aabaa0e801d2 +0 -0
 - data/test/dummy/tmp/cache/assets/development/sprockets/cf517b62bd978b748afe38d5beb317de +0 -0
 - data/test/dummy/tmp/cache/assets/development/sprockets/df6cfcc50da209231a7d9e140e5bafdc +0 -0
 - data/test/dummy/tmp/cache/assets/development/sprockets/e0949aa3dcdcab5f8b45d30e26f6ddd2 +0 -0
 - data/test/dummy/tmp/cache/assets/development/sprockets/e1d520d14db311ab6347be6426dac6f5 +0 -0
 - data/test/dummy/tmp/cache/assets/development/sprockets/ffd4adb86602a60c7fcedd5d472166d3 +0 -0
 - data/test/dummy/tmp/cache/assets/test/sprockets/1e24025f59396708b3bb44543bed32fc +0 -0
 - data/test/dummy/tmp/cache/assets/test/sprockets/219d0afb67879a67bae32b4fe4c708ac +0 -0
 - data/test/dummy/tmp/cache/assets/test/sprockets/32cae461a9446107294c8a0230f5080c +0 -0
 - data/test/dummy/tmp/cache/assets/test/sprockets/4fd1effec4d6579ba9d4f03ed156a15b +0 -0
 - data/test/dummy/tmp/cache/assets/test/sprockets/6c9d8a21af4539e19a3462e79ac4d70c +0 -0
 - data/test/dummy/tmp/cache/assets/test/sprockets/a69c3d00e22ad6c0d6ece35c9fd5f316 +0 -0
 - data/test/dummy/tmp/cache/assets/test/sprockets/af6ba4ae23c6790e0f474b01ceee8dd9 +0 -0
 - data/test/dummy/tmp/cache/assets/test/sprockets/cf517b62bd978b748afe38d5beb317de +0 -0
 - data/test/dummy/tmp/cache/assets/test/sprockets/df6cfcc50da209231a7d9e140e5bafdc +0 -0
 - data/test/dummy/tmp/cache/assets/test/sprockets/e0949aa3dcdcab5f8b45d30e26f6ddd2 +0 -0
 - data/test/dummy/tmp/cache/assets/test/sprockets/ffd4adb86602a60c7fcedd5d472166d3 +0 -0
 - data/test/dummy/vendor/assets/elements/test4.html +1 -0
 - data/test/dummy/vendor/assets/elements/test4.js +1 -0
 - data/test/processors_test.rb +74 -0
 - metadata +8 -5
 - data/test/dummy/tmp/cache/assets/test/sprockets/070957bfe375a537750196a12d9e6d1a +0 -0
 - data/test/dummy/tmp/cache/assets/test/sprockets/fb7c86cdcce596d8b3c14ce236bf73c5 +0 -0
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 6ef8c2343235af9adfdfca951fce261b485cb8a9
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 32286f3d1f8d3ee071d61a8baeb7877029bd63f9
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 2157456f4bfda8ddcdd94e75fa190066c571c3b3aa868e27550f572ecba940d030a307844bde3c2092ce6496afe9d2f22fdc503156c67780c427fe1a374d6375
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: d68fa85fb967dc7bebde6626f6fc91ba81e0cebe6e2cc97fa3826686ad0149e509acb322c55e9fa1c3280b3c5f3b2634d02e25e356231a35eb1cf9aef55bd01f
         
     | 
| 
         @@ -14,6 +14,12 @@ module Emcee 
     | 
|
| 
       14 
14 
     | 
    
         
             
                # work for us.
         
     | 
| 
       15 
15 
     | 
    
         
             
                #
         
     | 
| 
       16 
16 
     | 
    
         
             
                class HtmlProcessor < Sprockets::DirectiveProcessor
         
     | 
| 
      
 17 
     | 
    
         
            +
                  include Emcee::Processors::Includes
         
     | 
| 
      
 18 
     | 
    
         
            +
                  protected :process_imports
         
     | 
| 
      
 19 
     | 
    
         
            +
                  protected :process_stylesheets
         
     | 
| 
      
 20 
     | 
    
         
            +
                  protected :process_scripts
         
     | 
| 
      
 21 
     | 
    
         
            +
                  private   :read_file
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
       17 
23 
     | 
    
         
             
                  # Matches the entire header/directive block. This is everything from the
         
     | 
| 
       18 
24 
     | 
    
         
             
                  # top of the file, enclosed in html comments.
         
     | 
| 
       19 
25 
     | 
    
         
             
                  #
         
     | 
| 
         @@ -40,37 +46,6 @@ module Emcee 
     | 
|
| 
       40 
46 
     | 
    
         
             
                  #
         
     | 
| 
       41 
47 
     | 
    
         
             
                  DIRECTIVE_PATTERN = /^\W*=\s*(\w+.*?)$/
         
     | 
| 
       42 
48 
     | 
    
         | 
| 
       43 
     | 
    
         
            -
                  # Match an html import tag.
         
     | 
| 
       44 
     | 
    
         
            -
                  #
         
     | 
| 
       45 
     | 
    
         
            -
                  #   <link rel="import" href="example.html">
         
     | 
| 
       46 
     | 
    
         
            -
                  #
         
     | 
| 
       47 
     | 
    
         
            -
                  IMPORT_PATTERN = /^<link .*rel=["']import["'].*>$/
         
     | 
| 
       48 
     | 
    
         
            -
             
     | 
| 
       49 
     | 
    
         
            -
                  # Match a stylesheet link tag.
         
     | 
| 
       50 
     | 
    
         
            -
                  #
         
     | 
| 
       51 
     | 
    
         
            -
                  #   <link rel="stylesheet" href="example.css">
         
     | 
| 
       52 
     | 
    
         
            -
                  #
         
     | 
| 
       53 
     | 
    
         
            -
                  STYLESHEET_PATTERN = /^ +<link .*rel=["']stylesheet["'].*>$/
         
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
       55 
     | 
    
         
            -
                  # Match a script tag.
         
     | 
| 
       56 
     | 
    
         
            -
                  #
         
     | 
| 
       57 
     | 
    
         
            -
                  #   <script src="assets/example.js"></script>
         
     | 
| 
       58 
     | 
    
         
            -
                  #
         
     | 
| 
       59 
     | 
    
         
            -
                  SCRIPT_PATTERN = /^ *<script .*src=["'].+\.js["']><\/script>$/
         
     | 
| 
       60 
     | 
    
         
            -
             
     | 
| 
       61 
     | 
    
         
            -
                  # Match the path from the href attribute of an html import or stylesheet
         
     | 
| 
       62 
     | 
    
         
            -
                  # include tag. Captures the actual path.
         
     | 
| 
       63 
     | 
    
         
            -
                  #
         
     | 
| 
       64 
     | 
    
         
            -
                  #   href="/assets/example.css"
         
     | 
| 
       65 
     | 
    
         
            -
                  #
         
     | 
| 
       66 
     | 
    
         
            -
                  HREF_PATH_PATTERN = /href=["'](?<path>[\w\.\/-]+)["']/
         
     | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
       68 
     | 
    
         
            -
                  # Match the source path from a script tag. Captures the actual path.
         
     | 
| 
       69 
     | 
    
         
            -
                  #
         
     | 
| 
       70 
     | 
    
         
            -
                  #   src="/assets/example.js"
         
     | 
| 
       71 
     | 
    
         
            -
                  #
         
     | 
| 
       72 
     | 
    
         
            -
                  SRC_PATH_PATTERN = /src=["'](?<path>[\w\.\/-]+)["']/
         
     | 
| 
       73 
     | 
    
         
            -
             
     | 
| 
       74 
49 
     | 
    
         
             
                  # Render takes the actual text of the file and does our processing to it.
         
     | 
| 
       75 
50 
     | 
    
         
             
                  # This is based on the standard render method on Sprockets's
         
     | 
| 
       76 
51 
     | 
    
         
             
                  # DirectiveProcessor.
         
     | 
| 
         @@ -93,63 +68,13 @@ module Emcee 
     | 
|
| 
       93 
68 
     | 
    
         
             
                    @has_written_body = false
         
     | 
| 
       94 
69 
     | 
    
         | 
| 
       95 
70 
     | 
    
         
             
                    process_directives
         
     | 
| 
       96 
     | 
    
         
            -
                    process_imports
         
     | 
| 
       97 
     | 
    
         
            -
                    process_stylesheets
         
     | 
| 
       98 
     | 
    
         
            -
                    process_scripts
         
     | 
| 
      
 71 
     | 
    
         
            +
                    @body = process_imports(@body, @context, @directory)
         
     | 
| 
      
 72 
     | 
    
         
            +
                    @body = process_stylesheets(@body, @directory)
         
     | 
| 
      
 73 
     | 
    
         
            +
                    @body = process_scripts(@body, @directory)
         
     | 
| 
       99 
74 
     | 
    
         
             
                    process_source
         
     | 
| 
       100 
75 
     | 
    
         | 
| 
       101 
76 
     | 
    
         
             
                    @result
         
     | 
| 
       102 
77 
     | 
    
         
             
                  end
         
     | 
| 
       103 
     | 
    
         
            -
             
     | 
| 
       104 
     | 
    
         
            -
                  protected
         
     | 
| 
       105 
     | 
    
         
            -
                    # Scan the body for html imports. If any are found, tell sprockets to
         
     | 
| 
       106 
     | 
    
         
            -
                    # require their files like we would for a directive.
         
     | 
| 
       107 
     | 
    
         
            -
                    def process_imports
         
     | 
| 
       108 
     | 
    
         
            -
                      body.scan(IMPORT_PATTERN) do |import_tag|
         
     | 
| 
       109 
     | 
    
         
            -
                        if path = import_tag[HREF_PATH_PATTERN, :path]
         
     | 
| 
       110 
     | 
    
         
            -
                          absolute_path = File.absolute_path(path, @directory)
         
     | 
| 
       111 
     | 
    
         
            -
                          context.require_asset(absolute_path)
         
     | 
| 
       112 
     | 
    
         
            -
                        end
         
     | 
| 
       113 
     | 
    
         
            -
                      end
         
     | 
| 
       114 
     | 
    
         
            -
             
     | 
| 
       115 
     | 
    
         
            -
                      @body.gsub!(IMPORT_PATTERN, "")
         
     | 
| 
       116 
     | 
    
         
            -
                    end
         
     | 
| 
       117 
     | 
    
         
            -
             
     | 
| 
       118 
     | 
    
         
            -
                    # Scan the body for external stylesheet references. If any are found,
         
     | 
| 
       119 
     | 
    
         
            -
                    # inline the files in place of the references.
         
     | 
| 
       120 
     | 
    
         
            -
                    def process_stylesheets
         
     | 
| 
       121 
     | 
    
         
            -
                      to_inline = []
         
     | 
| 
       122 
     | 
    
         
            -
             
     | 
| 
       123 
     | 
    
         
            -
                      body.scan(STYLESHEET_PATTERN) do |stylesheet_tag|
         
     | 
| 
       124 
     | 
    
         
            -
                        if path = stylesheet_tag[HREF_PATH_PATTERN, :path]
         
     | 
| 
       125 
     | 
    
         
            -
                          absolute_path = File.absolute_path(path, @directory)
         
     | 
| 
       126 
     | 
    
         
            -
                          stylesheet_contents = File.read(absolute_path)
         
     | 
| 
       127 
     | 
    
         
            -
                          to_inline << [stylesheet_tag, "<style>\n" + stylesheet_contents + "</style>\n"]
         
     | 
| 
       128 
     | 
    
         
            -
                        end
         
     | 
| 
       129 
     | 
    
         
            -
                      end
         
     | 
| 
       130 
     | 
    
         
            -
             
     | 
| 
       131 
     | 
    
         
            -
                      to_inline.each do |(tag, contents)|
         
     | 
| 
       132 
     | 
    
         
            -
                        @body.gsub!(tag, contents)
         
     | 
| 
       133 
     | 
    
         
            -
                      end
         
     | 
| 
       134 
     | 
    
         
            -
                    end
         
     | 
| 
       135 
     | 
    
         
            -
             
     | 
| 
       136 
     | 
    
         
            -
                    # Scan the body for external script references. If any are found, inline
         
     | 
| 
       137 
     | 
    
         
            -
                    # the files in place of the references.
         
     | 
| 
       138 
     | 
    
         
            -
                    def process_scripts
         
     | 
| 
       139 
     | 
    
         
            -
                      to_inline = []
         
     | 
| 
       140 
     | 
    
         
            -
             
     | 
| 
       141 
     | 
    
         
            -
                      body.scan(SCRIPT_PATTERN) do |script_tag|
         
     | 
| 
       142 
     | 
    
         
            -
                        if path = script_tag[SRC_PATH_PATTERN, :path]
         
     | 
| 
       143 
     | 
    
         
            -
                          absolute_path = File.absolute_path(path, @directory)
         
     | 
| 
       144 
     | 
    
         
            -
                          script_contents = File.read(absolute_path)
         
     | 
| 
       145 
     | 
    
         
            -
                          to_inline << [script_tag, "<script>\n" + script_contents + "</script>\n"]
         
     | 
| 
       146 
     | 
    
         
            -
                        end
         
     | 
| 
       147 
     | 
    
         
            -
                      end
         
     | 
| 
       148 
     | 
    
         
            -
             
     | 
| 
       149 
     | 
    
         
            -
                      to_inline.each do |(tag, contents)|
         
     | 
| 
       150 
     | 
    
         
            -
                        @body.gsub!(tag, contents)
         
     | 
| 
       151 
     | 
    
         
            -
                      end
         
     | 
| 
       152 
     | 
    
         
            -
                    end
         
     | 
| 
       153 
78 
     | 
    
         
             
                end
         
     | 
| 
       154 
79 
     | 
    
         
             
              end
         
     | 
| 
       155 
80 
     | 
    
         
             
            end
         
     | 
| 
         @@ -0,0 +1,98 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Emcee
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Processors
         
     | 
| 
      
 3 
     | 
    
         
            +
                # This module has method definition that we will include into HtmlProcessor.
         
     | 
| 
      
 4 
     | 
    
         
            +
                #
         
     | 
| 
      
 5 
     | 
    
         
            +
                # We seperate these out to make them easier to test. Testing a class that inherits
         
     | 
| 
      
 6 
     | 
    
         
            +
                # from Sprockets::DirectiveProcessor (which our HtmlProcessor does) is not
         
     | 
| 
      
 7 
     | 
    
         
            +
                # straightforward.
         
     | 
| 
      
 8 
     | 
    
         
            +
                #
         
     | 
| 
      
 9 
     | 
    
         
            +
                module Includes
         
     | 
| 
      
 10 
     | 
    
         
            +
                  # Match an html import tag.
         
     | 
| 
      
 11 
     | 
    
         
            +
                  #
         
     | 
| 
      
 12 
     | 
    
         
            +
                  #   <link rel="import" href="assets/example.html">
         
     | 
| 
      
 13 
     | 
    
         
            +
                  #
         
     | 
| 
      
 14 
     | 
    
         
            +
                  IMPORT_PATTERN = /^ *<link .*rel=["']import["'].*>$/
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                  # Match a stylesheet link tag.
         
     | 
| 
      
 17 
     | 
    
         
            +
                  #
         
     | 
| 
      
 18 
     | 
    
         
            +
                  #   <link rel="stylesheet" href="assets/example.css">
         
     | 
| 
      
 19 
     | 
    
         
            +
                  #
         
     | 
| 
      
 20 
     | 
    
         
            +
                  STYLESHEET_PATTERN = /^ *<link .*rel=["']stylesheet["'].*>$/
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                  # Match a script tag.
         
     | 
| 
      
 23 
     | 
    
         
            +
                  #
         
     | 
| 
      
 24 
     | 
    
         
            +
                  #   <script src="assets/example.js"></script>
         
     | 
| 
      
 25 
     | 
    
         
            +
                  #
         
     | 
| 
      
 26 
     | 
    
         
            +
                  SCRIPT_PATTERN = /^ *<script .*src=["'].+\.js["']><\/script>$/
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                  # Match the path from the href attribute of an html import or stylesheet
         
     | 
| 
      
 29 
     | 
    
         
            +
                  # include tag. Captures the actual path.
         
     | 
| 
      
 30 
     | 
    
         
            +
                  #
         
     | 
| 
      
 31 
     | 
    
         
            +
                  #   href="/assets/example.css"
         
     | 
| 
      
 32 
     | 
    
         
            +
                  #
         
     | 
| 
      
 33 
     | 
    
         
            +
                  HREF_PATH_PATTERN = /href=["'](?<path>[\w\.\/-]+)["']/
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                  # Match the source path from a script tag. Captures the actual path.
         
     | 
| 
      
 36 
     | 
    
         
            +
                  #
         
     | 
| 
      
 37 
     | 
    
         
            +
                  #   src="/assets/example.js"
         
     | 
| 
      
 38 
     | 
    
         
            +
                  #
         
     | 
| 
      
 39 
     | 
    
         
            +
                  SRC_PATH_PATTERN = /src=["'](?<path>[\w\.\/-]+)["']/
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
                  # Return a file's contents as text. This is split out as a method so that
         
     | 
| 
      
 42 
     | 
    
         
            +
                  # we can test the other methods in this module without actually reading from
         
     | 
| 
      
 43 
     | 
    
         
            +
                  # the filesystem.
         
     | 
| 
      
 44 
     | 
    
         
            +
                  def read_file(path)
         
     | 
| 
      
 45 
     | 
    
         
            +
                    File.read(path)
         
     | 
| 
      
 46 
     | 
    
         
            +
                  end
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                  # Scan the body for html imports. If any are found, tell sprockets to
         
     | 
| 
      
 49 
     | 
    
         
            +
                  # require their files like we would for a directive. Then remove the import.
         
     | 
| 
      
 50 
     | 
    
         
            +
                  def process_imports(body, context, directory)
         
     | 
| 
      
 51 
     | 
    
         
            +
                    body.scan(IMPORT_PATTERN) do |import_tag|
         
     | 
| 
      
 52 
     | 
    
         
            +
                      if path = import_tag[HREF_PATH_PATTERN, :path]
         
     | 
| 
      
 53 
     | 
    
         
            +
                        absolute_path = File.absolute_path(path, directory)
         
     | 
| 
      
 54 
     | 
    
         
            +
                        context.require_asset(absolute_path)
         
     | 
| 
      
 55 
     | 
    
         
            +
                      end
         
     | 
| 
      
 56 
     | 
    
         
            +
                    end
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
                    body.gsub(IMPORT_PATTERN, "")
         
     | 
| 
      
 59 
     | 
    
         
            +
                  end
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
                  # Scan the body for external stylesheet references. If any are found,
         
     | 
| 
      
 62 
     | 
    
         
            +
                  # inline the files in place of the references.
         
     | 
| 
      
 63 
     | 
    
         
            +
                  def process_stylesheets(body, directory)
         
     | 
| 
      
 64 
     | 
    
         
            +
                    to_inline = []
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
                    body.scan(STYLESHEET_PATTERN) do |stylesheet_tag|
         
     | 
| 
      
 67 
     | 
    
         
            +
                      if path = stylesheet_tag[HREF_PATH_PATTERN, :path]
         
     | 
| 
      
 68 
     | 
    
         
            +
                        absolute_path = File.absolute_path(path, directory)
         
     | 
| 
      
 69 
     | 
    
         
            +
                        stylesheet_contents = read_file(absolute_path)
         
     | 
| 
      
 70 
     | 
    
         
            +
                        to_inline << [stylesheet_tag, "<style>" + stylesheet_contents + "</style>"]
         
     | 
| 
      
 71 
     | 
    
         
            +
                      end
         
     | 
| 
      
 72 
     | 
    
         
            +
                    end
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
                    to_inline.reduce(body) do |output, (tag, contents)|
         
     | 
| 
      
 75 
     | 
    
         
            +
                      output.gsub(tag, contents)
         
     | 
| 
      
 76 
     | 
    
         
            +
                    end
         
     | 
| 
      
 77 
     | 
    
         
            +
                  end
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
                  # Scan the body for external script references. If any are found, inline
         
     | 
| 
      
 80 
     | 
    
         
            +
                  # the files in place of the references.
         
     | 
| 
      
 81 
     | 
    
         
            +
                  def process_scripts(body, directory)
         
     | 
| 
      
 82 
     | 
    
         
            +
                    to_inline = []
         
     | 
| 
      
 83 
     | 
    
         
            +
             
     | 
| 
      
 84 
     | 
    
         
            +
                    body.scan(SCRIPT_PATTERN) do |script_tag|
         
     | 
| 
      
 85 
     | 
    
         
            +
                      if path = script_tag[SRC_PATH_PATTERN, :path]
         
     | 
| 
      
 86 
     | 
    
         
            +
                        absolute_path = File.absolute_path(path, directory)
         
     | 
| 
      
 87 
     | 
    
         
            +
                        script_contents = read_file(absolute_path)
         
     | 
| 
      
 88 
     | 
    
         
            +
                        to_inline << [script_tag, "<script>" + script_contents + "</script>"]
         
     | 
| 
      
 89 
     | 
    
         
            +
                      end
         
     | 
| 
      
 90 
     | 
    
         
            +
                    end
         
     | 
| 
      
 91 
     | 
    
         
            +
             
     | 
| 
      
 92 
     | 
    
         
            +
                    to_inline.reduce(body) do |output, (tag, contents)|
         
     | 
| 
      
 93 
     | 
    
         
            +
                      output.gsub(tag, contents)
         
     | 
| 
      
 94 
     | 
    
         
            +
                    end
         
     | 
| 
      
 95 
     | 
    
         
            +
                  end
         
     | 
| 
      
 96 
     | 
    
         
            +
                end
         
     | 
| 
      
 97 
     | 
    
         
            +
              end
         
     | 
| 
      
 98 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/emcee/railtie.rb
    CHANGED
    
    
    
        data/lib/emcee/version.rb
    CHANGED
    
    
    
        data/test/compressors_test.rb
    CHANGED
    
    | 
         @@ -1,4 +1,4 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require ' 
     | 
| 
      
 1 
     | 
    
         
            +
            require 'test_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            class CompressorsTest < ActiveSupport::TestCase
         
     | 
| 
       4 
4 
     | 
    
         
             
              setup do
         
     | 
| 
         @@ -6,36 +6,80 @@ class CompressorsTest < ActiveSupport::TestCase 
     | 
|
| 
       6 
6 
     | 
    
         
             
              end
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
8 
     | 
    
         
             
              test "compressor should remove html comments" do
         
     | 
| 
       9 
     | 
    
         
            -
                content =  
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
      
 9 
     | 
    
         
            +
                content = %q{
         
     | 
| 
      
 10 
     | 
    
         
            +
                  <!--
         
     | 
| 
      
 11 
     | 
    
         
            +
                    What will we do with all
         
     | 
| 
      
 12 
     | 
    
         
            +
                    of these html comments?
         
     | 
| 
      
 13 
     | 
    
         
            +
                  -->
         
     | 
| 
      
 14 
     | 
    
         
            +
                  <span>The span to end all spans</span>
         
     | 
| 
      
 15 
     | 
    
         
            +
                }
         
     | 
| 
      
 16 
     | 
    
         
            +
                assert_equal "\n" + @compressor.compress(content), %q{
         
     | 
| 
      
 17 
     | 
    
         
            +
                  <span>The span to end all spans</span>
         
     | 
| 
      
 18 
     | 
    
         
            +
                }
         
     | 
| 
       11 
19 
     | 
    
         
             
              end
         
     | 
| 
       12 
20 
     | 
    
         | 
| 
       13 
21 
     | 
    
         
             
              test "compressor should remove multi-line javascript comments" do
         
     | 
| 
       14 
     | 
    
         
            -
                content =  
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
      
 22 
     | 
    
         
            +
                content = %q{
         
     | 
| 
      
 23 
     | 
    
         
            +
                  <script>
         
     | 
| 
      
 24 
     | 
    
         
            +
                    /*
         
     | 
| 
      
 25 
     | 
    
         
            +
                    Here are some comments that
         
     | 
| 
      
 26 
     | 
    
         
            +
                    go over many, many lines.
         
     | 
| 
      
 27 
     | 
    
         
            +
                    */
         
     | 
| 
      
 28 
     | 
    
         
            +
                  </script>
         
     | 
| 
      
 29 
     | 
    
         
            +
                }
         
     | 
| 
      
 30 
     | 
    
         
            +
                assert_equal "\n" + @compressor.compress(content), %q{
         
     | 
| 
      
 31 
     | 
    
         
            +
                  <script>
         
     | 
| 
      
 32 
     | 
    
         
            +
                  </script>
         
     | 
| 
      
 33 
     | 
    
         
            +
                }
         
     | 
| 
       16 
34 
     | 
    
         
             
              end
         
     | 
| 
       17 
35 
     | 
    
         | 
| 
       18 
36 
     | 
    
         
             
              test "compressor should remove single-line javascript comments" do
         
     | 
| 
       19 
     | 
    
         
            -
                content =  
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
      
 37 
     | 
    
         
            +
                content = %q{
         
     | 
| 
      
 38 
     | 
    
         
            +
                  <script>
         
     | 
| 
      
 39 
     | 
    
         
            +
                    // Here is a comment.
         
     | 
| 
      
 40 
     | 
    
         
            +
                    // Here is another coment.
         
     | 
| 
      
 41 
     | 
    
         
            +
                  </script>
         
     | 
| 
      
 42 
     | 
    
         
            +
                }
         
     | 
| 
      
 43 
     | 
    
         
            +
                assert_equal "\n" + @compressor.compress(content), %q{
         
     | 
| 
      
 44 
     | 
    
         
            +
                  <script>
         
     | 
| 
      
 45 
     | 
    
         
            +
                  </script>
         
     | 
| 
      
 46 
     | 
    
         
            +
                }
         
     | 
| 
       21 
47 
     | 
    
         
             
              end
         
     | 
| 
       22 
48 
     | 
    
         | 
| 
       23 
49 
     | 
    
         
             
              test "compressor should remove css comments" do
         
     | 
| 
       24 
50 
     | 
    
         
             
                content = %q{
         
     | 
| 
       25 
     | 
    
         
            -
            <style>
         
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
            </style>
         
     | 
| 
       33 
     | 
    
         
            -
            }
         
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
      
 51 
     | 
    
         
            +
                  <style>
         
     | 
| 
      
 52 
     | 
    
         
            +
                    h1 {
         
     | 
| 
      
 53 
     | 
    
         
            +
                      /*
         
     | 
| 
      
 54 
     | 
    
         
            +
                      Make it pink
         
     | 
| 
      
 55 
     | 
    
         
            +
                      */
         
     | 
| 
      
 56 
     | 
    
         
            +
                      color: pink;
         
     | 
| 
      
 57 
     | 
    
         
            +
                    }
         
     | 
| 
      
 58 
     | 
    
         
            +
                  </style>
         
     | 
| 
      
 59 
     | 
    
         
            +
                }
         
     | 
| 
      
 60 
     | 
    
         
            +
                assert_equal "\n" + @compressor.compress(content), %q{
         
     | 
| 
      
 61 
     | 
    
         
            +
                  <style>
         
     | 
| 
      
 62 
     | 
    
         
            +
                    h1 {
         
     | 
| 
      
 63 
     | 
    
         
            +
                      color: pink;
         
     | 
| 
      
 64 
     | 
    
         
            +
                    }
         
     | 
| 
      
 65 
     | 
    
         
            +
                  </style>
         
     | 
| 
      
 66 
     | 
    
         
            +
                }
         
     | 
| 
       35 
67 
     | 
    
         
             
              end
         
     | 
| 
       36 
68 
     | 
    
         | 
| 
       37 
69 
     | 
    
         
             
              test "compressor should remove blank lines" do
         
     | 
| 
       38 
     | 
    
         
            -
                content =  
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
      
 70 
     | 
    
         
            +
                content = %q{
         
     | 
| 
      
 71 
     | 
    
         
            +
                  <p>test</p>
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
                  <p>oh yeah</p>
         
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
      
 77 
     | 
    
         
            +
                  <p>test</p>
         
     | 
| 
      
 78 
     | 
    
         
            +
                }
         
     | 
| 
      
 79 
     | 
    
         
            +
                assert_equal "\n" + @compressor.compress(content), %q{
         
     | 
| 
      
 80 
     | 
    
         
            +
                  <p>test</p>
         
     | 
| 
      
 81 
     | 
    
         
            +
                  <p>oh yeah</p>
         
     | 
| 
      
 82 
     | 
    
         
            +
                  <p>test</p>
         
     | 
| 
      
 83 
     | 
    
         
            +
                }
         
     | 
| 
       40 
84 
     | 
    
         
             
              end
         
     | 
| 
       41 
85 
     | 
    
         
             
            end
         
     | 
| 
         @@ -10,3 +10,204 @@ Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2014-03-04 20:48:1 
     | 
|
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
            Started GET "/assets/application.js?body=1" for 127.0.0.1 at 2014-03-04 20:48:17 -0500
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            Started GET "/" for 127.0.0.1 at 2014-03-05 07:08:48 -0500
         
     | 
| 
      
 16 
     | 
    
         
            +
            Processing by DummyController#index as HTML
         
     | 
| 
      
 17 
     | 
    
         
            +
              Rendered dummy/index.html.erb within layouts/application (0.9ms)
         
     | 
| 
      
 18 
     | 
    
         
            +
            Completed 200 OK in 62ms (Views: 61.7ms | ActiveRecord: 0.0ms)
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
            Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2014-03-05 07:08:48 -0500
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            Started GET "/assets/application.js?body=1" for 127.0.0.1 at 2014-03-05 07:08:48 -0500
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            Started GET "/assets/test/test3.html?body=1" for 127.0.0.1 at 2014-03-05 07:08:56 -0500
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
            Started GET "/assets/test/test2.html?body=1" for 127.0.0.1 at 2014-03-05 07:09:06 -0500
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
            Started GET "/assets/test/test2.html?body=1" for 127.0.0.1 at 2014-03-05 07:09:08 -0500
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
            Started GET "/" for 127.0.0.1 at 2014-03-05 07:10:19 -0500
         
     | 
| 
      
 37 
     | 
    
         
            +
            Processing by DummyController#index as HTML
         
     | 
| 
      
 38 
     | 
    
         
            +
              Rendered dummy/index.html.erb within layouts/application (0.1ms)
         
     | 
| 
      
 39 
     | 
    
         
            +
            Completed 200 OK in 38ms (Views: 38.2ms | ActiveRecord: 0.0ms)
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
            Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2014-03-05 07:10:19 -0500
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
            Started GET "/assets/application.js?body=1" for 127.0.0.1 at 2014-03-05 07:10:19 -0500
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
            Started GET "/assets/test/test3.html?body=1" for 127.0.0.1 at 2014-03-05 07:10:22 -0500
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
            Started GET "/assets/test/test3.css" for 127.0.0.1 at 2014-03-05 07:10:23 -0500
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
            Started GET "/" for 127.0.0.1 at 2014-03-05 07:29:57 -0500
         
     | 
| 
      
 55 
     | 
    
         
            +
            Processing by DummyController#index as HTML
         
     | 
| 
      
 56 
     | 
    
         
            +
              Rendered dummy/index.html.erb within layouts/application (1.1ms)
         
     | 
| 
      
 57 
     | 
    
         
            +
            Completed 200 OK in 88ms (Views: 87.9ms | ActiveRecord: 0.0ms)
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
            Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2014-03-05 07:29:58 -0500
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
            Started GET "/assets/application.js?body=1" for 127.0.0.1 at 2014-03-05 07:29:58 -0500
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
            Started GET "/" for 127.0.0.1 at 2014-03-05 07:30:10 -0500
         
     | 
| 
      
 67 
     | 
    
         
            +
            Processing by DummyController#index as HTML
         
     | 
| 
      
 68 
     | 
    
         
            +
              Rendered dummy/index.html.erb within layouts/application (0.1ms)
         
     | 
| 
      
 69 
     | 
    
         
            +
            Completed 200 OK in 4ms (Views: 4.2ms | ActiveRecord: 0.0ms)
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
            Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2014-03-05 07:30:10 -0500
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
            Started GET "/assets/application.js?body=1" for 127.0.0.1 at 2014-03-05 07:30:10 -0500
         
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
            Started GET "/assets/test1.html?body=1" for 127.0.0.1 at 2014-03-05 07:30:16 -0500
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
      
 80 
     | 
    
         
            +
             
     | 
| 
      
 81 
     | 
    
         
            +
            Started GET "/assets/test/test2.html?body=1" for 127.0.0.1 at 2014-03-05 07:30:26 -0500
         
     | 
| 
      
 82 
     | 
    
         
            +
             
     | 
| 
      
 83 
     | 
    
         
            +
             
     | 
| 
      
 84 
     | 
    
         
            +
            Started GET "/assets/test/test3.html?body=1" for 127.0.0.1 at 2014-03-05 07:30:36 -0500
         
     | 
| 
      
 85 
     | 
    
         
            +
             
     | 
| 
      
 86 
     | 
    
         
            +
             
     | 
| 
      
 87 
     | 
    
         
            +
            Started GET "/assets/test/test3.css" for 127.0.0.1 at 2014-03-05 07:30:37 -0500
         
     | 
| 
      
 88 
     | 
    
         
            +
             
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
      
 90 
     | 
    
         
            +
            Started GET "/assets/test4.html?body=1" for 127.0.0.1 at 2014-03-05 07:30:48 -0500
         
     | 
| 
      
 91 
     | 
    
         
            +
             
     | 
| 
      
 92 
     | 
    
         
            +
             
     | 
| 
      
 93 
     | 
    
         
            +
            Started GET "/" for 127.0.0.1 at 2014-03-05 07:31:48 -0500
         
     | 
| 
      
 94 
     | 
    
         
            +
            Processing by DummyController#index as HTML
         
     | 
| 
      
 95 
     | 
    
         
            +
              Rendered dummy/index.html.erb within layouts/application (0.0ms)
         
     | 
| 
      
 96 
     | 
    
         
            +
            Completed 200 OK in 4ms (Views: 3.9ms | ActiveRecord: 0.0ms)
         
     | 
| 
      
 97 
     | 
    
         
            +
             
     | 
| 
      
 98 
     | 
    
         
            +
             
     | 
| 
      
 99 
     | 
    
         
            +
            Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2014-03-05 07:31:49 -0500
         
     | 
| 
      
 100 
     | 
    
         
            +
             
     | 
| 
      
 101 
     | 
    
         
            +
             
     | 
| 
      
 102 
     | 
    
         
            +
            Started GET "/assets/application.js?body=1" for 127.0.0.1 at 2014-03-05 07:31:49 -0500
         
     | 
| 
      
 103 
     | 
    
         
            +
             
     | 
| 
      
 104 
     | 
    
         
            +
             
     | 
| 
      
 105 
     | 
    
         
            +
            Started GET "/assets/test/test3.html?body=1" for 127.0.0.1 at 2014-03-05 07:31:51 -0500
         
     | 
| 
      
 106 
     | 
    
         
            +
             
     | 
| 
      
 107 
     | 
    
         
            +
             
     | 
| 
      
 108 
     | 
    
         
            +
            Started GET "/assets/test/test3.css" for 127.0.0.1 at 2014-03-05 07:31:51 -0500
         
     | 
| 
      
 109 
     | 
    
         
            +
             
     | 
| 
      
 110 
     | 
    
         
            +
             
     | 
| 
      
 111 
     | 
    
         
            +
            Started GET "/" for 127.0.0.1 at 2014-03-05 07:32:19 -0500
         
     | 
| 
      
 112 
     | 
    
         
            +
            Processing by DummyController#index as HTML
         
     | 
| 
      
 113 
     | 
    
         
            +
              Rendered dummy/index.html.erb within layouts/application (1.0ms)
         
     | 
| 
      
 114 
     | 
    
         
            +
            Completed 200 OK in 46ms (Views: 45.5ms | ActiveRecord: 0.0ms)
         
     | 
| 
      
 115 
     | 
    
         
            +
             
     | 
| 
      
 116 
     | 
    
         
            +
             
     | 
| 
      
 117 
     | 
    
         
            +
            Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2014-03-05 07:32:19 -0500
         
     | 
| 
      
 118 
     | 
    
         
            +
             
     | 
| 
      
 119 
     | 
    
         
            +
             
     | 
| 
      
 120 
     | 
    
         
            +
            Started GET "/assets/application.js?body=1" for 127.0.0.1 at 2014-03-05 07:32:19 -0500
         
     | 
| 
      
 121 
     | 
    
         
            +
             
     | 
| 
      
 122 
     | 
    
         
            +
             
     | 
| 
      
 123 
     | 
    
         
            +
            Started GET "/assets/test/test3.html?body=1" for 127.0.0.1 at 2014-03-05 07:32:21 -0500
         
     | 
| 
      
 124 
     | 
    
         
            +
             
     | 
| 
      
 125 
     | 
    
         
            +
             
     | 
| 
      
 126 
     | 
    
         
            +
            Started GET "/assets/test/test3.css" for 127.0.0.1 at 2014-03-05 07:32:21 -0500
         
     | 
| 
      
 127 
     | 
    
         
            +
             
     | 
| 
      
 128 
     | 
    
         
            +
             
     | 
| 
      
 129 
     | 
    
         
            +
            Started GET "/assets/test/test3.css" for 127.0.0.1 at 2014-03-05 07:32:25 -0500
         
     | 
| 
      
 130 
     | 
    
         
            +
             
     | 
| 
      
 131 
     | 
    
         
            +
             
     | 
| 
      
 132 
     | 
    
         
            +
            Started GET "/" for 127.0.0.1 at 2014-03-05 07:32:45 -0500
         
     | 
| 
      
 133 
     | 
    
         
            +
            Processing by DummyController#index as HTML
         
     | 
| 
      
 134 
     | 
    
         
            +
              Rendered dummy/index.html.erb within layouts/application (1.0ms)
         
     | 
| 
      
 135 
     | 
    
         
            +
            Completed 200 OK in 65ms (Views: 65.0ms | ActiveRecord: 0.0ms)
         
     | 
| 
      
 136 
     | 
    
         
            +
             
     | 
| 
      
 137 
     | 
    
         
            +
             
     | 
| 
      
 138 
     | 
    
         
            +
            Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2014-03-05 07:32:45 -0500
         
     | 
| 
      
 139 
     | 
    
         
            +
             
     | 
| 
      
 140 
     | 
    
         
            +
             
     | 
| 
      
 141 
     | 
    
         
            +
            Started GET "/assets/application.js?body=1" for 127.0.0.1 at 2014-03-05 07:32:45 -0500
         
     | 
| 
      
 142 
     | 
    
         
            +
             
     | 
| 
      
 143 
     | 
    
         
            +
             
     | 
| 
      
 144 
     | 
    
         
            +
            Started GET "/assets/test/test3.html?body=1" for 127.0.0.1 at 2014-03-05 07:32:48 -0500
         
     | 
| 
      
 145 
     | 
    
         
            +
             
     | 
| 
      
 146 
     | 
    
         
            +
             
     | 
| 
      
 147 
     | 
    
         
            +
            Started GET "/" for 127.0.0.1 at 2014-03-05 07:38:40 -0500
         
     | 
| 
      
 148 
     | 
    
         
            +
            Processing by DummyController#index as HTML
         
     | 
| 
      
 149 
     | 
    
         
            +
              Rendered dummy/index.html.erb within layouts/application (0.9ms)
         
     | 
| 
      
 150 
     | 
    
         
            +
            Completed 200 OK in 45ms (Views: 44.3ms | ActiveRecord: 0.0ms)
         
     | 
| 
      
 151 
     | 
    
         
            +
             
     | 
| 
      
 152 
     | 
    
         
            +
             
     | 
| 
      
 153 
     | 
    
         
            +
            Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2014-03-05 07:38:41 -0500
         
     | 
| 
      
 154 
     | 
    
         
            +
             
     | 
| 
      
 155 
     | 
    
         
            +
             
     | 
| 
      
 156 
     | 
    
         
            +
            Started GET "/assets/application.js?body=1" for 127.0.0.1 at 2014-03-05 07:38:41 -0500
         
     | 
| 
      
 157 
     | 
    
         
            +
             
     | 
| 
      
 158 
     | 
    
         
            +
             
     | 
| 
      
 159 
     | 
    
         
            +
            Started GET "/assets/application.html?body=1" for 127.0.0.1 at 2014-03-05 07:38:48 -0500
         
     | 
| 
      
 160 
     | 
    
         
            +
             
     | 
| 
      
 161 
     | 
    
         
            +
             
     | 
| 
      
 162 
     | 
    
         
            +
            Started GET "/assets/test1.html?body=1" for 127.0.0.1 at 2014-03-05 07:38:56 -0500
         
     | 
| 
      
 163 
     | 
    
         
            +
             
     | 
| 
      
 164 
     | 
    
         
            +
             
     | 
| 
      
 165 
     | 
    
         
            +
            Started GET "/assets/test/test2.html?body=1" for 127.0.0.1 at 2014-03-05 07:39:03 -0500
         
     | 
| 
      
 166 
     | 
    
         
            +
             
     | 
| 
      
 167 
     | 
    
         
            +
             
     | 
| 
      
 168 
     | 
    
         
            +
            Started GET "/assets/test/test3.html?body=1" for 127.0.0.1 at 2014-03-05 07:39:09 -0500
         
     | 
| 
      
 169 
     | 
    
         
            +
             
     | 
| 
      
 170 
     | 
    
         
            +
             
     | 
| 
      
 171 
     | 
    
         
            +
            Started GET "/assets/test4.html?body=1" for 127.0.0.1 at 2014-03-05 07:39:15 -0500
         
     | 
| 
      
 172 
     | 
    
         
            +
             
     | 
| 
      
 173 
     | 
    
         
            +
             
     | 
| 
      
 174 
     | 
    
         
            +
            Started GET "/" for 127.0.0.1 at 2014-03-05 09:00:08 -0500
         
     | 
| 
      
 175 
     | 
    
         
            +
            Processing by DummyController#index as HTML
         
     | 
| 
      
 176 
     | 
    
         
            +
              Rendered dummy/index.html.erb within layouts/application (0.9ms)
         
     | 
| 
      
 177 
     | 
    
         
            +
            Completed 200 OK in 44ms (Views: 44.0ms | ActiveRecord: 0.0ms)
         
     | 
| 
      
 178 
     | 
    
         
            +
             
     | 
| 
      
 179 
     | 
    
         
            +
             
     | 
| 
      
 180 
     | 
    
         
            +
            Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2014-03-05 09:00:08 -0500
         
     | 
| 
      
 181 
     | 
    
         
            +
             
     | 
| 
      
 182 
     | 
    
         
            +
             
     | 
| 
      
 183 
     | 
    
         
            +
            Started GET "/assets/application.js?body=1" for 127.0.0.1 at 2014-03-05 09:00:08 -0500
         
     | 
| 
      
 184 
     | 
    
         
            +
             
     | 
| 
      
 185 
     | 
    
         
            +
             
     | 
| 
      
 186 
     | 
    
         
            +
            Started GET "/assets/application.html?body=1" for 127.0.0.1 at 2014-03-05 09:00:15 -0500
         
     | 
| 
      
 187 
     | 
    
         
            +
             
     | 
| 
      
 188 
     | 
    
         
            +
             
     | 
| 
      
 189 
     | 
    
         
            +
            Started GET "/assets/test1.html?body=1" for 127.0.0.1 at 2014-03-05 09:00:22 -0500
         
     | 
| 
      
 190 
     | 
    
         
            +
             
     | 
| 
      
 191 
     | 
    
         
            +
             
     | 
| 
      
 192 
     | 
    
         
            +
            Started GET "/assets/test/test2.html?body=1" for 127.0.0.1 at 2014-03-05 09:00:28 -0500
         
     | 
| 
      
 193 
     | 
    
         
            +
             
     | 
| 
      
 194 
     | 
    
         
            +
             
     | 
| 
      
 195 
     | 
    
         
            +
            Started GET "/assets/test/test3.html?body=1" for 127.0.0.1 at 2014-03-05 09:00:38 -0500
         
     | 
| 
      
 196 
     | 
    
         
            +
             
     | 
| 
      
 197 
     | 
    
         
            +
             
     | 
| 
      
 198 
     | 
    
         
            +
            Started GET "/assets/test4.html?body=1" for 127.0.0.1 at 2014-03-05 09:00:53 -0500
         
     | 
| 
      
 199 
     | 
    
         
            +
             
     | 
| 
      
 200 
     | 
    
         
            +
             
     | 
| 
      
 201 
     | 
    
         
            +
            Started GET "/" for 127.0.0.1 at 2014-03-05 09:02:08 -0500
         
     | 
| 
      
 202 
     | 
    
         
            +
            Processing by DummyController#index as HTML
         
     | 
| 
      
 203 
     | 
    
         
            +
              Rendered dummy/index.html.erb within layouts/application (0.1ms)
         
     | 
| 
      
 204 
     | 
    
         
            +
            Completed 200 OK in 32ms (Views: 31.5ms | ActiveRecord: 0.0ms)
         
     | 
| 
      
 205 
     | 
    
         
            +
             
     | 
| 
      
 206 
     | 
    
         
            +
             
     | 
| 
      
 207 
     | 
    
         
            +
            Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2014-03-05 09:02:08 -0500
         
     | 
| 
      
 208 
     | 
    
         
            +
             
     | 
| 
      
 209 
     | 
    
         
            +
             
     | 
| 
      
 210 
     | 
    
         
            +
            Started GET "/assets/application.js?body=1" for 127.0.0.1 at 2014-03-05 09:02:08 -0500
         
     | 
| 
      
 211 
     | 
    
         
            +
             
     | 
| 
      
 212 
     | 
    
         
            +
             
     | 
| 
      
 213 
     | 
    
         
            +
            Started GET "/assets/test4.html?body=1" for 127.0.0.1 at 2014-03-05 09:02:13 -0500
         
     |