Class: Timekit::Filtercollection

Inherits:
Object
  • Object
show all
Defined in:
lib/timekit/filtercollection.rb

Constant Summary collapse

DAYS =
%w[
  Monday
  Tuesday
  Wednesday
  Thursday
  Friday
  Saturday
  Sunday
].freeze

Instance Method Summary collapse

Constructor Details

#initializeFiltercollection

Returns a new instance of Filtercollection.



15
16
17
18
19
# File 'lib/timekit/filtercollection.rb', line 15

def initialize
  @and_conditions = []
  @or_conditions = []
  @after_conditions = []
end

Instance Method Details

#after_take_first(num) ⇒ Object



33
34
35
# File 'lib/timekit/filtercollection.rb', line 33

def after_take_first(num)
  @after_conditions << { take_first: { number: num } }
end

#after_take_last(num) ⇒ Object



37
38
39
# File 'lib/timekit/filtercollection.rb', line 37

def after_take_last(num)
  @after_conditions << { take_last: { number: num } }
end

#after_take_random(num) ⇒ Object



29
30
31
# File 'lib/timekit/filtercollection.rb', line 29

def after_take_random(num)
  @after_conditions << { take_random: { number: num } }
end

#and_not_on_weekends(timezone = nil) ⇒ Object



45
46
47
# File 'lib/timekit/filtercollection.rb', line 45

def and_not_on_weekends(timezone = nil)
  @and_conditions << { exclude_weekends: timezone_param(timezone) }
end

#and_on_day(day) ⇒ Object



49
50
51
# File 'lib/timekit/filtercollection.rb', line 49

def and_on_day(day)
  @and_conditions << specific_day(day)
end

#and_only_during_business_hours(timezone = nil) ⇒ Object



41
42
43
# File 'lib/timekit/filtercollection.rb', line 41

def and_only_during_business_hours(timezone = nil)
  @and_conditions << { business_hours: timezone_param(timezone) }
end

#as_jsonObject



21
22
23
24
25
26
27
# File 'lib/timekit/filtercollection.rb', line 21

def as_json
  {
    or: @or_conditions,
    and: @and_conditions,
    after: @after_conditions
  }
end

#or_between_times(timestamp1, timestamp2) ⇒ Object



57
58
59
60
61
62
63
64
# File 'lib/timekit/filtercollection.rb', line 57

def or_between_times(timestamp1, timestamp2)
  @or_conditions << {
    between_timestamps: {
      start: timestamp1,
      end: timestamp2
    }
  }
end

#or_on_any_days(days) ⇒ Object



53
54
55
# File 'lib/timekit/filtercollection.rb', line 53

def or_on_any_days(days)
  days.each { |day| @or_conditions << specific_day(day) }
end