Module: Obsidian::Rails::ModelUpdateTracker

Defined in:
lib/obsidian/rails/model_update_tracker.rb

Defined Under Namespace

Classes: Delta

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.created_deltaObject

Returns the value of attribute created_delta.



44
45
46
# File 'lib/obsidian/rails/model_update_tracker.rb', line 44

def created_delta
  @created_delta
end

.destroyed_deltaObject

Returns the value of attribute destroyed_delta.



44
45
46
# File 'lib/obsidian/rails/model_update_tracker.rb', line 44

def destroyed_delta
  @destroyed_delta
end

.updated_deltaObject

Returns the value of attribute updated_delta.



44
45
46
# File 'lib/obsidian/rails/model_update_tracker.rb', line 44

def updated_delta
  @updated_delta
end

Class Method Details

.after_create(model) ⇒ Object



51
52
53
54
# File 'lib/obsidian/rails/model_update_tracker.rb', line 51

def after_create(model)         
  log("Model create #{model} is a #{model.class}")
  created_delta << model
end

.after_destroy(model) ⇒ Object



61
62
63
64
# File 'lib/obsidian/rails/model_update_tracker.rb', line 61

def after_destroy(model)
  log("Model destroy #{model}")
  destroyed_delta << model
end

.after_transaction_commitObject



66
67
68
69
70
71
# File 'lib/obsidian/rails/model_update_tracker.rb', line 66

def after_transaction_commit
  log("Commit transaction")
  created_delta.transaction_committed
  updated_delta.transaction_committed
  destroyed_delta.transaction_committed
end

.after_transaction_exceptionObject



80
81
82
83
84
85
# File 'lib/obsidian/rails/model_update_tracker.rb', line 80

def after_transaction_exception
  log("Exception in transaction}")
  created_delta.transaction_rolled_back
  updated_delta.transaction_rolled_back
  destroyed_delta.transaction_rolled_back
end

.after_transaction_rollbackObject



73
74
75
76
77
78
# File 'lib/obsidian/rails/model_update_tracker.rb', line 73

def after_transaction_rollback
  log("Rollback of transaction}")
  created_delta.transaction_rolled_back
  updated_delta.transaction_rolled_back
  destroyed_delta.transaction_rolled_back
end

.after_update(model) ⇒ Object



56
57
58
59
# File 'lib/obsidian/rails/model_update_tracker.rb', line 56

def after_update(model)         
  log("Model update #{model}")
  updated_delta << model
end

.log(msg) ⇒ Object



87
88
89
# File 'lib/obsidian/rails/model_update_tracker.rb', line 87

def log(msg)
  # puts msg 
end

.resetObject



45
46
47
48
49
# File 'lib/obsidian/rails/model_update_tracker.rb', line 45

def reset
  created_delta.reset
  destroyed_delta.reset
  updated_delta.reset
end