class Totalizer::Step

Attributes

end_ids[RW]
start_ids[RW]

Public Class Methods

new(start_ids, end_ids) click to toggle source
# File lib/totalizer/step.rb, line 5
def initialize start_ids, end_ids
  self.start_ids = start_ids
  self.end_ids = end_ids
  validate!
end

Public Instance Methods

finish() click to toggle source
# File lib/totalizer/step.rb, line 23
def finish
  ids.size
end
ids() click to toggle source
# File lib/totalizer/step.rb, line 15
def ids
  @ids ||= calculate
end
rate() click to toggle source
# File lib/totalizer/step.rb, line 11
def rate
  (finish.to_f/(start.to_f.nonzero? || 1)).round(2)
end
start() click to toggle source
# File lib/totalizer/step.rb, line 19
def start
  start_ids.size
end

Private Instance Methods

calculate() click to toggle source
# File lib/totalizer/step.rb, line 33
def calculate
  start_ids & end_ids
end
validate!() click to toggle source
# File lib/totalizer/step.rb, line 29
def validate!
  raise Errors::InvalidData unless start_ids.kind_of?(Array) && end_ids.kind_of?(Array)
end