sprockets 3.0.0.beta.6 → 3.0.0.beta.7

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 (60) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +171 -100
  3. data/lib/rake/sprocketstask.rb +2 -2
  4. data/lib/sprockets.rb +69 -63
  5. data/lib/sprockets/asset.rb +2 -61
  6. data/lib/sprockets/autoload_processor.rb +48 -0
  7. data/lib/sprockets/base.rb +4 -6
  8. data/lib/sprockets/bower.rb +8 -5
  9. data/lib/sprockets/bundle.rb +9 -13
  10. data/lib/sprockets/cache.rb +19 -14
  11. data/lib/sprockets/cache/file_store.rb +2 -1
  12. data/lib/sprockets/cached_environment.rb +15 -68
  13. data/lib/sprockets/closure_compressor.rb +17 -4
  14. data/lib/sprockets/coffee_script_processor.rb +26 -0
  15. data/lib/sprockets/coffee_script_template.rb +3 -20
  16. data/lib/sprockets/compressing.rb +10 -4
  17. data/lib/sprockets/configuration.rb +21 -37
  18. data/lib/sprockets/context.rb +37 -67
  19. data/lib/sprockets/dependencies.rb +73 -0
  20. data/lib/sprockets/digest_utils.rb +8 -2
  21. data/lib/sprockets/directive_processor.rb +122 -165
  22. data/lib/sprockets/eco_processor.rb +32 -0
  23. data/lib/sprockets/eco_template.rb +3 -26
  24. data/lib/sprockets/ejs_processor.rb +31 -0
  25. data/lib/sprockets/ejs_template.rb +3 -25
  26. data/lib/sprockets/encoding_utils.rb +9 -21
  27. data/lib/sprockets/engines.rb +25 -27
  28. data/lib/sprockets/environment.rb +9 -1
  29. data/lib/sprockets/erb_processor.rb +30 -0
  30. data/lib/sprockets/erb_template.rb +3 -20
  31. data/lib/sprockets/file_reader.rb +15 -0
  32. data/lib/sprockets/http_utils.rb +2 -0
  33. data/lib/sprockets/jst_processor.rb +9 -2
  34. data/lib/sprockets/legacy.rb +212 -3
  35. data/lib/sprockets/legacy_tilt_processor.rb +1 -1
  36. data/lib/sprockets/loader.rb +95 -89
  37. data/lib/sprockets/manifest.rb +23 -59
  38. data/lib/sprockets/mime.rb +28 -41
  39. data/lib/sprockets/path_dependency_utils.rb +76 -0
  40. data/lib/sprockets/path_utils.rb +21 -1
  41. data/lib/sprockets/paths.rb +23 -8
  42. data/lib/sprockets/processing.rb +102 -91
  43. data/lib/sprockets/processor_utils.rb +97 -0
  44. data/lib/sprockets/resolve.rb +110 -97
  45. data/lib/sprockets/sass_cache_store.rb +2 -2
  46. data/lib/sprockets/sass_compressor.rb +17 -4
  47. data/lib/sprockets/sass_functions.rb +2 -2
  48. data/lib/sprockets/sass_importer.rb +2 -2
  49. data/lib/sprockets/sass_processor.rb +305 -0
  50. data/lib/sprockets/sass_template.rb +4 -286
  51. data/lib/sprockets/server.rb +1 -13
  52. data/lib/sprockets/transformers.rb +62 -25
  53. data/lib/sprockets/uglifier_compressor.rb +17 -4
  54. data/lib/sprockets/uri_utils.rb +190 -0
  55. data/lib/sprockets/utils.rb +87 -6
  56. data/lib/sprockets/version.rb +1 -1
  57. data/lib/sprockets/yui_compressor.rb +17 -4
  58. metadata +14 -5
  59. data/lib/sprockets/asset_uri.rb +0 -80
  60. data/lib/sprockets/lazy_processor.rb +0 -15
@@ -1,80 +0,0 @@
1
- require 'uri'
2
-
3
- module Sprockets
4
- module AssetURI
5
- # Internal: Check if String is a valid Asset URI.
6
- #
7
- # str - Possible String asset URI.
8
- #
9
- # Returns true or false.
10
- def self.valid?(str)
11
- # Quick prefix check before attempting a full parse
12
- str.start_with?("file://") && parse(str) ? true : false
13
- rescue URI::InvalidURIError
14
- false
15
- end
16
-
17
- # Internal: Parse Asset URI.
18
- #
19
- # Examples
20
- #
21
- # parse("file:///tmp/js/application.coffee?type=application/javascript")
22
- # # => "/tmp/js/application.coffee", {type: "application/javascript"}
23
- #
24
- # str - String asset URI
25
- #
26
- # Returns String path and Hash of symbolized parameters.
27
- def self.parse(str)
28
- scheme, _, host, port, _, path, _, query, _ = URI.split(str)
29
-
30
- unless scheme == 'file'
31
- raise URI::InvalidURIError, "expected file:// scheme: #{str}"
32
- end
33
-
34
- path = URI::Generic::DEFAULT_PARSER.unescape(path)
35
- path.force_encoding(Encoding::UTF_8)
36
-
37
- # Hack for parsing Windows "file://C:/Users/IEUser" paths
38
- if host && port == ""
39
- path = "#{host}:#{path}"
40
- end
41
-
42
- params = query.to_s.split('&').reduce({}) do |h, p|
43
- k, v = p.split('=', 2)
44
- h.merge(k.to_sym => v || true)
45
- end
46
-
47
- return path, params
48
- end
49
-
50
- # Internal: Build Asset URI.
51
- #
52
- # Examples
53
- #
54
- # build("/tmp/js/application.coffee", type: "application/javascript")
55
- # # => "file:///tmp/js/application.coffee?type=application/javascript"
56
- #
57
- # path - String file path
58
- # params - Hash of optional parameters
59
- #
60
- # Returns String URI.
61
- def self.build(path, params = {})
62
- query = []
63
- params.each do |key, value|
64
- case value
65
- when String
66
- query << "#{key}=#{value}"
67
- when TrueClass
68
- query << "#{key}"
69
- when FalseClass, NilClass
70
- else
71
- raise TypeError, "unexpected type: #{value.class}"
72
- end
73
- end
74
-
75
- uri = "file://#{URI::Generic::DEFAULT_PARSER.escape(path)}"
76
- uri << "?#{query.join('&')}" if query.any?
77
- uri
78
- end
79
- end
80
- end
@@ -1,15 +0,0 @@
1
- module Sprockets
2
- # Internal: Used for lazy loading processors.
3
- #
4
- # LazyProcessor.new { CoffeeScriptTemplate }
5
- #
6
- class LazyProcessor
7
- def initialize(&block)
8
- @block = block
9
- end
10
-
11
- def unwrap
12
- @obj ||= @block.call
13
- end
14
- end
15
- end