Class: IcfMasterTracker

Inherits:
ActiveRecordShared show all
Defined in:
app/models/icf_master_tracker.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.update_models_flagged_for_updateObject



79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# File 'app/models/icf_master_tracker.rb', line 79

def self.update_models_flagged_for_update
	puts "Searching for changed Icf Master Tracker records."
	changed_records = self.have_changed
	if changed_records.empty?
		puts "- Found no changed records."
	else
		puts "- Found #{changed_records} changed records."
		changed_records.each do |record|
#				record.last_update_attempted_at = Time.now
#				unless record.study_subject_id.nil?
#					try to update models
#					if successful
#						record.flagged_for_update = false
#						record.last_update_attempt_errors = nil
#					else
#						set last_update_attempt_error
#						leave flagged_for_update as true
#					end
#				else
#					record.last_update_attempt_errors = "study_subject is nil.  Nothing to update."
#					leave flagged_for_update as true
#				end
#				record.save
		end
	end
end

Instance Method Details

#attach_study_subjectObject

after_save :update_models



39
40
41
42
43
# File 'app/models/icf_master_tracker.rb', line 39

def attach_study_subject
	unless study_subject_id
		self.study_subject = StudySubject.find_by_icf_master_id(self.Masterid)
	end
end

#flag_for_updateObject



55
56
57
# File 'app/models/icf_master_tracker.rb', line 55

def flag_for_update
	self.flagged_for_update = true unless unignorable_changes.empty?
end

#ignorable_changesObject



45
46
47
48
49
# File 'app/models/icf_master_tracker.rb', line 45

def ignorable_changes
#		%w{id flagged_for_update study_subject_id Masterid created_at updated_at}
	%w{ id created_at updated_at
		flagged_for_update last_update_attempt_errors last_update_attempted_at }
end

#save_all_changesObject



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'app/models/icf_master_tracker.rb', line 59

def save_all_changes
	if new_record?
		IcfMasterTrackerChange.create(
			:icf_master_id => self.Masterid,
#  5       t.date :master_tracker_date	#	Hmm.
			:new_tracker_record => true
		)
	else
		unignorable_changes.each do |field,values|
			IcfMasterTrackerChange.create(
				:icf_master_id => self.Masterid,
#  5       t.date :master_tracker_date	#	Hmm.
				:modified_column => field,
				:previous_value => values[0],
				:new_value => values[1]
			)
		end
	end
end

#unignorable_changesObject



51
52
53
# File 'app/models/icf_master_tracker.rb', line 51

def unignorable_changes
	changes.dup.delete_keys!(*ignorable_changes)
end