class AsciiTracker::Controller
Attributes
model[R]
Public Class Methods
new()
click to toggle source
# File lib/asciitracker/controller.rb, line 5 def initialize @model = Model.new end
Public Instance Methods
new_day(date)
click to toggle source
match(:day, :slot) { |a,b| [[:day, *a], [:slot, *b]] } match(:day, :span) { |a,b| [[:day, *a], [:span, *b]] }
# File lib/asciitracker/controller.rb, line 11 def new_day date @day = date @rec = @slot = nil end
new_project_re(project_id, re)
click to toggle source
match(/@.+/, String) { |project_id, re| [project_id, Regexp.new(re)] }
# File lib/asciitracker/controller.rb, line 57 def new_project_re project_id, re puts "project expression: #{project_id}, #{re}" @model.projects[project_id].push(re) end
new_slot(start, stop, desc = nil)
click to toggle source
match(:slot) { |a| [[:slot, *a]] }
# File lib/asciitracker/controller.rb, line 17 def new_slot start, stop, desc = nil #slot = Slot.new :date=>@day, :start=> start, :end=>stop, :desc=>desc @rec = @slot = Slot.new( start: start, end: stop, desc: desc, date: @day.dup ) # updates parant records when this slot is an interruption overlaps = @model.find_overlaps(@slot, @day) #puts "new slot(#{@slot}), overlaps: #{overlaps}" unless overlaps.empty? # parents are covers which are a subset of overlaps if parent = @model.find_best_cover(@slot, @day) parent.add_interrupt(@slot) else raise Exception, <<-EOM #{@slot} overlaps with: #{overlaps.first} ... EOM end end # add record to model after interrupt calculation to save self # interruption checks @model.add_record(@slot, @day) end
new_span(span, desc = nil)
click to toggle source
match(:span) { |a| [[:span, *a]] }
# File lib/asciitracker/controller.rb, line 45 def new_span span, desc = nil @rec = Record.new :span=>span, :desc=>desc, :date => @day.dup @slot.add_interrupt(@rec) if @slot @model.add_record(@rec, @day) end
new_txt(txt = nil)
click to toggle source
match(:desc) { |txt| [[:txt, txt]] } #@m.append_txt(txt) }
# File lib/asciitracker/controller.rb, line 52 def new_txt txt = nil @rec.desc << " #{txt}" end