Class: BBLib::Cron
- Inherits:
-
Object
- Object
- BBLib::Cron
- Includes:
- Effortless
- Defined in:
- lib/bblib/classes/cron.rb
Class Method Summary collapse
- .next(exp, count: 1, time: Time.now) ⇒ Object
- .numeralize(exp) ⇒ Object
- .prev(exp, count: 1, time: Time.now) ⇒ Object
- .valid?(exp) ⇒ Boolean
Instance Method Summary collapse
- #expression=(e) ⇒ Object
- #next(exp = expression, count: 1, time: Time.now) ⇒ Object
- #prev(exp = expression, count: 1, time: Time.now) ⇒ Object
- #time_match?(time) ⇒ Boolean
- #valid?(exp) ⇒ Boolean
Methods included from Effortless
Class Method Details
.next(exp, count: 1, time: Time.now) ⇒ Object
26 27 28 |
# File 'lib/bblib/classes/cron.rb', line 26 def self.next(exp, count: 1, time: Time.now) BBLib::Cron.new(exp).next(count: count, time: time) end |
.numeralize(exp) ⇒ Object
42 43 44 45 46 47 48 49 |
# File 'lib/bblib/classes/cron.rb', line 42 def self.numeralize(exp) REPLACE.each do |k, v| v.each do |r| exp = exp.to_s.gsub(r.to_s, k.to_s) end end exp end |
.prev(exp, count: 1, time: Time.now) ⇒ Object
30 31 32 |
# File 'lib/bblib/classes/cron.rb', line 30 def self.prev(exp, count: 1, time: Time.now) BBLib::Cron.new(exp).prev(count: count, time: time) end |
.valid?(exp) ⇒ Boolean
34 35 36 |
# File 'lib/bblib/classes/cron.rb', line 34 def self.valid?(exp) !(numeralize(exp) =~ /\A(.*?\s){4,5}.*?\S\z/).nil? end |
Instance Method Details
#expression=(e) ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/bblib/classes/cron.rb', line 18 def expression=(e) e = e.to_s.downcase SPECIAL_EXP.each { |x, v| e = x if v.include?(e) } @expression = e parse e end |
#next(exp = expression, count: 1, time: Time.now) ⇒ Object
8 9 10 11 |
# File 'lib/bblib/classes/cron.rb', line 8 def next(exp = expression, count: 1, time: Time.now) self.expression = exp unless exp == expression closest(count: count, time: time, direction: 1) end |
#prev(exp = expression, count: 1, time: Time.now) ⇒ Object
13 14 15 16 |
# File 'lib/bblib/classes/cron.rb', line 13 def prev(exp = expression, count: 1, time: Time.now) self.expression = exp unless exp == expression closest(count: count, time: time, direction: -1) end |
#time_match?(time) ⇒ Boolean
51 52 53 54 55 56 57 58 |
# File 'lib/bblib/classes/cron.rb', line 51 def time_match?(time) (@parts[:minute].empty? || @parts[:minute].include?(time.min)) && (@parts[:hour].empty? || @parts[:hour].include?(time.hour)) && (@parts[:day].empty? || @parts[:day].include?(time.day)) && (@parts[:weekday].empty? || @parts[:weekday].include?(time.wday)) && (@parts[:month].empty? || @parts[:month].include?(time.month)) && (@parts[:year].empty? || @parts[:year].include?(time.year)) end |