timeago-rails 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +8 -0
- data/Gemfile +3 -0
- data/MIT-LICENSE +20 -0
- data/README.md +42 -0
- data/Rakefile +23 -0
- data/lib/timeago-rails.rb +1 -0
- data/lib/timeago/rails/engine.rb +8 -0
- data/lib/timeago/rails/version.rb +6 -0
- data/test/dummy/README.rdoc +261 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/assets/javascripts/application.js +15 -0
- data/test/dummy/app/assets/stylesheets/application.css +13 -0
- data/test/dummy/app/controllers/application_controller.rb +3 -0
- data/test/dummy/app/controllers/timelines_controller.rb +20 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/mailers/.gitkeep +0 -0
- data/test/dummy/app/models/.gitkeep +0 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/app/views/timelines/index.html.erb +9 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +62 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +30 -0
- data/test/dummy/config/environments/production.rb +67 -0
- data/test/dummy/config/environments/test.rb +34 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/inflections.rb +15 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/routes.rb +3 -0
- data/test/dummy/lib/assets/.gitkeep +0 -0
- data/test/dummy/log/.gitkeep +0 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +25 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/script/rails +6 -0
- data/test/integration/navigation_test.rb +36 -0
- data/test/test_helper.rb +22 -0
- data/test/timeago-rails_test.rb +7 -0
- data/timeago-rails.gemspec +24 -0
- data/vendor/assets/javascripts/locales/timeago.de.js +28 -0
- data/vendor/assets/javascripts/locales/timeago.en.js +29 -0
- data/vendor/assets/javascripts/locales/timeago.es.js +29 -0
- data/vendor/assets/javascripts/locales/timeago.fr.js +29 -0
- data/vendor/assets/javascripts/locales/timeago.pt-br.js +29 -0
- data/vendor/assets/javascripts/locales/timeago.zh-cn.js +29 -0
- data/vendor/assets/javascripts/timeago.js +195 -0
- metadata +206 -0
data/test/test_helper.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
# Configure Rails Environment
|
2
|
+
ENV["RAILS_ENV"] = "test"
|
3
|
+
|
4
|
+
require File.expand_path("../dummy/config/environment.rb", __FILE__)
|
5
|
+
require "rails/test_help"
|
6
|
+
require "capybara/rails"
|
7
|
+
require "capybara-webkit"
|
8
|
+
|
9
|
+
Rails.backtrace_cleaner.remove_silencers!
|
10
|
+
|
11
|
+
# Load support files
|
12
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
13
|
+
|
14
|
+
class ActionDispatch::IntegrationTest
|
15
|
+
include Capybara::DSL
|
16
|
+
|
17
|
+
teardown do
|
18
|
+
Capybara.reset_sessions! # Forget the (simulated) browser state
|
19
|
+
Capybara.use_default_driver # Revert Capybara.current_driver to Capybara.default_driver
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
|
4
|
+
require "timeago/rails/version"
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = "timeago-rails"
|
8
|
+
s.version = Timeago::Rails::VERSION
|
9
|
+
s.authors = ["James Chen"]
|
10
|
+
s.email = ["ashchan@gmail.com"]
|
11
|
+
s.homepage = "https://github.com/ashchan/timeago-rails"
|
12
|
+
s.summary = "Use smart-time-ago jQuery plugin with Rails 3"
|
13
|
+
s.description = "Provides smart-time-ago jQuery plugin for your Rails 3 app"
|
14
|
+
|
15
|
+
s.licenses = ["MIT"]
|
16
|
+
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.test_files = Dir["test/**/*"]
|
19
|
+
|
20
|
+
s.add_dependency "rails", "~> 3.2.8"
|
21
|
+
s.add_dependency "jquery-rails"
|
22
|
+
|
23
|
+
s.add_development_dependency "capybara-webkit"
|
24
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
(function() {
|
2
|
+
|
3
|
+
$.fn.timeago.defaults.lang = {
|
4
|
+
units: {
|
5
|
+
second: "Sekunde",
|
6
|
+
seconds: "Sekunden",
|
7
|
+
minute: "Minute",
|
8
|
+
minutes: "Minuten",
|
9
|
+
hour: "Stunde",
|
10
|
+
hours: "Stunden",
|
11
|
+
day: "Tag",
|
12
|
+
days: "Tagen",
|
13
|
+
month: "Monat",
|
14
|
+
months: "Monaten",
|
15
|
+
year: "Jahr",
|
16
|
+
years: "Jahren",
|
17
|
+
},
|
18
|
+
prefixes: {
|
19
|
+
lt: "weniger als eine",
|
20
|
+
about: "ungefähr",
|
21
|
+
over: "über",
|
22
|
+
almost: "fast",
|
23
|
+
ago: "vor "
|
24
|
+
},
|
25
|
+
suffix: ""
|
26
|
+
};
|
27
|
+
|
28
|
+
}).call(this);
|
@@ -0,0 +1,29 @@
|
|
1
|
+
// Generated by CoffeeScript 1.3.3
|
2
|
+
(function() {
|
3
|
+
|
4
|
+
$.fn.timeago.defaults.lang = {
|
5
|
+
units: {
|
6
|
+
second: "second",
|
7
|
+
seconds: "seconds",
|
8
|
+
minute: "minute",
|
9
|
+
minutes: "minutes",
|
10
|
+
hour: "hour",
|
11
|
+
hours: "hours",
|
12
|
+
day: "day",
|
13
|
+
days: "days",
|
14
|
+
month: "month",
|
15
|
+
months: "months",
|
16
|
+
year: "year",
|
17
|
+
years: "years"
|
18
|
+
},
|
19
|
+
prefixes: {
|
20
|
+
lt: "less than a",
|
21
|
+
about: "about",
|
22
|
+
over: "over",
|
23
|
+
almost: "almost",
|
24
|
+
ago: ""
|
25
|
+
},
|
26
|
+
suffix: " ago"
|
27
|
+
};
|
28
|
+
|
29
|
+
}).call(this);
|
@@ -0,0 +1,29 @@
|
|
1
|
+
// Generated by CoffeeScript 1.3.3
|
2
|
+
(function() {
|
3
|
+
|
4
|
+
$.fn.timeago.defaults.lang = {
|
5
|
+
units: {
|
6
|
+
second: "segundo",
|
7
|
+
seconds: "segundos",
|
8
|
+
minute: "minuto",
|
9
|
+
minutes: "minutos",
|
10
|
+
hour: "hora",
|
11
|
+
hours: "horas",
|
12
|
+
day: "día",
|
13
|
+
days: "días",
|
14
|
+
month: "mes",
|
15
|
+
months: "meses",
|
16
|
+
year: "año",
|
17
|
+
years: "años"
|
18
|
+
},
|
19
|
+
prefixes: {
|
20
|
+
lt: "hace menos de un",
|
21
|
+
about: "cerca de",
|
22
|
+
over: "poco más de",
|
23
|
+
almost: "casi",
|
24
|
+
ago: "hace "
|
25
|
+
},
|
26
|
+
suffix: ""
|
27
|
+
};
|
28
|
+
|
29
|
+
}).call(this);
|
@@ -0,0 +1,29 @@
|
|
1
|
+
// Generated by CoffeeScript 1.3.3
|
2
|
+
(function() {
|
3
|
+
|
4
|
+
$.fn.timeago.defaults.lang = {
|
5
|
+
units: {
|
6
|
+
second: "seconde",
|
7
|
+
seconds: "secondes",
|
8
|
+
minute: "minute",
|
9
|
+
minutes: "minutes",
|
10
|
+
hour: "heure",
|
11
|
+
hours: "heures",
|
12
|
+
day: "jour",
|
13
|
+
days: "jours",
|
14
|
+
month: "mois",
|
15
|
+
months: "mois",
|
16
|
+
year: "an",
|
17
|
+
years: "ans"
|
18
|
+
},
|
19
|
+
prefixes: {
|
20
|
+
lt: "moins d'un",
|
21
|
+
about: "environ",
|
22
|
+
over: "plus de ",
|
23
|
+
almost: "presque",
|
24
|
+
ago: "il y a "
|
25
|
+
},
|
26
|
+
suffix: ""
|
27
|
+
};
|
28
|
+
|
29
|
+
}).call(this);
|
@@ -0,0 +1,29 @@
|
|
1
|
+
// Generated by CoffeeScript 1.3.3
|
2
|
+
(function() {
|
3
|
+
|
4
|
+
$.fn.timeago.defaults.lang = {
|
5
|
+
units: {
|
6
|
+
second: "segundo",
|
7
|
+
seconds: "segundos",
|
8
|
+
minute: "minuto",
|
9
|
+
minutes: "minutos",
|
10
|
+
hour: "hora",
|
11
|
+
hours: "horas",
|
12
|
+
day: "dia",
|
13
|
+
days: "dias",
|
14
|
+
month: "mês",
|
15
|
+
months: "meses",
|
16
|
+
year: "ano",
|
17
|
+
years: "anos"
|
18
|
+
},
|
19
|
+
prefixes: {
|
20
|
+
lt: "menos de um",
|
21
|
+
about: "aproximadamente",
|
22
|
+
over: "pouco mais de",
|
23
|
+
almost: "quase",
|
24
|
+
ago: ""
|
25
|
+
},
|
26
|
+
suffix: " atrás"
|
27
|
+
};
|
28
|
+
|
29
|
+
}).call(this);
|
@@ -0,0 +1,29 @@
|
|
1
|
+
// Generated by CoffeeScript 1.3.3
|
2
|
+
(function() {
|
3
|
+
|
4
|
+
$.fn.timeago.defaults.lang = {
|
5
|
+
units: {
|
6
|
+
second: "秒",
|
7
|
+
seconds: "秒",
|
8
|
+
minute: "分钟",
|
9
|
+
minutes: "分钟",
|
10
|
+
hour: "小时",
|
11
|
+
hours: "小时",
|
12
|
+
day: "天",
|
13
|
+
days: "天",
|
14
|
+
month: "月",
|
15
|
+
months: "月",
|
16
|
+
year: "年",
|
17
|
+
years: "年"
|
18
|
+
},
|
19
|
+
prefixes: {
|
20
|
+
lt: "不到",
|
21
|
+
about: "大约",
|
22
|
+
over: "超过",
|
23
|
+
almost: "接近",
|
24
|
+
ago: ""
|
25
|
+
},
|
26
|
+
suffix: "之前"
|
27
|
+
};
|
28
|
+
|
29
|
+
}).call(this);
|
@@ -0,0 +1,195 @@
|
|
1
|
+
// Copyright 2012, Terry Tai, Pragmatic.ly
|
2
|
+
// https://pragmatic.ly/
|
3
|
+
// Licensed under the MIT license.
|
4
|
+
// https://github.com/pragmaticly/smart-time-ago/blob/master/LICENSE
|
5
|
+
//
|
6
|
+
// Generated by CoffeeScript 1.3.3
|
7
|
+
|
8
|
+
(function() {
|
9
|
+
var TimeAgo;
|
10
|
+
|
11
|
+
TimeAgo = (function() {
|
12
|
+
|
13
|
+
function TimeAgo(element, options) {
|
14
|
+
this.startInterval = 60000;
|
15
|
+
this.init(element, options);
|
16
|
+
}
|
17
|
+
|
18
|
+
TimeAgo.prototype.init = function(element, options) {
|
19
|
+
this.$element = $(element);
|
20
|
+
this.options = $.extend({}, $.fn.timeago.defaults, options);
|
21
|
+
this.updateTime();
|
22
|
+
return this.startTimer();
|
23
|
+
};
|
24
|
+
|
25
|
+
TimeAgo.prototype.startTimer = function() {
|
26
|
+
var self;
|
27
|
+
self = this;
|
28
|
+
return this.interval = setInterval((function() {
|
29
|
+
return self.refresh();
|
30
|
+
}), this.startInterval);
|
31
|
+
};
|
32
|
+
|
33
|
+
TimeAgo.prototype.stopTimer = function() {
|
34
|
+
return clearInterval(this.interval);
|
35
|
+
};
|
36
|
+
|
37
|
+
TimeAgo.prototype.restartTimer = function() {
|
38
|
+
this.stopTimer();
|
39
|
+
return this.startTimer();
|
40
|
+
};
|
41
|
+
|
42
|
+
TimeAgo.prototype.refresh = function() {
|
43
|
+
this.updateTime();
|
44
|
+
return this.updateInterval();
|
45
|
+
};
|
46
|
+
|
47
|
+
TimeAgo.prototype.updateTime = function() {
|
48
|
+
var self;
|
49
|
+
self = this;
|
50
|
+
return this.$element.findAndSelf(this.options.selector).each(function() {
|
51
|
+
var timeAgoInWords;
|
52
|
+
timeAgoInWords = self.timeAgoInWords($(this).attr(self.options.attr));
|
53
|
+
return $(this).html(timeAgoInWords);
|
54
|
+
});
|
55
|
+
};
|
56
|
+
|
57
|
+
TimeAgo.prototype.updateInterval = function() {
|
58
|
+
var filter, newestTime, newestTimeInMinutes, newestTimeSrc;
|
59
|
+
if (this.$element.findAndSelf(this.options.selector).length > 0) {
|
60
|
+
if (this.options.dir === "up") {
|
61
|
+
filter = ":first";
|
62
|
+
} else if (this.options.dir === "down") {
|
63
|
+
filter = ":last";
|
64
|
+
}
|
65
|
+
newestTimeSrc = this.$element.findAndSelf(this.options.selector).filter(filter).attr(this.options.attr);
|
66
|
+
newestTime = this.parse(newestTimeSrc);
|
67
|
+
newestTimeInMinutes = this.getTimeDistanceInMinutes(newestTime);
|
68
|
+
if (newestTimeInMinutes >= 0 && newestTimeInMinutes <= 44 && this.startInterval !== 60000) {
|
69
|
+
this.startInterval = 60000;
|
70
|
+
return this.restartTimer();
|
71
|
+
} else if (newestTimeInMinutes >= 45 && newestTimeInMinutes <= 89 && this.startInterval !== 60000 * 22) {
|
72
|
+
this.startInterval = 60000 * 22;
|
73
|
+
return this.restartTimer();
|
74
|
+
} else if (newestTimeInMinutes >= 90 && newestTimeInMinutes <= 2519 && this.startInterval !== 60000 * 30) {
|
75
|
+
this.startInterval = 60000 * 30;
|
76
|
+
return this.restartTimer();
|
77
|
+
} else if (newestTimeInMinutes >= 2520 && this.startInterval !== 60000 * 60 * 12) {
|
78
|
+
this.startInterval = 60000 * 60 * 12;
|
79
|
+
return this.restartTimer();
|
80
|
+
}
|
81
|
+
}
|
82
|
+
};
|
83
|
+
|
84
|
+
TimeAgo.prototype.timeAgoInWords = function(timeString) {
|
85
|
+
var absolutTime;
|
86
|
+
absolutTime = this.parse(timeString);
|
87
|
+
return "" + this.options.lang.prefixes.ago + (this.distanceOfTimeInWords(absolutTime)) + this.options.lang.suffix;
|
88
|
+
};
|
89
|
+
|
90
|
+
TimeAgo.prototype.parse = function(iso8601) {
|
91
|
+
var timeStr;
|
92
|
+
timeStr = $.trim(iso8601);
|
93
|
+
timeStr = timeStr.replace(/\.\d\d\d+/, "");
|
94
|
+
timeStr = timeStr.replace(/-/, "/").replace(/-/, "/");
|
95
|
+
timeStr = timeStr.replace(/T/, " ").replace(/Z/, " UTC");
|
96
|
+
timeStr = timeStr.replace(/([\+\-]\d\d)\:?(\d\d)/, " $1$2");
|
97
|
+
return new Date(timeStr);
|
98
|
+
};
|
99
|
+
|
100
|
+
TimeAgo.prototype.getTimeDistanceInMinutes = function(absolutTime) {
|
101
|
+
var timeDistance;
|
102
|
+
timeDistance = new Date().getTime() - absolutTime.getTime();
|
103
|
+
return Math.round((Math.abs(timeDistance) / 1000) / 60);
|
104
|
+
};
|
105
|
+
|
106
|
+
TimeAgo.prototype.distanceOfTimeInWords = function(absolutTime) {
|
107
|
+
var dim;
|
108
|
+
dim = this.getTimeDistanceInMinutes(absolutTime);
|
109
|
+
if (dim === 0) {
|
110
|
+
return "" + this.options.lang.prefixes.lt + " " + this.options.lang.units.minute;
|
111
|
+
} else if (dim === 1) {
|
112
|
+
return "1 " + this.options.lang.units.minute;
|
113
|
+
} else if (dim >= 2 && dim <= 44) {
|
114
|
+
return "" + dim + " " + this.options.lang.units.minutes;
|
115
|
+
} else if (dim >= 45 && dim <= 89) {
|
116
|
+
return "" + this.options.lang.prefixes.about + " 1 " + this.options.lang.units.hour;
|
117
|
+
} else if (dim >= 90 && dim <= 1439) {
|
118
|
+
return "" + this.options.lang.prefixes.about + " " + (Math.round(dim / 60)) + " " + this.options.lang.units.hours;
|
119
|
+
} else if (dim >= 1440 && dim <= 2519) {
|
120
|
+
return "1 " + this.options.lang.units.day;
|
121
|
+
} else if (dim >= 2520 && dim <= 43199) {
|
122
|
+
return "" + (Math.round(dim / 1440)) + " " + this.options.lang.units.days;
|
123
|
+
} else if (dim >= 43200 && dim <= 86399) {
|
124
|
+
return "" + this.options.lang.prefixes.about + " 1 " + this.options.lang.units.month;
|
125
|
+
} else if (dim >= 86400 && dim <= 525599) {
|
126
|
+
return "" + (Math.round(dim / 43200)) + " " + this.options.lang.units.months;
|
127
|
+
} else if (dim >= 525600 && dim <= 655199) {
|
128
|
+
return "" + this.options.lang.prefixes.about + " 1 " + this.options.lang.units.year;
|
129
|
+
} else if (dim >= 655200 && dim <= 914399) {
|
130
|
+
return "" + this.options.lang.prefixes.over + " 1 " + this.options.lang.units.year;
|
131
|
+
} else if (dim >= 914400 && dim <= 1051199) {
|
132
|
+
return "" + this.options.lang.prefixes.almost + " 2 " + this.options.lang.units.years;
|
133
|
+
} else {
|
134
|
+
return "" + this.options.lang.prefixes.about + " " + (Math.round(dim / 525600)) + " " + this.options.lang.units.years;
|
135
|
+
}
|
136
|
+
};
|
137
|
+
|
138
|
+
return TimeAgo;
|
139
|
+
|
140
|
+
})();
|
141
|
+
|
142
|
+
$.fn.timeago = function(options) {
|
143
|
+
if (options == null) {
|
144
|
+
options = {};
|
145
|
+
}
|
146
|
+
return this.each(function() {
|
147
|
+
var $this, data;
|
148
|
+
$this = $(this);
|
149
|
+
data = $this.data("timeago");
|
150
|
+
if (!data) {
|
151
|
+
$this.data("timeago", new TimeAgo(this, options));
|
152
|
+
}
|
153
|
+
if (typeof options === 'string') {
|
154
|
+
return data[options]();
|
155
|
+
}
|
156
|
+
});
|
157
|
+
};
|
158
|
+
|
159
|
+
$.fn.findAndSelf = function(selector) {
|
160
|
+
return this.find(selector).add(this.filter(selector));
|
161
|
+
};
|
162
|
+
|
163
|
+
$.fn.timeago.Constructor = TimeAgo;
|
164
|
+
|
165
|
+
$.fn.timeago.defaults = {
|
166
|
+
selector: 'time.timeago',
|
167
|
+
attr: 'datetime',
|
168
|
+
dir: 'up',
|
169
|
+
lang: {
|
170
|
+
units: {
|
171
|
+
second: "second",
|
172
|
+
seconds: "seconds",
|
173
|
+
minute: "minute",
|
174
|
+
minutes: "minutes",
|
175
|
+
hour: "hour",
|
176
|
+
hours: "hours",
|
177
|
+
day: "day",
|
178
|
+
days: "days",
|
179
|
+
month: "month",
|
180
|
+
months: "months",
|
181
|
+
year: "year",
|
182
|
+
years: "years"
|
183
|
+
},
|
184
|
+
prefixes: {
|
185
|
+
lt: "less than a",
|
186
|
+
about: "about",
|
187
|
+
over: "over",
|
188
|
+
almost: "almost",
|
189
|
+
ago: ""
|
190
|
+
},
|
191
|
+
suffix: ' ago'
|
192
|
+
}
|
193
|
+
};
|
194
|
+
|
195
|
+
}).call(this);
|
metadata
ADDED
@@ -0,0 +1,206 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: timeago-rails
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- James Chen
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-10-03 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rails
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 3.2.8
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 3.2.8
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: jquery-rails
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: capybara-webkit
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
description: Provides smart-time-ago jQuery plugin for your Rails 3 app
|
63
|
+
email:
|
64
|
+
- ashchan@gmail.com
|
65
|
+
executables: []
|
66
|
+
extensions: []
|
67
|
+
extra_rdoc_files: []
|
68
|
+
files:
|
69
|
+
- .gitignore
|
70
|
+
- Gemfile
|
71
|
+
- MIT-LICENSE
|
72
|
+
- README.md
|
73
|
+
- Rakefile
|
74
|
+
- lib/timeago-rails.rb
|
75
|
+
- lib/timeago/rails/engine.rb
|
76
|
+
- lib/timeago/rails/version.rb
|
77
|
+
- test/dummy/README.rdoc
|
78
|
+
- test/dummy/Rakefile
|
79
|
+
- test/dummy/app/assets/javascripts/application.js
|
80
|
+
- test/dummy/app/assets/stylesheets/application.css
|
81
|
+
- test/dummy/app/controllers/application_controller.rb
|
82
|
+
- test/dummy/app/controllers/timelines_controller.rb
|
83
|
+
- test/dummy/app/helpers/application_helper.rb
|
84
|
+
- test/dummy/app/mailers/.gitkeep
|
85
|
+
- test/dummy/app/models/.gitkeep
|
86
|
+
- test/dummy/app/views/layouts/application.html.erb
|
87
|
+
- test/dummy/app/views/timelines/index.html.erb
|
88
|
+
- test/dummy/config.ru
|
89
|
+
- test/dummy/config/application.rb
|
90
|
+
- test/dummy/config/boot.rb
|
91
|
+
- test/dummy/config/environment.rb
|
92
|
+
- test/dummy/config/environments/development.rb
|
93
|
+
- test/dummy/config/environments/production.rb
|
94
|
+
- test/dummy/config/environments/test.rb
|
95
|
+
- test/dummy/config/initializers/backtrace_silencers.rb
|
96
|
+
- test/dummy/config/initializers/inflections.rb
|
97
|
+
- test/dummy/config/initializers/mime_types.rb
|
98
|
+
- test/dummy/config/initializers/secret_token.rb
|
99
|
+
- test/dummy/config/initializers/session_store.rb
|
100
|
+
- test/dummy/config/initializers/wrap_parameters.rb
|
101
|
+
- test/dummy/config/locales/en.yml
|
102
|
+
- test/dummy/config/routes.rb
|
103
|
+
- test/dummy/lib/assets/.gitkeep
|
104
|
+
- test/dummy/log/.gitkeep
|
105
|
+
- test/dummy/public/404.html
|
106
|
+
- test/dummy/public/422.html
|
107
|
+
- test/dummy/public/500.html
|
108
|
+
- test/dummy/public/favicon.ico
|
109
|
+
- test/dummy/script/rails
|
110
|
+
- test/integration/navigation_test.rb
|
111
|
+
- test/test_helper.rb
|
112
|
+
- test/timeago-rails_test.rb
|
113
|
+
- timeago-rails.gemspec
|
114
|
+
- vendor/assets/javascripts/locales/timeago.de.js
|
115
|
+
- vendor/assets/javascripts/locales/timeago.en.js
|
116
|
+
- vendor/assets/javascripts/locales/timeago.es.js
|
117
|
+
- vendor/assets/javascripts/locales/timeago.fr.js
|
118
|
+
- vendor/assets/javascripts/locales/timeago.pt-br.js
|
119
|
+
- vendor/assets/javascripts/locales/timeago.zh-cn.js
|
120
|
+
- vendor/assets/javascripts/timeago.js
|
121
|
+
- test/dummy/log/development.log
|
122
|
+
- test/dummy/log/test.log
|
123
|
+
- test/dummy/tmp/cache/assets/C9D/130/sprockets%2F6d04663118cae4117244206b3c17fa6e
|
124
|
+
- test/dummy/tmp/cache/assets/CA7/320/sprockets%2Fac4197a17d230db8a6859f0f13507162
|
125
|
+
- test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953
|
126
|
+
- test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705
|
127
|
+
- test/dummy/tmp/cache/assets/D4B/F70/sprockets%2Faabc322719b896f72018da8fc94d45f9
|
128
|
+
- test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655
|
129
|
+
- test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6
|
130
|
+
- test/dummy/tmp/cache/assets/D63/720/sprockets%2Fc1ac36c9ebb79e0223dcef433e058016
|
131
|
+
- test/dummy/tmp/cache/assets/D89/6D0/sprockets%2Fa1816bebb0c35cab780f0351e34e3de5
|
132
|
+
- test/dummy/tmp/cache/assets/DAD/A50/sprockets%2F1eeb1738de84d21a5e01b979e89dc8de
|
133
|
+
- test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994
|
134
|
+
- test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af
|
135
|
+
homepage: https://github.com/ashchan/timeago-rails
|
136
|
+
licenses:
|
137
|
+
- MIT
|
138
|
+
post_install_message:
|
139
|
+
rdoc_options: []
|
140
|
+
require_paths:
|
141
|
+
- lib
|
142
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
143
|
+
none: false
|
144
|
+
requirements:
|
145
|
+
- - ! '>='
|
146
|
+
- !ruby/object:Gem::Version
|
147
|
+
version: '0'
|
148
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
149
|
+
none: false
|
150
|
+
requirements:
|
151
|
+
- - ! '>='
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '0'
|
154
|
+
requirements: []
|
155
|
+
rubyforge_project:
|
156
|
+
rubygems_version: 1.8.24
|
157
|
+
signing_key:
|
158
|
+
specification_version: 3
|
159
|
+
summary: Use smart-time-ago jQuery plugin with Rails 3
|
160
|
+
test_files:
|
161
|
+
- test/dummy/app/assets/javascripts/application.js
|
162
|
+
- test/dummy/app/assets/stylesheets/application.css
|
163
|
+
- test/dummy/app/controllers/application_controller.rb
|
164
|
+
- test/dummy/app/controllers/timelines_controller.rb
|
165
|
+
- test/dummy/app/helpers/application_helper.rb
|
166
|
+
- test/dummy/app/views/layouts/application.html.erb
|
167
|
+
- test/dummy/app/views/timelines/index.html.erb
|
168
|
+
- test/dummy/config/application.rb
|
169
|
+
- test/dummy/config/boot.rb
|
170
|
+
- test/dummy/config/environment.rb
|
171
|
+
- test/dummy/config/environments/development.rb
|
172
|
+
- test/dummy/config/environments/production.rb
|
173
|
+
- test/dummy/config/environments/test.rb
|
174
|
+
- test/dummy/config/initializers/backtrace_silencers.rb
|
175
|
+
- test/dummy/config/initializers/inflections.rb
|
176
|
+
- test/dummy/config/initializers/mime_types.rb
|
177
|
+
- test/dummy/config/initializers/secret_token.rb
|
178
|
+
- test/dummy/config/initializers/session_store.rb
|
179
|
+
- test/dummy/config/initializers/wrap_parameters.rb
|
180
|
+
- test/dummy/config/locales/en.yml
|
181
|
+
- test/dummy/config/routes.rb
|
182
|
+
- test/dummy/config.ru
|
183
|
+
- test/dummy/log/development.log
|
184
|
+
- test/dummy/log/test.log
|
185
|
+
- test/dummy/public/404.html
|
186
|
+
- test/dummy/public/422.html
|
187
|
+
- test/dummy/public/500.html
|
188
|
+
- test/dummy/public/favicon.ico
|
189
|
+
- test/dummy/Rakefile
|
190
|
+
- test/dummy/README.rdoc
|
191
|
+
- test/dummy/script/rails
|
192
|
+
- test/dummy/tmp/cache/assets/C9D/130/sprockets%2F6d04663118cae4117244206b3c17fa6e
|
193
|
+
- test/dummy/tmp/cache/assets/CA7/320/sprockets%2Fac4197a17d230db8a6859f0f13507162
|
194
|
+
- test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953
|
195
|
+
- test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705
|
196
|
+
- test/dummy/tmp/cache/assets/D4B/F70/sprockets%2Faabc322719b896f72018da8fc94d45f9
|
197
|
+
- test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655
|
198
|
+
- test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6
|
199
|
+
- test/dummy/tmp/cache/assets/D63/720/sprockets%2Fc1ac36c9ebb79e0223dcef433e058016
|
200
|
+
- test/dummy/tmp/cache/assets/D89/6D0/sprockets%2Fa1816bebb0c35cab780f0351e34e3de5
|
201
|
+
- test/dummy/tmp/cache/assets/DAD/A50/sprockets%2F1eeb1738de84d21a5e01b979e89dc8de
|
202
|
+
- test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994
|
203
|
+
- test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af
|
204
|
+
- test/integration/navigation_test.rb
|
205
|
+
- test/test_helper.rb
|
206
|
+
- test/timeago-rails_test.rb
|