rails-timeago 2.16.0 → 2.17.1
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.
- checksums.yaml +5 -5
- data/.rubocop.yml +53 -0
- data/.travis.yml +20 -8
- data/CHANGELOG.md +8 -0
- data/Gemfile +3 -5
- data/Rakefile +14 -12
- data/lib/assets/javascripts/rails-timeago-all.js +4 -0
- data/lib/rails-timeago.rb +21 -17
- data/lib/rails-timeago/helper.rb +13 -10
- data/lib/rails-timeago/version.rb +4 -2
- data/rails-timeago.gemspec +13 -11
- data/spec/rails-timeago_spec.rb +2 -0
- data/spec/spec_helper.rb +2 -0
- data/spec/support/stub.rb +11 -9
- data/spec/timeago/helper_spec.rb +27 -25
- data/vendor/assets/javascripts/jquery.timeago.js +1 -1
- data/vendor/assets/javascripts/locales/jquery.timeago.af.js +30 -20
- data/vendor/assets/javascripts/locales/jquery.timeago.am.js +30 -0
- data/vendor/assets/javascripts/locales/jquery.timeago.ar.js +12 -4
- data/vendor/assets/javascripts/locales/jquery.timeago.az-short.js +30 -20
- data/vendor/assets/javascripts/locales/jquery.timeago.az.js +30 -20
- data/vendor/assets/javascripts/locales/jquery.timeago.be.js +43 -0
- data/vendor/assets/javascripts/locales/jquery.timeago.bg.js +28 -18
- data/vendor/assets/javascripts/locales/jquery.timeago.bs.js +13 -7
- data/vendor/assets/javascripts/locales/jquery.timeago.ca.js +30 -20
- data/vendor/assets/javascripts/locales/jquery.timeago.cs.js +34 -24
- data/vendor/assets/javascripts/locales/jquery.timeago.cy.js +30 -20
- data/vendor/assets/javascripts/locales/jquery.timeago.da.js +28 -18
- data/vendor/assets/javascripts/locales/jquery.timeago.de-short.js +30 -20
- data/vendor/assets/javascripts/locales/jquery.timeago.de.js +28 -18
- data/vendor/assets/javascripts/locales/jquery.timeago.dv.js +32 -22
- data/vendor/assets/javascripts/locales/jquery.timeago.el.js +28 -18
- data/vendor/assets/javascripts/locales/jquery.timeago.en-short.js +30 -20
- data/vendor/assets/javascripts/locales/jquery.timeago.es-short.js +31 -20
- data/vendor/assets/javascripts/locales/jquery.timeago.es.js +29 -18
- data/vendor/assets/javascripts/locales/jquery.timeago.et.js +28 -18
- data/vendor/assets/javascripts/locales/jquery.timeago.eu.js +28 -17
- data/vendor/assets/javascripts/locales/jquery.timeago.fa-short.js +30 -20
- data/vendor/assets/javascripts/locales/jquery.timeago.fa.js +32 -22
- data/vendor/assets/javascripts/locales/jquery.timeago.fi.js +38 -28
- data/vendor/assets/javascripts/locales/jquery.timeago.fr-short.js +26 -16
- data/vendor/assets/javascripts/locales/jquery.timeago.fr.js +27 -17
- data/vendor/assets/javascripts/locales/jquery.timeago.gl.js +28 -18
- data/vendor/assets/javascripts/locales/jquery.timeago.he.js +26 -16
- data/vendor/assets/javascripts/locales/jquery.timeago.hr.js +53 -48
- data/vendor/assets/javascripts/locales/jquery.timeago.hu.js +28 -18
- data/vendor/assets/javascripts/locales/jquery.timeago.hy.js +28 -18
- data/vendor/assets/javascripts/locales/jquery.timeago.id.js +29 -18
- data/vendor/assets/javascripts/locales/jquery.timeago.is.js +29 -19
- data/vendor/assets/javascripts/locales/jquery.timeago.it-short.js +30 -20
- data/vendor/assets/javascripts/locales/jquery.timeago.it.js +28 -16
- data/vendor/assets/javascripts/locales/jquery.timeago.ja.js +29 -19
- data/vendor/assets/javascripts/locales/jquery.timeago.jv.js +28 -18
- data/vendor/assets/javascripts/locales/jquery.timeago.ko.js +31 -20
- data/vendor/assets/javascripts/locales/jquery.timeago.ky.js +11 -3
- data/vendor/assets/javascripts/locales/jquery.timeago.lt.js +30 -20
- data/vendor/assets/javascripts/locales/jquery.timeago.lv.js +30 -20
- data/vendor/assets/javascripts/locales/jquery.timeago.mk.js +30 -20
- data/vendor/assets/javascripts/locales/jquery.timeago.nl.js +30 -20
- data/vendor/assets/javascripts/locales/jquery.timeago.no.js +28 -18
- data/vendor/assets/javascripts/locales/jquery.timeago.pl.js +11 -3
- data/vendor/assets/javascripts/locales/jquery.timeago.pt-br-short.js +30 -20
- data/vendor/assets/javascripts/locales/jquery.timeago.pt-br.js +28 -18
- data/vendor/assets/javascripts/locales/jquery.timeago.pt-short.js +30 -20
- data/vendor/assets/javascripts/locales/jquery.timeago.pt.js +26 -16
- data/vendor/assets/javascripts/locales/jquery.timeago.ro.js +29 -18
- data/vendor/assets/javascripts/locales/jquery.timeago.rs.js +53 -48
- data/vendor/assets/javascripts/locales/jquery.timeago.ru.js +11 -3
- data/vendor/assets/javascripts/locales/jquery.timeago.rw.js +30 -20
- data/vendor/assets/javascripts/locales/jquery.timeago.si.js +28 -18
- data/vendor/assets/javascripts/locales/jquery.timeago.sk.js +34 -24
- data/vendor/assets/javascripts/locales/jquery.timeago.sl.js +45 -39
- data/vendor/assets/javascripts/locales/jquery.timeago.sq.js +26 -0
- data/vendor/assets/javascripts/locales/jquery.timeago.sr.js +53 -48
- data/vendor/assets/javascripts/locales/jquery.timeago.sv.js +28 -18
- data/vendor/assets/javascripts/locales/jquery.timeago.th.js +30 -20
- data/vendor/assets/javascripts/locales/jquery.timeago.tr-short.js +30 -20
- data/vendor/assets/javascripts/locales/jquery.timeago.tr.js +26 -16
- data/vendor/assets/javascripts/locales/jquery.timeago.uk.js +11 -3
- data/vendor/assets/javascripts/locales/jquery.timeago.ur.js +30 -0
- data/vendor/assets/javascripts/locales/jquery.timeago.uz.js +29 -19
- data/vendor/assets/javascripts/locales/jquery.timeago.vi.js +30 -20
- data/vendor/assets/javascripts/locales/jquery.timeago.zh-CN.js +31 -20
- data/vendor/assets/javascripts/locales/jquery.timeago.zh-TW.js +30 -20
- metadata +8 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 2a461a19bf99a6641dd323cc311fbe23639a4eded603978e60eeac161bd3c881
|
|
4
|
+
data.tar.gz: 36cd1871b9bba6edd02c1d2d61d4feba89e0975e5929ea69cb7997f0faa848e6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 387c7200e0aaf52c67f96e7f04b73188912e284dc6778802971dd25b84f6da64328c50eb62377036b1c34bf0c566a69a5384cdd954306704ee1f1f351ebabceb
|
|
7
|
+
data.tar.gz: f29914c87ee1d593a383d16e1c3bb113df347708e1b3263efe3d3d71de2d1211fb4440687cabcb5de562e40c6dfbb7862401b104df4ffb72aaaaa0e6767382b9
|
data/.rubocop.yml
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
AllCops:
|
|
2
|
+
Include:
|
|
3
|
+
- '**/*.rb'
|
|
4
|
+
TargetRubyVersion: 2.1
|
|
5
|
+
|
|
6
|
+
Metrics/BlockLength:
|
|
7
|
+
Exclude:
|
|
8
|
+
- 'spec/**/*_spec.rb'
|
|
9
|
+
|
|
10
|
+
Metrics/LineLength:
|
|
11
|
+
Exclude:
|
|
12
|
+
- 'spec/**/*_spec.rb'
|
|
13
|
+
|
|
14
|
+
Style/AlignParameters:
|
|
15
|
+
EnforcedStyle: with_fixed_indentation
|
|
16
|
+
|
|
17
|
+
Style/BracesAroundHashParameters:
|
|
18
|
+
EnforcedStyle: context_dependent
|
|
19
|
+
|
|
20
|
+
Style/SpaceInsideHashLiteralBraces:
|
|
21
|
+
EnforcedStyle: no_space
|
|
22
|
+
|
|
23
|
+
Style/RaiseArgs:
|
|
24
|
+
EnforcedStyle: compact
|
|
25
|
+
|
|
26
|
+
Style/Documentation:
|
|
27
|
+
Enabled: false
|
|
28
|
+
|
|
29
|
+
Style/SpaceInsideBlockBraces:
|
|
30
|
+
EnforcedStyle: space
|
|
31
|
+
EnforcedStyleForEmptyBraces: no_space
|
|
32
|
+
SpaceBeforeBlockParameters: false
|
|
33
|
+
|
|
34
|
+
Style/SignalException:
|
|
35
|
+
EnforcedStyle: only_raise
|
|
36
|
+
|
|
37
|
+
Style/CaseIndentation:
|
|
38
|
+
EnforcedStyle: end
|
|
39
|
+
SupportedStyles:
|
|
40
|
+
- case
|
|
41
|
+
- end
|
|
42
|
+
IndentOneStep: true
|
|
43
|
+
|
|
44
|
+
Style/ClassAndModuleChildren:
|
|
45
|
+
Enabled: false
|
|
46
|
+
|
|
47
|
+
Style/TrivialAccessors:
|
|
48
|
+
AllowPredicates: true
|
|
49
|
+
|
|
50
|
+
Style/FileName:
|
|
51
|
+
Exclude:
|
|
52
|
+
- Rakefile
|
|
53
|
+
- Gemfile
|
data/.travis.yml
CHANGED
|
@@ -1,12 +1,24 @@
|
|
|
1
|
-
sudo: false
|
|
2
1
|
dist: trusty
|
|
3
2
|
language: ruby
|
|
4
3
|
rvm:
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
- 'jruby-9.1.8.0'
|
|
4
|
+
- 2.6.0
|
|
5
|
+
- 2.5.3
|
|
6
|
+
- 2.4.5
|
|
7
|
+
- 2.3.8
|
|
10
8
|
before_install:
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
- gem install bundler
|
|
10
|
+
jobs:
|
|
11
|
+
include:
|
|
12
|
+
- stage: Release
|
|
13
|
+
rvm: 2.6.0
|
|
14
|
+
env: []
|
|
15
|
+
script: skip
|
|
16
|
+
install: skip
|
|
17
|
+
deploy:
|
|
18
|
+
provider: rubygems
|
|
19
|
+
api_key:
|
|
20
|
+
secure: XYbT9MB6DNzKu95OqrA5qIV2rD1L6RLpfCb9s/3YnhKY8tTP1NcitvmXLHtNLAoHldYrb9AmSfNh5wFgFnfoqFkpz4B94SBrkQtGZ9wzIj4otxMgntGsrGd6qLBfnXGG8rctngeJlo0eVKkE/3fJtiXb5mEx72fvxd2+/fYfubY=
|
|
21
|
+
gem: rails-timeago
|
|
22
|
+
on:
|
|
23
|
+
tags: true
|
|
24
|
+
repo: jgraichen/rails-timeago
|
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
source 'https://rubygems.org'
|
|
2
4
|
|
|
3
5
|
# Specify your gem's dependencies in rails-timeago.gemspec
|
|
@@ -8,11 +10,7 @@ group :development do
|
|
|
8
10
|
end
|
|
9
11
|
|
|
10
12
|
group :test do
|
|
11
|
-
gem 'rspec', '~> 3.5'
|
|
12
13
|
gem 'capybara', '~> 2.8'
|
|
13
14
|
gem 'poltergeist', '~> 1.10'
|
|
15
|
+
gem 'rspec', '~> 3.5'
|
|
14
16
|
end
|
|
15
|
-
|
|
16
|
-
gem 'rack', '~> 1.0' # Otherwise requires Ruby > 2.2.
|
|
17
|
-
|
|
18
|
-
gem 'rubysl', platform: :rbx
|
data/Rakefile
CHANGED
|
@@ -1,45 +1,47 @@
|
|
|
1
1
|
#!/usr/bin/env rake
|
|
2
|
-
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
require 'bundler/gem_tasks'
|
|
3
5
|
require 'rspec/core/rake_task'
|
|
4
6
|
|
|
5
7
|
RSpec::Core::RakeTask.new(:spec)
|
|
6
8
|
|
|
7
|
-
task :
|
|
9
|
+
task default: :spec
|
|
8
10
|
|
|
9
11
|
desc 'Update jquery-timeago from upstream'
|
|
10
12
|
task :update do
|
|
11
|
-
puts
|
|
13
|
+
puts 'Clone repository..'
|
|
12
14
|
puts `mkdir ./tmp`
|
|
13
15
|
puts `git clone https://github.com/rmm5t/jquery-timeago.git ./tmp`
|
|
14
16
|
|
|
15
|
-
puts
|
|
17
|
+
puts 'Patch jquery timeago...'
|
|
16
18
|
puts `cd ./tmp && patch -p1 < ../scripts/jquery.timeago.js.patch`
|
|
17
19
|
|
|
18
20
|
print 'Patch locale files ... '
|
|
19
21
|
`rm ./tmp/locales/jquery.timeago.en.js`
|
|
20
22
|
|
|
21
|
-
is_mac = RUBY_PLATFORM.downcase.include?(
|
|
23
|
+
is_mac = RUBY_PLATFORM.downcase.include?('darwin')
|
|
22
24
|
|
|
23
|
-
Dir[
|
|
25
|
+
Dir['./tmp/locales/*.js'].each do |file|
|
|
24
26
|
if file =~ /jquery\.timeago\.(.+)\.js$/
|
|
25
|
-
`sed -i#{
|
|
26
|
-
print "#{
|
|
27
|
+
`sed -i#{is_mac ? " ''" : nil} "s/timeago.settings.strings/timeago.settings.strings[\\"#{Regexp.last_match(1)}\\"]/" #{file}`
|
|
28
|
+
print "#{Regexp.last_match(1)} "
|
|
27
29
|
end
|
|
28
30
|
end
|
|
29
31
|
puts
|
|
30
32
|
|
|
31
|
-
puts
|
|
33
|
+
puts 'Copying asset files...'
|
|
32
34
|
puts `cp ./tmp/jquery.timeago.js ./vendor/assets/javascripts/`
|
|
33
35
|
puts `rm ./vendor/assets/javascripts/locales/*`
|
|
34
36
|
puts `cp ./tmp/locales/*.js ./vendor/assets/javascripts/locales`
|
|
35
37
|
|
|
36
|
-
puts
|
|
38
|
+
puts 'Generate rails-timeago-all.js...'
|
|
37
39
|
`echo "// Rails timeago bootstrap with all locales" > ./lib/assets/javascripts/rails-timeago-all.js`
|
|
38
40
|
`echo "//= require rails-timeago" >> ./lib/assets/javascripts/rails-timeago-all.js`
|
|
39
|
-
Dir[
|
|
41
|
+
Dir['./vendor/assets/javascripts/locales/*.js'].sort.each do |file|
|
|
40
42
|
`echo "//= require locales/#{File.basename(file)}" >> ./lib/assets/javascripts/rails-timeago-all.js`
|
|
41
43
|
end
|
|
42
44
|
|
|
43
|
-
puts
|
|
45
|
+
puts 'Clean up...'
|
|
44
46
|
puts `rm -rf ./tmp`
|
|
45
47
|
end
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
// Rails timeago bootstrap with all locales
|
|
2
2
|
//= require rails-timeago
|
|
3
3
|
//= require locales/jquery.timeago.af.js
|
|
4
|
+
//= require locales/jquery.timeago.am.js
|
|
4
5
|
//= require locales/jquery.timeago.ar.js
|
|
5
6
|
//= require locales/jquery.timeago.az-short.js
|
|
6
7
|
//= require locales/jquery.timeago.az.js
|
|
8
|
+
//= require locales/jquery.timeago.be.js
|
|
7
9
|
//= require locales/jquery.timeago.bg.js
|
|
8
10
|
//= require locales/jquery.timeago.bs.js
|
|
9
11
|
//= require locales/jquery.timeago.ca.js
|
|
@@ -54,12 +56,14 @@
|
|
|
54
56
|
//= require locales/jquery.timeago.si.js
|
|
55
57
|
//= require locales/jquery.timeago.sk.js
|
|
56
58
|
//= require locales/jquery.timeago.sl.js
|
|
59
|
+
//= require locales/jquery.timeago.sq.js
|
|
57
60
|
//= require locales/jquery.timeago.sr.js
|
|
58
61
|
//= require locales/jquery.timeago.sv.js
|
|
59
62
|
//= require locales/jquery.timeago.th.js
|
|
60
63
|
//= require locales/jquery.timeago.tr-short.js
|
|
61
64
|
//= require locales/jquery.timeago.tr.js
|
|
62
65
|
//= require locales/jquery.timeago.uk.js
|
|
66
|
+
//= require locales/jquery.timeago.ur.js
|
|
63
67
|
//= require locales/jquery.timeago.uz.js
|
|
64
68
|
//= require locales/jquery.timeago.vi.js
|
|
65
69
|
//= require locales/jquery.timeago.zh-CN.js
|
data/lib/rails-timeago.rb
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'rails-timeago/version'
|
|
4
|
+
require 'rails-timeago/helper'
|
|
3
5
|
|
|
4
6
|
module Rails
|
|
5
7
|
module Timeago
|
|
6
8
|
if defined?(::Rails::Engine)
|
|
7
9
|
class Engine < ::Rails::Engine # :nodoc:
|
|
8
|
-
initializer 'rails-timeago', :
|
|
10
|
+
initializer 'rails-timeago', group: :all do |_app|
|
|
9
11
|
ActiveSupport.on_load(:action_controller) do
|
|
10
12
|
include Rails::Timeago::Helper
|
|
11
13
|
end
|
|
@@ -17,8 +19,8 @@ module Rails
|
|
|
17
19
|
end
|
|
18
20
|
end
|
|
19
21
|
|
|
20
|
-
# Read or write global rails-timeago default options. If no options are
|
|
21
|
-
# the current defaults will be returned.
|
|
22
|
+
# Read or write global rails-timeago default options. If no options are
|
|
23
|
+
# given the current defaults will be returned.
|
|
22
24
|
#
|
|
23
25
|
# Available options:
|
|
24
26
|
# [:+nojs+]
|
|
@@ -34,8 +36,9 @@ module Rails
|
|
|
34
36
|
# (default: :default)
|
|
35
37
|
#
|
|
36
38
|
# [:+limit+]
|
|
37
|
-
# Set a limit for time ago tags. All dates before given limit will not
|
|
38
|
-
# Global limit should be given as a block to reevaluate
|
|
39
|
+
# Set a limit for time ago tags. All dates before given limit will not
|
|
40
|
+
# be converted. Global limit should be given as a block to reevaluate
|
|
41
|
+
# limit each time timeago_tag is called.
|
|
39
42
|
# (default: proc { 4.days.ago })
|
|
40
43
|
#
|
|
41
44
|
# [:+force+]
|
|
@@ -47,9 +50,10 @@ module Rails
|
|
|
47
50
|
# (default: '-')
|
|
48
51
|
#
|
|
49
52
|
def self.default_options(opts = nil)
|
|
50
|
-
@defaults ||=
|
|
53
|
+
@defaults ||= option_hash
|
|
51
54
|
if opts
|
|
52
|
-
@defaults.merge!
|
|
55
|
+
@defaults.merge! \
|
|
56
|
+
opts.extract!(*@defaults.keys.select {|k| opts.include?(k) })
|
|
53
57
|
else
|
|
54
58
|
@defaults
|
|
55
59
|
end
|
|
@@ -57,18 +61,18 @@ module Rails
|
|
|
57
61
|
|
|
58
62
|
# Reset options to default values
|
|
59
63
|
def self.reset_default_options
|
|
60
|
-
@defaults =
|
|
64
|
+
@defaults = option_hash
|
|
61
65
|
end
|
|
62
66
|
|
|
63
67
|
def self.option_hash
|
|
64
68
|
{
|
|
65
|
-
:
|
|
66
|
-
:
|
|
67
|
-
:
|
|
68
|
-
:
|
|
69
|
-
:
|
|
70
|
-
:
|
|
71
|
-
:
|
|
69
|
+
nojs: false,
|
|
70
|
+
force: false,
|
|
71
|
+
format: :default,
|
|
72
|
+
limit: proc { 4.days.ago },
|
|
73
|
+
date_only: true,
|
|
74
|
+
default: '-',
|
|
75
|
+
title: proc {|time, options| I18n.l time, format: options[:format] }
|
|
72
76
|
}
|
|
73
77
|
end
|
|
74
78
|
end
|
data/lib/rails-timeago/helper.rb
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'active_support/time'
|
|
2
4
|
|
|
3
5
|
module Rails
|
|
@@ -6,7 +8,9 @@ module Rails
|
|
|
6
8
|
# Create a time tag usable for jQuery timeago plugin.
|
|
7
9
|
#
|
|
8
10
|
# timeago_tag Time.zone.now
|
|
9
|
-
# => "<time datetime="2012-03-10T12:07:07+01:00"
|
|
11
|
+
# => "<time datetime="2012-03-10T12:07:07+01:00"
|
|
12
|
+
# title="Sat, 10 Mar 2012 12:07:07 +0100"
|
|
13
|
+
# data-time-ago="2012-03-10T12:07:07+01:00">2012-03-10</time>"
|
|
10
14
|
#
|
|
11
15
|
# Available options:
|
|
12
16
|
# [:+nojs+]
|
|
@@ -22,7 +26,8 @@ module Rails
|
|
|
22
26
|
# (default: :default)
|
|
23
27
|
#
|
|
24
28
|
# [:+limit+]
|
|
25
|
-
# Set a limit for time ago tags. All dates before given limit
|
|
29
|
+
# Set a limit for time ago tags. All dates before given limit
|
|
30
|
+
# will not be converted.
|
|
26
31
|
# (default: 4.days.ago)
|
|
27
32
|
#
|
|
28
33
|
# [:+force+]
|
|
@@ -38,12 +43,12 @@ module Rails
|
|
|
38
43
|
def timeago_tag(time, html_options = {})
|
|
39
44
|
time_options = Rails::Timeago.default_options
|
|
40
45
|
|
|
41
|
-
time_options = time_options.merge html_options.extract!(*time_options.keys.select{|k| html_options.include?(k)})
|
|
46
|
+
time_options = time_options.merge html_options.extract!(*time_options.keys.select {|k| html_options.include?(k) })
|
|
42
47
|
return time_options[:default] if time.nil?
|
|
43
48
|
|
|
44
49
|
time_options[:format] = time_options[:format].call(time, time_options) if time_options[:format].is_a?(Proc)
|
|
45
50
|
if time_options[:title]
|
|
46
|
-
html_options
|
|
51
|
+
html_options[:title] = time_options[:title].is_a?(Proc) ? time_options[:title].call(time, time_options) : time_options[:title]
|
|
47
52
|
end
|
|
48
53
|
time_options[:limit] = time_options[:limit].call if time_options[:limit].is_a?(Proc)
|
|
49
54
|
|
|
@@ -51,21 +56,19 @@ module Rails
|
|
|
51
56
|
now = Time.zone.now
|
|
52
57
|
limit = time_options[:limit]
|
|
53
58
|
limit < now ? limit...now : now...limit
|
|
54
|
-
else
|
|
55
|
-
nil
|
|
56
59
|
end
|
|
57
60
|
|
|
58
|
-
if time_options[:force]
|
|
59
|
-
html_options
|
|
61
|
+
if time_options[:force] || time_range.nil? || time_range.cover?(time)
|
|
62
|
+
html_options['data-time-ago'] = time.iso8601
|
|
60
63
|
end
|
|
61
64
|
time_tag time, timeago_tag_content(time, time_options), html_options
|
|
62
65
|
end
|
|
63
66
|
|
|
64
67
|
def timeago_tag_content(time, time_options = {}) # :nodoc:
|
|
65
68
|
time = time.to_date if time_options[:date_only]
|
|
66
|
-
return time_ago_in_words(time) if time_options[:nojs]
|
|
69
|
+
return time_ago_in_words(time) if time_options[:nojs] && (time_options[:limit].nil? || time_options[:limit] < time)
|
|
67
70
|
|
|
68
|
-
I18n.l time, :
|
|
71
|
+
I18n.l time, format: time_options[:format]
|
|
69
72
|
end
|
|
70
73
|
|
|
71
74
|
# Return a JavaScript tag to set jQuery timeago locale.
|
data/rails-timeago.gemspec
CHANGED
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
2
4
|
require File.expand_path('../lib/rails-timeago/version', __FILE__)
|
|
3
5
|
|
|
4
6
|
Gem::Specification.new do |gem|
|
|
5
|
-
gem.authors = [
|
|
6
|
-
gem.email = [
|
|
7
|
-
gem.description =
|
|
8
|
-
gem.summary =
|
|
9
|
-
gem.homepage =
|
|
7
|
+
gem.authors = ['Jan Graichen']
|
|
8
|
+
gem.email = ['jan.graichen@altimos.de']
|
|
9
|
+
gem.description = 'jQuery Timeago helper for Rails 3'
|
|
10
|
+
gem.summary = 'A Rails Helper to create time tags usable for jQuery Timeago plugin'
|
|
11
|
+
gem.homepage = 'https://github.com/jgraichen/rails-timeago'
|
|
10
12
|
gem.license = 'MIT'
|
|
11
13
|
|
|
12
|
-
gem.executables = `git ls-files -- bin/*`.split("\n").map{
|
|
13
|
-
gem.files = `git ls-files`.split("\n").reject{|file| file =~ /^scripts/}
|
|
14
|
+
gem.executables = `git ls-files -- bin/*`.split("\n").map {|f| File.basename(f) }
|
|
15
|
+
gem.files = `git ls-files`.split("\n").reject {|file| file =~ /^scripts/ }
|
|
14
16
|
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
|
15
|
-
gem.name =
|
|
16
|
-
gem.require_paths = [
|
|
17
|
+
gem.name = 'rails-timeago'
|
|
18
|
+
gem.require_paths = ['lib']
|
|
17
19
|
gem.version = Rails::Timeago::VERSION
|
|
18
20
|
|
|
19
|
-
gem.add_dependency
|
|
20
|
-
gem.add_dependency
|
|
21
|
+
gem.add_dependency 'activesupport', '>= 3.1'
|
|
22
|
+
gem.add_dependency 'actionpack', '>= 3.1'
|
|
21
23
|
end
|
data/spec/rails-timeago_spec.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
data/spec/support/stub.rb
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
class TimeagoStub
|
|
2
4
|
include Rails::Timeago::Helper
|
|
3
5
|
|
|
4
|
-
I18n.backend.store_translations :en, :
|
|
6
|
+
I18n.backend.store_translations :en, hello: 'World'
|
|
5
7
|
|
|
6
8
|
def time_tag(time, content, options = {})
|
|
7
|
-
options = options.map {
|
|
9
|
+
options = options.map {|k, v| "#{k}=\"#{v}\"" }
|
|
8
10
|
"<time datetime=\"#{time.iso8601}\" #{options.join ' '}>#{content}</time>"
|
|
9
11
|
end
|
|
10
12
|
|
|
11
|
-
def time_ago_in_words(
|
|
12
|
-
|
|
13
|
+
def time_ago_in_words(_time)
|
|
14
|
+
'%time_ago_in_words%'
|
|
13
15
|
end
|
|
14
16
|
|
|
15
17
|
def javascript_tag(source)
|
|
@@ -21,7 +23,7 @@ class Application
|
|
|
21
23
|
attr_accessor :render
|
|
22
24
|
|
|
23
25
|
ASSET_BASE = Pathname.new(File.expand_path('../../..', __FILE__))
|
|
24
|
-
ASSET_DIRECTORIES = %w
|
|
26
|
+
ASSET_DIRECTORIES = %w[lib/assets vendor/assets spec/support/assets].freeze
|
|
25
27
|
|
|
26
28
|
def initialize
|
|
27
29
|
@helper = TimeagoStub.new
|
|
@@ -39,10 +41,10 @@ class Application
|
|
|
39
41
|
|
|
40
42
|
def call_render
|
|
41
43
|
body = if @render
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
@render.call(@helper, @request)
|
|
45
|
+
else
|
|
46
|
+
'<noscript></noscript>'
|
|
47
|
+
end
|
|
46
48
|
|
|
47
49
|
<<-HTML
|
|
48
50
|
<html>
|