timeago-rails 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. data/.gitignore +8 -0
  2. data/Gemfile +3 -0
  3. data/MIT-LICENSE +20 -0
  4. data/README.md +42 -0
  5. data/Rakefile +23 -0
  6. data/lib/timeago-rails.rb +1 -0
  7. data/lib/timeago/rails/engine.rb +8 -0
  8. data/lib/timeago/rails/version.rb +6 -0
  9. data/test/dummy/README.rdoc +261 -0
  10. data/test/dummy/Rakefile +7 -0
  11. data/test/dummy/app/assets/javascripts/application.js +15 -0
  12. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  13. data/test/dummy/app/controllers/application_controller.rb +3 -0
  14. data/test/dummy/app/controllers/timelines_controller.rb +20 -0
  15. data/test/dummy/app/helpers/application_helper.rb +2 -0
  16. data/test/dummy/app/mailers/.gitkeep +0 -0
  17. data/test/dummy/app/models/.gitkeep +0 -0
  18. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  19. data/test/dummy/app/views/timelines/index.html.erb +9 -0
  20. data/test/dummy/config.ru +4 -0
  21. data/test/dummy/config/application.rb +62 -0
  22. data/test/dummy/config/boot.rb +10 -0
  23. data/test/dummy/config/environment.rb +5 -0
  24. data/test/dummy/config/environments/development.rb +30 -0
  25. data/test/dummy/config/environments/production.rb +67 -0
  26. data/test/dummy/config/environments/test.rb +34 -0
  27. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  28. data/test/dummy/config/initializers/inflections.rb +15 -0
  29. data/test/dummy/config/initializers/mime_types.rb +5 -0
  30. data/test/dummy/config/initializers/secret_token.rb +7 -0
  31. data/test/dummy/config/initializers/session_store.rb +8 -0
  32. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  33. data/test/dummy/config/locales/en.yml +5 -0
  34. data/test/dummy/config/routes.rb +3 -0
  35. data/test/dummy/lib/assets/.gitkeep +0 -0
  36. data/test/dummy/log/.gitkeep +0 -0
  37. data/test/dummy/public/404.html +26 -0
  38. data/test/dummy/public/422.html +26 -0
  39. data/test/dummy/public/500.html +25 -0
  40. data/test/dummy/public/favicon.ico +0 -0
  41. data/test/dummy/script/rails +6 -0
  42. data/test/integration/navigation_test.rb +36 -0
  43. data/test/test_helper.rb +22 -0
  44. data/test/timeago-rails_test.rb +7 -0
  45. data/timeago-rails.gemspec +24 -0
  46. data/vendor/assets/javascripts/locales/timeago.de.js +28 -0
  47. data/vendor/assets/javascripts/locales/timeago.en.js +29 -0
  48. data/vendor/assets/javascripts/locales/timeago.es.js +29 -0
  49. data/vendor/assets/javascripts/locales/timeago.fr.js +29 -0
  50. data/vendor/assets/javascripts/locales/timeago.pt-br.js +29 -0
  51. data/vendor/assets/javascripts/locales/timeago.zh-cn.js +29 -0
  52. data/vendor/assets/javascripts/timeago.js +195 -0
  53. metadata +206 -0
@@ -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,7 @@
1
+ require 'test_helper'
2
+
3
+ class TimeagoRailsTest < ActiveSupport::TestCase
4
+ test "truth" do
5
+ assert_kind_of Module, Timeago::Rails
6
+ end
7
+ end
@@ -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