emcee 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. checksums.yaml +4 -4
  2. data/lib/emcee.rb +4 -3
  3. data/lib/emcee/helpers/{action_view.rb → action_view/asset_tag_helper.rb} +0 -11
  4. data/lib/emcee/helpers/action_view/asset_url_helper.rb +15 -0
  5. data/lib/emcee/helpers/{sprockets_compressing.rb → sprockets/compressing_helpers.rb} +4 -1
  6. data/lib/emcee/helpers/{sprockets_view.rb → sprockets/view_helpers.rb} +0 -0
  7. data/lib/emcee/processors/html_processor.rb +2 -0
  8. data/lib/emcee/processors/processor_base.rb +57 -0
  9. data/lib/emcee/processors/processor_imports.rb +19 -0
  10. data/lib/emcee/processors/processor_scripts.rb +27 -0
  11. data/lib/emcee/processors/processor_stylesheets.rb +27 -0
  12. data/lib/emcee/railtie.rb +0 -1
  13. data/lib/emcee/version.rb +1 -1
  14. data/test/controllers_test.rb +21 -0
  15. data/test/dummy/app/controllers/dummy_controller.rb +6 -0
  16. data/test/dummy/config/routes.rb +1 -0
  17. data/test/dummy/log/test.log +12581 -0
  18. data/test/dummy/tmp/cache/assets/test/sprockets/af6ba4ae23c6790e0f474b01ceee8dd9 +0 -0
  19. data/test/dummy/tmp/cache/assets/test/sprockets/cf517b62bd978b748afe38d5beb317de +0 -0
  20. data/test/dummy/tmp/cache/assets/test/sprockets/df6cfcc50da209231a7d9e140e5bafdc +0 -0
  21. data/test/dummy/tmp/cache/assets/test/sprockets/e0949aa3dcdcab5f8b45d30e26f6ddd2 +0 -0
  22. data/test/dummy/tmp/cache/assets/test/sprockets/ffd4adb86602a60c7fcedd5d472166d3 +0 -0
  23. data/test/processors_test.rb +3 -4
  24. metadata +10 -9
  25. data/lib/emcee/processors/processor_includes.rb +0 -98
  26. data/lib/tasks/emcee_tasks.rake +0 -4
  27. data/test/dummy/db/development.sqlite3 +0 -0
@@ -31,7 +31,7 @@ class ProcessorsTest < ActiveSupport::TestCase
31
31
  @processor = ProcessorStub.new
32
32
  @context = ContextStub.new
33
33
  @directory = "/dir"
34
- @body = %Q{
34
+ @body = %q{
35
35
  <link rel="import" href="test.html">
36
36
  <link rel="stylesheet" href="test.css">
37
37
  <script src="test.js"></script>
@@ -45,7 +45,6 @@ class ProcessorsTest < ActiveSupport::TestCase
45
45
  assert_equal "/dir/test.html", @context.assets[0]
46
46
 
47
47
  assert_equal processed, %q{
48
-
49
48
  <link rel="stylesheet" href="test.css">
50
49
  <script src="test.js"></script>
51
50
  <p>test</p>
@@ -56,7 +55,7 @@ class ProcessorsTest < ActiveSupport::TestCase
56
55
  processed = @processor.process_stylesheets(@body, @directory)
57
56
  assert_equal processed, %q{
58
57
  <link rel="import" href="test.html">
59
- <style>/* contents */</style>
58
+ <style>/* contents */</style>
60
59
  <script src="test.js"></script>
61
60
  <p>test</p>
62
61
  }
@@ -67,7 +66,7 @@ class ProcessorsTest < ActiveSupport::TestCase
67
66
  assert_equal processed, %q{
68
67
  <link rel="import" href="test.html">
69
68
  <link rel="stylesheet" href="test.css">
70
- <script>/* contents */</script>
69
+ <script>/* contents */</script>
71
70
  <p>test</p>
72
71
  }
73
72
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: emcee
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Huth
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-05 00:00:00.000000000 Z
11
+ date: 2014-03-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -49,16 +49,19 @@ files:
49
49
  - Rakefile
50
50
  - lib/emcee.rb
51
51
  - lib/emcee/compressors/html_compressor.rb
52
- - lib/emcee/helpers/action_view.rb
53
- - lib/emcee/helpers/sprockets_compressing.rb
54
- - lib/emcee/helpers/sprockets_view.rb
52
+ - lib/emcee/helpers/action_view/asset_tag_helper.rb
53
+ - lib/emcee/helpers/action_view/asset_url_helper.rb
54
+ - lib/emcee/helpers/sprockets/compressing_helpers.rb
55
+ - lib/emcee/helpers/sprockets/view_helpers.rb
55
56
  - lib/emcee/processors/html_processor.rb
56
- - lib/emcee/processors/processor_includes.rb
57
+ - lib/emcee/processors/processor_base.rb
58
+ - lib/emcee/processors/processor_imports.rb
59
+ - lib/emcee/processors/processor_scripts.rb
60
+ - lib/emcee/processors/processor_stylesheets.rb
57
61
  - lib/emcee/railtie.rb
58
62
  - lib/emcee/version.rb
59
63
  - lib/generators/emcee/install/install_generator.rb
60
64
  - lib/generators/emcee/install/templates/application.html
61
- - lib/tasks/emcee_tasks.rake
62
65
  - test/compressors_test.rb
63
66
  - test/controllers_test.rb
64
67
  - test/dummy/README.rdoc
@@ -95,7 +98,6 @@ files:
95
98
  - test/dummy/config/initializers/wrap_parameters.rb
96
99
  - test/dummy/config/locales/en.yml
97
100
  - test/dummy/config/routes.rb
98
- - test/dummy/db/development.sqlite3
99
101
  - test/dummy/db/test.sqlite3
100
102
  - test/dummy/log/development.log
101
103
  - test/dummy/log/test.log
@@ -206,7 +208,6 @@ test_files:
206
208
  - test/dummy/config/locales/en.yml
207
209
  - test/dummy/config/routes.rb
208
210
  - test/dummy/config.ru
209
- - test/dummy/db/development.sqlite3
210
211
  - test/dummy/db/test.sqlite3
211
212
  - test/dummy/log/development.log
212
213
  - test/dummy/log/test.log
@@ -1,98 +0,0 @@
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
@@ -1,4 +0,0 @@
1
- # desc "Explaining what the task does"
2
- # task :emcee do
3
- # # Task goes here
4
- # end
File without changes