class Toji::Progress::Builder

Public Class Methods

new(progress_cls, state_cls) click to toggle source
# File lib/toji/progress/builder.rb, line 5
def initialize(progress_cls, state_cls)
  @progress_cls = progress_cls
  @state_cls = state_cls
  @states = []
  @date_line = 0
  @prefix_day_labels = nil
end

Public Instance Methods

<<(state) click to toggle source
# File lib/toji/progress/builder.rb, line 13
def <<(state)
  @states += [state].flatten.map {|state|
    if State===state
      state
    else
      @state_cls.create(state)
    end
  }
  self
end
Also aliased as: add
add(state)
Alias for: <<
build() click to toggle source
# File lib/toji/progress/builder.rb, line 35
def build
  progress = @progress_cls.new

  states = @states.map{|s|
    s.progress = progress
    s
  }.sort_by(&:time)

  progress.states = states
  progress.date_line = @date_line
  if progress.respond_to?(:prefix_day_labels=)
    progress.prefix_day_labels = @prefix_day_labels
  end

  progress
end
date_line(val, unit=SECOND) click to toggle source
# File lib/toji/progress/builder.rb, line 25
def date_line(val, unit=SECOND)
  @date_line = (val * unit).to_i
  self
end
prefix_day_labels(val) click to toggle source
# File lib/toji/progress/builder.rb, line 30
def prefix_day_labels(val)
  @prefix_day_labels = val
  self
end