class FortuneTeller::TransformGenerator

Base class for FortuneTeller objects that generate transforms

Attributes

end_date[R]
holder[R]
start_date[R]

Public Class Methods

new(holder: nil, start_date: nil, end_date: nil, **data) click to toggle source
# File lib/fortuneteller/transform_generator.rb, line 6
def initialize(holder: nil, start_date: nil, end_date: nil, **data)
  @holder = holder
  @start_date = start_date
  @end_date = end_date
  @scheduled = []
  @data = MomentStruct.new data
end

Public Instance Methods

bounded_gen_transforms(from:, to:, plan:) click to toggle source
# File lib/fortuneteller/transform_generator.rb, line 26
def bounded_gen_transforms(from:, to:, plan:)
  return [] if out_of_range?(from: from, to: to)
  from = tighten_from(from)
  to = tighten_to(to)
  gen_transforms(from: from, to: to, plan: plan)
end
method_missing(name, *args) click to toggle source
Calls superclass method
# File lib/fortuneteller/transform_generator.rb, line 14
def method_missing(name, *args)
  if @data.respond_to? name
    @data.send(name, *args)
  else
    super
  end
end
respond_to_missing?(name, include_private = false) click to toggle source
Calls superclass method
# File lib/fortuneteller/transform_generator.rb, line 22
def respond_to_missing?(name, include_private = false)
  @data.respond_to?(name) || super
end

Private Instance Methods

out_of_range?(from:, to:) click to toggle source
# File lib/fortuneteller/transform_generator.rb, line 43
def out_of_range?(from:, to:)
  return true if !@start_date.nil? && (to < @start_date)
  return true if !@end_date.nil? && (from >= @end_date)
  false
end
state_reader() click to toggle source
# File lib/fortuneteller/transform_generator.rb, line 35
def state_reader
  @data.to_reader
end
states_in_range(from:, to:) click to toggle source
# File lib/fortuneteller/transform_generator.rb, line 39
def states_in_range(from:, to:)
  @data.read_range(from: from, to: to)
end
tighten_from(from) click to toggle source
# File lib/fortuneteller/transform_generator.rb, line 49
def tighten_from(from)
  return from if @start_date.nil?
  [from, @start_date].max
end
tighten_to(to) click to toggle source
# File lib/fortuneteller/transform_generator.rb, line 54
def tighten_to(to)
  return to if @end_date.nil?
  [to, @end_date].min
end