delayed_job_recurring 0.3.1 → 0.3.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: b8d518aa85ad86f9742ece8b2e1b16f73366534b
4
- data.tar.gz: a3cb49cc1591de7641b15cf91183a302f8965023
3
+ metadata.gz: 31eaad03c00e4ec8246938771205511f30d29643
4
+ data.tar.gz: f6857219f479453925c46b76ba7fe24382029f07
5
5
  SHA512:
6
- metadata.gz: 36275c6b273c10b4f68cfd38ce8c4ae0801c24c9e1330c4072ebbef9b30236562b19e3364ba265c046106803e97f549fe6d3120be5f7bd250d07473eca939bdb
7
- data.tar.gz: 513b013afe5c8d4028524c637ca11d2d7a13fa9682f6521be3069c443fe6dbe28443adfc0f9a61ac1ae718f764bd1b02a5c56a101d60b2c16823b61a10bebcb0
6
+ metadata.gz: 917e77a0ed5c0133f1c7c425479092a0927af8d47a191a6ae736c91fe8ef83b06933f5123fe5198c5e54389c4db438c4df1ac1040acbd9ae159c4d79284f8f69
7
+ data.tar.gz: 567894524a9a6a03459a4d2f1b549f32958702f914f8bfb8c7109fc1865ceaee82465ccc11fce0a6517f3da44c221cdcba2147dea65931648045cf24fc7c6916
data/README.md CHANGED
@@ -18,7 +18,7 @@ so we put our task classes in `app/interactors`. You could also put them in `li
18
18
  class MyTask
19
19
  include Delayed::RecurringJob
20
20
  run_every 1.day
21
- run_at DateTime.parse('2014-03-08 11:00:00 PST')
21
+ run_at '11:00am'
22
22
  timezone 'US/Pacific'
23
23
  def perform
24
24
  # Do some work here!
@@ -29,7 +29,7 @@ end
29
29
  And schedule it. In a rails app, you might put this in an initializer:
30
30
 
31
31
  ```ruby
32
- MyTask.schedule # run every day at 11am Pacific time (accounting for daylight savings)
32
+ MyTask.schedule! # run every day at 11am Pacific time (accounting for daylight savings)
33
33
  ```
34
34
 
35
35
  ## Advanced usage
@@ -37,13 +37,19 @@ MyTask.schedule # run every day at 11am Pacific time (accounting for daylight sa
37
37
  ### Passing options to schedule
38
38
 
39
39
  ```ruby
40
- MyTask.schedule(run_at: DateTime.parse('2014-03-08 11:00:00 PST'))
40
+ MyTask.schedule(run_at: '12:00')
41
41
  ```
42
42
 
43
43
  ### Running at multiples times each day
44
44
 
45
45
  ```ruby
46
- MyTask.schedule(run_every: 1.day, run_at: [DateTime.parse('2014-03-08 11:00:00 PST'), DateTime.parse('2014-03-08 18:00:00 PST')]
46
+ MyTask.schedule(run_every: 1.day, run_at: ['11:00', '6:00pm']
47
+ ```
48
+
49
+ ### Running on specific days of the week
50
+
51
+ ```ruby
52
+ MyTask.schedule(run_every: 1.week, run_at: ['sunday 8:00am', 'wednesday 8:00am'])
47
53
  ```
48
54
 
49
55
  ## Thanks!
@@ -23,6 +23,12 @@ module Delayed
23
23
 
24
24
  # Schedule this "repeating" job
25
25
  def schedule! options = {}
26
+ options = options.dup
27
+
28
+ if run_every = options.delete(:run_every)
29
+ options[:run_interval] = serialize_duration(run_every)
30
+ end
31
+
26
32
  @schedule_options = options.reverse_merge(@schedule_options || {}).reverse_merge(
27
33
  run_at: self.class.run_at,
28
34
  timezone: self.class.timezone,
@@ -81,7 +87,10 @@ module Delayed
81
87
  def parse_time(time, timezone)
82
88
  case time
83
89
  when String
84
- get_timezone(timezone).parse(time)
90
+ time_with_zone = get_timezone(timezone).parse(time)
91
+ parts = Date._parse(time, false)
92
+ wday = parts.fetch(:wday, time_with_zone.wday)
93
+ time_with_zone + (wday - time_with_zone.wday).days
85
94
  else
86
95
  time
87
96
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: delayed_job_recurring
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tony Novak
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-18 00:00:00.000000000 Z
11
+ date: 2014-07-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails