sprockets 3.0.0.beta.3 → 3.0.0.beta.4

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.
@@ -10,6 +10,16 @@ module Sprockets
10
10
  #
11
11
  attr_reader :transformers
12
12
 
13
+ # Public: Two level mapping of target mime type to source mime type.
14
+ #
15
+ # environment.inverted_transformers
16
+ # # => { 'application/javascript' => {
17
+ # 'text/coffeescript' => ConvertCoffeeScriptToJavaScript
18
+ # }
19
+ # }
20
+ #
21
+ attr_reader :inverted_transformers
22
+
13
23
  # Public: Register a transformer from and to a mime type.
14
24
  #
15
25
  # from - String mime type
@@ -28,9 +38,12 @@ module Sprockets
28
38
  mutate_hash_config(:transformers, from) do |transformers|
29
39
  transformers.merge(to => proc)
30
40
  end
41
+ mutate_hash_config(:inverted_transformers, to) do |transformers|
42
+ transformers.merge(from => proc)
43
+ end
31
44
  end
32
45
 
33
- # Public: Resolve target mime type that the source type should be
46
+ # Internal: Resolve target mime type that the source type should be
34
47
  # transformed to.
35
48
  #
36
49
  # type - String from mime type
@@ -48,10 +61,31 @@ module Sprockets
48
61
  # # => nil
49
62
  #
50
63
  # Returns String mime type or nil is no type satisfied the accept value.
51
- def resolve_transform_type(type, accept = nil)
64
+ def resolve_transform_type(type, accept)
52
65
  find_best_mime_type_match(accept || '*/*', [type].compact + transformers[type].keys)
53
66
  end
54
67
 
68
+ # Internal: Expand accept type list to include possible transformed types.
69
+ #
70
+ # parsed_accepts - Array of accept q values
71
+ #
72
+ # Examples
73
+ #
74
+ # expand_transform_accepts([['application/javascript', 1.0]])
75
+ # # => [['application/javascript', 1.0], ['text/coffeescript', 0.8]]
76
+ #
77
+ # Returns an expanded Array of q values.
78
+ def expand_transform_accepts(parsed_accepts)
79
+ accepts = []
80
+ parsed_accepts.each do |(type, q)|
81
+ accepts.push([type, q])
82
+ inverted_transformers[type].keys.each do |subtype|
83
+ accepts.push([subtype, q * 0.8])
84
+ end
85
+ end
86
+ accepts
87
+ end
88
+
55
89
  # Internal: Find and load transformer by from and to mime type.
56
90
  #
57
91
  # from - String mime type
@@ -1,3 +1,3 @@
1
1
  module Sprockets
2
- VERSION = "3.0.0.beta.3"
2
+ VERSION = "3.0.0.beta.4"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sprockets
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0.beta.3
4
+ version: 3.0.0.beta.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Stephenson
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-10-28 00:00:00.000000000 Z
12
+ date: 2014-11-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rack
@@ -252,8 +252,10 @@ files:
252
252
  - lib/sprockets/legacy.rb
253
253
  - lib/sprockets/legacy_proc_processor.rb
254
254
  - lib/sprockets/legacy_tilt_processor.rb
255
+ - lib/sprockets/loader.rb
255
256
  - lib/sprockets/manifest.rb
256
257
  - lib/sprockets/mime.rb
258
+ - lib/sprockets/path_digest_utils.rb
257
259
  - lib/sprockets/path_utils.rb
258
260
  - lib/sprockets/paths.rb
259
261
  - lib/sprockets/processing.rb