cronex 0.9.2 → 0.10.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 +4 -4
- data/CHANGELOG.md +3 -0
- data/README.md +2 -2
- data/lib/cronex/exp_descriptor.rb +6 -4
- data/lib/cronex/version.rb +1 -1
- data/spec/exp_descriptor_de_spec.rb +3 -2
- data/spec/exp_descriptor_en_spec.rb +6 -5
- data/spec/exp_descriptor_fr_spec.rb +2 -1
- data/spec/exp_descriptor_it_spec.rb +3 -22
- data/spec/exp_descriptor_pt_BR_spec.rb +2 -1
- data/spec/exp_descriptor_ro_spec.rb +2 -1
- data/spec/exp_descriptor_ru_spec.rb +2 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b071e718281eae3aa398857c94a82313f7c86cbc
|
4
|
+
data.tar.gz: 11072364556f0d7b2649dca6d4ddde874facba88
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b17652914797dde9564a267cc9fe9a98355299a17850646a0a97f40bd0d4df08e95ed1646a46ec24098262cad567a1fbef0df597e1ad068fd603ef186fffe61c
|
7
|
+
data.tar.gz: 272be7fae9d337fde1e20e2e6e1e10b4d52b578df067b03a7add886b5b5d20264f06dc6efb8ca6d651d6c0fc3fc9e75ca08bd962dadd0748996d5fca41b96fd5
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -61,12 +61,12 @@ Or install it yourself as:
|
|
61
61
|
|
62
62
|
#### Localization
|
63
63
|
|
64
|
-
Cronex::ExpressionDescriptor.new('30 2 * 2 1-5',
|
64
|
+
Cronex::ExpressionDescriptor.new('30 2 * 2 1-5', locale: 'fr').description
|
65
65
|
=> À 2:30 AM, lundi à vendredi, seulement en février
|
66
66
|
|
67
67
|
#### Timezones
|
68
68
|
|
69
|
-
Cronex::ExpressionDescriptor.new('0-10 11 * * *',
|
69
|
+
Cronex::ExpressionDescriptor.new('0-10 11 * * *', timezone: 'America/Los_Angeles').description
|
70
70
|
=> Every minute between 4:00 AM and 4:10 AM # PDT or
|
71
71
|
=> Every minute between 3:00 AM and 3:10 AM # PST
|
72
72
|
|
@@ -12,19 +12,21 @@ module Cronex
|
|
12
12
|
verbose: false,
|
13
13
|
zero_based_dow: true,
|
14
14
|
use_24_hour_time_format: false,
|
15
|
-
throw_exception_on_parse_error: true
|
15
|
+
throw_exception_on_parse_error: true,
|
16
|
+
locale: nil,
|
17
|
+
timezone: nil
|
16
18
|
}
|
17
19
|
|
18
20
|
class ExpressionDescriptor
|
19
21
|
attr_accessor :expression, :expression_parts, :options, :parsed, :resources, :timezone
|
20
22
|
|
21
|
-
def initialize(expression, options = {}
|
23
|
+
def initialize(expression, options = {})
|
22
24
|
@expression = expression
|
23
25
|
@options = CRONEX_OPTS.merge(options)
|
24
26
|
@expression_parts = []
|
25
27
|
@parsed = false
|
26
|
-
@resources = Cronex::Resource.new(locale)
|
27
|
-
@timezone = timezone
|
28
|
+
@resources = Cronex::Resource.new(@options[:locale])
|
29
|
+
@timezone = @options[:timezone] || 'UTC'
|
28
30
|
end
|
29
31
|
|
30
32
|
def to_hash
|
data/lib/cronex/version.rb
CHANGED
@@ -4,8 +4,9 @@ require 'cronex'
|
|
4
4
|
module Cronex
|
5
5
|
describe ExpressionDescriptor do
|
6
6
|
|
7
|
-
def desc(expression, opts = {}
|
8
|
-
|
7
|
+
def desc(expression, opts = {})
|
8
|
+
opts[:locale] = 'de'
|
9
|
+
Cronex::ExpressionDescriptor.new(expression, opts).description
|
9
10
|
end
|
10
11
|
|
11
12
|
let(:opts) { { zero_based_dow: false } }
|
@@ -4,8 +4,9 @@ require 'cronex'
|
|
4
4
|
module Cronex
|
5
5
|
describe ExpressionDescriptor do
|
6
6
|
|
7
|
-
def desc(expression, opts = {}
|
8
|
-
|
7
|
+
def desc(expression, opts = {})
|
8
|
+
opts[:locale] = 'en'
|
9
|
+
Cronex::ExpressionDescriptor.new(expression, opts).description
|
9
10
|
end
|
10
11
|
|
11
12
|
let(:opts) { { zero_based_dow: false } }
|
@@ -383,19 +384,19 @@ module Cronex
|
|
383
384
|
it 'minute span' do
|
384
385
|
tz = TZInfo::Timezone.get('America/Los_Angeles')
|
385
386
|
hour = tz.period_for_local(Time.now).zone_identifier.to_s == 'PDT' ? 4 : 3
|
386
|
-
expect(desc('0-10 11 * * *',
|
387
|
+
expect(desc('0-10 11 * * *', timezone: 'America/Los_Angeles')).to eq("Every minute between #{hour}:00 AM and #{hour}:10 AM")
|
387
388
|
end
|
388
389
|
|
389
390
|
it 'twice a day' do
|
390
391
|
tz = TZInfo::Timezone.get('America/Los_Angeles')
|
391
392
|
hour = tz.period_for_local(Time.now).zone_identifier.to_s == 'PDT' ? 5 : 4
|
392
|
-
expect(desc('0 0,12 * * *',
|
393
|
+
expect(desc('0 0,12 * * *', timezone: 'America/Los_Angeles')).to eq("At #{hour}:00 PM and #{hour}:00 AM")
|
393
394
|
end
|
394
395
|
|
395
396
|
it 'ahead of GMT' do
|
396
397
|
tz = TZInfo::Timezone.get('Europe/Vienna')
|
397
398
|
hour = tz.period_for_local(Time.now).zone_identifier.to_s == 'CEST' ? 1 : 12
|
398
|
-
expect(desc('0-10 11 * * *',
|
399
|
+
expect(desc('0-10 11 * * *', timezone: 'Europe/Vienna')).to eq("Every minute between #{hour}:00 PM and #{hour}:10 PM")
|
399
400
|
end
|
400
401
|
end
|
401
402
|
end
|
@@ -5,7 +5,8 @@ module Cronex
|
|
5
5
|
describe ExpressionDescriptor do
|
6
6
|
|
7
7
|
def desc(expression, opts = {})
|
8
|
-
|
8
|
+
opts[:locale] = 'fr'
|
9
|
+
Cronex::ExpressionDescriptor.new(expression, opts).description
|
9
10
|
end
|
10
11
|
|
11
12
|
let(:opts) { { zero_based_dow: false } }
|
@@ -4,8 +4,9 @@ require 'cronex'
|
|
4
4
|
module Cronex
|
5
5
|
describe ExpressionDescriptor do
|
6
6
|
|
7
|
-
def desc(expression, opts = {}
|
8
|
-
|
7
|
+
def desc(expression, opts = {})
|
8
|
+
opts[:locale] = 'it'
|
9
|
+
Cronex::ExpressionDescriptor.new(expression, opts).description
|
9
10
|
end
|
10
11
|
|
11
12
|
let(:opts) { { zero_based_dow: false } }
|
@@ -378,25 +379,5 @@ module Cronex
|
|
378
379
|
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
380
|
end
|
380
381
|
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
382
|
end
|
402
383
|
end
|
@@ -5,7 +5,8 @@ module Cronex
|
|
5
5
|
describe ExpressionDescriptor do
|
6
6
|
|
7
7
|
def desc(expression, opts = {})
|
8
|
-
|
8
|
+
opts[:locale] = 'pt_BR'
|
9
|
+
Cronex::ExpressionDescriptor.new(expression, opts).description
|
9
10
|
end
|
10
11
|
|
11
12
|
let(:opts) { { zero_based_dow: false } }
|
@@ -5,7 +5,8 @@ module Cronex
|
|
5
5
|
describe ExpressionDescriptor do
|
6
6
|
|
7
7
|
def desc(expression, opts = {})
|
8
|
-
|
8
|
+
opts[:locale] = 'ro'
|
9
|
+
Cronex::ExpressionDescriptor.new(expression, opts).description
|
9
10
|
end
|
10
11
|
|
11
12
|
let(:opts) { { zero_based_dow: false } }
|
@@ -5,7 +5,8 @@ module Cronex
|
|
5
5
|
describe ExpressionDescriptor do
|
6
6
|
|
7
7
|
def desc(expression, opts = {})
|
8
|
-
|
8
|
+
opts[:locale] = 'ru'
|
9
|
+
Cronex::ExpressionDescriptor.new(expression, opts).description
|
9
10
|
end
|
10
11
|
|
11
12
|
let(:opts) { { zero_based_dow: false } }
|
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.
|
4
|
+
version: 0.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adrian Kazaku
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-05-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: tzinfo
|