cron_format 0.1.10 → 0.1.11

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: 746860116968e2c98fa0cc2e36b24a346d5b8166
4
- data.tar.gz: 0ea73bfb9491cf04193a1f7df903d51768158365
3
+ metadata.gz: 41aa803c299e3bb85a89d8a8d5bc39d247f4a92c
4
+ data.tar.gz: ff24f9b8ac94bdf3669ea077b31541d72341183f
5
5
  SHA512:
6
- metadata.gz: 5a2ca8cc5de6f74a3a64470e5ba73a3596e060b6888268eea96eb98bf1b4adca311c6fc35f22cc59d212e7ccea9954069d956625a724c755381c413382f3415e
7
- data.tar.gz: 33726d9f095dfd9b5f7bc303dc10a5287a7955ebb911b5d5a934562ad2add0d48e9eafdab1c2779bd57a32b813165bd2cb96d8bf02e5fff0d887ca9befa91e71
6
+ metadata.gz: 41983d908c390bb49591feb34f1432cebadb42dd02e995ef3a235fd0df395143dc9a06b2af4d6bdf474dfe35a2a53f9aba15aedb707cf49ab25af2e17c8b9c0f
7
+ data.tar.gz: c74f02a02c48ec1a44f294b1f4b2bb5f854fe4e9ed6bf8f76005742c115e0ba89f7b8e615dfe291b28ee221bead1fef2eba31a52aaed138a92ea6bd6e1ded1a6
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/lib/cron_format.rb CHANGED
@@ -9,19 +9,10 @@ require 'time'
9
9
  MINUTE = 60
10
10
  HOUR = MINUTE * 60
11
11
  DAY = HOUR * 24
12
+ WEEK = DAY * 7
12
13
  TF = "%s-%s-%s %s:%s"
13
14
 
14
15
 
15
- class Array
16
-
17
- def inflate()
18
- Array.new(self.max_by {|x| x.length}.length).map do |x|
19
- self.map{|x| x.length <= 1 ? x.first : x.shift}
20
- end
21
- end
22
- end
23
-
24
-
25
16
  class CronFormat
26
17
 
27
18
  attr_reader :to_time, :to_expression
@@ -73,7 +64,7 @@ class CronFormat
73
64
  end
74
65
 
75
66
  def parse()
76
-
67
+
77
68
  raw_a = @cron_string.split
78
69
  raw_a << '*' if raw_a.length <= 5 # add the year?
79
70
 
@@ -87,6 +78,7 @@ class CronFormat
87
78
  date = x.to_a.values_at(1..5)
88
79
  interval.times { date[3].succ! }
89
80
  Time.parse(TF % date.reverse)},
81
+ week: lambda {|x, interval| x += (interval * WEEK).to_i},
90
82
  year: lambda {|x, interval|
91
83
  date = x.to_a.values_at(1..5)
92
84
  interval.times { date[4].succ! }
@@ -148,7 +140,7 @@ class CronFormat
148
140
  end
149
141
  end
150
142
 
151
- dates = raw_date.inflate
143
+ dates = inflate(raw_date)
152
144
 
153
145
  a = dates.map do |date|
154
146
 
@@ -190,11 +182,11 @@ class CronFormat
190
182
 
191
183
  if t.month < @to_time.month and raw_a[4] == '*' then
192
184
  # increment the year
193
-
194
185
  d[4].succ!
195
186
  t = Time.parse(TF % d.reverse)
196
187
 
197
188
  if repeaters[4] then
189
+
198
190
  d[4].succ!
199
191
  t = Time.parse(TF % d.reverse)
200
192
  end
@@ -231,7 +223,7 @@ class CronFormat
231
223
  if wday then
232
224
  t += DAY until t.wday == wday.to_i
233
225
  end
234
-
226
+
235
227
  # finally, if the date is still less than the current time we can
236
228
  # increment the date using any repeating intervals
237
229
  if t <= @to_time and repeaters.any? then
@@ -239,6 +231,7 @@ class CronFormat
239
231
  repeaters.each_with_index do |x,i|
240
232
 
241
233
  if x then
234
+
242
235
  t = procs.values[i].call(t, x.to_i)
243
236
  end
244
237
  end
@@ -257,5 +250,11 @@ class CronFormat
257
250
  (month.to_i < 12 ? month.succ : 1), 1]) - 1
258
251
  day.to_i <= last_day.day
259
252
  end
253
+
254
+ def inflate(a)
255
+ Array.new(a.max_by {|x| x.length}.length).map do |x|
256
+ a.map{|x| x.length <= 1 ? x.first : x.shift}
257
+ end
258
+ end
260
259
 
261
- end
260
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cron_format
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.10
4
+ version: 0.1.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -31,7 +31,7 @@ cert_chain:
31
31
  9DFxFCS6sgAw21S+V+ym9ft8kbqgy7zOGdPRRNlwgb/V+UWqH4yaCtk7yJT+n8vm
32
32
  LHkRlhnm0ScZYw==
33
33
  -----END CERTIFICATE-----
34
- date: 2013-08-06 00:00:00.000000000 Z
34
+ date: 2014-01-13 00:00:00.000000000 Z
35
35
  dependencies: []
36
36
  description:
37
37
  email: james@r0bertson.co.uk
@@ -50,17 +50,17 @@ require_paths:
50
50
  - lib
51
51
  required_ruby_version: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - '>='
53
+ - - ">="
54
54
  - !ruby/object:Gem::Version
55
55
  version: '0'
56
56
  required_rubygems_version: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - '>='
58
+ - - ">="
59
59
  - !ruby/object:Gem::Version
60
60
  version: '0'
61
61
  requirements: []
62
62
  rubyforge_project:
63
- rubygems_version: 2.0.0.rc.2
63
+ rubygems_version: 2.1.11
64
64
  signing_key:
65
65
  specification_version: 4
66
66
  summary: cron_format
metadata.gz.sig CHANGED
Binary file