Class: TheFox::Timr::Model::ForeignIdDb
- Inherits:
-
BasicModel
- Object
- BasicModel
- TheFox::Timr::Model::ForeignIdDb
- Includes:
- Error
- Defined in:
- lib/timr/model/foreign_id_db.rb
Overview
Holds the Task IDs for each Foreign Task ID.
Basically it’s a Hash with structure:
“‘ foreign_id => task_id “`
Instance Attribute Summary collapse
-
#foreign_ids ⇒ Object
readonly
Holds all Foreign Task IDs.
Attributes inherited from BasicModel
Instance Method Summary collapse
- #add_task(task, foreign_id) ⇒ Object
- #get_task_id(foreign_id) ⇒ Object
-
#initialize ⇒ ForeignIdDb
constructor
A new instance of ForeignIdDb.
- #remove_task(task) ⇒ Object
Methods inherited from BasicModel
#changed, create_path_by_id, #created=, #delete_file, find_file_by_id, get_id_from_path, #id, #id=, #load_from_file, #modified=, #post_save_to_file, #pre_load_from_file, #save_to_file, #short_id
Constructor Details
#initialize ⇒ ForeignIdDb
Returns a new instance of ForeignIdDb.
24 25 26 27 28 |
# File 'lib/timr/model/foreign_id_db.rb', line 24 def initialize super() @foreign_ids = Hash.new end |
Instance Attribute Details
#foreign_ids ⇒ Object (readonly)
Holds all Foreign Task IDs.
“‘ @foreign_ids = task.id “`
22 23 24 |
# File 'lib/timr/model/foreign_id_db.rb', line 22 def foreign_ids @foreign_ids end |
Instance Method Details
#add_task(task, foreign_id) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# 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) ⇒ Object
53 54 55 56 57 |
# 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) ⇒ Object
59 60 61 62 63 64 65 66 |
# 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 |