/
helpers.rb
71 lines (57 loc) · 1.63 KB
/
helpers.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
module Sinatra
module AssetPack
module Helpers
def css(*args)
show_asset_pack :css, *args
end
def js(*args)
show_asset_pack :js, *args
end
def img(src, options={})
attrs = { :src => image_path(src) }
attrs = attrs.merge(options)
"<img#{HtmlHelpers.kv attrs} />"
end
def image_path(src)
file_path = HtmlHelpers.get_file_uri(src, settings.assets)
if file_path =~ /\A(http|https)\:\/\//
file_path
else
File.join(request.script_name, file_path)
end
end
def show_asset_pack(type, *args)
names = Array.new
while args.first.is_a?(Symbol)
names << args.shift
end
options = args.shift if args.first.is_a?(Hash)
names.map { |name|
show_one_asset_pack type, name, (options || Hash.new)
}.join "\n"
end
def show_one_asset_pack(type, name, options={})
pack = settings.assets.packages["#{name}.#{type}"]
return "" unless pack
if settings.environment.to_sym == :production
pack.to_production_html request.script_name, options
else
pack.to_development_html request.script_name, options
end
end
def asset_filter_css(str)
Css.preproc str, settings.assets
end
def asset_path_for(file, from)
settings.assets.dyn_local_file_for file, from
end
def assets_expires
if settings.assets.expires.nil?
expires 86400*30, :public
else
expires *settings.assets.expires
end
end
end
end
end