Class: Pipely::PipelineDateTime::PipelineDateRangeBase

Inherits:
Object
  • Object
show all
Defined in:
lib/pipely/pipeline_date_time/pipeline_date_range_base.rb

Overview

Base class for pipeline date ranges

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(target_date, days_back_start, days_back_end) ⇒ PipelineDateRangeBase



11
12
13
14
15
16
# File 'lib/pipely/pipeline_date_time/pipeline_date_range_base.rb', line 11

def initialize(target_date, days_back_start, days_back_end)
  @target_date = target_date
  @days_back_start = days_back_start
  @days_back_end = days_back_end
  @days_back = (days_back_end..days_back_start).to_set
end

Instance Attribute Details

#days_backObject (readonly)

Returns the value of attribute days_back.



9
10
11
# File 'lib/pipely/pipeline_date_time/pipeline_date_range_base.rb', line 9

def days_back
  @days_back
end

Instance Method Details

#endObject



22
23
24
# File 'lib/pipely/pipeline_date_time/pipeline_date_range_base.rb', line 22

def end
  @days_back_end
end

#exclude(days_back_start, days_back_end) ⇒ Object



26
27
28
29
30
31
32
33
# File 'lib/pipely/pipeline_date_time/pipeline_date_range_base.rb', line 26

def exclude(days_back_start, days_back_end)
  return if days_back_start < 0
  return if days_back_end < 0
  return if days_back_start < days_back_end  # Back smaller for earlier
  (days_back_end..days_back_start).each do |days_back|
    @days_back.delete days_back
  end
end

#startObject



18
19
20
# File 'lib/pipely/pipeline_date_time/pipeline_date_range_base.rb', line 18

def start
  @days_back_start
end