class TheFox::Timr::Model::ForeignIdDb
Holds the Task
IDs for each Foreign Task
ID.
Basically it's a Hash with structure:
“` foreign_id => task_id “`
Attributes
foreign_ids[R]
Holds all Foreign Task
IDs.
“` @foreign_ids = task.id “`
Public Class Methods
new()
click to toggle source
Calls superclass method
TheFox::Timr::Model::BasicModel::new
# File lib/timr/model/foreign_id_db.rb, line 24 def initialize super() @foreign_ids = Hash.new end
Public Instance Methods
add_task(task, foreign_id)
click to toggle source
# File lib/timr/model/foreign_id_db.rb, line 30 def add_task(task, foreign_id) task_id = task.id foreign_id = foreign_id.strip # needs clone if @foreign_ids[foreign_id] if @foreign_ids[foreign_id] == task_id # Foreign ID has already a match. false else raise ForeignIdError, "Want to add Foreign ID '#{foreign_id}' for Task '#{task.short_id}', but Foreign ID '#{foreign_id}' is already used by Task '#{@foreign_ids[foreign_id]}'." end else @foreign_ids[foreign_id] = task_id task.foreign_id = foreign_id # Mark ForeignIdDb as changed. changed true end end
get_task_id(foreign_id)
click to toggle source
# File lib/timr/model/foreign_id_db.rb, line 53 def get_task_id(foreign_id) foreign_id = foreign_id.strip # needs clone @foreign_ids[foreign_id] end
remove_task(task)
click to toggle source
# File lib/timr/model/foreign_id_db.rb, line 59 def remove_task(task) @foreign_ids.delete(task.foreign_id) task.foreign_id = nil # Mark ForeignIdDb as changed. changed end
Private Instance Methods
post_load_from_file()
click to toggle source
BasicModel
Hook
# File lib/timr/model/foreign_id_db.rb, line 76 def post_load_from_file @foreign_ids = @data end
pre_save_to_file()
click to toggle source
BasicModel
Hook
# File lib/timr/model/foreign_id_db.rb, line 71 def pre_save_to_file @data = @foreign_ids end