cronex 0.5.0 → 0.6.0

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 CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- YzBmOGNiZWIzNzUxMmE4NDIzN2Q4YjU1ZGQyZDQ1OWU2ZjdlODBlOQ==
5
- data.tar.gz: !binary |-
6
- M2Y5NThhMDZhYWE5NGU0ODYxM2FiMDBhNjc1MjVhNDg5YjkzNGJmMg==
2
+ SHA1:
3
+ metadata.gz: 081c0fa8d2bf218663e3b48a43a6b4ac8287cf6d
4
+ data.tar.gz: 8311c133c8a3cda5dcac7db0145afd825db70694
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- OWVlYjJmOGVlYTZmYTI4ZDU3ZDAwOTNlYmE3YmFiZDZlNTczNWJlMjQ3NDQ1
10
- MDNkMDEwYmMwMzBiODYyODQ1ZmI3ZWE5Mzg1MDMwZjkwMzdiMTIyNzQ0Yzlm
11
- MTM1MWRmZjNlNzQ2NDcxZTM3YmI1MDY0ODAzZTU0N2Q4MGNkZjk=
12
- data.tar.gz: !binary |-
13
- MmNkZjljNDUwYTYxYzdkMzliZjg4ZGIzZWNhZGUyNjNmZWM1MjZhMzE4ZWVi
14
- ZGNjZmRhOWYzMmRlNDVmMjliYWEzZjFiOGIwYjE0ODU3Y2NmNDYwMGUzOWY2
15
- NjQwOTVjYmE5YmViYWVhOGUyODBmYjg5MWYwMjNhYTUzM2NlMzE=
6
+ metadata.gz: 869366f189713aa55aa0dcbe66fa8723cee93350378236fe22243c8400e051d24346b2a31fed9b4f7de08f5af7f89a83e6a25157315dea0392b833376e68a2a2
7
+ data.tar.gz: c8d5408aa713911a1f2a643255933ce4752cd57126aa79181145bbdfb2d1e6fbc0ee03d77e15c5ff31eabb86dbef258d649ca19e5bb23e2d9dc77f92c9a2a8ac
@@ -0,0 +1,3 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.2
@@ -1,11 +1,15 @@
1
+ ### [0.6.0] - 2017-02-17
2
+ * Add romanian and russian locales
3
+ * Minor fixes to the french locale
4
+
1
5
  ### [0.5.0] - 2017-02-15
2
- * Add french translation
6
+ * Add french locale
3
7
 
4
8
  ### [0.4.0] - 2016-11-28
5
9
  * Fix handling leading zeros in numbers
6
10
 
7
11
  ### [0.3.0] - 2016-03-02
8
- * Add pt_BR translation
12
+ * Add pt_BR locale
9
13
 
10
14
  ### [0.2.0] - 2015-10-25
11
15
  * Initial public version
data/README.md CHANGED
@@ -1,4 +1,7 @@
1
- #Cronex
1
+ # Cronex
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/cronex.svg)](https://badge.fury.io/rb/cronex)
4
+ [![Build Status](https://travis-ci.org/alpinweis/cronex.svg?branch=master)](https://travis-ci.org/alpinweis/cronex)
2
5
 
3
6
  A Ruby library that converts cron expressions into human readable strings.
4
7
  Translated to Ruby from [cron-expression-descriptor](https://github.com/bradyholt/cron-expression-descriptor) (C#) via
@@ -16,6 +19,14 @@ Original Author & Credit: Brady Holt (http://www.geekytidbits.com).
16
19
 
17
20
  For a quick intro to cron see Quartz [Cron Tutorial](http://www.quartz-scheduler.org/documentation/quartz-1.x/tutorials/crontrigger).
18
21
 
22
+ ## Available Locales
23
+
24
+ * English
25
+ * Brazilian
26
+ * French
27
+ * Romanian
28
+ * Russian
29
+
19
30
  ## Installation
20
31
 
21
32
  Add this line to your application's Gemfile:
@@ -44,7 +55,7 @@ Or install it yourself as:
44
55
 
45
56
  Cronex::ExpressionDescriptor.new('*/5 15 * * 1-5', zero_based_dow: false).description
46
57
  => Every 5 minutes, at 3:00 PM, Sunday through Thursday
47
-
58
+
48
59
  #### Localization
49
60
 
50
61
  Cronex::ExpressionDescriptor.new('30 2 * 2 1-5', {}, 'fr').description
@@ -1,4 +1,4 @@
1
1
  module Cronex
2
2
  ExpressionError = Class.new(StandardError)
3
- ResourceError = Class.new(StandardError)
3
+ ResourceError = Class.new(StandardError)
4
4
  end
@@ -1,3 +1,3 @@
1
1
  module Cronex
2
- VERSION = '0.5.0'
2
+ VERSION = '0.6.0'
3
3
  end
@@ -35,25 +35,25 @@ every_x: 'every %s'
35
35
  at_x: 'at %s'
36
36
  on_x: 'on %s'
37
37
  in_x: 'in %s'
38
- first: first
39
- second: second
40
- third: third
41
- fourth: fourth
42
- fifth: fifth
43
- time_pm: PM
44
- time_am: AM
45
- and: and
46
- at: At
47
- day: day
48
- days: days
49
- hour: hour
50
- hours: hours
51
- minute: minute
52
- minutes: minutes
53
- month: month
54
- months: months
55
- year: year
56
- years: years
38
+ first: first
39
+ second: second
40
+ third: third
41
+ fourth: fourth
42
+ fifth: fifth
43
+ time_pm: PM
44
+ time_am: AM
45
+ and: and
46
+ at: At
47
+ day: day
48
+ days: days
49
+ hour: hour
50
+ hours: hours
51
+ minute: minute
52
+ minutes: minutes
53
+ month: month
54
+ months: months
55
+ year: year
56
+ years: years
57
57
  monday: Monday
58
58
  tuesday: Tuesday
59
59
  wednesday: Wednesday
@@ -17,13 +17,13 @@ at_x_seconds_past_the_minute: 'à %s secondes après la minute'
17
17
  minutes_through_past_the_hour: "minutes %s à %s après l'heure"
18
18
  on_day_of_the_month: 'le %s de chaque mois'
19
19
  first_weekday: 'premier jour de la semaine'
20
- weekday_nearest_day: 'le jour de semaine le plus proche du %s'
21
- starting: 'commence'
22
- only_on: 'seulement le %s'
20
+ weekday_nearest_day: 'jour de semaine le plus proche du %s'
21
+ starting: 'commence' # départ
22
+ only_on: 'seulement le %s' # uniquement le
23
23
  only_in: 'seulement en %s'
24
24
  every_x_seconds: 'toutes les %s secondes'
25
- every_minute_between: 'Chaque minute entre %s et %s'
26
- every_second: 'Chaque seconde'
25
+ every_minute_between: 'chaque minute entre %s et %s'
26
+ every_second: 'chaque seconde'
27
27
  every_minute: 'chaque minute'
28
28
  every_1_minute: 'toutes les 1 minutes'
29
29
  every_hour: 'chaque heure'
@@ -35,25 +35,25 @@ every_x: 'tous les %s'
35
35
  at_x: 'à %s'
36
36
  on_x: 'le %s'
37
37
  in_x: 'en %s'
38
- first: premier
39
- second: second
40
- third: troisieme
41
- fourth: quatrieme
42
- fifth: cinquieme
43
- time_pm: PM
44
- time_am: AM
45
- and: et
46
- at: À
47
- day: jour
48
- days: jours
49
- hour: heure
50
- hours: heures
51
- minute: minute
52
- minutes: minutes
53
- month: mois
54
- months: mois
55
- year: an
56
- years: ans
38
+ first: premier
39
+ second: second
40
+ third: troisième
41
+ fourth: quatrième
42
+ fifth: cinquième
43
+ time_pm: PM
44
+ time_am: AM
45
+ and: et
46
+ at: À
47
+ day: jour
48
+ days: jours
49
+ hour: heure
50
+ hours: heures
51
+ minute: minute
52
+ minutes: minutes
53
+ month: mois
54
+ months: mois
55
+ year: an
56
+ years: ans
57
57
  monday: lundi
58
58
  tuesday: mardi
59
59
  wednesday: mercredi
@@ -35,25 +35,25 @@ every_x: 'a cada %s'
35
35
  at_x: '%s'
36
36
  on_x: '%s'
37
37
  in_x: 'em %s'
38
- first: primeiro(a)
39
- second: segundo(a)
40
- third: terceiro(a)
41
- fourth: quarto(a)
42
- fifth: quinto(a)
43
- time_pm: após meio-dia
44
- time_am: antes do meio-dia
45
- and: e
46
- at: às
47
- day: dia
48
- days: dias
49
- hour: hora
50
- hours: horas
51
- minute: minuto
52
- minutes: minutos
53
- month: mês
54
- months: mêses
55
- year: ano
56
- years: anos
38
+ first: primeiro(a)
39
+ second: segundo(a)
40
+ third: terceiro(a)
41
+ fourth: quarto(a)
42
+ fifth: quinto(a)
43
+ time_pm: após meio-dia
44
+ time_am: antes do meio-dia
45
+ and: e
46
+ at: às
47
+ day: dia
48
+ days: dias
49
+ hour: hora
50
+ hours: horas
51
+ minute: minuto
52
+ minutes: minutos
53
+ month: mês
54
+ months: mêses
55
+ year: ano
56
+ years: anos
57
57
  monday: segunda-feira
58
58
  tuesday: terça-feira
59
59
  wednesday: quarta-feira
@@ -0,0 +1,75 @@
1
+ # resources_ro.yml
2
+ ---
3
+ expression_empty_exception: 'Expresia nu poate fi vidă sau nulă'
4
+ interval_description_format: 'în fiecare %s zile din săptămână'
5
+ between_description_format: 'din %s până în %s'
6
+ between_weekday_description_format: 'de %s până %s'
7
+ on_the_day_of_the_month: 'în {{nth}} %s a lunii'
8
+ on_the_of_the_month: 'în %s ale lunii'
9
+ on_the_last_of_the_month: 'în ultima %s din lună'
10
+ on_the_last_day_of_the_month: 'în ultima zi a lunii'
11
+ on_the_last_weekday_of_the_month: 'în ultima zi din săptămână a lunii'
12
+ between_days_of_the_month: 'între a %s-a și a %s-a zi a lunii'
13
+ seconds_through_past_the_minute: 'între secundele %s și %s'
14
+ between_x_and_y: 'între %s și %s'
15
+ past_the_hour: 'în fiecare oră'
16
+ at_x_seconds_past_the_minute: 'la secunda %s'
17
+ minutes_through_past_the_hour: 'între minutele %s și %s'
18
+ on_day_of_the_month: 'în a %s-a zi a lunii'
19
+ first_weekday: 'prima zi din săptămână'
20
+ weekday_nearest_day: 'cea mai apropiată %s din săptămână'
21
+ starting: pornire
22
+ only_on: 'numai %s'
23
+ only_in: 'numai în %s'
24
+ every_x_seconds: 'la fiecare %s secunde'
25
+ every_minute_between: 'în fiecare minut între %s și %s'
26
+ every_second: 'în fiecare secundă'
27
+ every_minute: 'în fiecare minut'
28
+ every_1_minute: 'din minut în minut'
29
+ every_hour: 'în fiecare oră'
30
+ every_1_hour: 'din oră în oră'
31
+ every_day: 'în fiecare zi'
32
+ every_1_day: 'în fiecare zi'
33
+ every_year: 'în fiecare an'
34
+ every_x: 'la fiecare %s'
35
+ at_x: 'la %s'
36
+ on_x: 'de %s'
37
+ in_x: 'în %s'
38
+ first: prima
39
+ second: 'a doua'
40
+ third: 'a treia'
41
+ fourth: 'a patra'
42
+ fifth: 'a cincea'
43
+ time_pm: PM
44
+ time_am: AM
45
+ and: și
46
+ at: la
47
+ day: zi
48
+ days: zile
49
+ hour: oră
50
+ hours: ore
51
+ minute: minut
52
+ minutes: minute
53
+ month: lună
54
+ months: luni
55
+ year: an
56
+ years: ani
57
+ monday: luni
58
+ tuesday: marți
59
+ wednesday: miercuri
60
+ thursday: joi
61
+ friday: vineri
62
+ saturday: sâmbătă
63
+ sunday: duminică
64
+ january: ianuarie
65
+ february: februarie
66
+ march: martie
67
+ april: aprilie
68
+ may: mai
69
+ june: iunie
70
+ july: iulie
71
+ august: august
72
+ september: septembrie
73
+ october: octombrie
74
+ november: noiembrie
75
+ december: decembrie
@@ -0,0 +1,75 @@
1
+ # resources_ru.yml
2
+ ---
3
+ expression_empty_exception: 'Выражение не может быть нулевым или пустым'
4
+ interval_description_format: 'каждые %s дня(ей) недели'
5
+ between_description_format: '%s - %s'
6
+ between_weekday_description_format: '%s - %s'
7
+ on_the_day_of_the_month: 'в {{nth}} %s месяца'
8
+ on_the_of_the_month: 'в %s месяца'
9
+ on_the_last_of_the_month: 'в последний %s месяца'
10
+ on_the_last_day_of_the_month: 'в последний день месяца'
11
+ on_the_last_weekday_of_the_month: 'в последний будний день месяца'
12
+ between_days_of_the_month: 'с %s по %s число месяца'
13
+ seconds_through_past_the_minute: 'секунды с %s по %s'
14
+ between_x_and_y: 'с %s по %s'
15
+ past_the_hour: 'часа'
16
+ at_x_seconds_past_the_minute: 'в %s секунд'
17
+ minutes_through_past_the_hour: 'минуты с %s по %s'
18
+ on_day_of_the_month: '%s число месяца'
19
+ first_weekday: 'первый будний день'
20
+ weekday_nearest_day: 'ближайший будний день к %s'
21
+ starting: начало
22
+ only_on: 'только %s'
23
+ only_in: 'только %s'
24
+ every_x_seconds: 'каждые %s секунд'
25
+ every_minute_between: 'каждую минуту с %s по %s'
26
+ every_second: 'каждую секунду'
27
+ every_minute: 'каждую минуту'
28
+ every_1_minute: 'каждую минуту'
29
+ every_hour: 'каждый час'
30
+ every_1_hour: 'каждый час'
31
+ every_day: 'каждый день'
32
+ every_1_day: 'каждый день'
33
+ every_year: 'каждый год'
34
+ every_x: 'каждые %s'
35
+ at_x: 'в %s'
36
+ on_x: 'в %s'
37
+ in_x: 'в %s'
38
+ first: первый
39
+ second: второй
40
+ third: третий
41
+ fourth: четвертый
42
+ fifth: пятый
43
+ time_pm: PM
44
+ time_am: AM
45
+ and: и
46
+ at: В
47
+ day: день
48
+ days: дня(ей)
49
+ hour: час
50
+ hours: часов
51
+ minute: минута
52
+ minutes: минут
53
+ month: месяц
54
+ months: месяцев
55
+ year: год
56
+ years: лет
57
+ monday: понедельник
58
+ tuesday: вторник
59
+ wednesday: среда
60
+ thursday: четверг
61
+ friday: пятница
62
+ saturday: суббота
63
+ sunday: воскресенье
64
+ january: январь
65
+ february: февраль
66
+ march: март
67
+ april: апрель
68
+ may: май
69
+ june: июнь
70
+ july: июль
71
+ august: август
72
+ september: сентябрь
73
+ october: октябрь
74
+ november: ноябрь
75
+ december: декабрь
@@ -1,8 +1,13 @@
1
+ # encoding: utf-8
1
2
  require 'cronex'
2
3
 
3
4
  module Cronex
4
5
  describe ExpressionDescriptor do
5
6
 
7
+ def desc(expression, opts = {})
8
+ Cronex::ExpressionDescriptor.new(expression, opts, 'en').description
9
+ end
10
+
6
11
  let(:opts) { { zero_based_dow: false } }
7
12
 
8
13
  it 'every second' do
@@ -4,374 +4,378 @@ require 'cronex'
4
4
  module Cronex
5
5
  describe ExpressionDescriptor do
6
6
 
7
+ def desc(expression, opts = {})
8
+ Cronex::ExpressionDescriptor.new(expression, opts, 'fr').description
9
+ end
10
+
7
11
  let(:opts) { { zero_based_dow: false } }
8
12
 
9
13
  it 'every second' do
10
- expect(desc_fr('* * * * * *')).to eq('Chaque seconde')
14
+ expect(desc('* * * * * *')).to eq('Chaque seconde')
11
15
  end
12
16
 
13
17
  it 'every 45 seconds' do
14
- expect(desc_fr('*/45 * * * * *')).to eq('Toutes les 45 secondes')
18
+ expect(desc('*/45 * * * * *')).to eq('Toutes les 45 secondes')
15
19
  end
16
20
 
17
21
  it 'minute span' do
18
- expect(desc_fr('0-10 11 * * *')).to eq('Chaque minute entre 11:00 AM et 11:10 AM')
22
+ expect(desc('0-10 11 * * *')).to eq('Chaque minute entre 11:00 AM et 11:10 AM')
19
23
  end
20
24
 
21
25
  context 'every minute' do
22
26
  it 'every minute' do
23
- expect(desc_fr('* * * * *')).to eq('Chaque minute')
27
+ expect(desc('* * * * *')).to eq('Chaque minute')
24
28
  end
25
29
 
26
30
  it 'every minute */1' do
27
- expect(desc_fr('*/1 * * * *')).to eq('Chaque minute')
31
+ expect(desc('*/1 * * * *')).to eq('Chaque minute')
28
32
  end
29
33
 
30
34
  it 'every minute 0 0/1' do
31
- expect(desc_fr('0 0/1 * * * ?')).to eq('Chaque minute')
35
+ expect(desc('0 0/1 * * * ?')).to eq('Chaque minute')
32
36
  end
33
37
  end
34
38
 
35
39
  context 'every X minutes:' do
36
40
  it 'every 5 minutes' do
37
- expect(desc_fr('*/5 * * * *')).to eq('Tous les 5 minutes')
41
+ expect(desc('*/5 * * * *')).to eq('Tous les 5 minutes')
38
42
  end
39
43
 
40
44
  it 'every 5 minute 0 */5' do
41
- expect(desc_fr('0 */5 * * * *')).to eq('Tous les 5 minutes')
45
+ expect(desc('0 */5 * * * *')).to eq('Tous les 5 minutes')
42
46
  end
43
47
 
44
48
  it 'every 10 minutes 0 0/10' do
45
- expect(desc_fr('0 0/10 * * * ?')).to eq('Tous les 10 minutes')
49
+ expect(desc('0 0/10 * * * ?')).to eq('Tous les 10 minutes')
46
50
  end
47
51
  end
48
52
 
49
53
  context 'every hour:' do
50
54
  it 'every hour 0 0' do
51
- expect(desc_fr('0 0 * * * ?')).to eq('Chaque heure')
55
+ expect(desc('0 0 * * * ?')).to eq('Chaque heure')
52
56
  end
53
57
 
54
58
  it 'every hour 0 0 0/1' do
55
- expect(desc_fr('0 0 0/1 * * ?')).to eq('Chaque heure')
59
+ expect(desc('0 0 0/1 * * ?')).to eq('Chaque heure')
56
60
  end
57
61
  end
58
62
 
59
63
  context 'daily:' do
60
64
  it 'daily at /\d\d/:/\d\d/' do
61
- expect(desc_fr('30 11 * * *')).to eq('À 11:30 AM')
65
+ expect(desc('30 11 * * *')).to eq('À 11:30 AM')
62
66
  end
63
67
 
64
68
  it 'daily at /\d/:/\d/' do
65
- expect(desc_fr('9 8 * * *')).to eq('À 8:09 AM')
69
+ expect(desc('9 8 * * *')).to eq('À 8:09 AM')
66
70
  end
67
71
 
68
72
  it 'daily at /0[89]/:/0[89]/' do
69
- expect(desc_fr('09 08 * * *')).to eq('À 8:09 AM')
73
+ expect(desc('09 08 * * *')).to eq('À 8:09 AM')
70
74
  end
71
75
 
72
76
  it 'daily at /0[1-7]/ /0[1-7/' do
73
- expect(desc_fr('02 01 * * *')).to eq('À 1:02 AM')
77
+ expect(desc('02 01 * * *')).to eq('À 1:02 AM')
74
78
  end
75
79
  end
76
80
 
77
81
  context 'time of day certain days of week:' do
78
82
  it 'time of day on MON-FRI' do
79
- expect(desc_fr('0 23 ? * MON-FRI')).to eq('À 11:00 PM, lundi à vendredi')
83
+ expect(desc('0 23 ? * MON-FRI')).to eq('À 11:00 PM, lundi à vendredi')
80
84
  end
81
85
 
82
86
  it 'time of day on 1-5' do
83
- expect(desc_fr('30 11 * * 1-5')).to eq('À 11:30 AM, lundi à vendredi')
87
+ expect(desc('30 11 * * 1-5')).to eq('À 11:30 AM, lundi à vendredi')
84
88
  end
85
89
  end
86
90
 
87
91
  it 'one month only' do
88
- expect(desc_fr('* * * 3 *')).to eq('Chaque minute, seulement en mars')
92
+ expect(desc('* * * 3 *')).to eq('Chaque minute, seulement en mars')
89
93
  end
90
94
 
91
95
  it 'two months only' do
92
- expect(desc_fr('* * * 3,6 *')).to eq("Chaque minute, seulement en mars et juin")
96
+ expect(desc('* * * 3,6 *')).to eq("Chaque minute, seulement en mars et juin")
93
97
  end
94
98
 
95
99
  it 'two times each afternoon' do
96
- expect(desc_fr('30 14,16 * * *')).to eq("À 2:30 PM et 4:30 PM")
100
+ expect(desc('30 14,16 * * *')).to eq("À 2:30 PM et 4:30 PM")
97
101
  end
98
102
 
99
103
  it 'three times daily' do
100
- expect(desc_fr('30 6,14,16 * * *')).to eq('À 6:30 AM, 2:30 PM et 4:30 PM')
104
+ expect(desc('30 6,14,16 * * *')).to eq('À 6:30 AM, 2:30 PM et 4:30 PM')
101
105
  end
102
106
 
103
107
  context 'once a week:' do
104
108
  it 'once a week 0' do
105
- expect(desc_fr('46 9 * * 0')).to eq('À 9:46 AM, seulement le dimanche')
109
+ expect(desc('46 9 * * 0')).to eq('À 9:46 AM, seulement le dimanche')
106
110
  end
107
111
 
108
112
  it 'once a week SUN' do
109
- expect(desc_fr('46 9 * * SUN')).to eq('À 9:46 AM, seulement le dimanche')
113
+ expect(desc('46 9 * * SUN')).to eq('À 9:46 AM, seulement le dimanche')
110
114
  end
111
115
 
112
116
  it 'once a week 7' do
113
- expect(desc_fr('46 9 * * 7')).to eq('À 9:46 AM, seulement le dimanche')
117
+ expect(desc('46 9 * * 7')).to eq('À 9:46 AM, seulement le dimanche')
114
118
  end
115
119
 
116
120
  it 'once a week 1' do
117
- expect(desc_fr('46 9 * * 1')).to eq('À 9:46 AM, seulement le lundi')
121
+ expect(desc('46 9 * * 1')).to eq('À 9:46 AM, seulement le lundi')
118
122
  end
119
123
 
120
124
  it 'once a week 6' do
121
- expect(desc_fr('46 9 * * 6')).to eq('À 9:46 AM, seulement le samedi')
125
+ expect(desc('46 9 * * 6')).to eq('À 9:46 AM, seulement le samedi')
122
126
  end
123
127
  end
124
128
 
125
129
  context 'once a week non zero based:' do
126
130
  it 'once a week 1' do
127
- expect(desc_fr('46 9 * * 1', opts)).to eq('À 9:46 AM, seulement le dimanche')
131
+ expect(desc('46 9 * * 1', opts)).to eq('À 9:46 AM, seulement le dimanche')
128
132
  end
129
133
 
130
134
  it 'once a week SUN' do
131
- expect(desc_fr('46 9 * * SUN', opts)).to eq('À 9:46 AM, seulement le dimanche')
135
+ expect(desc('46 9 * * SUN', opts)).to eq('À 9:46 AM, seulement le dimanche')
132
136
  end
133
137
 
134
138
  it 'once a week 2' do
135
- expect(desc_fr('46 9 * * 2', opts)).to eq('À 9:46 AM, seulement le lundi')
139
+ expect(desc('46 9 * * 2', opts)).to eq('À 9:46 AM, seulement le lundi')
136
140
  end
137
141
 
138
142
  it 'once a week 7' do
139
- expect(desc_fr('46 9 * * 7', opts)).to eq('À 9:46 AM, seulement le samedi')
143
+ expect(desc('46 9 * * 7', opts)).to eq('À 9:46 AM, seulement le samedi')
140
144
  end
141
145
  end
142
146
 
143
147
  context 'twice a week:' do
144
148
  it 'twice a week 1,2' do
145
- expect(desc_fr('46 9 * * 1,2')).to eq('À 9:46 AM, seulement le lundi et mardi')
149
+ expect(desc('46 9 * * 1,2')).to eq('À 9:46 AM, seulement le lundi et mardi')
146
150
  end
147
151
 
148
152
  it 'twice a week MON,TUE' do
149
- expect(desc_fr('46 9 * * MON,TUE')).to eq('À 9:46 AM, seulement le lundi et mardi')
153
+ expect(desc('46 9 * * MON,TUE')).to eq('À 9:46 AM, seulement le lundi et mardi')
150
154
  end
151
155
 
152
156
  it 'twice a week 0,6' do
153
- expect(desc_fr('46 9 * * 0,6')).to eq('À 9:46 AM, seulement le dimanche et samedi')
157
+ expect(desc('46 9 * * 0,6')).to eq('À 9:46 AM, seulement le dimanche et samedi')
154
158
  end
155
159
 
156
160
  it 'twice a week 6,7' do
157
- expect(desc_fr('46 9 * * 6,7')).to eq('À 9:46 AM, seulement le samedi et dimanche')
161
+ expect(desc('46 9 * * 6,7')).to eq('À 9:46 AM, seulement le samedi et dimanche')
158
162
  end
159
163
  end
160
164
 
161
165
  context 'twice a week non zero based:' do
162
166
  it 'twice a week 1,2' do
163
- expect(desc_fr('46 9 * * 1,2', opts)).to eq('À 9:46 AM, seulement le dimanche et lundi')
167
+ expect(desc('46 9 * * 1,2', opts)).to eq('À 9:46 AM, seulement le dimanche et lundi')
164
168
  end
165
169
 
166
170
  it 'twice a week SUN,MON' do
167
- expect(desc_fr('46 9 * * SUN,MON', opts)).to eq('À 9:46 AM, seulement le dimanche et lundi')
171
+ expect(desc('46 9 * * SUN,MON', opts)).to eq('À 9:46 AM, seulement le dimanche et lundi')
168
172
  end
169
173
 
170
174
  it 'twice a week 6,7' do
171
- expect(desc_fr('46 9 * * 6,7', opts)).to eq('À 9:46 AM, seulement le vendredi et samedi')
175
+ expect(desc('46 9 * * 6,7', opts)).to eq('À 9:46 AM, seulement le vendredi et samedi')
172
176
  end
173
177
  end
174
178
 
175
179
  it 'day of month' do
176
- expect(desc_fr('23 12 15 * *')).to eq('À 12:23 PM, le 15 de chaque mois')
180
+ expect(desc('23 12 15 * *')).to eq('À 12:23 PM, le 15 de chaque mois')
177
181
  end
178
182
 
179
183
  it 'day of month ignores day of week' do
180
- expect(desc_fr('23 12 15 * SUN')).to eq('À 12:23 PM, le 15 de chaque mois')
184
+ expect(desc('23 12 15 * SUN')).to eq('À 12:23 PM, le 15 de chaque mois')
181
185
  end
182
186
 
183
187
  it 'month name' do
184
- expect(desc_fr('23 12 * JAN *')).to eq('À 12:23 PM, seulement en janvier')
188
+ expect(desc('23 12 * JAN *')).to eq('À 12:23 PM, seulement en janvier')
185
189
  end
186
190
 
187
191
  it 'day of month with question mark' do
188
- expect(desc_fr('23 12 ? JAN *')).to eq('À 12:23 PM, seulement en janvier')
192
+ expect(desc('23 12 ? JAN *')).to eq('À 12:23 PM, seulement en janvier')
189
193
  end
190
194
 
191
195
  it 'month name range 2' do
192
- expect(desc_fr('23 12 * JAN-FEB *')).to eq('À 12:23 PM, janvier à février')
196
+ expect(desc('23 12 * JAN-FEB *')).to eq('À 12:23 PM, janvier à février')
193
197
  end
194
198
 
195
199
  it 'month name range 3' do
196
- expect(desc_fr('23 12 * JAN-MAR *')).to eq('À 12:23 PM, janvier à mars')
200
+ expect(desc('23 12 * JAN-MAR *')).to eq('À 12:23 PM, janvier à mars')
197
201
  end
198
202
 
199
203
  it 'day of week name' do
200
- expect(desc_fr('23 12 * * SUN')).to eq('À 12:23 PM, seulement le dimanche')
204
+ expect(desc('23 12 * * SUN')).to eq('À 12:23 PM, seulement le dimanche')
201
205
  end
202
206
 
203
207
  context 'day of week range:' do
204
208
  it 'day of week range MON-FRI' do
205
- expect(desc_fr('*/5 15 * * MON-FRI')).to eq('Tous les 5 minutes, à 3:00 PM, lundi à vendredi')
209
+ expect(desc('*/5 15 * * MON-FRI')).to eq('Tous les 5 minutes, à 3:00 PM, lundi à vendredi')
206
210
  end
207
211
 
208
212
  it 'day of week range 0-6' do
209
- expect(desc_fr('*/5 15 * * 0-6')).to eq('Tous les 5 minutes, à 3:00 PM, dimanche à samedi')
213
+ expect(desc('*/5 15 * * 0-6')).to eq('Tous les 5 minutes, à 3:00 PM, dimanche à samedi')
210
214
  end
211
215
 
212
216
  it 'day of week range 6-7' do
213
- expect(desc_fr('*/5 15 * * 6-7')).to eq('Tous les 5 minutes, à 3:00 PM, samedi à dimanche')
217
+ expect(desc('*/5 15 * * 6-7')).to eq('Tous les 5 minutes, à 3:00 PM, samedi à dimanche')
214
218
  end
215
219
  end
216
220
 
217
221
  context 'day of week once in month:' do
218
222
  it 'day of week once MON#3' do
219
- expect(desc_fr('* * * * MON#3')).to eq('Chaque minute, le troisieme lundi du mois')
223
+ expect(desc('* * * * MON#3')).to eq('Chaque minute, le troisième lundi du mois')
220
224
  end
221
225
 
222
226
  it 'day of week once 0#3' do
223
- expect(desc_fr('* * * * 0#3')).to eq('Chaque minute, le troisieme dimanche du mois')
227
+ expect(desc('* * * * 0#3')).to eq('Chaque minute, le troisième dimanche du mois')
224
228
  end
225
229
  end
226
230
 
227
231
  context 'last day of week of the month:' do
228
232
  it 'last day of week 4L' do
229
- expect(desc_fr('* * * * 4L')).to eq('Chaque minute, le dernier jeudi du mois')
233
+ expect(desc('* * * * 4L')).to eq('Chaque minute, le dernier jeudi du mois')
230
234
  end
231
235
 
232
236
  it 'last day of week 0L' do
233
- expect(desc_fr('* * * * 0L')).to eq('Chaque minute, le dernier dimanche du mois')
237
+ expect(desc('* * * * 0L')).to eq('Chaque minute, le dernier dimanche du mois')
234
238
  end
235
239
  end
236
240
 
237
241
  it 'last day of the month' do
238
- expect(desc_fr('*/5 * L JAN *')).to eq('Tous les 5 minutes, le dernier jour du mois, seulement en janvier')
242
+ expect(desc('*/5 * L JAN *')).to eq('Tous les 5 minutes, le dernier jour du mois, seulement en janvier')
239
243
  end
240
244
 
241
245
  it 'time of day with seconds' do
242
- expect(desc_fr('30 02 14 * * *')).to eq('À 2:02:30 PM')
246
+ expect(desc('30 02 14 * * *')).to eq('À 2:02:30 PM')
243
247
  end
244
248
 
245
249
  it 'second intervals' do
246
- expect(desc_fr('5-10 * * * * *')).to eq('Secondes 5 à 10 après la minute')
250
+ expect(desc('5-10 * * * * *')).to eq('Secondes 5 à 10 après la minute')
247
251
  end
248
252
 
249
253
  it 'second minutes hours intervals' do
250
- expect(desc_fr('5-10 30-35 10-12 * * *')).to eq(
254
+ expect(desc('5-10 30-35 10-12 * * *')).to eq(
251
255
  "Secondes 5 à 10 après la minute, minutes 30 à 35 après l'heure, entre 10:00 AM et 12:59 PM")
252
256
  end
253
257
 
254
258
  it 'every 5 minutes at 30 seconds' do
255
- expect(desc_fr('30 */5 * * * *')).to eq('À 30 secondes après la minute, tous les 5 minutes')
259
+ expect(desc('30 */5 * * * *')).to eq('À 30 secondes après la minute, tous les 5 minutes')
256
260
  end
257
261
 
258
262
  it 'minutes past the hour range' do
259
- expect(desc_fr('0 30 10-13 ? * WED,FRI')).to eq(
263
+ expect(desc('0 30 10-13 ? * WED,FRI')).to eq(
260
264
  "À 30 minutes après l'heure, entre 10:00 AM et 1:59 PM, seulement le mercredi et vendredi")
261
265
  end
262
266
 
263
267
  it 'seconds past the minute interval' do
264
- expect(desc_fr('10 0/5 * * * ?')).to eq('À 10 secondes après la minute, tous les 5 minutes')
268
+ expect(desc('10 0/5 * * * ?')).to eq('À 10 secondes après la minute, tous les 5 minutes')
265
269
  end
266
270
 
267
271
  it 'between with interval' do
268
- expect(desc_fr('2-59/3 1,9,22 11-26 1-6 ?')).to eq(
272
+ expect(desc('2-59/3 1,9,22 11-26 1-6 ?')).to eq(
269
273
  "Tous les 3 minutes, minutes 02 à 59 après l'heure, à 1:00 AM, 9:00 AM et 10:00 PM, entre le 11 et le 26 du mois, janvier à juin")
270
274
  end
271
275
 
272
276
  it 'recurring first of month' do
273
- expect(desc_fr('0 0 6 1/1 * ?')).to eq('À 6:00 AM')
277
+ expect(desc('0 0 6 1/1 * ?')).to eq('À 6:00 AM')
274
278
  end
275
279
 
276
280
  it 'minutes past the hour' do
277
- expect(desc_fr('0 5 0/1 * * ?')).to eq("À 05 minutes après l'heure")
281
+ expect(desc('0 5 0/1 * * ?')).to eq("À 05 minutes après l'heure")
278
282
  end
279
283
 
280
284
  it 'every past the hour' do
281
- expect(desc_fr('0 0,5,10,15,20,25,30,35,40,45,50,55 * ? * *')).to eq(
285
+ expect(desc('0 0,5,10,15,20,25,30,35,40,45,50,55 * ? * *')).to eq(
282
286
  "À 00, 05, 10, 15, 20, 25, 30, 35, 40, 45, 50 et 55 minutes après l'heure")
283
287
  end
284
288
 
285
289
  it 'every x minute past the hour with interval' do
286
- expect(desc_fr('0 0-30/2 17 ? * MON-FRI')).to eq(
290
+ expect(desc('0 0-30/2 17 ? * MON-FRI')).to eq(
287
291
  "Tous les 2 minutes, minutes 00 à 30 après l'heure, à 5:00 PM, lundi à vendredi")
288
292
  end
289
293
 
290
294
  it 'one year only with seconds' do
291
- expect(desc_fr('* * * * * * 2013')).to eq('Chaque seconde, seulement en 2013')
295
+ expect(desc('* * * * * * 2013')).to eq('Chaque seconde, seulement en 2013')
292
296
  end
293
297
 
294
298
  it 'one year only without seconds' do
295
- expect(desc_fr('* * * * * 2013')).to eq('Chaque minute, seulement en 2013')
299
+ expect(desc('* * * * * 2013')).to eq('Chaque minute, seulement en 2013')
296
300
  end
297
301
 
298
302
  it 'two years only' do
299
- expect(desc_fr('* * * * * 2013,2014')).to eq('Chaque minute, seulement en 2013 et 2014')
303
+ expect(desc('* * * * * 2013,2014')).to eq('Chaque minute, seulement en 2013 et 2014')
300
304
  end
301
305
 
302
306
  it 'year range 2' do
303
- expect(desc_fr('23 12 * JAN-FEB * 2013-2014')).to eq('À 12:23 PM, janvier à février, 2013 à 2014')
307
+ expect(desc('23 12 * JAN-FEB * 2013-2014')).to eq('À 12:23 PM, janvier à février, 2013 à 2014')
304
308
  end
305
309
 
306
310
  it 'year range 3' do
307
- expect(desc_fr('23 12 * JAN-MAR * 2013-2015')).to eq('À 12:23 PM, janvier à mars, 2013 à 2015')
311
+ expect(desc('23 12 * JAN-MAR * 2013-2015')).to eq('À 12:23 PM, janvier à mars, 2013 à 2015')
308
312
  end
309
313
 
310
314
  context 'multi part range seconds:' do
311
315
  it 'multi part range seconds 2,4-5' do
312
- expect(desc_fr('2,4-5 1 * * *')).to eq("Minutes 02,04 à 05 après l'heure, à 1:00 AM")
316
+ expect(desc('2,4-5 1 * * *')).to eq("Minutes 02,04 à 05 après l'heure, à 1:00 AM")
313
317
  end
314
318
 
315
319
  it 'multi part range seconds 2,26-28' do
316
- expect(desc_fr('2,26-28 18 * * *')).to eq("Minutes 02,26 à 28 après l'heure, à 6:00 PM")
320
+ expect(desc('2,26-28 18 * * *')).to eq("Minutes 02,26 à 28 après l'heure, à 6:00 PM")
317
321
  end
318
322
  end
319
323
 
320
324
  context 'minutes past the hour:' do
321
325
  it 'minutes past the hour 5,10' do
322
- expect(desc_fr('5,10 0 * * *')).to eq("À 05 et 10 minutes après l'heure")
326
+ expect(desc('5,10 0 * * *')).to eq("À 05 et 10 minutes après l'heure")
323
327
  end
324
328
 
325
329
  it 'minutes past the hour 5,10 day 2' do
326
- expect(desc_fr('5,10 0 2 * *')).to eq("À 05 et 10 minutes après l'heure, le 2 de chaque mois")
330
+ expect(desc('5,10 0 2 * *')).to eq("À 05 et 10 minutes après l'heure, le 2 de chaque mois")
327
331
  end
328
332
 
329
333
  it 'minutes past the hour 5/10 day 2' do
330
- expect(desc_fr('5/10 0 2 * *')).to eq("Tous les 10 minutes, commence à 05 minutes après l'heure, le 2 de chaque mois")
334
+ expect(desc('5/10 0 2 * *')).to eq("Tous les 10 minutes, commence à 05 minutes après l'heure, le 2 de chaque mois")
331
335
  end
332
336
  end
333
337
 
334
338
  context 'seconds past the minute:' do
335
339
  it 'seconds past the minute 5,6' do
336
- expect(desc_fr('5,6 0 0 * * *')).to eq('À 5 et 6 secondes après la minute')
340
+ expect(desc('5,6 0 0 * * *')).to eq('À 5 et 6 secondes après la minute')
337
341
  end
338
342
 
339
343
  it 'seconds past the minute 5,6 at 1' do
340
- expect(desc_fr('5,6 0 1 * * *')).to eq('À 5 et 6 secondes après la minute, à 1:00 AM')
344
+ expect(desc('5,6 0 1 * * *')).to eq('À 5 et 6 secondes après la minute, à 1:00 AM')
341
345
  end
342
346
 
343
347
  it 'seconds past the minute 5,6 day 2' do
344
- expect(desc_fr('5,6 0 0 2 * *')).to eq('À 5 et 6 secondes après la minute, le 2 de chaque mois')
348
+ expect(desc('5,6 0 0 2 * *')).to eq('À 5 et 6 secondes après la minute, le 2 de chaque mois')
345
349
  end
346
350
  end
347
351
 
348
352
  context 'increments starting at X > 1:' do
349
353
  it 'second increments' do
350
- expect(desc_fr('5/15 0 * * * *')).to eq("Toutes les 15 secondes, commence à 5 secondes après la minute")
354
+ expect(desc('5/15 0 * * * *')).to eq("Toutes les 15 secondes, commence à 5 secondes après la minute")
351
355
  end
352
356
 
353
357
  it 'minute increments' do
354
- expect(desc_fr('30/10 * * * *')).to eq("Tous les 10 minutes, commence à 30 minutes après l'heure")
358
+ expect(desc('30/10 * * * *')).to eq("Tous les 10 minutes, commence à 30 minutes après l'heure")
355
359
  end
356
360
 
357
361
  it 'hour increments' do
358
- expect(desc_fr('0 30 2/6 * * ?')).to eq("À 30 minutes après l'heure, tous les 6 heures, commence à 2:00 AM")
362
+ expect(desc('0 30 2/6 * * ?')).to eq("À 30 minutes après l'heure, tous les 6 heures, commence à 2:00 AM")
359
363
  end
360
364
 
361
365
  it 'day of month increments' do
362
- expect(desc_fr('0 30 8 2/7 * *')).to eq('À 8:30 AM, tous les 7 jours, commence le 2 de chaque mois')
366
+ expect(desc('0 30 8 2/7 * *')).to eq('À 8:30 AM, tous les 7 jours, commence le 2 de chaque mois')
363
367
  end
364
368
 
365
369
  it 'day of week increments' do
366
- expect(desc_fr('0 30 11 * * 2/2')).to eq('À 11:30 AM, tous les 2 jours de la semaine, commence le mardi')
370
+ expect(desc('0 30 11 * * 2/2')).to eq('À 11:30 AM, tous les 2 jours de la semaine, commence le mardi')
367
371
  end
368
372
 
369
373
  it 'month increments' do
370
- expect(desc_fr('0 20 10 * 2/3 THU')).to eq('À 10:20 AM, seulement le jeudi, tous les 3 mois, commence en février')
374
+ expect(desc('0 20 10 * 2/3 THU')).to eq('À 10:20 AM, seulement le jeudi, tous les 3 mois, commence en février')
371
375
  end
372
376
 
373
377
  it 'year increments' do
374
- expect(desc_fr('0 0 0 1 MAR * 2010/5')).to eq('À 0:00 AM, le 1 de chaque mois, seulement en mars, tous les 5 ans, commence en 2010')
378
+ expect(desc('0 0 0 1 MAR * 2010/5')).to eq('À 0:00 AM, le 1 de chaque mois, seulement en mars, tous les 5 ans, commence en 2010')
375
379
  end
376
380
  end
377
381
  end