ice_cube_cron 1.0.1 → 1.1.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/.rubocop.yml +3 -0
- data/README.md +1 -1
- data/ice_cube_cron.gemspec +1 -1
- data/lib/ice_cube_cron/expression_parser.rb +6 -4
- data/lib/ice_cube_cron/parser_attribute.rb +2 -2
- data/lib/ice_cube_cron/util.rb +1 -0
- data/lib/ice_cube_cron/version.rb +1 -1
- data/spec/lib/ice_cube_cron/expression_parser_spec.rb +22 -0
- data/spec/lib/ice_cube_cron/util_spec.rb +4 -0
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a337f8cf564877d079a3b1a3a53b4e8d5cbc8d42
|
4
|
+
data.tar.gz: 5888cfd5aff2af878068c572535cef08491b6c56
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0dfe6377d1577e6c94adc43c10971f68f9e07612affb3e8ec50cdfcb6d1965b0f1c921fd1c1e0836c285d7cc156ac9fe68a1da8ff0d00e700bb7e82b39f7d4ff
|
7
|
+
data.tar.gz: 41d6141e77d63c32cc1d9e7857ca1d265795a148b35333dee933bf864ad6389157423faf6a02fa214511d09b78febd6adc90956617ae25eb798138cb72d4beba
|
data/.rubocop.yml
CHANGED
data/README.md
CHANGED
@@ -57,7 +57,7 @@ schedule.occurrences_between(::Date.new(2015, 3, 5), ::Date.new(2015, 6, 5))
|
|
57
57
|
|1st of every month||||1||
|
58
58
|
|1st and 15th of every month||||1,15||
|
59
59
|
|every monday|||||1|
|
60
|
-
|1st
|
60
|
+
|1st tuesday of every month|||||2#1|
|
61
61
|
|ever other friday|2||||5|
|
62
62
|
|every 6 months on the 5th|6|||5||
|
63
63
|
|last friday of every month|||||5L|
|
data/ice_cube_cron.gemspec
CHANGED
@@ -27,6 +27,6 @@ Gem::Specification.new do |s|
|
|
27
27
|
s.add_development_dependency 'rake', '~> 10'
|
28
28
|
s.add_development_dependency 'pry', '~> 0'
|
29
29
|
s.add_development_dependency 'rspec', '~> 3.3'
|
30
|
-
s.add_development_dependency 'rubocop', '~> 0
|
30
|
+
s.add_development_dependency 'rubocop', '~> 0'
|
31
31
|
s.add_development_dependency 'codeclimate-test-reporter', '~> 0.4'
|
32
32
|
end
|
@@ -14,7 +14,7 @@ module IceCubeCron # :nodoc:
|
|
14
14
|
:hour => nil,
|
15
15
|
:minute => nil,
|
16
16
|
:until => nil
|
17
|
-
}
|
17
|
+
}.freeze
|
18
18
|
|
19
19
|
EXPRESSION_PART_KEYS = [
|
20
20
|
:minute,
|
@@ -23,7 +23,7 @@ module IceCubeCron # :nodoc:
|
|
23
23
|
:month,
|
24
24
|
:day_of_week,
|
25
25
|
:year
|
26
|
-
]
|
26
|
+
].freeze
|
27
27
|
|
28
28
|
##
|
29
29
|
# Create a parsed expression
|
@@ -83,7 +83,9 @@ module IceCubeCron # :nodoc:
|
|
83
83
|
ExpressionParser.sanitize_integer_array_param(val)
|
84
84
|
end
|
85
85
|
|
86
|
-
parser_attribute_accessor :until
|
86
|
+
parser_attribute_accessor :until do |val|
|
87
|
+
::IceCubeCron::Util.sanitize_date_param(val)
|
88
|
+
end
|
87
89
|
|
88
90
|
##
|
89
91
|
# Sanitize given value to a valid day parameter
|
@@ -178,7 +180,7 @@ module IceCubeCron # :nodoc:
|
|
178
180
|
expression_parts.select! do |_key, value|
|
179
181
|
!value.nil?
|
180
182
|
end
|
181
|
-
expression_parts
|
183
|
+
expression_parts[:interval] = interval unless interval.nil?
|
182
184
|
|
183
185
|
expression_parts
|
184
186
|
end
|
@@ -10,7 +10,7 @@ module IceCubeCron # :nodoc: all
|
|
10
10
|
|
11
11
|
module ClassMethods # :nodoc:
|
12
12
|
def parser_attribute_accessor(attr_name, &cleanser)
|
13
|
-
getter =
|
13
|
+
getter = attr_name.to_s.to_sym
|
14
14
|
setter = "#{attr_name}=".to_sym
|
15
15
|
|
16
16
|
define_method(getter) do
|
@@ -18,7 +18,7 @@ module IceCubeCron # :nodoc: all
|
|
18
18
|
end
|
19
19
|
|
20
20
|
define_method(setter) do |val|
|
21
|
-
val =
|
21
|
+
val = yield val if cleanser
|
22
22
|
expression_hash[getter] = val
|
23
23
|
end
|
24
24
|
|
data/lib/ice_cube_cron/util.rb
CHANGED
@@ -4,6 +4,7 @@ module IceCubeCron # :nodoc: all
|
|
4
4
|
#
|
5
5
|
module Util
|
6
6
|
def self.sanitize_date_param(date)
|
7
|
+
date = Date.parse(date) if date.is_a?(::String)
|
7
8
|
date = date.to_time(:utc) if date.is_a?(::Date) && !date.is_a?(::DateTime)
|
8
9
|
date = date.to_time.utc if date.is_a?(::DateTime)
|
9
10
|
date = Time.at(date).utc if date.is_a?(::Integer)
|
@@ -317,6 +317,28 @@ describe ::IceCubeCron::ExpressionParser do
|
|
317
317
|
expect(expression.day_of_week).to eq([{ 1 => [-1] }])
|
318
318
|
end
|
319
319
|
end
|
320
|
+
|
321
|
+
describe 'until' do
|
322
|
+
it '[]' do
|
323
|
+
expect(expression.until).to eq(nil)
|
324
|
+
end
|
325
|
+
|
326
|
+
it '[]=' do
|
327
|
+
expression.until = 1_453_334_400
|
328
|
+
expect(expression.until).to eq(::Time.at(1_453_334_400).utc)
|
329
|
+
end
|
330
|
+
|
331
|
+
it 'sanitizes' do
|
332
|
+
expression.until = 1_453_334_400
|
333
|
+
expect(expression.until).to eq(::Time.at(1_453_334_400).utc)
|
334
|
+
|
335
|
+
expression.until = nil
|
336
|
+
expect(expression.until).to eq(nil)
|
337
|
+
|
338
|
+
expression.until = ::Date.new(2016, 1, 21)
|
339
|
+
expect(expression.until).to eq(::Time.at(1_453_334_400).utc)
|
340
|
+
end
|
341
|
+
end
|
320
342
|
end
|
321
343
|
|
322
344
|
describe 'invalid parameters' do
|
@@ -13,5 +13,9 @@ describe ::IceCubeCron::Util do
|
|
13
13
|
it 'should handle datetime' do
|
14
14
|
expect(described_class.sanitize_date_param(DateTime.new(2015, 5, 1, 0, 0, 0))).to eq(DateTime.new(2015, 5, 1, 0, 0, 0))
|
15
15
|
end
|
16
|
+
|
17
|
+
it 'should handle string' do
|
18
|
+
expect(described_class.sanitize_date_param('2015-5-1')).to eq(DateTime.new(2015, 5, 1, 0, 0, 0))
|
19
|
+
end
|
16
20
|
end
|
17
21
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ice_cube_cron
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Nichols
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ice_cube
|
@@ -86,14 +86,14 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '0
|
89
|
+
version: '0'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '0
|
96
|
+
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: codeclimate-test-reporter
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|