sr-sidekiq 4.1.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (186) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +12 -0
  3. data/3.0-Upgrade.md +70 -0
  4. data/4.0-Upgrade.md +50 -0
  5. data/COMM-LICENSE (sidekiq) +95 -0
  6. data/Changes.md +1241 -0
  7. data/Ent-Changes.md +112 -0
  8. data/Gemfile +29 -0
  9. data/LICENSE (sidekiq) +9 -0
  10. data/LICENSE (sr-sidekiq) +5 -0
  11. data/Pro-2.0-Upgrade.md +138 -0
  12. data/Pro-3.0-Upgrade.md +44 -0
  13. data/Pro-Changes.md +539 -0
  14. data/README.md +8 -0
  15. data/Rakefile +9 -0
  16. data/bin/sidekiq +18 -0
  17. data/bin/sidekiqctl +99 -0
  18. data/bin/sidekiqload +167 -0
  19. data/code_of_conduct.md +50 -0
  20. data/lib/generators/sidekiq/templates/worker.rb.erb +9 -0
  21. data/lib/generators/sidekiq/templates/worker_spec.rb.erb +6 -0
  22. data/lib/generators/sidekiq/templates/worker_test.rb.erb +8 -0
  23. data/lib/generators/sidekiq/worker_generator.rb +49 -0
  24. data/lib/sidekiq.rb +237 -0
  25. data/lib/sidekiq/api.rb +844 -0
  26. data/lib/sidekiq/cli.rb +389 -0
  27. data/lib/sidekiq/client.rb +260 -0
  28. data/lib/sidekiq/core_ext.rb +106 -0
  29. data/lib/sidekiq/exception_handler.rb +31 -0
  30. data/lib/sidekiq/extensions/action_mailer.rb +57 -0
  31. data/lib/sidekiq/extensions/active_record.rb +40 -0
  32. data/lib/sidekiq/extensions/class_methods.rb +40 -0
  33. data/lib/sidekiq/extensions/generic_proxy.rb +25 -0
  34. data/lib/sidekiq/fetch.rb +81 -0
  35. data/lib/sidekiq/launcher.rb +160 -0
  36. data/lib/sidekiq/logging.rb +106 -0
  37. data/lib/sidekiq/manager.rb +137 -0
  38. data/lib/sidekiq/middleware/chain.rb +150 -0
  39. data/lib/sidekiq/middleware/i18n.rb +42 -0
  40. data/lib/sidekiq/middleware/server/active_record.rb +13 -0
  41. data/lib/sidekiq/middleware/server/logging.rb +40 -0
  42. data/lib/sidekiq/middleware/server/retry_jobs.rb +205 -0
  43. data/lib/sidekiq/paginator.rb +43 -0
  44. data/lib/sidekiq/processor.rb +186 -0
  45. data/lib/sidekiq/rails.rb +39 -0
  46. data/lib/sidekiq/redis_connection.rb +97 -0
  47. data/lib/sidekiq/scheduled.rb +146 -0
  48. data/lib/sidekiq/testing.rb +316 -0
  49. data/lib/sidekiq/testing/inline.rb +29 -0
  50. data/lib/sidekiq/util.rb +62 -0
  51. data/lib/sidekiq/version.rb +4 -0
  52. data/lib/sidekiq/web.rb +278 -0
  53. data/lib/sidekiq/web_helpers.rb +255 -0
  54. data/lib/sidekiq/worker.rb +121 -0
  55. data/sidekiq.gemspec +26 -0
  56. data/sr-sidekiq-4.1.3.gem +0 -0
  57. data/sr-sidekiq-4.1.4.gem +0 -0
  58. data/sr-sidekiq-4.1.5.gem +0 -0
  59. data/test/config.yml +9 -0
  60. data/test/env_based_config.yml +11 -0
  61. data/test/fake_env.rb +1 -0
  62. data/test/fixtures/en.yml +2 -0
  63. data/test/helper.rb +75 -0
  64. data/test/test_actors.rb +138 -0
  65. data/test/test_api.rb +528 -0
  66. data/test/test_cli.rb +406 -0
  67. data/test/test_client.rb +262 -0
  68. data/test/test_exception_handler.rb +56 -0
  69. data/test/test_extensions.rb +127 -0
  70. data/test/test_fetch.rb +50 -0
  71. data/test/test_launcher.rb +85 -0
  72. data/test/test_logging.rb +35 -0
  73. data/test/test_manager.rb +50 -0
  74. data/test/test_middleware.rb +158 -0
  75. data/test/test_processor.rb +201 -0
  76. data/test/test_rails.rb +22 -0
  77. data/test/test_redis_connection.rb +127 -0
  78. data/test/test_retry.rb +326 -0
  79. data/test/test_retry_exhausted.rb +149 -0
  80. data/test/test_scheduled.rb +115 -0
  81. data/test/test_scheduling.rb +50 -0
  82. data/test/test_sidekiq.rb +107 -0
  83. data/test/test_testing.rb +143 -0
  84. data/test/test_testing_fake.rb +357 -0
  85. data/test/test_testing_inline.rb +94 -0
  86. data/test/test_util.rb +13 -0
  87. data/test/test_web.rb +614 -0
  88. data/test/test_web_helpers.rb +54 -0
  89. data/web/assets/images/bootstrap/glyphicons-halflings-white.png +0 -0
  90. data/web/assets/images/bootstrap/glyphicons-halflings.png +0 -0
  91. data/web/assets/images/favicon.ico +0 -0
  92. data/web/assets/images/logo.png +0 -0
  93. data/web/assets/images/status-sd8051fd480.png +0 -0
  94. data/web/assets/images/status/active.png +0 -0
  95. data/web/assets/images/status/idle.png +0 -0
  96. data/web/assets/javascripts/application.js +88 -0
  97. data/web/assets/javascripts/dashboard.js +300 -0
  98. data/web/assets/javascripts/locales/README.md +27 -0
  99. data/web/assets/javascripts/locales/jquery.timeago.ar.js +96 -0
  100. data/web/assets/javascripts/locales/jquery.timeago.bg.js +18 -0
  101. data/web/assets/javascripts/locales/jquery.timeago.bs.js +49 -0
  102. data/web/assets/javascripts/locales/jquery.timeago.ca.js +18 -0
  103. data/web/assets/javascripts/locales/jquery.timeago.cs.js +18 -0
  104. data/web/assets/javascripts/locales/jquery.timeago.cy.js +20 -0
  105. data/web/assets/javascripts/locales/jquery.timeago.da.js +18 -0
  106. data/web/assets/javascripts/locales/jquery.timeago.de.js +18 -0
  107. data/web/assets/javascripts/locales/jquery.timeago.el.js +18 -0
  108. data/web/assets/javascripts/locales/jquery.timeago.en-short.js +20 -0
  109. data/web/assets/javascripts/locales/jquery.timeago.en.js +20 -0
  110. data/web/assets/javascripts/locales/jquery.timeago.es.js +18 -0
  111. data/web/assets/javascripts/locales/jquery.timeago.et.js +18 -0
  112. data/web/assets/javascripts/locales/jquery.timeago.fa.js +22 -0
  113. data/web/assets/javascripts/locales/jquery.timeago.fi.js +28 -0
  114. data/web/assets/javascripts/locales/jquery.timeago.fr-short.js +16 -0
  115. data/web/assets/javascripts/locales/jquery.timeago.fr.js +17 -0
  116. data/web/assets/javascripts/locales/jquery.timeago.he.js +18 -0
  117. data/web/assets/javascripts/locales/jquery.timeago.hr.js +49 -0
  118. data/web/assets/javascripts/locales/jquery.timeago.hu.js +18 -0
  119. data/web/assets/javascripts/locales/jquery.timeago.hy.js +18 -0
  120. data/web/assets/javascripts/locales/jquery.timeago.id.js +18 -0
  121. data/web/assets/javascripts/locales/jquery.timeago.it.js +16 -0
  122. data/web/assets/javascripts/locales/jquery.timeago.ja.js +19 -0
  123. data/web/assets/javascripts/locales/jquery.timeago.ko.js +17 -0
  124. data/web/assets/javascripts/locales/jquery.timeago.lt.js +20 -0
  125. data/web/assets/javascripts/locales/jquery.timeago.mk.js +20 -0
  126. data/web/assets/javascripts/locales/jquery.timeago.nl.js +20 -0
  127. data/web/assets/javascripts/locales/jquery.timeago.no.js +18 -0
  128. data/web/assets/javascripts/locales/jquery.timeago.pl.js +31 -0
  129. data/web/assets/javascripts/locales/jquery.timeago.pt-br.js +16 -0
  130. data/web/assets/javascripts/locales/jquery.timeago.pt.js +16 -0
  131. data/web/assets/javascripts/locales/jquery.timeago.ro.js +18 -0
  132. data/web/assets/javascripts/locales/jquery.timeago.rs.js +49 -0
  133. data/web/assets/javascripts/locales/jquery.timeago.ru.js +34 -0
  134. data/web/assets/javascripts/locales/jquery.timeago.sk.js +18 -0
  135. data/web/assets/javascripts/locales/jquery.timeago.sl.js +44 -0
  136. data/web/assets/javascripts/locales/jquery.timeago.sv.js +18 -0
  137. data/web/assets/javascripts/locales/jquery.timeago.th.js +20 -0
  138. data/web/assets/javascripts/locales/jquery.timeago.tr.js +16 -0
  139. data/web/assets/javascripts/locales/jquery.timeago.uk.js +34 -0
  140. data/web/assets/javascripts/locales/jquery.timeago.uz.js +19 -0
  141. data/web/assets/javascripts/locales/jquery.timeago.zh-cn.js +20 -0
  142. data/web/assets/javascripts/locales/jquery.timeago.zh-tw.js +20 -0
  143. data/web/assets/stylesheets/application.css +754 -0
  144. data/web/assets/stylesheets/bootstrap.css +9 -0
  145. data/web/locales/cs.yml +78 -0
  146. data/web/locales/da.yml +68 -0
  147. data/web/locales/de.yml +69 -0
  148. data/web/locales/el.yml +68 -0
  149. data/web/locales/en.yml +79 -0
  150. data/web/locales/es.yml +69 -0
  151. data/web/locales/fr.yml +78 -0
  152. data/web/locales/hi.yml +75 -0
  153. data/web/locales/it.yml +69 -0
  154. data/web/locales/ja.yml +78 -0
  155. data/web/locales/ko.yml +68 -0
  156. data/web/locales/nb.yml +77 -0
  157. data/web/locales/nl.yml +68 -0
  158. data/web/locales/pl.yml +59 -0
  159. data/web/locales/pt-br.yml +68 -0
  160. data/web/locales/pt.yml +67 -0
  161. data/web/locales/ru.yml +78 -0
  162. data/web/locales/sv.yml +68 -0
  163. data/web/locales/ta.yml +75 -0
  164. data/web/locales/uk.yml +76 -0
  165. data/web/locales/zh-cn.yml +68 -0
  166. data/web/locales/zh-tw.yml +68 -0
  167. data/web/views/_footer.erb +17 -0
  168. data/web/views/_job_info.erb +88 -0
  169. data/web/views/_nav.erb +66 -0
  170. data/web/views/_paging.erb +23 -0
  171. data/web/views/_poll_js.erb +5 -0
  172. data/web/views/_poll_link.erb +7 -0
  173. data/web/views/_status.erb +4 -0
  174. data/web/views/_summary.erb +40 -0
  175. data/web/views/busy.erb +94 -0
  176. data/web/views/dashboard.erb +75 -0
  177. data/web/views/dead.erb +34 -0
  178. data/web/views/layout.erb +32 -0
  179. data/web/views/morgue.erb +71 -0
  180. data/web/views/queue.erb +45 -0
  181. data/web/views/queues.erb +28 -0
  182. data/web/views/retries.erb +74 -0
  183. data/web/views/retry.erb +34 -0
  184. data/web/views/scheduled.erb +54 -0
  185. data/web/views/scheduled_job_info.erb +8 -0
  186. metadata +408 -0
@@ -0,0 +1,16 @@
1
+ // French shortened
2
+ jQuery.timeago.settings.strings = {
3
+ prefixAgo: "il y a",
4
+ prefixFromNow: "d'ici",
5
+ seconds: "moins d'une minute",
6
+ minute: "une minute",
7
+ minutes: "%d minutes",
8
+ hour: "une heure",
9
+ hours: "%d heures",
10
+ day: "un jour",
11
+ days: "%d jours",
12
+ month: "un mois",
13
+ months: "%d mois",
14
+ year: "un an",
15
+ years: "%d ans"
16
+ };
@@ -0,0 +1,17 @@
1
+ // French
2
+ jQuery.timeago.settings.strings = {
3
+ // environ ~= about, it's optional
4
+ prefixAgo: "il y a",
5
+ prefixFromNow: "d'ici",
6
+ seconds: "moins d'une minute",
7
+ minute: "environ une minute",
8
+ minutes: "environ %d minutes",
9
+ hour: "environ une heure",
10
+ hours: "environ %d heures",
11
+ day: "environ un jour",
12
+ days: "environ %d jours",
13
+ month: "environ un mois",
14
+ months: "environ %d mois",
15
+ year: "un an",
16
+ years: "%d ans"
17
+ };
@@ -0,0 +1,18 @@
1
+ // Hebrew
2
+ jQuery.timeago.settings.strings = {
3
+ prefixAgo: "לפני",
4
+ prefixFromNow: "מעכשיו",
5
+ suffixAgo: "",
6
+ suffixFromNow: "",
7
+ seconds: "פחות מדקה",
8
+ minute: "דקה",
9
+ minutes: "%d דקות",
10
+ hour: "שעה",
11
+ hours: "%d שעות",
12
+ day: "יום",
13
+ days: "%d ימים",
14
+ month: "חודש",
15
+ months: "%d חודשים",
16
+ year: "שנה",
17
+ years: "%d שנים"
18
+ };
@@ -0,0 +1,49 @@
1
+ // Croatian
2
+ (function () {
3
+ var numpf;
4
+
5
+ numpf = function (n, f, s, t) {
6
+ var n10;
7
+ n10 = n % 10;
8
+ if (n10 === 1 && (n === 1 || n > 20)) {
9
+ return f;
10
+ } else if (n10 > 1 && n10 < 5 && (n > 20 || n < 10)) {
11
+ return s;
12
+ } else {
13
+ return t;
14
+ }
15
+ };
16
+
17
+ jQuery.timeago.settings.strings = {
18
+ prefixAgo: "prije",
19
+ prefixFromNow: "za",
20
+ suffixAgo: null,
21
+ suffixFromNow: null,
22
+ second: "sekundu",
23
+ seconds: function (value) {
24
+ return numpf(value, "%d sekundu", "%d sekunde", "%d sekundi");
25
+ },
26
+ minute: "oko minutu",
27
+ minutes: function (value) {
28
+ return numpf(value, "%d minutu", "%d minute", "%d minuta");
29
+ },
30
+ hour: "oko jedan sat",
31
+ hours: function (value) {
32
+ return numpf(value, "%d sat", "%d sata", "%d sati");
33
+ },
34
+ day: "jedan dan",
35
+ days: function (value) {
36
+ return numpf(value, "%d dan", "%d dana", "%d dana");
37
+ },
38
+ month: "mjesec dana",
39
+ months: function (value) {
40
+ return numpf(value, "%d mjesec", "%d mjeseca", "%d mjeseci");
41
+ },
42
+ year: "prije godinu dana",
43
+ years: function (value) {
44
+ return numpf(value, "%d godinu", "%d godine", "%d godina");
45
+ },
46
+ wordSeparator: " "
47
+ };
48
+
49
+ }).call(this);
@@ -0,0 +1,18 @@
1
+ // Hungarian
2
+ jQuery.timeago.settings.strings = {
3
+ prefixAgo: null,
4
+ prefixFromNow: null,
5
+ suffixAgo: null,
6
+ suffixFromNow: null,
7
+ seconds: "kevesebb mint egy perce",
8
+ minute: "körülbelül egy perce",
9
+ minutes: "%d perce",
10
+ hour: "körülbelül egy órája",
11
+ hours: "körülbelül %d órája",
12
+ day: "körülbelül egy napja",
13
+ days: "%d napja",
14
+ month: "körülbelül egy hónapja",
15
+ months: "%d hónapja",
16
+ year: "körülbelül egy éve",
17
+ years: "%d éve"
18
+ };
@@ -0,0 +1,18 @@
1
+ // Armenian
2
+ jQuery.timeago.settings.strings = {
3
+ prefixAgo: null,
4
+ prefixFromNow: null,
5
+ suffixAgo: "առաջ",
6
+ suffixFromNow: "հետո",
7
+ seconds: "վայրկյաններ",
8
+ minute: "մեկ րոպե",
9
+ minutes: "%d րոպե",
10
+ hour: "մեկ ժամ",
11
+ hours: "%d ժամ",
12
+ day: "մեկ օր",
13
+ days: "%d օր",
14
+ month: "մեկ ամիս",
15
+ months: "%d ամիս",
16
+ year: "մեկ տարի",
17
+ years: "%d տարի"
18
+ };
@@ -0,0 +1,18 @@
1
+ // Indonesian
2
+ jQuery.timeago.settings.strings = {
3
+ prefixAgo: null,
4
+ prefixFromNow: null,
5
+ suffixAgo: "yang lalu",
6
+ suffixFromNow: "dari sekarang",
7
+ seconds: "kurang dari semenit",
8
+ minute: "sekitar satu menit",
9
+ minutes: "%d menit",
10
+ hour: "sekitar sejam",
11
+ hours: "sekitar %d jam",
12
+ day: "sehari",
13
+ days: "%d hari",
14
+ month: "sekitar sebulan",
15
+ months: "%d bulan",
16
+ year: "sekitar setahun",
17
+ years: "%d tahun"
18
+ };
@@ -0,0 +1,16 @@
1
+ // Italian
2
+ jQuery.timeago.settings.strings = {
3
+ suffixAgo: "fa",
4
+ suffixFromNow: "da ora",
5
+ seconds: "meno di un minuto",
6
+ minute: "circa un minuto",
7
+ minutes: "%d minuti",
8
+ hour: "circa un'ora",
9
+ hours: "circa %d ore",
10
+ day: "un giorno",
11
+ days: "%d giorni",
12
+ month: "circa un mese",
13
+ months: "%d mesi",
14
+ year: "circa un anno",
15
+ years: "%d anni"
16
+ };
@@ -0,0 +1,19 @@
1
+ // Japanese
2
+ jQuery.timeago.settings.strings = {
3
+ prefixAgo: "",
4
+ prefixFromNow: "今から",
5
+ suffixAgo: "前",
6
+ suffixFromNow: "後",
7
+ seconds: "1 分未満",
8
+ minute: "約 1 分",
9
+ minutes: "%d 分",
10
+ hour: "約 1 時間",
11
+ hours: "約 %d 時間",
12
+ day: "約 1 日",
13
+ days: "約 %d 日",
14
+ month: "約 1 月",
15
+ months: "約 %d 月",
16
+ year: "約 1 年",
17
+ years: "約 %d 年",
18
+ wordSeparator: ""
19
+ };
@@ -0,0 +1,17 @@
1
+ // Korean
2
+ jQuery.timeago.settings.strings = {
3
+ suffixAgo: "전",
4
+ suffixFromNow: "후",
5
+ seconds: "1분 이내",
6
+ minute: "1분",
7
+ minutes: "%d분",
8
+ hour: "1시간",
9
+ hours: "%d시간",
10
+ day: "하루",
11
+ days: "%d일",
12
+ month: "한 달",
13
+ months: "%d달",
14
+ year: "1년",
15
+ years: "%d년",
16
+ wordSeparator: " "
17
+ };
@@ -0,0 +1,20 @@
1
+ //Lithuanian
2
+ jQuery.timeago.settings.strings = {
3
+ prefixAgo: "prieš",
4
+ prefixFromNow: null,
5
+ suffixAgo: null,
6
+ suffixFromNow: "nuo dabar",
7
+ seconds: "%d sek.",
8
+ minute: "min.",
9
+ minutes: "%d min.",
10
+ hour: "val.",
11
+ hours: "%d val.",
12
+ day: "1 d.",
13
+ days: "%d d.",
14
+ month: "mėn.",
15
+ months: "%d mėn.",
16
+ year: "metus",
17
+ years: "%d metus",
18
+ wordSeparator: " ",
19
+ numbers: []
20
+ };
@@ -0,0 +1,20 @@
1
+ // Macedonian
2
+ (function() {
3
+ jQuery.timeago.settings.strings={
4
+ prefixAgo: "пред",
5
+ prefixFromNow: "за",
6
+ suffixAgo: null,
7
+ suffixFromNow: null,
8
+ seconds: "%d секунди",
9
+ minute: "%d минута",
10
+ minutes: "%d минути",
11
+ hour: "%d час",
12
+ hours: "%d часа",
13
+ day: "%d ден",
14
+ days: "%d денови" ,
15
+ month: "%d месец",
16
+ months: "%d месеци",
17
+ year: "%d година",
18
+ years: "%d години"
19
+ }
20
+ })();
@@ -0,0 +1,20 @@
1
+ // Dutch
2
+ jQuery.timeago.settings.strings = {
3
+ prefixAgo: null,
4
+ prefixFromNow: "",
5
+ suffixAgo: "geleden",
6
+ suffixFromNow: "van nu",
7
+ seconds: "minder dan een minuut",
8
+ minute: "ongeveer een minuut",
9
+ minutes: "%d minuten",
10
+ hour: "ongeveer een uur",
11
+ hours: "ongeveer %d uur",
12
+ day: "een dag",
13
+ days: "%d dagen",
14
+ month: "ongeveer een maand",
15
+ months: "%d maanden",
16
+ year: "ongeveer een jaar",
17
+ years: "%d jaar",
18
+ wordSeparator: " ",
19
+ numbers: []
20
+ };
@@ -0,0 +1,18 @@
1
+ // Norwegian
2
+ jQuery.timeago.settings.strings = {
3
+ prefixAgo: "for",
4
+ prefixFromNow: "om",
5
+ suffixAgo: "siden",
6
+ suffixFromNow: "",
7
+ seconds: "mindre enn et minutt",
8
+ minute: "ca. et minutt",
9
+ minutes: "%d minutter",
10
+ hour: "ca. en time",
11
+ hours: "ca. %d timer",
12
+ day: "en dag",
13
+ days: "%d dager",
14
+ month: "ca. en måned",
15
+ months: "%d måneder",
16
+ year: "ca. et år",
17
+ years: "%d år"
18
+ };
@@ -0,0 +1,31 @@
1
+ // Polish
2
+ (function() {
3
+ function numpf(n, s, t) {
4
+ // s - 2-4, 22-24, 32-34 ...
5
+ // t - 5-21, 25-31, ...
6
+ var n10 = n % 10;
7
+ if ( (n10 > 1) && (n10 < 5) && ( (n > 20) || (n < 10) ) ) {
8
+ return s;
9
+ } else {
10
+ return t;
11
+ }
12
+ }
13
+
14
+ jQuery.timeago.settings.strings = {
15
+ prefixAgo: null,
16
+ prefixFromNow: "za",
17
+ suffixAgo: "temu",
18
+ suffixFromNow: null,
19
+ seconds: "mniej niż minutę",
20
+ minute: "minutę",
21
+ minutes: function(value) { return numpf(value, "%d minuty", "%d minut"); },
22
+ hour: "godzinę",
23
+ hours: function(value) { return numpf(value, "%d godziny", "%d godzin"); },
24
+ day: "dzień",
25
+ days: "%d dni",
26
+ month: "miesiąc",
27
+ months: function(value) { return numpf(value, "%d miesiące", "%d miesięcy"); },
28
+ year: "rok",
29
+ years: function(value) { return numpf(value, "%d lata", "%d lat"); }
30
+ };
31
+ })();
@@ -0,0 +1,16 @@
1
+ // Brasilian Portuguese
2
+ jQuery.timeago.settings.strings = {
3
+ suffixAgo: "atrás",
4
+ suffixFromNow: "a partir de agora",
5
+ seconds: "menos de um minuto",
6
+ minute: "cerca de um minuto",
7
+ minutes: "%d minutos",
8
+ hour: "cerca de uma hora",
9
+ hours: "cerca de %d horas",
10
+ day: "um dia",
11
+ days: "%d dias",
12
+ month: "cerca de um mês",
13
+ months: "%d meses",
14
+ year: "cerca de um ano",
15
+ years: "%d anos"
16
+ };
@@ -0,0 +1,16 @@
1
+ // Portuguese
2
+ jQuery.timeago.settings.strings = {
3
+ suffixAgo: "atrás",
4
+ suffixFromNow: "a partir de agora",
5
+ seconds: "menos de um minuto",
6
+ minute: "cerca de um minuto",
7
+ minutes: "%d minutos",
8
+ hour: "cerca de uma hora",
9
+ hours: "cerca de %d horas",
10
+ day: "um dia",
11
+ days: "%d dias",
12
+ month: "cerca de um mês",
13
+ months: "%d meses",
14
+ year: "cerca de um ano",
15
+ years: "%d anos"
16
+ };
@@ -0,0 +1,18 @@
1
+ // Romanian
2
+ $.timeago.settings.strings = {
3
+ prefixAgo: "acum",
4
+ prefixFromNow: "in timp de",
5
+ suffixAgo: "",
6
+ suffixFromNow: "",
7
+ seconds: "mai putin de un minut",
8
+ minute: "un minut",
9
+ minutes: "%d minute",
10
+ hour: "o ora",
11
+ hours: "%d ore",
12
+ day: "o zi",
13
+ days: "%d zile",
14
+ month: "o luna",
15
+ months: "%d luni",
16
+ year: "un an",
17
+ years: "%d ani"
18
+ };
@@ -0,0 +1,49 @@
1
+ // Serbian
2
+ (function () {
3
+ var numpf;
4
+
5
+ numpf = function (n, f, s, t) {
6
+ var n10;
7
+ n10 = n % 10;
8
+ if (n10 === 1 && (n === 1 || n > 20)) {
9
+ return f;
10
+ } else if (n10 > 1 && n10 < 5 && (n > 20 || n < 10)) {
11
+ return s;
12
+ } else {
13
+ return t;
14
+ }
15
+ };
16
+
17
+ jQuery.timeago.settings.strings = {
18
+ prefixAgo: "pre",
19
+ prefixFromNow: "za",
20
+ suffixAgo: null,
21
+ suffixFromNow: null,
22
+ second: "sekund",
23
+ seconds: function (value) {
24
+ return numpf(value, "%d sekund", "%d sekunde", "%d sekundi");
25
+ },
26
+ minute: "oko minut",
27
+ minutes: function (value) {
28
+ return numpf(value, "%d minut", "%d minuta", "%d minuta");
29
+ },
30
+ hour: "oko jedan sat",
31
+ hours: function (value) {
32
+ return numpf(value, "%d sat", "%d sata", "%d sati");
33
+ },
34
+ day: "jedan dan",
35
+ days: function (value) {
36
+ return numpf(value, "%d dan", "%d dana", "%d dana");
37
+ },
38
+ month: "mesec dana",
39
+ months: function (value) {
40
+ return numpf(value, "%d mesec", "%d meseca", "%d meseci");
41
+ },
42
+ year: "pre godinu dana",
43
+ years: function (value) {
44
+ return numpf(value, "%d godinu", "%d godine", "%d godina");
45
+ },
46
+ wordSeparator: " "
47
+ };
48
+
49
+ }).call(this);