Page MenuHomeGRNET

No OneTemporary

File Metadata

Created
Sun, May 17, 10:58 AM
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 16438f8..03a5d23 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -1,35 +1,59 @@
module ApplicationHelper
+ TIME_PERIODS = {
+ 1.second => 'second',
+ 1.minute => 'minute',
+ 1.hour => 'hour',
+ 1.day => 'day',
+ 1.week => 'week',
+ 1.month => 'month',
+ 1.year => 'year',
+ }
+
def can_edit?(object)
return true if admin?
return true unless object.respond_to?(:editable?)
object.editable?
end
+ def seconds_to_human(seconds)
+ acc = {}
+ remaining = seconds
+ TIME_PERIODS.to_a.reverse_each do |p, human|
+ period_count, remaining = remaining.divmod(p)
+ acc[human] = period_count if not period_count.zero?
+ end
+
+ acc.map { |singular, count|
+ human = count < 2 ? singular : "#{singular}s"
+ "#{count} #{human}"
+ }.join(', ')
+ end
+
def link_to_edit(*args, &block)
link_to(abbr_glyph(:pencil, 'Edit'), *args, &block)
end
def link_to_destroy(*args, &block)
link_to(abbr_glyph(:remove, 'Remove'), *args, &block)
end
def link_to_enable(*args, &block)
link_to(abbr_glyph(:'eye-close', 'Enable'), *args, &block)
end
def link_to_disable(*args, &block)
link_to(abbr_glyph(:'eye-open', 'Disable'), *args, &block)
end
def glyph(icon)
content_tag(:span, '', class: "glyphicon glyphicon-#{icon}")
end
private
def abbr_glyph(icon, title)
content_tag(:abbr, glyph(icon), title: title)
end
end

Event Timeline