cronex 0.9.1 → 0.9.2

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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 60857271ae192085c3af480f3ade27b283d283bd
4
- data.tar.gz: 7017bbf8a61c317a4f40e15ccca2852c6b92a9c6
3
+ metadata.gz: 0e6f8daf70eaa89830eec06d7c7368292dcf846d
4
+ data.tar.gz: a0c6845cfa574085f21e8dc5ecb1e73fcc210918
5
5
  SHA512:
6
- metadata.gz: 01d557febac75918e7d72ca8d9851499a6f6c44fd5e2b99692dd68af9744bc7337d86aec1f71b8a47e4b8ce53e296195bf2910e47c8fbfa2ff0adfc512a3be27
7
- data.tar.gz: 5e65aff2adcf41a08ab7694d795497cb3ed72ad6bbf0312c28f1cfb00905697ba3cdd9eca934e56fbfec6c4dbe3519030ed2a84a729d294a46a8c94db4f4ac55
6
+ metadata.gz: 31b31f7c5933aa622962e5c321c94205bbc968c8c56682955175dae4e2e8e9e375c3577cef6a6c42067506236ea0e0f433a8f4eb48b5c3117ddaa915069da4ff
7
+ data.tar.gz: c88a9490b5b66c82cbad4498373aafbfa4822ff2debbe1f7466044a07d9b8cb6e3f477cd53a735db97df1ebefe15f53d538be818e2b4f80fe6db8ba75bf28c2a
@@ -1,47 +1,56 @@
1
- Encoding:
1
+ Style/Encoding:
2
2
  Enabled: false
3
3
 
4
- AmbiguousOperator:
4
+ Lint/AmbiguousOperator:
5
5
  Enabled: false
6
6
 
7
- CaseIndentation:
7
+ Layout/CaseIndentation:
8
8
  Enabled: false
9
9
 
10
- CyclomaticComplexity:
10
+ Metrics/CyclomaticComplexity:
11
11
  Enabled: false
12
12
  Max: 10
13
13
 
14
- PerceivedComplexity:
14
+ Metrics/PerceivedComplexity:
15
15
  Enabled: false
16
16
  Max: 10
17
17
 
18
- Documentation:
18
+ Style/Documentation:
19
19
  Enabled: false
20
20
 
21
- EmptyLinesAroundBody:
21
+ Layout/EmptyLinesAroundBlockBody:
22
22
  Enabled: false
23
23
 
24
- ClassLength:
24
+ Layout/EmptyLinesAroundClassBody:
25
25
  Enabled: false
26
26
 
27
- LineLength:
27
+ Layout/EmptyLinesAroundModuleBody:
28
+ Enabled: false
29
+
30
+ Metrics/ClassLength:
31
+ Enabled: false
32
+
33
+ Style/FrozenStringLiteralComment:
34
+ Enabled: false
35
+
36
+ Layout/LineLength:
28
37
  Enabled: true
29
38
  Max: 160
30
39
 
31
- MethodLength:
40
+ Metrics/MethodLength:
32
41
  Enabled: false
33
42
 
34
- ModuleFunction:
43
+ Style/ModuleFunction:
35
44
  Enabled: false
36
45
 
37
- NestedTernaryOperator:
46
+ Style/NestedTernaryOperator:
38
47
  Enabled: false
39
48
 
40
- RaiseArgs:
49
+ Style/RaiseArgs:
41
50
  Enabled: false
42
51
 
43
- RescueModifier:
52
+ Style/RescueModifier:
44
53
  Enabled: false
45
54
 
46
- UnusedMethodArgument:
55
+ Lint/UnusedMethodArgument:
47
56
  Enabled: false
@@ -1,3 +1,6 @@
1
+ ### [0.9.2] - 2020-04-24
2
+ * Add italian locale
3
+
1
4
  ### [0.9.1] - 2019-11-26
2
5
  * Update tzinfo dependency
3
6
 
data/README.md CHANGED
@@ -26,6 +26,7 @@ For a quick intro to cron see Quartz [Cron Tutorial](http://www.quartz-scheduler
26
26
  * Brazilian
27
27
  * French
28
28
  * German
29
+ * Italian
29
30
  * Romanian
30
31
  * Russian
31
32
 
@@ -23,6 +23,6 @@ Gem::Specification.new do |spec|
23
23
  spec.add_runtime_dependency 'tzinfo'
24
24
  spec.add_runtime_dependency 'unicode'
25
25
  spec.add_development_dependency 'pry', '~> 0.10'
26
- spec.add_development_dependency 'rake', '~> 10.1'
26
+ spec.add_development_dependency 'rake', '>= 12.3.3'
27
27
  spec.add_development_dependency 'rspec', '~> 3.1'
28
28
  end
@@ -1,3 +1,3 @@
1
1
  module Cronex
2
- VERSION = '0.9.1'
2
+ VERSION = '0.9.2'
3
3
  end
@@ -0,0 +1,75 @@
1
+ # resources_it.yml
2
+ ---
3
+ expression_empty_exception: "L'espressione non puó essere null o vuota"
4
+ interval_description_format: '%s giorni alla settimana'
5
+ between_description_format: 'da %s a %s'
6
+ between_weekday_description_format: 'da %s a %s'
7
+ on_the_day_of_the_month: 'il(la) {{nth}}(a) %s del mese'
8
+ on_the_of_the_month: 'il %s del mese'
9
+ on_the_last_of_the_month: "l'ultimo(a) %s del mese"
10
+ on_the_last_day_of_the_month: "l'ultimo giorno del mese"
11
+ on_the_last_weekday_of_the_month: "l'ultimo giorno lavorativo del mese"
12
+ between_days_of_the_month: 'tra il giorno %s e il giorno %s del mese'
13
+ seconds_through_past_the_minute: 'dal secondo %s al %s dopo il minuto'
14
+ between_x_and_y: 'tra le %s e le %s'
15
+ past_the_hour: "dopo l'ora"
16
+ at_x_seconds_past_the_minute: 'a %s secondi dopo il minuto'
17
+ minutes_through_past_the_hour: "dal minuto %s al %s dopo l'ora"
18
+ on_day_of_the_month: 'il giorno %s del mese'
19
+ first_weekday: 'il primo giorno della settimana lavorativa'
20
+ weekday_nearest_day: 'il prossimo giorno %s della settimana lavorativa'
21
+ starting: 'a partire da'
22
+ only_on: 'solo di %s'
23
+ only_in: 'solo a(nel) %s'
24
+ every_x_seconds: 'ogni %s secondi'
25
+ every_minute_between: 'ogni minuto tra le %s e le %s'
26
+ every_second: 'ogni secondo'
27
+ every_minute: 'ogni minuto'
28
+ every_1_minute: 'ogni minuto'
29
+ every_hour: 'ogni ora'
30
+ every_1_hour: 'ogni ora'
31
+ every_day: 'ogni giorno'
32
+ every_1_day: 'ogni giorno'
33
+ every_year: 'ogni anno'
34
+ every_x: 'ogni %s'
35
+ at_x: 'alle(ai) %s'
36
+ on_x: 'il %s'
37
+ in_x: '%s'
38
+ first: primo
39
+ second: secondo
40
+ third: terzo
41
+ fourth: quarto
42
+ fifth: quinto
43
+ time_pm: pomeriggio
44
+ time_am: mattino
45
+ and: e
46
+ at: alle(ai)
47
+ day: giorno
48
+ days: giorni
49
+ hour: ora
50
+ hours: ore
51
+ minute: minuto
52
+ minutes: minuti
53
+ month: mese
54
+ months: mesi
55
+ year: anno
56
+ years: anni
57
+ monday: lunedì
58
+ tuesday: martedì
59
+ wednesday: mercoledì
60
+ thursday: giovedì
61
+ friday: venerdì
62
+ saturday: sabato
63
+ sunday: domenica
64
+ january: gennaio
65
+ february: febbraio
66
+ march: marzo
67
+ april: aprile
68
+ may: maggio
69
+ june: giugno
70
+ july: luglio
71
+ august: agosto
72
+ september: settembre
73
+ october: ottobre
74
+ november: novembre
75
+ december: dicembre
@@ -0,0 +1,402 @@
1
+ # encoding: utf-8
2
+ require 'cronex'
3
+
4
+ module Cronex
5
+ describe ExpressionDescriptor do
6
+
7
+ def desc(expression, opts = {}, timezone = 'UTC')
8
+ Cronex::ExpressionDescriptor.new(expression, opts, 'it', timezone).description
9
+ end
10
+
11
+ let(:opts) { { zero_based_dow: false } }
12
+
13
+ it 'every second' do
14
+ expect(desc('* * * * * *')).to eq('Ogni secondo')
15
+ end
16
+
17
+ it 'every 45 seconds' do
18
+ expect(desc('*/45 * * * * *')).to eq('Ogni 45 secondi')
19
+ end
20
+
21
+ it 'minute span' do
22
+ expect(desc('0-10 11 * * *')).to eq('Ogni minuto tra le 11:00 AM e le 11:10 AM')
23
+ end
24
+
25
+ context 'every minute' do
26
+ it 'every minute' do
27
+ expect(desc('* * * * *')).to eq('Ogni minuto')
28
+ end
29
+
30
+ it 'every minute */1' do
31
+ expect(desc('*/1 * * * *')).to eq('Ogni minuto')
32
+ end
33
+
34
+ it 'every minute 0 0/1' do
35
+ expect(desc('0 0/1 * * * ?')).to eq('Ogni minuto')
36
+ end
37
+ end
38
+
39
+ context 'every X minutes:' do
40
+ it 'every 5 minuti' do
41
+ expect(desc('*/5 * * * *')).to eq('Ogni 5 minuti')
42
+ end
43
+
44
+ it 'every 5 minute 0 */5' do
45
+ expect(desc('0 */5 * * * *')).to eq('Ogni 5 minuti')
46
+ end
47
+
48
+ it 'every 10 minutes 0 0/10' do
49
+ expect(desc('0 0/10 * * * ?')).to eq('Ogni 10 minuti')
50
+ end
51
+ end
52
+
53
+ context 'every hour:' do
54
+ it 'every hour 0 0' do
55
+ expect(desc('0 0 * * * ?')).to eq('Ogni ora')
56
+ end
57
+
58
+ it 'every hour 0 0 0/1' do
59
+ expect(desc('0 0 0/1 * * ?')).to eq('Ogni ora')
60
+ end
61
+ end
62
+
63
+ context 'daily:' do
64
+ it 'daily at /\d\d/:/\d\d/' do
65
+ expect(desc('30 11 * * *')).to eq('Alle(ai) 11:30 AM')
66
+ end
67
+
68
+ it 'daily at /\d/:/\d/' do
69
+ expect(desc('9 8 * * *')).to eq('Alle(ai) 8:09 AM')
70
+ end
71
+
72
+ it 'daily at /0[89]/:/0[89]/' do
73
+ expect(desc('09 08 * * *')).to eq('Alle(ai) 8:09 AM')
74
+ end
75
+
76
+ it 'daily at /0[1-7]/ /0[1-7/' do
77
+ expect(desc('02 01 * * *')).to eq('Alle(ai) 1:02 AM')
78
+ end
79
+ end
80
+
81
+ context 'time of day certain days of week:' do
82
+ it 'time of day on MON-FRI' do
83
+ expect(desc('0 23 ? * MON-FRI')).to eq('Alle(ai) 11:00 PM, da lunedì a venerdì')
84
+ end
85
+
86
+ it 'time of day on 1-5' do
87
+ expect(desc('30 11 * * 1-5')).to eq('Alle(ai) 11:30 AM, da lunedì a venerdì')
88
+ end
89
+ end
90
+
91
+ it 'one month only' do
92
+ expect(desc('* * * 3 *')).to eq('Ogni minuto, solo a(nel) marzo')
93
+ end
94
+
95
+ it 'two months only' do
96
+ expect(desc('* * * 3,6 *')).to eq('Ogni minuto, solo a(nel) marzo e giugno')
97
+ end
98
+
99
+ it 'two times each afternoon' do
100
+ expect(desc('30 14,16 * * *')).to eq('Alle(ai) 2:30 PM e 4:30 PM')
101
+ end
102
+
103
+ it 'three times daily' do
104
+ expect(desc('30 6,14,16 * * *')).to eq('Alle(ai) 6:30 AM, 2:30 PM e 4:30 PM')
105
+ end
106
+
107
+ context 'once a week:' do
108
+ it 'once a week 0' do
109
+ expect(desc('46 9 * * 0')).to eq('Alle(ai) 9:46 AM, solo di domenica')
110
+ end
111
+
112
+ it 'once a week SUN' do
113
+ expect(desc('46 9 * * SUN')).to eq('Alle(ai) 9:46 AM, solo di domenica')
114
+ end
115
+
116
+ it 'once a week 7' do
117
+ expect(desc('46 9 * * 7')).to eq('Alle(ai) 9:46 AM, solo di domenica')
118
+ end
119
+
120
+ it 'once a week 1' do
121
+ expect(desc('46 9 * * 1')).to eq('Alle(ai) 9:46 AM, solo di lunedì')
122
+ end
123
+
124
+ it 'once a week 6' do
125
+ expect(desc('46 9 * * 6')).to eq('Alle(ai) 9:46 AM, solo di sabato')
126
+ end
127
+ end
128
+
129
+ context 'once a week non zero based:' do
130
+ it 'once a week 1' do
131
+ expect(desc('46 9 * * 1', opts)).to eq('Alle(ai) 9:46 AM, solo di domenica')
132
+ end
133
+
134
+ it 'once a week SUN' do
135
+ expect(desc('46 9 * * SUN', opts)).to eq('Alle(ai) 9:46 AM, solo di domenica')
136
+ end
137
+
138
+ it 'once a week 2' do
139
+ expect(desc('46 9 * * 2', opts)).to eq('Alle(ai) 9:46 AM, solo di lunedì')
140
+ end
141
+
142
+ it 'once a week 7' do
143
+ expect(desc('46 9 * * 7', opts)).to eq('Alle(ai) 9:46 AM, solo di sabato')
144
+ end
145
+ end
146
+
147
+ context 'twice a week:' do
148
+ it 'twice a week 1,2' do
149
+ expect(desc('46 9 * * 1,2')).to eq('Alle(ai) 9:46 AM, solo di lunedì e martedì')
150
+ end
151
+
152
+ it 'twice a week MON,TUE' do
153
+ expect(desc('46 9 * * MON,TUE')).to eq('Alle(ai) 9:46 AM, solo di lunedì e martedì')
154
+ end
155
+
156
+ it 'twice a week 0,6' do
157
+ expect(desc('46 9 * * 0,6')).to eq('Alle(ai) 9:46 AM, solo di domenica e sabato')
158
+ end
159
+
160
+ it 'twice a week 6,7' do
161
+ expect(desc('46 9 * * 6,7')).to eq('Alle(ai) 9:46 AM, solo di sabato e domenica')
162
+ end
163
+ end
164
+
165
+ context 'twice a week non zero based:' do
166
+ it 'twice a week 1,2' do
167
+ expect(desc('46 9 * * 1,2', opts)).to eq('Alle(ai) 9:46 AM, solo di domenica e lunedì')
168
+ end
169
+
170
+ it 'twice a week SUN,MON' do
171
+ expect(desc('46 9 * * SUN,MON', opts)).to eq('Alle(ai) 9:46 AM, solo di domenica e lunedì')
172
+ end
173
+
174
+ it 'twice a week 6,7' do
175
+ expect(desc('46 9 * * 6,7', opts)).to eq('Alle(ai) 9:46 AM, solo di venerdì e sabato')
176
+ end
177
+ end
178
+
179
+ it 'day of month' do
180
+ expect(desc('23 12 15 * *')).to eq('Alle(ai) 12:23 PM, il giorno 15 del mese')
181
+ end
182
+
183
+ it 'day of month with day of week' do
184
+ expect(desc('23 12 15 * SUN')).to eq('Alle(ai) 12:23 PM, il giorno 15 del mese, solo di domenica')
185
+ end
186
+
187
+ it 'month name' do
188
+ expect(desc('23 12 * JAN *')).to eq('Alle(ai) 12:23 PM, solo a(nel) gennaio')
189
+ end
190
+
191
+ it 'day of month with question mark' do
192
+ expect(desc('23 12 ? JAN *')).to eq('Alle(ai) 12:23 PM, solo a(nel) gennaio')
193
+ end
194
+
195
+ it 'month name range 2' do
196
+ expect(desc('23 12 * JAN-FEB *')).to eq('Alle(ai) 12:23 PM, da gennaio a febbraio')
197
+ end
198
+
199
+ it 'month name range 3' do
200
+ expect(desc('23 12 * JAN-MAR *')).to eq('Alle(ai) 12:23 PM, da gennaio a marzo')
201
+ end
202
+
203
+ it 'day of week name' do
204
+ expect(desc('23 12 * * SUN')).to eq('Alle(ai) 12:23 PM, solo di domenica')
205
+ end
206
+
207
+ context 'day of week range:' do
208
+ it 'day of week range MON-FRI' do
209
+ expect(desc('*/5 15 * * MON-FRI')).to eq('Ogni 5 minuti, alle(ai) 3:00 PM, da lunedì a venerdì')
210
+ end
211
+
212
+ it 'day of week range 0-6' do
213
+ expect(desc('*/5 15 * * 0-6')).to eq('Ogni 5 minuti, alle(ai) 3:00 PM, da domenica a sabato')
214
+ end
215
+
216
+ it 'day of week range 6-7' do
217
+ expect(desc('*/5 15 * * 6-7')).to eq('Ogni 5 minuti, alle(ai) 3:00 PM, da sabato a domenica')
218
+ end
219
+ end
220
+
221
+ context 'day of week once in month:' do
222
+ it 'day of week once MON#3' do
223
+ expect(desc('* * * * MON#3')).to eq('Ogni minuto, il(la) terzo(a) lunedì del mese')
224
+ end
225
+
226
+ it 'day of week once 0#3' do
227
+ expect(desc('* * * * 0#3')).to eq('Ogni minuto, il(la) terzo(a) domenica del mese')
228
+ end
229
+ end
230
+
231
+ context 'last day of week del mese:' do
232
+ it 'last day of week 4L' do
233
+ expect(desc('* * * * 4L')).to eq('Ogni minuto, l\'ultimo(a) giovedì del mese')
234
+ end
235
+
236
+ it 'last day of week 0L' do
237
+ expect(desc('* * * * 0L')).to eq('Ogni minuto, l\'ultimo(a) domenica del mese')
238
+ end
239
+ end
240
+
241
+ it 'last day of the month' do
242
+ expect(desc('*/5 * L JAN *')).to eq('Ogni 5 minuti, l\'ultimo giorno del mese, solo a(nel) gennaio')
243
+ end
244
+
245
+ it 'time of day with seconds' do
246
+ expect(desc('30 02 14 * * *')).to eq('Alle(ai) 2:02:30 PM')
247
+ end
248
+
249
+ it 'second intervals' do
250
+ expect(desc('5-10 * * * * *')).to eq('Dal secondo 5 al 10 dopo il minuto')
251
+ end
252
+
253
+ it 'second minutes hours intervals' do
254
+ expect(desc('5-10 30-35 10-12 * * *')).to eq(
255
+ 'Dal secondo 5 al 10 dopo il minuto, dal minuto 30 al 35 dopo l\'ora, tra le 10:00 AM e le 12:59 PM')
256
+ end
257
+
258
+ it 'every 5 minutes at 30 seconds' do
259
+ expect(desc('30 */5 * * * *')).to eq('A 30 secondi dopo il minuto, ogni 5 minuti')
260
+ end
261
+
262
+ it 'minutes past the hour range' do
263
+ expect(desc('0 30 10-13 ? * WED,FRI')).to eq(
264
+ 'Alle(ai) 30 minuti dopo l\'ora, tra le 10:00 AM e le 1:59 PM, solo di mercoledì e venerdì')
265
+ end
266
+
267
+ it 'seconds past the minute interval' do
268
+ expect(desc('10 0/5 * * * ?')).to eq('A 10 secondi dopo il minuto, ogni 5 minuti')
269
+ end
270
+
271
+ it 'between with interval' do
272
+ expect(desc('2-59/3 1,9,22 11-26 1-6 ?')).to eq(
273
+ 'Ogni 3 minuti, dal minuto 02 al 59 dopo l\'ora, alle(ai) 1:00 AM, 9:00 AM e 10:00 PM, tra il giorno 11 e il giorno 26 del mese, da gennaio a giugno')
274
+ end
275
+
276
+ it 'recurring first of month' do
277
+ expect(desc('0 0 6 1/1 * ?')).to eq('Alle(ai) 6:00 AM')
278
+ end
279
+
280
+ it 'minutes past the hour' do
281
+ expect(desc('0 5 0/1 * * ?')).to eq('Alle(ai) 05 minuti dopo l\'ora')
282
+ end
283
+
284
+ it 'every past the hour' do
285
+ expect(desc('0 0,5,10,15,20,25,30,35,40,45,50,55 * ? * *')).to eq(
286
+ 'Alle(ai) 00, 05, 10, 15, 20, 25, 30, 35, 40, 45, 50 e 55 minuti dopo l\'ora')
287
+ end
288
+
289
+ it 'every x minute past the hour with interval' do
290
+ expect(desc('0 0-30/2 17 ? * MON-FRI')).to eq(
291
+ 'Ogni 2 minuti, dal minuto 00 al 30 dopo l\'ora, alle(ai) 5:00 PM, da lunedì a venerdì')
292
+ end
293
+
294
+ it 'one year only with seconds' do
295
+ expect(desc('* * * * * * 2013')).to eq('Ogni secondo, solo a(nel) 2013')
296
+ end
297
+
298
+ it 'one year only without seconds' do
299
+ expect(desc('* * * * * 2013')).to eq('Ogni minuto, solo a(nel) 2013')
300
+ end
301
+
302
+ it 'two years only' do
303
+ expect(desc('* * * * * 2013,2014')).to eq('Ogni minuto, solo a(nel) 2013 e 2014')
304
+ end
305
+
306
+ it 'year range 2' do
307
+ expect(desc('23 12 * JAN-FEB * 2013-2014')).to eq('Alle(ai) 12:23 PM, da gennaio a febbraio, da 2013 a 2014')
308
+ end
309
+
310
+ it 'year range 3' do
311
+ expect(desc('23 12 * JAN-MAR * 2013-2015')).to eq('Alle(ai) 12:23 PM, da gennaio a marzo, da 2013 a 2015')
312
+ end
313
+
314
+ context 'multi part range seconds:' do
315
+ it 'multi part range seconds 2,4-5' do
316
+ expect(desc('2,4-5 1 * * *')).to eq('Dal minuto 02,04 al 05 dopo l\'ora, alle(ai) 1:00 AM')
317
+ end
318
+
319
+ it 'multi part range seconds 2,26-28' do
320
+ expect(desc('2,26-28 18 * * *')).to eq('Dal minuto 02,26 al 28 dopo l\'ora, alle(ai) 6:00 PM')
321
+ end
322
+ end
323
+
324
+ context 'minutes past the hour:' do
325
+ it 'minutes past the hour 5,10' do
326
+ expect(desc('5,10 0 * * *')).to eq('Alle(ai) 05 e 10 minuti dopo l\'ora')
327
+ end
328
+
329
+ it 'minutes past the hour 5,10 day 2' do
330
+ expect(desc('5,10 0 2 * *')).to eq('Alle(ai) 05 e 10 minuti dopo l\'ora, il giorno 2 del mese')
331
+ end
332
+
333
+ it 'minutes past the hour 5/10 day 2' do
334
+ expect(desc('5/10 0 2 * *')).to eq('Ogni 10 minuti, a partire da alle(ai) 05 minuti dopo l\'ora, il giorno 2 del mese')
335
+ end
336
+ end
337
+
338
+ context 'seconds past the minute:' do
339
+ it 'seconds past the minute 5,6' do
340
+ expect(desc('5,6 0 0 * * *')).to eq('A 5 e 6 secondi dopo il minuto')
341
+ end
342
+
343
+ it 'seconds past the minute 5,6 at 1' do
344
+ expect(desc('5,6 0 1 * * *')).to eq('A 5 e 6 secondi dopo il minuto, alle(ai) 1:00 AM')
345
+ end
346
+
347
+ it 'seconds past the minute 5,6 day 2' do
348
+ expect(desc('5,6 0 0 2 * *')).to eq('A 5 e 6 secondi dopo il minuto, il giorno 2 del mese')
349
+ end
350
+ end
351
+
352
+ context 'increments starting at X > 1:' do
353
+ it 'second increments' do
354
+ expect(desc('5/15 0 * * * *')).to eq('Ogni 15 secondi, a partire da a 5 secondi dopo il minuto')
355
+ end
356
+
357
+ it 'minute increments' do
358
+ expect(desc('30/10 * * * *')).to eq('Ogni 10 minuti, a partire da alle(ai) 30 minuti dopo l\'ora')
359
+ end
360
+
361
+ it 'hour increments' do
362
+ expect(desc('0 30 2/6 * * ?')).to eq('Alle(ai) 30 minuti dopo l\'ora, ogni 6 ore, a partire da alle(ai) 2:00 AM')
363
+ end
364
+
365
+ it 'day of month increments' do
366
+ expect(desc('0 30 8 2/7 * *')).to eq('Alle(ai) 8:30 AM, ogni 7 giorni, a partire da il giorno 2 del mese')
367
+ end
368
+
369
+ it 'day of week increments' do
370
+ expect(desc('0 30 11 * * 2/2')).to eq('Alle(ai) 11:30 AM, 2 giorni alla settimana, a partire da il martedì')
371
+ end
372
+
373
+ it 'month increments' do
374
+ expect(desc('0 20 10 * 2/3 THU')).to eq('Alle(ai) 10:20 AM, solo di giovedì, ogni 3 mesi, a partire da febbraio')
375
+ end
376
+
377
+ it 'year increments' do
378
+ expect(desc('0 0 0 1 MAR * 2010/5')).to eq('Alle(ai) 12:00 AM, il giorno 1 del mese, solo a(nel) marzo, ogni 5 anni, a partire da 2010')
379
+ end
380
+ end
381
+
382
+ context 'timezone' do
383
+ it 'minute span' do
384
+ tz = TZInfo::Timezone.get('America/Los_Angeles')
385
+ hour = tz.period_for_local(Time.now).zone_identifier.to_s == 'PDT' ? 4 : 3
386
+ expect(desc('0-10 11 * * *', {}, 'America/Los_Angeles')).to eq("Ogni minuto tra le #{hour}:00 AM e le #{hour}:10 AM")
387
+ end
388
+
389
+ it 'twice a day' do
390
+ tz = TZInfo::Timezone.get('America/Los_Angeles')
391
+ hour = tz.period_for_local(Time.now).zone_identifier.to_s == 'PDT' ? 5 : 4
392
+ expect(desc('0 0,12 * * *', {}, 'America/Los_Angeles')).to eq("Alle(ai) #{hour}:00 PM e #{hour}:00 AM")
393
+ end
394
+
395
+ it 'ahead of GMT' do
396
+ tz = TZInfo::Timezone.get('Europe/Vienna')
397
+ hour = tz.period_for_local(Time.now).zone_identifier.to_s == 'CEST' ? 1 : 12
398
+ expect(desc('0-10 11 * * *', {}, 'Europe/Vienna')).to eq("Ogni minuto tra le #{hour}:00 PM e le #{hour}:10 PM")
399
+ end
400
+ end
401
+ end
402
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cronex
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1
4
+ version: 0.9.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adrian Kazaku
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-26 00:00:00.000000000 Z
11
+ date: 2020-04-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tzinfo
@@ -56,16 +56,16 @@ dependencies:
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '10.1'
61
+ version: 12.3.3
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '10.1'
68
+ version: 12.3.3
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -116,6 +116,7 @@ files:
116
116
  - resources/resources_de.yml
117
117
  - resources/resources_en.yml
118
118
  - resources/resources_fr.yml
119
+ - resources/resources_it.yml
119
120
  - resources/resources_pt_BR.yml
120
121
  - resources/resources_ro.yml
121
122
  - resources/resources_ru.yml
@@ -123,6 +124,7 @@ files:
123
124
  - spec/exp_descriptor_de_spec.rb
124
125
  - spec/exp_descriptor_en_spec.rb
125
126
  - spec/exp_descriptor_fr_spec.rb
127
+ - spec/exp_descriptor_it_spec.rb
126
128
  - spec/exp_descriptor_pt_BR_spec.rb
127
129
  - spec/exp_descriptor_ro_spec.rb
128
130
  - spec/exp_descriptor_ru_spec.rb
@@ -156,6 +158,7 @@ test_files:
156
158
  - spec/exp_descriptor_de_spec.rb
157
159
  - spec/exp_descriptor_en_spec.rb
158
160
  - spec/exp_descriptor_fr_spec.rb
161
+ - spec/exp_descriptor_it_spec.rb
159
162
  - spec/exp_descriptor_pt_BR_spec.rb
160
163
  - spec/exp_descriptor_ro_spec.rb
161
164
  - spec/exp_descriptor_ru_spec.rb