Module: Cosmo::Web::Helpers::Application
- Includes:
- Renderer
- Included in:
- Context
- Defined in:
- lib/cosmo/web/helpers/application.rb
Constant Summary
Constants included
from Renderer
Renderer::ASSETS_ROOT, Renderer::VIEWS_ROOT
Instance Method Summary
collapse
Methods included from Renderer
#no_content, #not_found, #ok, #redirect_to, #serve, #url_for
Instance Method Details
#current_page?(path) ⇒ Boolean
70
71
72
73
74
|
# File 'lib/cosmo/web/helpers/application.rb', line 70
def current_page?(path)
request_path = @request.path_info
request_path = "/" if request_path.empty?
request_path == path
end
|
#elapsed(value) ⇒ Object
38
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/cosmo/web/helpers/application.rb', line 38
def elapsed(value)
elapsed = Time.now.to_i - value.to_i
if elapsed < 60
"#{elapsed}s"
elsif elapsed < 3600
"#{elapsed / 60}m #{elapsed % 60}s"
else
"#{elapsed / 3600}h #{(elapsed % 3600) / 60}m"
end
end
|
17
18
19
20
21
22
23
24
|
# File 'lib/cosmo/web/helpers/application.rb', line 17
def format_bytes(bytes)
b = bytes.to_i
return "0 B" if b.zero?
sizes = %w[B KB MB GB TB]
i = [(Math.log(b) / Math.log(1024)).floor, sizes.size - 1].min
"#{(b / (1024.0**i)).round(2)} #{sizes[i]}"
end
|
26
27
28
|
# File 'lib/cosmo/web/helpers/application.rb', line 26
def format_numbers(num)
num.to_s.reverse.gsub(/(\d{3})(?=\d)/, "\\1,").reverse
end
|
30
31
32
33
34
35
36
|
# File 'lib/cosmo/web/helpers/application.rb', line 30
def format_timestamp(value)
return "N/A" unless value
Time.at(value.to_f).strftime("%Y-%m-%d %H:%M:%S")
rescue StandardError
value.to_s
end
|
#h(value) ⇒ Object
62
63
64
|
# File 'lib/cosmo/web/helpers/application.rb', line 62
def h(value)
Rack::Utils.escape_html(value.to_s)
end
|
#referrer?(path) ⇒ Boolean
76
77
78
79
80
81
82
83
|
# File 'lib/cosmo/web/helpers/application.rb', line 76
def referrer?(path)
referrer_uri = URI(@request.referrer)
referrer_path = referrer_uri.path
script_name = @request.script_name
referrer_path = referrer_path.delete_prefix(script_name) if script_name && !script_name.empty?
referrer_path = "/" if referrer_path.empty?
referrer_path == path
end
|
#render(template, locals = nil) ⇒ Object
11
12
13
14
15
|
# File 'lib/cosmo/web/helpers/application.rb', line 11
def render(template, locals = nil)
defaults = { request: @request }
locals = Hash(locals).merge(defaults)
erb(template, locals)
end
|
#time_until(value) ⇒ Object
50
51
52
53
54
55
56
57
58
59
60
|
# File 'lib/cosmo/web/helpers/application.rb', line 50
def time_until(value)
return "N/A" unless value
diff = value.to_f - Time.now.to_f
return "Ready" if diff <= 0
return "#{diff.to_i}s" if diff < 60
return "#{(diff / 60).to_i}m" if diff < 3_600
return "#{(diff / 3_600).to_i}h" if diff < 86_400
"#{(diff / 86_400).to_i}d"
end
|
#u(value) ⇒ Object
66
67
68
|
# File 'lib/cosmo/web/helpers/application.rb', line 66
def u(value)
Rack::Utils.escape(value.to_s)
end
|