emcee 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/lib/emcee/processors/html_processor.rb +9 -84
  3. data/lib/emcee/processors/processor_includes.rb +98 -0
  4. data/lib/emcee/railtie.rb +1 -0
  5. data/lib/emcee/version.rb +1 -1
  6. data/test/compressors_test.rb +63 -19
  7. data/test/dummy/app/assets/elements/application.html +0 -2
  8. data/test/dummy/app/assets/elements/test/test3.css +3 -0
  9. data/test/dummy/app/assets/elements/test/test3.html +1 -0
  10. data/test/dummy/log/development.log +201 -0
  11. data/test/dummy/log/test.log +5815 -0
  12. data/test/dummy/tmp/cache/assets/development/sprockets/01abb54333b8d67888355b2f855692e8 +0 -0
  13. data/test/dummy/tmp/cache/assets/development/sprockets/1e24025f59396708b3bb44543bed32fc +0 -0
  14. data/test/dummy/tmp/cache/assets/development/sprockets/219d0afb67879a67bae32b4fe4c708ac +0 -0
  15. data/test/dummy/tmp/cache/assets/development/sprockets/32cae461a9446107294c8a0230f5080c +0 -0
  16. data/test/dummy/tmp/cache/assets/development/sprockets/4fd1effec4d6579ba9d4f03ed156a15b +0 -0
  17. data/test/dummy/tmp/cache/assets/development/sprockets/63ab3ecb77a01edbed6db1aca4d690fc +0 -0
  18. data/test/dummy/tmp/cache/assets/development/sprockets/6c9d8a21af4539e19a3462e79ac4d70c +0 -0
  19. data/test/dummy/tmp/cache/assets/development/sprockets/a69c3d00e22ad6c0d6ece35c9fd5f316 +0 -0
  20. data/test/dummy/tmp/cache/assets/development/sprockets/af6ba4ae23c6790e0f474b01ceee8dd9 +0 -0
  21. data/test/dummy/tmp/cache/assets/development/sprockets/c04739a2061e8e023568aabaa0e801d2 +0 -0
  22. data/test/dummy/tmp/cache/assets/development/sprockets/cf517b62bd978b748afe38d5beb317de +0 -0
  23. data/test/dummy/tmp/cache/assets/development/sprockets/df6cfcc50da209231a7d9e140e5bafdc +0 -0
  24. data/test/dummy/tmp/cache/assets/development/sprockets/e0949aa3dcdcab5f8b45d30e26f6ddd2 +0 -0
  25. data/test/dummy/tmp/cache/assets/development/sprockets/e1d520d14db311ab6347be6426dac6f5 +0 -0
  26. data/test/dummy/tmp/cache/assets/development/sprockets/ffd4adb86602a60c7fcedd5d472166d3 +0 -0
  27. data/test/dummy/tmp/cache/assets/test/sprockets/1e24025f59396708b3bb44543bed32fc +0 -0
  28. data/test/dummy/tmp/cache/assets/test/sprockets/219d0afb67879a67bae32b4fe4c708ac +0 -0
  29. data/test/dummy/tmp/cache/assets/test/sprockets/32cae461a9446107294c8a0230f5080c +0 -0
  30. data/test/dummy/tmp/cache/assets/test/sprockets/4fd1effec4d6579ba9d4f03ed156a15b +0 -0
  31. data/test/dummy/tmp/cache/assets/test/sprockets/6c9d8a21af4539e19a3462e79ac4d70c +0 -0
  32. data/test/dummy/tmp/cache/assets/test/sprockets/a69c3d00e22ad6c0d6ece35c9fd5f316 +0 -0
  33. data/test/dummy/tmp/cache/assets/test/sprockets/af6ba4ae23c6790e0f474b01ceee8dd9 +0 -0
  34. data/test/dummy/tmp/cache/assets/test/sprockets/cf517b62bd978b748afe38d5beb317de +0 -0
  35. data/test/dummy/tmp/cache/assets/test/sprockets/df6cfcc50da209231a7d9e140e5bafdc +0 -0
  36. data/test/dummy/tmp/cache/assets/test/sprockets/e0949aa3dcdcab5f8b45d30e26f6ddd2 +0 -0
  37. data/test/dummy/tmp/cache/assets/test/sprockets/ffd4adb86602a60c7fcedd5d472166d3 +0 -0
  38. data/test/dummy/vendor/assets/elements/test4.html +1 -0
  39. data/test/dummy/vendor/assets/elements/test4.js +1 -0
  40. data/test/processors_test.rb +74 -0
  41. metadata +8 -5
  42. data/test/dummy/tmp/cache/assets/test/sprockets/070957bfe375a537750196a12d9e6d1a +0 -0
  43. 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: fb57be0dd8aa54269cad7513113aecae19cc050b
4
- data.tar.gz: 5b088d3adeadf5be4fddbc4896d212be3a14aa05
3
+ metadata.gz: 6ef8c2343235af9adfdfca951fce261b485cb8a9
4
+ data.tar.gz: 32286f3d1f8d3ee071d61a8baeb7877029bd63f9
5
5
  SHA512:
6
- metadata.gz: 9b749f99a257f213979bc70167e002e0d818bea8c8760b396a03cd937f2c08f7eda2a54b2a67f7753954331953b218ac75f7e67f53c8a2a1f3e22eef6fa35eb8
7
- data.tar.gz: 8400a030e328ecd2ef69a3dfef0cd13a6a983f07f3c2f2866547ee5477c92492838d11eeba4ecfa91245a9eabaa727a3ece76ad0155a10906e48c81a479482b3
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
@@ -1,3 +1,4 @@
1
+ require "emcee/processors/processor_includes"
1
2
  require "emcee/processors/html_processor"
2
3
  require "emcee/compressors/html_compressor"
3
4
 
data/lib/emcee/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Emcee
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -1,4 +1,4 @@
1
- require 'test_Helper'
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 = "<!--\nHere\nAre\nSome Comments\n-->\n<span>test</span>\n"
10
- assert_equal "<span>test</span>\n", @compressor.compress(content)
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 = "<script>\n/*\nHere\nAre\nA Bunch\nOf Comments\n*/\n</script>\n"
15
- assert_equal "<script>\n</script>\n", @compressor.compress(content)
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 = "<script>\n// Here\n// Are Yet\n// Some More\n// Of The\n// Comments\n</script>\n"
20
- assert_equal "<script>\n</script>\n", @compressor.compress(content)
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
- h1 {
27
- /*
28
- Make it pink
29
- */
30
- color: pink;
31
- }
32
- </style>
33
- }
34
- assert_equal "<style>\n h1 {\n color: pink;\n }\n</style>\n", @compressor.compress(content)
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 = "<p>test</p>\n\n\n\n\n\n<p>oh yeah</p>"
39
- assert_equal "<p>test</p>\n<p>oh yeah</p>", @compressor.compress(content)
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
@@ -5,8 +5,6 @@
5
5
  * Any html files within this directory, lib/assets/elements, or vendor/assets/elements
6
6
  * can be referenced here using a relative path.
7
7
  *
8
- *= require test1
9
- *= require test/test2
10
8
  *= require test4
11
9
  *= require_tree .
12
10
  -->
@@ -0,0 +1,3 @@
1
+ p {
2
+ color: pink;
3
+ }
@@ -1 +1,2 @@
1
+ <link rel="stylesheet" href="test3.css">
1
2
  <p>test3</p>
@@ -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