jeremyboles-smart-asset-helper 0.2.0 → 0.3.0
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.
- data/lib/asset_manager.rb +29 -12
- data/lib/smart_asset_helper.rb +5 -5
- metadata +2 -2
data/lib/asset_manager.rb
CHANGED
@@ -26,8 +26,8 @@ class AssetManager
|
|
26
26
|
end
|
27
27
|
|
28
28
|
# Automaticly add assets based the controller/action params, if they exsist
|
29
|
-
def auto_add(asset_type,
|
30
|
-
files = self.auto_find(asset_type,
|
29
|
+
def auto_add(asset_type, response)
|
30
|
+
files = self.auto_find(asset_type, response)
|
31
31
|
self.add(asset_type, files)
|
32
32
|
end
|
33
33
|
|
@@ -43,7 +43,7 @@ class AssetManager
|
|
43
43
|
files
|
44
44
|
end
|
45
45
|
|
46
|
-
def required_with_extra(asset_type, extra, auto,
|
46
|
+
def required_with_extra(asset_type, extra, auto, response = nil)
|
47
47
|
files = []
|
48
48
|
self.required(asset_type).each do |file|
|
49
49
|
path = "#{file}-#{extra}"
|
@@ -51,22 +51,26 @@ class AssetManager
|
|
51
51
|
file_path = "#{ASSET_DIR[asset_type]}/#{asset_path}"
|
52
52
|
files << path if File.exists?(file_path)
|
53
53
|
end
|
54
|
-
files += auto_find(asset_type,
|
54
|
+
files += auto_find(asset_type, response, extra) if auto
|
55
55
|
files
|
56
56
|
end
|
57
57
|
|
58
58
|
protected
|
59
59
|
|
60
|
-
def auto_find(asset_type,
|
60
|
+
def auto_find(asset_type, response, extra = '')
|
61
61
|
extra = '-' + extra unless extra.blank?
|
62
|
-
files
|
63
|
-
(
|
64
|
-
|
65
|
-
|
66
|
-
|
62
|
+
files = []
|
63
|
+
possible_assets_for_response(response).each do |asset|
|
64
|
+
prefix = ''
|
65
|
+
(asset).split('/').each do |path|
|
66
|
+
path = prefix + path.gsub(/^_/, '').dasherize
|
67
|
+
RAILS_DEFAULT_LOGGER.debug(path)
|
68
|
+
asset_path = "#{path}#{extra}.#{asset_type}"
|
69
|
+
file_path = "#{ASSET_DIR[asset_type]}/#{asset_path}"
|
67
70
|
|
68
|
-
|
69
|
-
|
71
|
+
files << path + extra if File.exists?(file_path)
|
72
|
+
prefix = path + '/'
|
73
|
+
end
|
70
74
|
end
|
71
75
|
files
|
72
76
|
end
|
@@ -83,6 +87,19 @@ protected
|
|
83
87
|
end.flatten
|
84
88
|
end
|
85
89
|
|
90
|
+
def possible_assets_for_response(response)
|
91
|
+
assets = [
|
92
|
+
response.template.template,
|
93
|
+
response.template.instance_variable_get(:@_first_render),
|
94
|
+
response.template.instance_variable_get(:@_memoized__pick_partial_template).try(:map, &:second)
|
95
|
+
].flatten.compact
|
96
|
+
|
97
|
+
assets.map do |t|
|
98
|
+
RAILS_DEFAULT_LOGGER.debug(t)
|
99
|
+
t.relative_path.gsub('.' + t.format.to_s, '').gsub('.' + t.extension.to_s, '').gsub('app/', '').gsub('views/', '')
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
86
103
|
# Processes the shortcuts
|
87
104
|
def process_shortcuts(asset_type, files)
|
88
105
|
files.flatten.map do |file|
|
data/lib/smart_asset_helper.rb
CHANGED
@@ -22,7 +22,7 @@ module SmartAssetHelper
|
|
22
22
|
options = extract_options(args)
|
23
23
|
assets = include_assets(:js, args, options)
|
24
24
|
javascript = javascript_include_tag(*assets)
|
25
|
-
javascript += ie_assets(:js, args, options[:auto],
|
25
|
+
javascript += ie_assets(:js, args, options[:auto], response) if options[:ie]
|
26
26
|
javascript.gsub("\n", '')
|
27
27
|
end
|
28
28
|
|
@@ -31,7 +31,7 @@ module SmartAssetHelper
|
|
31
31
|
options = extract_options(args)
|
32
32
|
assets = include_assets(:css, args, options)
|
33
33
|
stylesheets = stylesheet_link_tag(*assets)
|
34
|
-
stylesheets += ie_assets(:css, args, options[:auto],
|
34
|
+
stylesheets += ie_assets(:css, args, options[:auto], response) if options[:ie]
|
35
35
|
stylesheets.gsub("\n", '')
|
36
36
|
end
|
37
37
|
|
@@ -58,10 +58,10 @@ private
|
|
58
58
|
options || {}
|
59
59
|
end
|
60
60
|
|
61
|
-
def ie_assets(asset_type, args, auto,
|
61
|
+
def ie_assets(asset_type, args, auto, request_response)
|
62
62
|
ie_assets = ''
|
63
63
|
%w{ 6 7 8 }.each do |v|
|
64
|
-
assets = @_asset_manager.required_with_extra(asset_type, "ie#{v}", auto,
|
64
|
+
assets = @_asset_manager.required_with_extra(asset_type, "ie#{v}", auto, request_response)
|
65
65
|
|
66
66
|
unless assets.blank?
|
67
67
|
assets = case asset_type
|
@@ -77,7 +77,7 @@ private
|
|
77
77
|
|
78
78
|
def include_assets(asset_type, args, options)
|
79
79
|
@_asset_manager.append(asset_type, args) unless args.empty?
|
80
|
-
@_asset_manager.auto_add(asset_type,
|
80
|
+
@_asset_manager.auto_add(asset_type, response) if options[:auto]
|
81
81
|
@_asset_manager.required(asset_type)
|
82
82
|
end
|
83
83
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jeremyboles-smart-asset-helper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Boles
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-05-26 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|