emcee 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
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