module Rails::Timeago::Helper
Public Instance Methods
timeago_script_tag(**kwargs)
click to toggle source
Return a JavaScript tag to set jQuery timeago locale.
# File lib/rails-timeago/helper.rb, line 80 def timeago_script_tag(**kwargs) javascript_tag("jQuery.timeago.settings.lang=\"#{I18n.locale}\";", **kwargs) if I18n.locale != 'en' end
timeago_tag(time, html_options = {})
click to toggle source
Create a time tag usable for jQuery timeago plugin.
timeago_tag Time.zone.now => "<time datetime="2012-03-10T12:07:07+01:00" title="Sat, 10 Mar 2012 12:07:07 +0100" data-time-ago="2012-03-10T12:07:07+01:00">2012-03-10</time>"
Available options:
- :
nojs
-
Add time ago in words as time tag content instead of absolute time. (default: false)
- :
date_only
-
Only print date as tag content instead of full time. (default: true)
- :
format
-
A time format for localize method used to format static time. (default: :default)
- :
limit
-
Set a limit for time ago tags. All dates before given limit will not be converted. (default: 4.days.ago)
- :
force
-
Force time ago tag ignoring limit option. (default: false)
- :
default
-
String that will be returned if time is nil. (default: ‘-’)
All other options will be given as options to tag helper.
# File lib/rails-timeago/helper.rb, line 43 def timeago_tag(time, html_options = {}) time_options = Rails::Timeago.default_options time_options = time_options.merge html_options.extract!(*time_options.keys.select do |k| html_options.include?(k) end) return time_options[:default] if time.nil? time_options[:format] = time_options[:format].call(time, time_options) if time_options[:format].is_a?(Proc) if time_options[:title] html_options[:title] = time_options[:title].is_a?(Proc) ? time_options[:title].call(time, time_options) : time_options[:title] end time_options[:limit] = time_options[:limit].call if time_options[:limit].is_a?(Proc) time_range = unless time_options[:limit].nil? now = Time.zone.now limit = time_options[:limit] limit < now ? limit...now : now...limit end if time_options[:force] || time_range.nil? || time_range.cover?(time) html_options['data-time-ago'] = time.iso8601 end time_tag time, timeago_tag_content(time, time_options), html_options end